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 and modelling 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)
- 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.
- Knowledge of the mechanisms that underlie advanced modelling and 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.
- Make informed judgements in situations in the absence of complete or consistent data.
- Exercise autonomy, initiative and creativity in the application of software engineering techniques.
- Demonstrate critical reflection. (PDP)
- Communicate with professional level peers, senior colleagues and specialists. (PDP)
SCQF Level: 10.
Credits: 15.