UCLA Extension

Safety-Critical Software

A 3-Day Short Course

The size and complexity of the software systems that we depend upon for even mundane tasks increases every year. Banks, bookstores, trains, planes, and automobiles all operate under the control of networks of computers that run ever-growing amounts of sophisticated code, often in real-time multi-threaded context. When this software is used in safety-critical systems, it becomes all the more important to understand any new failure modes that may be introduced into the system and what to do to mitigate or prevent unintended consequences.

This course presents a review of the types of software-induced failures that can occur in safety-critical systems and the methodologies that are available to detect and prevent them. Instruction is designed for both software developers of embedded and potentially safety-critical systems as well as their managers. Only basic familiarity with standard programming practice is assumed. The course is meant to raise awareness of common types of flaws in safety-critical systems design, the consequences of those flaws that have occurred in safety-critical systems, and the types of precautions that can be taken.

Course Materials

Lecture notes are distributed on the first day of the course. These notes are for participants only and are not for sale.

Coordinator and Lecturer

Gerard J. Holzmann, PhD, Fellow and Senior Research Scientist, NASA Jet Propulsion Laboratory (JPL), Pasadena, California. Dr. Holzmann leads the Laboratory for Reliable Software (LaRS) at JPL and serves as Faculty Associate in the Computer Science Department of the California Institute of Technology, Pasadena, California. He obtained his PhD in electrical engineering from the Delft University of Technology in The Netherlands in 1979, and worked at Bell Laboratories in Murray Hill, New Jersey, from 1980 until 2003. He joined JPL in 2003 to found LaRS.

Currently, Dr. Holzmann has responsibility for the analysis of safety- and mission-critical software for all missions that JPL designs, develops, and/or operates. This includes the robotic deep space exploration missions; spacecraft landing on or orbiting other planets (e.g., Mars); and earth-orbiting spacecraft. He was responsible for the development of a new Institutional Coding Standard for flight software that has since become mandatory for all new mission-critical flight software development. He also designed a novel tool-based process for code review that was adopted by the Mars Science Laboratory (MSL) flight software development team. He is the designer and maintainer of a number of widely used software analysis tools, including the Spin logic model checker and the Uno static source code analyzer.

Dr. Holzmann holds eight U.S. patents and is the recipient and co-recipient of a number of prestigious awards, including the 2001 ACM Software Systems Award and the 2002 SIGSOFT Outstanding Researcher Award. He is a member of the National Academy of Engineering.

Daily Schedule

Day 1

  • Overview and introduction
  • Software risks and vulnerabilities
  • Frequently occurring anomalies
  • Case studies

Day 2

  • Designing reliable systems from unreliable parts: the system view
  • Developing safety-critical code
  • Coding standards and compliance verification
  • Defensive coding techniques
  • System structure, redundancy, defense in depth

Day 3

  • Design, development, and test methodologies
  • Modeling and analysis techniques
  • Tool-based code review processes
  • Software safety-related standards (NASA, IEEE, ARINC, DOD, etc.)

For more information contact the Short Course Program Office:
shortcourses@uclaextension.edu | (310) 825-3344 | fax (310) 206-2815