Centre for Software Reliability
  1. News
  2. Staff
  3. Research
  4. Publications
  5. Courses
  6. Consultancy & Advisory Services
  7. Contact CSR
Software Reliability

Courses

Academic Courses

The Centre for Software Reliability contributes to a range of courses offered by the School of Mathematics, Computer science & Engineering at both undergraduate and postgraduate level.  Also available, being offered jointly by the Centre for Software Reliability and the Centre for Cyber Security Sciences, is the Masters course in Cyber Security started September 2014. A five day short course in Fault-Tolerant Design of Computer Systems is offered to IT and Engineering managers, software designers.

Masters in Cyber Security

This course will prepare you for a successful career in the various roles directly and indirectly connected to the world of computer, network and information security, developing your specialist analytical, operational and development skills in both technical and socio-technical areas of cyber security. It is designed for those who wish to extend their capability for an accelerated early career in cyber security, and who have also completed a first degree in a computing subject (e.g. computer science, business computing) or a numerate subject (e.g. applied mathematics, engineering, physics) if that covered a significant computing component.

Fault-Tolerant Design of Computer systems

Computer failures can have crippling effects on an organisation's ability to function. Any company, not just software-related businesses, can become bankrupt as a result of computer failure. In the next two or three years, the "Millennium bug" alone will generate many vital errors. And yet increasingly, business-critical computing systems are being assembled from off-the-shelf components never designed for high reliability, availability or safety.

This course offers a unique opportunity for engineering managers and software designers to learn about fault tolerance - about systems surviving failure. It is about maintaining systems despite the failure of some of their parts. In other words, without uncontrolled disruption of service. This is not rocket science; if you know the basic principles, you can apply them to everyday design and purchasing decisions.

The participants will learn the basic concepts necessary for decisions about the form and extent of redundancy to be employed during the design or procurement of computer systems. These concepts have been developed by researchers during the whole history of computing, but their application has been mostly limited to safety-critical and other high-risk, high-budget applications. By contrast, this course will consider the range of techniques available to organisations with different dependability requirements and budgets for fault tolerance. We will cover the integration of automatic and manual procedures, and will specifically address software-caused and operator-caused failures. The course will thus satisfy the needs of companies that have to decide between market offerings of fault-tolerant commercial products, and/or the need to integrate a fault-tolerant system out of non- fault-tolerant products.

Course Objectives

At the end of this course you should:

  • understand the risk of computer failures and their peculiarities compared with other equipment failures;
  • know the different advantages and limits of fault avoidance and fault tolerance techniques;
  • be aware of the threat from software defects and human operator error as well as from hardware failures;
  • understand the basics of redundant design;
    know the different forms of redundancy and their applicability to different classes of dependability requirements;
  • be able to choose among commercial platforms (fault-tolerant or non fault-tolerant) on the basis of dependability requirements;
  • be able to specify the use of fault tolerance in the design of application software;
  • understand the relevant factors in evaluating alternative system designs for a specific set of requirements;
  • be aware of the subtle failure modes of "fault-tolerant" distributed systems, and the existing techniques for guarding against them
  • understand cost-dependability trade-offs and the limits of computer system dependability

This course will prepare you for a successful career in the various roles directly and indirectly connected to the world of computer, network and information security, developing your specialist analytical, operational and development skills in both technical and socio-technical areas of cyber security. It is designed for those who wish to extend their capability for an accelerated early career in cyber security, and who have also completed a first degree in a computing subject (e.g. computer science, business computing) or a numerate subject (e.g. applied mathematics, engineering, physics) if that covered a significant computing component.

Research Studies

CSR is pleased to consider applications for MPhil and Ph.D. study.