Carnegie Mellon University

17-619 Introduction to Real-Time Software and Systems

Introduction to Real-Time Software and Systems is a 12 unit full semester course.

Introduction to Real-Time Software and Systems presents an overview of time as it relates engineering complex systems. Any system that responds at the pace of relevant events has real-time constraints whether the timescale is short, like the flight controls for an aircraft, or longer, like the flight reservation system for an airline. Fundamental concepts, terminology, and issues of real-time systems are introduced in this course. The focus is on software solutions to real-time problems¿solutions that must be both correct and timely. Software development is examined with emphasis on real-time issues during each phase of the software lifecycle. Real-time requirements analysis, architecting real-time systems, designing and modeling system timing, and implementation and testing strategies are studied. Modeling techniques using UML 2.0 are applied. Particular emphasis is placed on real-time scheduling to achieve desired timing, reliability, and robustness. Languages and operating systems for real-time computing, and real-time problems in concurrent and distributed systems are explored. This course provides a comprehensive view of real-time systems with theory, techniques and methods for the practitioner. The aim of this course is to motivate and prepare students to pursue more in-depth study of specific problems in real-time computing and systems development.

After completing this course, students will:

  • Understand real-time issues in system development;
  • Understand constraints;
  • Propose approaches to typical real-time problems.


  • A proficiency with a high-level programming language such as C or Ada and and understanding of basic concepts of computing systems.
  • Familiarity with software engineering concepts and system development life cycle.