The module is taught jointly between Francois Simon, Paul Gibson and Jean-Luc Raffy.
Dr Gibson is the module co-ordinator.
The material will be uploaded dynamically:
please check the website
for updates before every lecture.
The software part will be assessed by a short project due by Friday 24th January.
The sessions are a mix of problem-based learning, group project work,
directed practicals, interactive lectures and traditional lectures. There is no preset format - the lecturer
organises the style and content of each session depending on the needs of the class.
Session 1: Tuesday 7th & Tuesday 14th January 2014 (13h45, C106)
We will be looking at the problem of trying to make a reliable system from
unreliable components, with a centralised solution:
- THE INFLUENCE OF SOFTWARE STRUCTURE ON RELIABILITY,
D.L. Parnas, 1975.
- System Structure for Software Fault Tolerance,
BRIAN RANDELL, 1975.
- SOFTWARE RELIABILITY: THE ROLE OF PROGRAMMED EXCEPTION HANDLING,
P.M. Melliar-Smith and B. Randell, 1977.
- Fault-Tolerant Software, Herbert Hecht, 1979.
- The Byzantine Generals Problem, LESLIE LAMPORT, ROBERT SHOSTAK, and MARSHALL PEASE, 1982.
- AN EXPERIMENTAL EVALUATION OF THE ASSUMPTION
OF INDEPENDENCE IN MULTI-VERSION PROGRAMMING, John C. Knight and Nancy Leveson, 1986
- Basic Concepts and Taxonomy of
Dependable and Secure Computing, Algirdas Avizienis, Jean-Claude Laprie,
Brian Randell and Carl Landwehr, 2004.
- A direct path to dependable software, Daniel Jackson, 2009.
Session 2: Tuesday 21st & Wednesday 22nd January 2014
We will be looking at analysis of different designs for reliability. This session includes your project work.
- Unreliable Queue From 2 Stacks
Session 3: Wednesday 22nd January 2014
We will be looking at the problem of reliability in distributed systems, with
particular emphasis on algorithms and architectures.
This will start with an interactive session at the whiteboard where we will
discuss the history and evolution of reliability in distributed systems.
- Self-stabilizing Systems in
Spite of Distributed Control, Edsger W. Dijkstra, 1974.
- SuperStabilizing protocols for dynamic distributed systems, Shlomi Dolev and Ted Herman, 1995.
- A self-stabilizing enumeration algorithm, Emmanuel Godard, 2002.
- Understanding self-healing in service-discovery systems,
C. Dabrowski and K. Mills, 2002.
- A Mechanically Proved and Incremental Development of IEEE
1394 Tree Identify Protocol, Abrial, Cansell and Mery, 2003.