Software Reliability

Module code: CO7209

Software reliability methods offer techniques and tools that can be employed in a variety of application domains to verify required functional properties against models of system behaviour – i.e. making sure that computer systems are reliable in the sense that they have the properties intended.

In this module, you will study some of these techniques and tools, including SPIN to verify and debug small-scale systems. We will look at languages for modelling systems and their properties, some of the algorithms that can be employed for automatic verification, and the limitations of current implementations (e.g. the state explosion problem). We will also develop an understanding of specification, verification and validation of the typical properties of reactive systems, and discuss the relationship between software reliability and software testing techniques (e.g. black-box checking).


  • 23 hours of lectures
  • 16 hours of practicals/workshops
  • 111 hours of guided independent study


  • Exam, 2 hours (60%)
  • Coursework (40%)