SEDS 518

Development of Real-Time Software

Real-time operating systems, real-time task scheduling algorithms, formal methods used in software specifications, modeling and verification using timed automata, software design, programming languages, testing, performance analysis and optimization, documentation, software reuse, and fault tolerance.

 Reference book(s):

  • Real-Time Systems Design and Analysis. Phillip A. Laplante. A John Wiley & Sons,
  • Software Engineering for Real-Time Systems”, J.E. Cooling, Addison Wesley

 Course Objectives: To give the students the latest research issues on the software development, programming, design, test and documentation for real-time systems.

Week Topics
1 Introduction to Real-Time Systems
2 Basics of Developing Software for Real-Time Systems
3-4 Real-Time Operating Systems
5 Software Requirements
6-7 Model Checking
8-9 Software Design
10 Programming Languages
11 Testing
12 Performance Analysis and Optimization
13 Safety-Critical Systems and Fault-Tolerance
14 Documentation, Software Re-Use and Continuous Improvement

 

Grading:

  • Final Exam                              %40
  • Practice Assignments                    %30
  • Reading Assignments + participation     %10

Course Learning Outcomes:

CO1      To have knowledge of real-time systems fundamentals

CO2      To understand the state-of-the-art of safety critical and fault-tolerant systems

CO3      Ability to design real-time software

Contribution of Program Learning Outcomes:

                 P01      P02       P03       P04      P05       P06       P07

C01            x                                       x

C02                        x                          x

C03                                                                   x

Justification of the course: It is an elective course of the Software Engineering and Data Science Master of Science Program. The course introduces the fundamentals of real-time software development for safety critical systems.