Teaching‎ > ‎

Critical systems engineering 2013

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.

Learning outcomes

When you have completed this course you will:

  • Understand the fundamental notion of system dependability and how dependability is affected by both social and technical factors
  • Understand the notion of a critical, socio-technical system
  • Have been introduced to methods and techniques for achieving software dependability
  • Understand how human and social factors may have both positive and negative influences on socio-technical system dependability
  • Understand the notion of critical infrastructures and threats to these infrastructures


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.  
                                              Dependability Requirements Engineering    

    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.

Compulsory elements

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   
    Lecture 3:    Socio-technical systems
    Lecture 4:    Requirements engineering

    Case study:    Kegworth air crash, 1989 (wikipedia)
                        Kegworth and complex systems (slides)
Week 3    Critical systems specification
    Lecture 5:    Safety specification

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)
                        Ariane launcher failure
                        Discussion of causes of Ariane 5 failure

Week 5    Security engineering 
    Lecture 9:     Security engineering 1
    Lecture 10:   Security engineering 2 

                        Smashing the stack for fun and profit (please don't try this at home)

Week 6    Critical systems assurance  
    Lecture 11:    Critical systems assurance

    Case study:    Security cases
                        Arguing security: Creating security assurance cases

Week 7    Human factors and system dependability  [Dr Gordon Baxter]
    Lecture 13:    Human factors and dependability 1
    Lecture 14:    Human factors and dependability 2

    Case study:    Dependability in a Neonatal Intensive care Unit

Completed coursework to be submitted this week


Week 8    Resilience engineering  [Dr Gordon Baxter]
    Lecture 15:    From safety to resilience 
    Lecture 16:    Resilience engineering

    Case study:    Hudson river crash landing

Week 9    Critical infrastructure
    Lecture 17:    Critical infrastructure 

    Case study:    Maroochy water breach (slides).  Short description of incident.
    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 
                       Top-10 web vulnerabilities