Download - 17619-f09-rts
-
8/2/2019 17619-f09-rts
1/7
17619 Introduction to Real-Time Software and Systems
Version 1.3 (28 September 2009)
Overview
Real-time software controls everything from jet airplanes to airline reservations; deep-space communication tomobile phones. Any system that responds at the pace of relevant events has real-time requirements and constraintswhether the timescale is short like the flight controls for an aircraft or longer like the flight scheduling system for anairline. Thinking about time and timing are fundamental to software engineering practice because at some level,every software system has real-time requirements and development considerations. System response must be bothcorrect and timely.
Introduction to Real-Time Software and Systems presents an overview of time as it relates engineering complexsoftware systems. In this course basic concepts, terminology, and issues of real-time are examined. Initial emphasisis placed on real-time scheduling and priority to achieve desired system timing, reliability, and robustness.Understanding how timing is achieved and the potential problems that may arise provides the basis for applying
software engineering principles to real-time systems development. The software development lifecycle is examinedwith emphasis on addressing real-time issues during each phase. General software systems engineering processesare expanded by the added concerns of real-time response. Real-time requirements analysis, architecting real-timesystems, design and modeling of system timing, and implementation and testing strategies are examined. Languagesand operating systems for real-time computing, and real-time problems in distributed processing systems areexplored.
This course provides a comprehensive view of real-time systems with theory, techniques and methods for thepractitioner. After successfully completing this course, the student will be able to identify and understand timingissues in system development and propose approaches or solutions to address basic problems in real-timecomputing. It is the goal of this course to motivate and prepare students to pursue more in-depth study of specific
problems in real-time computing and systems development.
Objectives
This coursewill examine analysis, design, and systems issues for real-time systems. By the end of the course youshould be able to:
Define what it means to be a real-time system or application
Understand elements of hardware and software as they relate to system performance
Discuss timing and related attributes associated with real-time systems
Learn scheduling concepts and algorithms and their relative merits
Understand synchronization and resource management approaches
Identify possible timing problems including deadlock and priority inversion
Apply analysis techniques including rate monotonic analysis
Consider approaches to servicing periodic and aperiodic events
Recognize the systems development process and its relationship to real-time issues
Consider the critical requirements imposed by real-time applications
Apply real-time extensions to software requirements analysis including UML modeling
Understand the role of architecture in real-time systems engineering
Carnegie Mellon Introduction to Real-Time Software and Systems 1
-
8/2/2019 17619-f09-rts
2/7
Decide the appropriate analysis and design methods for a real-time system
Apply techniques for modeling dynamic behavior in real-time systems
Consider real-time verification and validation issues and strategies.
Devise real-time testing strategies and plans to meet performance and quality requirements
Discuss characteristics of real-time operating systems and features of programming languages
Instructor
Office Telephone Email
David Wettergreen NSH 2113 412-268-5421 [email protected]
Course Meetings
Lectures: Tuesday and Thursday, 1:30-2:50pm
Office Hours: Immediately after class or by appointment
Course Materials
The required textbooks are:
Real-Time Systems Design and Analysis (3rd Edition), by Phillip Laplante, ISBN 0-471-22855-9, IEEE Press/Wiley-Interscience, 2004
Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications (2nd Edition), by GiorgioButtazzo, ISBN 0-387-23137-4, Springer, 2004
The syllabus, lectures and assignments will be available online under course F09-17619 at: http://blackboard.andrew.cmu.edu
Prerequisites
This course is designed with practicing developers and managers in mind. Prerequisites are established to ensure thatstudents have some software engineering experience from which this course can build.
Familiarity with the typical software development process either from practical experience or an introductorysoftware engineering course.
Proficiency with a high-level programming language such as C or Ada and basic concepts of computingsystems. Software will be considered to the level of device drivers rather than microcode.
Knowledge of basic operating systems concepts generally taught in an undergraduate operating systems
course, such as tasks and scheduling.
Any concerns about your background should be discussed with the instructor.
Carnegie Mellon Introduction to Real-time Software and Systems 2
http://blackboard.andrew.cmu.edu/http://blackboard.andrew.cmu.edu/http://blackboard.andrew.cmu.edu/http://blackboard.andrew.cmu.edu/http://blackboard.andrew.cmu.edu/http://blackboard.andrew.cmu.edu/ -
8/2/2019 17619-f09-rts
3/7
Activities and Grading
Assignments
Individual homework assignments will apply lecture and reading material and require specific skills and knowledge.The 12 individual assignments will make up 55% of the final grade (5% for each assignment with the lowest one ofthirteen dropped).
Project
The course project will be executed individually (not in teams) and consists of analysis, design, and planning for thedevelopment of a real-time system. The particular problem will be chosen by the student in an area of interest. The
project will develop a real-time system from concept through to detailed design.
Evaluation for the project will be from written artifacts: a Requirements Specification, an Architecture and DetailDesign, and a Verification, Validation and Test Plan. A final presentation will describe the results of the real-timeanalysis and design and describe lessons-learned through the process.
The grade for the project will be based upon the artifacts and presentation and will contribute 35% of each studentsfinal grade (10% specification, 10% design, 10% test plan, 5% final presentation).
Essay
A final essay (approximately a take-home final exam) will apply all of the concepts and skills developed during the
course to analysis of a real-time system in all dimensions. It will contribute 10% to each student's final grade (10%for the single essay).
Carnegie Mellon Introduction to Real-time Software and Systems 3
-
8/2/2019 17619-f09-rts
4/7
Schedule
Date Unit Lecture Reading Assignment
1 8/25 Introduction Course Introduction and Overview A1 Out2 8/27 Real-Time Characteristics and
Definitions
[Lapante04]Ch.1
[Halang92]
[Stankovic88]
3 9/1 Systems Real-Time Hardware
Processors
Memory
Transducers
[Lapante04]Ch.2 A1 Due
A2 Out
4 9/3 Operating Systems and Tasks
Kernels
Tasks
Priorities
[Lapante04]Ch.3
[Buttazzo04]Ch.9
5 9/8 Scheduling Utilization and Response Time
Task Utilization Factor and Test
Completion Time Theorem Response Time Test
[Buttazzo04]Ch.2
[Lui73]
A2 Due
A3 Out
6 9/10 Periodic Task Scheduling
Utilization Bound
Rate Monotonic Scheduling
Earliest Deadline First
[Buttazzo04]Ch.4
[Sha91]
7 9/15 Synchronization and Blocking
Semaphones
Priority Inversion
Priority Ceiling Protocol
[Buttazzo04]Ch.7 A3 Due
A4 Out
Project Topic Out
8 9/17 Resource Access
Stack Resource Protocol
Other Resource Strategies
[Buttazzo04]Ch.7
[Johnson95]
9 9/22 Rate Monotonic Analysis
Sonar Case Study
[Fowler93]
[Klein93]
10 9/24 No Lecture - G-20 Summit
11 9/29 Aperiodic Task Scheduling
Asynchronous Interrupts
Scheduling Algorithms
[Buttazzo04]Ch.3 A4 Due
A5 Out
12 10/1 Priority Servers
Fixed Priority Servers
Dynamic Priority Servers
[Buttazzo04]Ch.5
[88Sha]
Project Topic Due
13 10/6 Priority Servers
Dynamic Priority Servers
Lessons
[Buttazzo04]Ch.6 A5 Due
A6 Out
14 10/8 Systems Development
Systems Perspective
Lifecycle Requirements, Architecture and
Design
[Kossiakoff03]Ch.3
Project Specification
Out
15 10/13 Development
Process
Software Attributes
Properties and Attributes
Principles
Requirements Elicitation
[Lapante04]Ch.4-5 A6 Due
A7 Out
Carnegie Mellon Introduction to Real-Time Software and Systems 4
-
8/2/2019 17619-f09-rts
5/7
Date Unit Lecture Reading Assignment
16 10/15 Requirements Analysis
Structured Analysis
[Yourdon89]
17 10/20 Modeling
Use Cases
Sequence Diagrams
[Douglass04]Ch.3 A7 Due
A8 Out
18 10/22 Modeling Use Cases
Sequence Diagrams
[Douglass04]Ch.3
19 10/27 Modeling
Sequence Diagrams
Timing Diagrams
Statecharts
[Douglass04]Ch.5 A8 Due
A9 Out
Project Design Out
20 10/29 Design Architecture
Definitions and Views
Architectural Properties
Design Patterns
[Douglass03]Ch.2 &
Ch. 5-6
Project
Specification
Due
21 11/3 Patterns
Concurrency
Distribution
Safety and Reliability
[Douglass03]Ch.7-8 A9 Due
A10 Out
22 11/5 Patterns
Deployment
Case Study
[Gomaa00]Ch.18
23 11/10 Performance Analysis
Modeling Methods
[Laplante04]Ch.7
[Cooling03]Ch.14
A10 Due
A11 Out
Project V&V Out
24 11/12 Verification &
Validation
Verification and Validation
Process and Methods
Completeness and Stability
[Collofello88] Project Design Due
25 11/17 Test Procedures
Defect Detection
Complexity Analysis
Inspections and Procedures
[Laplante04]Ch.8
[Cooling03]Ch.11
A11 Due
26 11/19 Safety and Reliability
Fault Tolerance
Failure Modes and Effects Analysis
[Douglass03]Ch.9
[Laplante04]Ch.8.3
27 11/24 Real-Time Languages Project V&V Due
11/26 No Lecture - Thanksgiving
28 12/1 Real-Time Operating Systems
29 12/3 Course Review Final Essay Out
Carnegie Mellon Introduction to Real-Time Software and Systems 5
-
8/2/2019 17619-f09-rts
6/7
Bibliography
[Cooling03] Cooling, J., Software Engineering for Real-Time Systems, Addison-Wesley, 2003.
[Collofello 88] Collofello, James S. Introduction to Software Verification and Validation (SEI-CM-13-1.1).Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1988.
[Douglass99] Douglass, B.,Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and
Patterns, Addison-Wesley, 1999.
[Douglass03] Douglass, B.,Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems ,Addison-Wesley, 2003.
[Douglass04] Douglass, B.,Real-Time UML: Advances in the UML for Real-Time Systems, Addison-Wesley, 2004.
[Fowler93] Priscilla Fowler, Linda Levine; Technology Transition Push: A Case Study of Rate Monotonic Analysis(Part 1); SEI Technical ReportCMU/SEI-93-TR-29, December 1993
[GAO92] GAO Report, IMTEC-92-26 - Patriot Missile Software Problem, February, 1992. http://www.fas.org/spp/starwars/gao/im92026.htm
[Garlan94] Garlan, D., Shaw, M, An Introduction to Software Architecture, CMU/SEI-94-TR-21, CarnegieMellon University, January 1994.
[Gomaa00] Gomaa, H.,Designing Concurrent, Distributed, and Real-Time Applications with UML, Addison-Wesley, 2000.
[Fowler93] Priscilla Fowler, Linda Levine; Technology Transition Push: A Case Study of Rate Monotonic Analysis(Part 1); SEI Technical ReportCMU/SEI-93-TR-29, December 1993
[Klein93] Mark Klein, Thomas Ralya, Bill Pollak, Ray Obenza, Michael Gonzlez Harbour; A PractionersHandbook for Real-Time Analysis: Guide to Rate Monotonic Analysis for Real-Time SystemsKluwer AcademicPublishers, 1993
[Halang92] Halang, W., Real-Time Systems: Another Perspective, Journal of Systems and Software, ElsevierScience Inc., April 1992, also published in Real-Time Systems: Abstractions, Languages and Design Methodologies,edited by K. Kavi, IEEE Computer Society Press, 1992
[Humphrey89] Humphrey, W.,Managing the Software Process. Reading, MA: Addison-Wesley, 1989.
[Johnson95] Johnson, Theodore. A Performance Comparison of Fast Distributed Mutual Exclusion Algorithms 9thInternational Parallel Processing Symposium (April 1995).
[Kossiakoff03] Kossiakoff, A., Sweet, W., Systems Engineering: Principles and Practice, Wiley-Interscience, 2003.
[Lapante03] Laplante, P.,Real-Time Systems Design and Analysis (3rd Edition), IEEE/Wiley Interscience, 2004.
[Leveson93] Leveson, N, Turner, C. Investigation of the Therac-25 Accidents. IEEE Computer, Vol. 26, No. 7(July 1993): 18-41. http://courses.cs.vt.edu/~cs3604/lib/Therac_25/Therac_1.html
[Lui73] Liu, C., Layland. J. Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment.Journal of the Assoc. for Computing Machinery, Vol. 20, No. 1 (1973): pp. 46-61.
[Shaw98] Shaw, M., Moving from Qualities to Architecture: Architectural Style Software Architecture in Practice,Chapter 5, Editors: Len Bass, Paul Clements, Rick Kazman, Addison-Wesley, 1998.
[Place93] Place, P., Kang, K., Safety-Critical Software: Status Report and Annotated Bibliography. SEI Technical
Report CMU/SEI-92-TR-5. Carnegie Mellon University, 1995.[Rakitin01] Rakitin, Steven, Software Verification and Validation for Practitioners and Managers, Boston, MA:Artech House 2001.
[Sha88] Sha, L., Rajkumar, R., Lehoczky, J., Ramamritham, K., Mode Change Protocols for Priority-DrivenPreemptive Scheduling, Software Engineering Institute Technical Report, CMU/SEI-88-TR-034, 1988.
[Sha91] Sha, Lui, Mark H. Klein and John B. Goodenough, Rate Monotonic Analysis for Real-Time Systems,Carnegie Mellon Introduction to Real-Time Software and Systems 6
-
8/2/2019 17619-f09-rts
7/7
Software Engineering Institute Technical Report, CMU/SEI-91-TR-6, March 1991.
[SIAM96] Inquiry Board Traces Ariane 5 Failure to Overflow Error, SIAM News, Vol. 29, No. 8. (October 1996).http://www.math.ufl.edu/~cws/3114/ariane-siam.html
[Stankovic88] Stankovic, J., Misconceptions About Real-Time Computing: A Serious Problem for Next-GenerationSystems, IEEE Computer, Vol. 21, No. 10, October 1988.
[Suri92] Suri, D., Considerations for testing of real time spacecraft software, American Institute of Aeronauticsand Astronautics (AIAA 92- 0998), February 1992.
[OMG03] Object Modeling Group (OMG), Unified Modeling Language: Superstructure, Version 2.0. 2003.www.omg.org
[Yourdon89] Yourdon, E.,Modern Structured Analysis , Prentice Hall, 1989
Carnegie Mellon Introduction to Real-Time Software and Systems 7