17619-f09-rts

Upload: bkitnhai

Post on 05-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 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