Course co-ordinator(s): Prof Andrew Ireland (Edinburgh), Dr Hind Zantout (Dubai).
Aims:
To provide knowledge and understanding of tools and techniques which support rigorous software engineering
Detailed Information
Course Description: Link to Official Course Descriptor.
Pre-requisite course(s): F28SD Introduction to Software Design or equivalent.
Location: Dubai, Edinburgh.
Semester: 1.
Syllabus:
The course addresses the challenges of engineering safe and secure software systems. It covers a range of rigorous processes and formal methods that support the development of high integrity software systems from modelling and reasoning about designs through to code, students will experience a range of state-of-the-art static analysis tools and techniques. While theory based, the course has a strong practical element, drawing upon industrial case study material where appropriate.
Learning Outcomes: Subject Mastery
Understanding, Knowledge and Cognitive Skills Scholarship, Enquiry and Research (Research-Informed Learning)
- A detailed and integrated knowledge and understanding of a range of rigorous processes and formal methods that support the development of high integrity software systems.
- Critical understanding of the relationship between code level annotations and high-level formal specifications.
- Extensive knowledge of the mechanisms that underlie advanced static analysis techniques.
- To be able to demonstrate a critical understanding of the relationship between code level annotations and flow analysis techniques.
- To be able to demonstarte a critical understanding of program proof and how it can be used to provide strong formal correctness guarantees.
Learning Outcomes: Personal Abilities
Industrial, Commercial & Professional Practice Autonomy, Accountability & Working with Others Communication, Numeracy & ICT
- Conceptualize and define new abstract problems within the context of automated software development.
- Deal with complex issues and make informed judgements in situations in the absence of complete or consistent data.
- Exercise substantial autonomy, initiative and creativity in the application of software engineering techniques.
- Demonstrate critical reflection. (PDP)
- Communicate with peers, more senior colleagues and specialists. (PDP)
SCQF Level: 11.
Credits: 15.