This course introduced the concepts and methods used to develop 'critical systems' - systems whose failure could threaten lives, the environment or the survival of businesses. It is important that critical software is not considered in isolation but as part of a broader socio-technical system which includes hardware, software, people and processes. Therefore, part of the course will be concerned with human, social and organisational issues that affect system dependability
The course lecturer was Prof. Ian Sommerville, with guest lectures from Dr Gordon Baxter.
January 2014: I am not maintaining or updating this page but it will remain available indefinitely.
Software Engineering, 9th edition. Ian Sommerville. Addison Wesley, 2011.
Paper copies of relevant chapters will be distributed in class. For copyright reasons, these are not downloadable.
When you have completed this course you will:
The assessment for this course is made up of 2 components:
1 piece of coursework, worth 40% of the total (set in week 3 to be completed by week 7)
This was handed out to the class on 14th February 2013. Contact me if you need another copy.
Coursework to be completed
Required coursework reading: The Mental Healthcare Patient Management System.
1 examination, worth 60% of the total
The course assessment has been significantly revised from previous years. The examination will be a 2-hour examination where students answer 1 compulsory question covering all aspects of the course and two further questions. Samples of each of these type of question will be made available by March 31st.
The course will be organised as a single weekly class session of 2.5 hours for 10 weeks in the 2nd semester. Attendance at these weekly class meetings is compulsory.
Copies of all lecture slides will be available on slideshare before the lecture and can be downloaded from there (use the Save menu). They will also be made available on studres but you should consider the slideshare version to be definitive. Paper copies will not be distributed.
Why dependability matters - lecture presented as part of Advanced Software Engineering course.
Week 1 Introduction
Lecture 1: Critical systems engineering
Lecture 2: Dependability and security
Case study: Kegworth air crash, 1989 (video- not online for copyright reasons)
Week 2 Background
Case study: Kegworth air crash, 1989 (wikipedia)
Kegworth and complex systems (slides)
Week 3 Critical systems specification
Lecture 5: Safety specification
Lecture 6: Reliability and security specification
Case study: The Mental Health Care Patient Management System
Coursework to be handed out this week.
Week 4 Dependability engineering
Lecture 7: Dependability engineering 1
Lecture 8: Dependability engineering 2
Case study: The Ariane 5 launch explosion (You Tube)
Week 5 Security engineering
Lecture 9: Security engineering 1
Lecture 10: Security engineering 2
Case study: Buffer overflow and the Code Red worm
Smashing the stack for fun and profit (please don't try this at home)
Week 6 Critical systems assurance
Lecture 11: Critical systems assurance
Lecture 12: Security testing and dependability cases
Case study: Security cases
Week 7 Human factors and system dependability [Dr Gordon Baxter]
Case study: Dependability in a Neonatal Intensive care Unit
Completed coursework to be submitted this week
Week 8 Resilience engineering [Dr Gordon Baxter]
Case study: Hudson river crash landing
Week 9 Critical infrastructure
Lecture 17: Critical infrastructure
Lecture 18: Critical infrastructure 2: SCADA systems
Reading: The Fundamentals of SCADA (Bentley Systems)
Week 10 Cybersecurity
Lecture 19: Introduction to cybersecurity
Lecture 20: Making our systems more secure
Case study: Stuxnet worm
Reading: Cybersecurity - An introduction