Module Details

The information contained in this module specification was correct at the time of publication but may be subject to change, either during the session because of unforeseen circumstances, or following review of the module at the end of the session. Queries about the module should be directed to the member of staff with responsibility for the module.
Code COMP313
Coordinator Prof MD Fisher
Computer Science
Year CATS Level Semester CATS Value
Session 2017-18 Level 6 FHEQ Second Semester 15


As more complex computational systems are used within critical applications, it is becoming essential that these systems are formally specified.  Such specifications are used to give a precise and unambiguous description of the required system.  While this is clearly important in criticial systems such as industrial process management and air/spacecraft control, it is also becoming essential when applications involving E-commerce and mobile code are developed.  In addition, as computational systems become more complex in general, formal specification can allow us to define the key characteristics of systems in a clear way and so help the development process.

Formal specifications provide the basis for verification of properties of systems. While there are a number of ways in which this can be achieved, the model-checking approach is a practic al and popular way to verify the temporal properties of finite-state systems. Indeed, such temporal verification is widely used within the design of critical parts of integrated circuits, has recently been used to verify parts of the control mechanism for one of NASA’s space probes, and is now beginning to be used to verify general Java programs.

Learning Outcomes

Upon completing this module, a student will:

  • understand the principles of standard formal methods, such as Z;
  • understand the basic notions of temporal logic and its use in relation to reactive systems;
  • understand the use of model checking techniques in the verification of reactive systems;
  • be aware of some of the current research issues related to formal methods.


1  State-Based Formal Methods (3.5 weeks):

  • classical logic
  • transformational systems
  • traditional approaches; Z specification; formal development cycle
  • case studies

2  Temporal Specification (3 weeks):

  • reactive systems
  • syntax and semantics of temporal logic; examples
  • temporal specification of reactive systems (safety, liveness, fairness)

3  Model Checking (3.5 weeks):

  • generating finite models;  analysis of a simple model checking algorithm
  • symbolic model checking;  overview of reduction methods
  • “on the fly”model checking; Spin and Promela
  • case study and practical verification of properties; advanced topics

Teaching and Learning Strategies

Lecture -

Teaching Schedule

  Lectures Seminars Tutorials Lab Practicals Fieldwork Placement Other TOTAL
Study Hours 30

Timetable (if known)              
Private Study 120


EXAM Duration Timing
% of
Penalty for late
Written Exam  2.5 hours  100  At the next normal opportunity.  N/A  Assessment 1 Notes (applying to all assessments) Written examination  
CONTINUOUS Duration Timing
% of
Penalty for late

Recommended Texts

Reading lists are managed at Click here to access the reading lists for this module.
Explanation of Reading List: