Computer Science (COMP) 617

Designing Real-Time Software (Revision 3)

COMP 617

Delivery Mode: Individualized Study Online

Credits: 3

Area of Study: IS Elective

Prerequisite: Previous courses or experience in any one or more of the areas such as software system analysis and design, information system architecture and analysis, networking and internet application at various layers, or domain specific application systems relying on time-critical computing. Alternatively, we expect that students who want to enrol in COMP 617 could have completed any one or more of the course courses, such as COMP602, COMP 604, COMP 610, or other COMP course(s) in related areas.

Permission to register for this course without the prerequisites requires special permission of the course coordinator. Completion of this course does not exempt students from completing the IS foundation or core prerequisites.

Faculty: Faculty of Science and Technology

Centre: School of Computing and Information Systems

Instructor: Dr. Xiaokun Zhang

**Note:  This is a graduate level course and students need to apply and be approved to one of the graduate programs or as a non-program School of Computing and Information Systems graduate student in order to take this course.  Minimum admission requirements must be met.  Undergraduate students who do not meet admission requirements will not normally be permitted to take this course.


COMP 617 introduces essential concepts of real-time computer systems in which the correctness of the system behaviour depends not only on the logical results of the computations, but also on the physical instant at which these results are produced. In this system, real-time software must be both logically and temporally correct by means of deterministic timing constraints and predictable computation behaviour, concurrency of the computation processes, perfect reliability and fault tolerance, and so on. Applications and examples of real-time systems appear as part of our daily life such as vehicle control systems for automobile and aircraft, traffic control systems, medical systems, home utilities, and security monitors and control systems, etc.

This course gives general definitions and architectural frameworks for designing, analyzing, and building real-time software. It discusses software engineering methodologies for system development and design, and it analyzes real-time schedule methods, execution time prediction, fault tolerance, validation, safety, and reliability. Software design patterns and patterns-based approaches are illustrated to build real-time software.

The course is geared towards practicing professional software developers and computing science majors at the graduate level. It balances professional software development with theoretical approaches. It assumes a reasonable proficiency in certain programming languages and basic understanding of object-oriented software. The course focuses on system architectural analysis and design rather than programming.

Course Objectives

This course is designed to

  • introduce fundamental concepts of real-time software.
  • provide methodologies of real-time computing analysis, system performance, safety analysis, and system architecture analysis.
  • expose students to the development and engineering approaches in real-time systems.


  • Unit 1 - Basic Concepts of Real-Time Systems
  • Unit 2 - Modeling Real-Time Systems
  • Unit 3 - Real-Time Scheduling
  • Unit 4 - Real-Time Software Architecture and Engineering
  • Unit 5 - Resource Management in Real-Time Software
  • Unit 6 - Concurrency, Schedule, and Distribution Architectures
  • Unit 7 - Fault Tolerance, Validation, Safety, and Reliability in Real-Time Systems

Learning Outcomes

Upon successful completion of this course, you should be able to

  • identify essential features in real-time systems.
  • examine the models of temporal control and logical control in real-time system.
  • perform comparative analysis of real-time schedule methods.
  • analyze software architecture patterns in real-time systems.
  • conduct fault tolerance analysis and software validation for designing safe and reliable real-time systems.
  • design and analyze real-time applications.
  • effectively communicate course work in writing.


To receive credit for COMP 617, you must achieve a cumulative course grade of B- (70 percent) or better, and must achieve an average grade of at least 60% on the assignments and a grade of 60% on the oral presentation. Your cumulative course grade will be based on the following assessment.

Assessment Topics Weight
Assignment 1 Topics covered in Units 1-2 20%
Assignment 2 Topics covered in Unit 3 20%
Assignment 3 Topics covered in Units 4-5 20%
Assignment 4 Topics covered in Units 6-7 15%
Oral Presentation Selected topics covered in the course or project 25%
Total   100%

Course Materials

Athabasca University Materials

The remainder of the learning materials for Computer Science 617 are distributed electronically. These materials include the following

  • COMP 617 Study Guide
  • assignments
  • Links to a variety of resources on the World Wide Web.

Course Features

COMP 617 is offered in individualized study online. Individualized study online is facilitated through a variety of computer-mediated communication options, and can be completed wherever the student can connect to the Internet.

Athabasca University reserves the right to amend course outlines occasionally and without notice. Courses offered by other delivery methods may vary from their individualized-study counterparts.

Opened in Revision 3.