You are previewing Real Time UML: Advances in The UML for Real-Time Systems, Third Edition.
O'Reilly logo
Real Time UML: Advances in The UML for Real-Time Systems, Third Edition

Book Description

Praise for Real Time UML, Third Edition

“I found Real Time UML, Third Edition, to provide an informative and practical application of UML 2.0 to the development of real-time systems, and well worth the read by systems and software engineers. It is written in plain English and provides the right balance of depth and breadth.”

         —Sanford Friedenthal, Deputy, Corporate Systems Engineering, Lockheed Martin Corporation; Chair: OMG Systems Engineering, Domain Special Interest Group

“Douglass has again made highly technical material accessible to everyone. This book is an excellent introduction to the new UML 2.0, and if you want to learn what modeling for real-time environments is like, this is the book to read. His witty, conversational style should be a model for all authors of technical material.”

         —Gary K. Evans, Founder and Object Evangelist, Evanetics, Inc. (www.evanetics.com)

“Douglass has been a co-chair of the OMG’s group interested in quality of service issues and, therefore, has valuable insights into the usefulness of these emerging technologies. His clear presentation of this information helps those applying these advanced technologies to extract the most benefit for their organizations and products, not only for the intended real-time embedded product, but also for products whose quality of performance, while not critical, is nevertheless of interest.”

         —Thérèse M. Smith, President and CEO, Air Traffic Software Architecture, Inc. (USA and Canada)

“The author presents an excellent overview of UML in the real-time space with plenty of colorful examples. This book is an excellent teaching tool for a newcomer or a reference for an expert!”

         —Soma Chatterjee, Senior Product Manager, I-Logix

The increasing complexity of embedded and real-time systems requires a more premeditated and sophisticated design approach for successful implementation. The object-based Unified Modeling Language (UML) can describe the structural and behavioral aspects critical to real-time systems and has come to the fore as an outstanding medium for effective design.

Like its best-selling predecessors, Real Time UML, Third Edition, provides an overview of the essentials of real-time systems and an introduction to UML that focuses on the use of the ever-evolving standard in design and development. This accessible book examines requirements analysis, the definition of object structure and behavior, architectural and mechanistic design, and more detailed designs that encompass data structure, operations, and exceptions. Numerous figures help illustrate UML design techniques, and detailed, real-world examples show the application of those techniques to embedded systems.

This significantly revised edition features the new UML 2.0 standard, which dramatically improves the clarity of the UML for capturing architectures and improving its scalability. Real Time UML, Third Edition, also introduces the UML Profile for Schedulability, Performance, and Time (STP Profile). The STP Profile provides a standardized way to capture schedulability and performance constraints of systems. This allows analysis tools to read and analyze UML models.

Key topic coverage includes:

  • The Rapid Object-Oriented Process for Embedded Systems (ROPES)

  • Concurrency and resource modeling with the Real-Time (SPT) UML Profile

  • Tapping action semantics for greater executability

  • Scenario modeling with timing diagrams

  • Key strategies for object identification

  • Defining object state behavior

  • Representing and identifying threads

  • Mechanistic design patterns

  • Representing Command, Control, Communications, Computers, Intelligence, and Reconnaissance (C4ISR) Architectures with the UML



  • Table of Contents

    1. Copyright
      1. Dedication
    2. Praise for Real Time UML, Third Edition
    3. The Addison-Wesley Object Technology Series
    4. The Component Software Series
    5. Figure List
    6. About the Author
    7. Foreword to the Third Edition
    8. Foreword to the Previous Editions
    9. Preface to the Third Edition
      1. Audience
      2. Goals
    10. Preface to the Second Edition
      1. Audience
      2. Goals
    11. Preface to the First Edition
      1. Goals
      2. Audience
      3. Organization
      4. Examples
    12. Acknowledgments
    13. 1. Introduction to the World of Real-Time and Embedded Systems
      1. 1.1. What Is Special about Real-Time Systems?
      2. 1.2. Time, Performance, and Quality of Service
        1. 1.2.1. Modeling Actions and Concurrency
        2. 1.2.2. Modeling Resources
        3. 1.2.3. Modeling Time
        4. 1.2.4. Modeling Schedulability
        5. 1.2.5. Modeling Performance
      3. 1.3. Systems Engineering vs. Software Engineering
      4. 1.4. What Do We Mean by Architecture?
      5. 1.5. The Rapid Object-Oriented Process for Embedded Systems (ROPES) Process
        1. 1.5.1. Model-Driven Development (MDD)
        2. 1.5.2. The ROPES Spiral in More Detail
      6. 1.6. MDA and Platform-Independent Models
      7. 1.7. Scheduling Model-Based Projects
        1. 1.7.1. Why Schedule?
        2. 1.7.2. Estimation
        3. 1.7.3. BERT and ERNIE
          1. 1.7.3.1. Constructing Estimates: The BERT Approach
          2. 1.7.3.2. Improving Estimation Capability: The ERNIE Method
        4. 1.7.4. Scheduling
      8. 1.8. Model Organization Principles
        1. 1.8.1. Why Model Organization?
        2. 1.8.2. Specific Model Organization Patterns
      9. 1.9. Working with Model-Based Projects
      10. 1.10. Looking Ahead
      11. 1.11. Exercises
      12. 1.12. References
    14. 2. Object Orientation with UML 2.0—Structural Aspects
      1. 2.1. Object Orientation with UML
      2. 2.2. Small Things: Objects, Classes, and Interfaces
        1. 2.2.1. Objects
        2. 2.2.2. Classes
          1. 2.2.2.1. Attributes
          2. 2.2.2.2. Methods and Operations
        3. 2.2.3. Notation
        4. 2.2.4. Interfaces
        5. 2.2.5. Messaging
      3. 2.3. Relations
        1. 2.3.1. Associations
        2. 2.3.2. Aggregation
        3. 2.3.3. Composition
          1. 2.3.3.1. Stereotypes
        4. 2.3.4. Generalization
        5. 2.3.5. Dependency
        6. 2.3.6. Structural Diagrams
        7. 2.3.7. Mapping Objects to Code
      4. 2.4. Big Things: Packages, Components, and Subsystems
        1. 2.4.1. Model Organization: Packages
        2. 2.4.2. Structured Classes: Composites, Parts, Ports, and Connectors
          1. 2.4.2.1. Ports: Connecting Outside the Box
        3. 2.4.3. Components
        4. 2.4.4. Subsystems
        5. 2.4.5. Deployments: Nodes and Nonesuch
        6. 2.4.6. So, Nodes or Classes?
        7. 2.4.7. Architectural Hierarchy
      5. 2.5. Advanced: UML Metamodel of Structural Elements (for the Advanced Modeler)
      6. 2.6. Additional Notations and Semantics
      7. 2.7. Looking Ahead
      8. 2.8. Exercises
      9. 2.9. References
    15. 3. Object Orientation with UML 2.0—Dynamic Aspects
      1. 3.1. Behavior and the UML
      2. 3.2. Types of Behavior
        1. 3.2.1. Simple Behavior
        2. 3.2.2. State Behavior
        3. 3.2.3. Continuous Behavior
      3. 3.3. Behavior Primitives: Actions and Activities
      4. 3.4. Behavior and the Single Object
        1. 3.4.1. Basic Statechart Elements
          1. 3.4.1.1. State Features
          2. 3.4.1.2. Transitions
          3. 3.4.1.3. Events
          4. 3.4.1.4. Guards
          5. 3.4.1.5. Action Execution Order
        2. 3.4.2. And-States
        3. 3.4.3. Pseudostates
          1. 3.4.3.1. Initial Pseudostate
          2. 3.4.3.2. Branches and Junctions
          3. 3.4.3.3. Choice Points
          4. 3.4.3.4. History
          5. 3.4.3.5. Forks and Joins
          6. 3.4.3.6. Submachines, Entry, and Exit Points
        4. 3.4.4. Inherited State Models
        5. 3.4.5. Ill-Formed Statecharts
        6. 3.4.6. Cardiac Pacemaker Example
        7. 3.4.7. Protocol State Machines
        8. 3.4.8. Activity Diagrams
      5. 3.5. Interactions
        1. 3.5.1. Sequence Diagrams
          1. 3.5.1.1. Partial Ordering
          2. 3.5.1.2. Interaction Operators
            1. 3.5.1.2.1. Alternatives, Branches, Options, and Loops
            2. 3.5.1.2.2. Parallel and Critical Regions
            3. 3.5.1.2.3. Assert, Consider, Ignore?
          3. 3.5.1.3. Sequence Diagram Decomposition
        2. 3.5.2. Timing Diagrams
      6. 3.6. Summary
      7. 3.7. Exercises
      8. 3.8. References
    16. 4. UML Profile for Schedulability, Performance, and Time
      1. 4.1. UML Profiles
        1. 4.1.1. Stereotypes
        2. 4.1.2. Tagged Values
        3. 4.1.3. Profiles
      2. 4.2. “RT UML” Profile
        1. 4.2.1. General Resource Model Subprofile
        2. 4.2.2. Time Modeling Subprofile
        3. 4.2.3. Concurrency Modeling Subprofile
        4. 4.2.4. Schedulability Modeling Subprofile
        5. 4.2.5. Performance Modeling Subprofile
        6. 4.2.6. Real-Time CORBA Subprofile
      3. 4.3. Looking Ahead
      4. 4.4. Exercises
      5. 4.5. References
    17. 5. Requirements Analysis of Real-Time Systems
      1. 5.1. Requirements
      2. 5.2. Use Cases
        1. 5.2.1. Actors
        2. 5.2.2. Use Cases and Text
        3. 5.2.3. Use Case Relations
        4. 5.2.4. Using Use Cases
        5. 5.2.5. Identifying Use Cases
      3. 5.3. Detailing the Use Cases
        1. 5.3.1. Scenarios for Use Cases
          1. 5.3.1.1. Sequence Diagrams for Requirements Capture
          2. 5.3.1.2. Capturing QoS Requirements on Sequence Diagrams
        2. 5.3.2. Statecharts
        3. 5.3.3. Activity Diagrams
        4. 5.3.4. Timing Diagrams
      4. 5.4. Looking Ahead
      5. 5.5. Exercises
      6. 5.6. References
    18. 6. Analysis: Object Domain Analysis
      1. 6.1. The Object Discovery Process
      2. 6.2. Connecting the Object Model with the Use Case Model
      3. 6.3. Key Strategies for Object Identification
        1. 6.3.1. Underline the Noun Strategy
        2. 6.3.2. Identify the Causal Objects
        3. 6.3.3. Identify Services (Passive Contributors)
        4. 6.3.4. Identify Messages and Information Flows
        5. 6.3.5. Identify Real-World Items
        6. 6.3.6. Identify Physical Devices
        7. 6.3.7. Identify Key Concepts
        8. 6.3.8. Identify Transactions
        9. 6.3.9. Identify Persistent Information
        10. 6.3.10. Identify Visual Elements
        11. 6.3.11. Identify Control Elements
        12. 6.3.12. Apply Scenarios
      4. 6.4. Identify Object Associations
      5. 6.5. Object Attributes
      6. 6.6. Discovering Candidate Classes
      7. 6.7. Class Diagrams
        1. 6.7.1. Associative Classes
        2. 6.7.2. Generalization Relationships
          1. 6.7.2.1. Positioning Features in the Inheritance Tree
      8. 6.8. Looking Ahead
      9. 6.9. Exercises
      10. 6.10. References
    19. 7. Analysis: Defining Object Behavior
      1. 7.1. Object Behavior
        1. 7.1.1. Simple Behavior
        2. 7.1.2. State Behavior
        3. 7.1.3. Continuous Behavior
      2. 7.2. Defining Object State Behavior
        1. 7.2.1. Cardiac Pacemaker Example
          1. 7.2.1.1. How Communications Work
          2. 7.2.1.2. How Pacing Works
        2. 7.2.2. Calculator Example
          1. 7.2.2.1. Calculator Class
          2. 7.2.2.2. CharParser Class
          3. 7.2.2.3. Tokenizer Class
          4. 7.2.2.4. Evaluator Class
          5. 7.2.2.5. NumberStack and OperatorStack Classes
          6. 7.2.2.6. Stimulator Class
        3. 7.2.3. Event Hierarchies
      3. 7.3. Interactions
        1. 7.3.1. Sequence Diagrams
          1. 7.3.1.1. CardioNada Scenarios Example
          2. 7.3.1.2. Calculator Scenario Example
      4. 7.4. Defining Operations
        1. 7.4.1. Types of Operations
        2. 7.4.2. Strategies for Defining Operations
      5. 7.5. Looking Ahead
      6. 7.6. Exercises
      7. 7.7. References
    20. 8. Architectural Design
      1. 8.1. Overview of Design
      2. 8.2. What Is Architectural Design?
        1. 8.2.1. Logical Architecture
        2. 8.2.2. Physical Architecture
        3. 8.2.3. Subsystem and Component View
        4. 8.2.4. Concurrency and Resource View
        5. 8.2.5. Distribution View
        6. 8.2.6. Safety and Reliability View
        7. 8.2.7. Deployment View
        8. 8.2.8. Physical Architecture Issues
        9. 8.2.9. Software Architecture Issues
      3. 8.3. Software Meets Hardware: Deployment Architecture in UML
      4. 8.4. Concurrency and Resource Design
        1. 8.4.1. Representing Threads
        2. 8.4.2. System Task Diagram
        3. 8.4.3. Concurrent State Diagrams
        4. 8.4.4. Defining Threads
        5. 8.4.5. Identifying Threads
        6. 8.4.6. Assigning Objects to Threads
        7. 8.4.7. Defining Thread Rendezvous
        8. 8.4.8. Sharing Resources
        9. 8.4.9. Assigning Priorities
      5. 8.5. Looking Ahead
      6. 8.6. Exercises
      7. 8.7. References
    21. 9. Mechanistic Design
      1. 9.1. What Is Mechanistic Design?
      2. 9.2. Mechanistic Design Patterns
      3. 9.3. The Observer Pattern
        1. 9.3.1. Abstract
        2. 9.3.2. Problem
        3. 9.3.3. Pattern Structure
        4. 9.3.4. Collaboration Roles
        5. 9.3.5. Consequences
        6. 9.3.6. Implementation Strategies
        7. 9.3.7. Sample Model
      4. 9.4. The Proxy Pattern
        1. 9.4.1. Abstract
        2. 9.4.2. Problem
        3. 9.4.3. Pattern Structure
        4. 9.4.4. Collaboration Roles
        5. 9.4.5. Consequences
        6. 9.4.6. Implementation Strategies
        7. 9.4.7. Sample Model
      5. 9.5. Reliable Transaction Pattern
        1. 9.5.1. Abstract
        2. 9.5.2. Problem
        3. 9.5.3. Pattern Structure
        4. 9.5.4. Collaboration Roles
        5. 9.5.5. Consequences
        6. 9.5.6. Implementation Strategies
        7. 9.5.7. Sample Model
      6. 9.6. Smart Pointer Pattern
        1. 9.6.1. Abstract
        2. 9.6.2. Problem
        3. 9.6.3. Pattern Structure
        4. 9.6.4. Collaboration Roles
        5. 9.6.5. Consequences
        6. 9.6.6. Implementation Strategies
        7. 9.6.7. Related Patterns
        8. 9.6.8. Sample Model
      7. 9.7. Guarded Call Pattern
        1. 9.7.1. Abstract
        2. 9.7.2. Problem
        3. 9.7.3. Pattern Structure
        4. 9.7.4. Collaboration Roles
        5. 9.7.5. Consequences
        6. 9.7.6. Implementation Strategies
        7. 9.7.7. Sample Model
      8. 9.8. Container Pattern
        1. 9.8.1. Abstract
        2. 9.8.2. Problem
        3. 9.8.3. Pattern Structure
        4. 9.8.4. Collaboration Roles
        5. 9.8.5. Consequences
        6. 9.8.6. Implementation Strategies
        7. 9.8.7. Sample Model
      9. 9.9. The Rendezvous Pattern
        1. 9.9.1. Abstract
        2. 9.9.2. Problem
        3. 9.9.3. Pattern Structure
        4. 9.9.4. Collaboration Roles
        5. 9.9.5. Consequences
        6. 9.9.6. Implementation Strategies
        7. 9.9.7. Related Patterns
        8. 9.9.8. Sample Model
      10. 9.10. Looking Ahead
      11. 9.11. Exercises
      12. 9.12. References
    22. 10. Detailed Design
      1. 10.1. What Is Detailed Design?
      2. 10.2. Data Structure
      3. 10.3. Associations
      4. 10.4. Operations
      5. 10.5. Visibility
      6. 10.6. Algorithms
      7. 10.7. Exceptions
      8. 10.8. Summary
      9. 10.9. Exercises
      10. 10.10. References
    23. 11. Special Topic: C4ISR Architecture and the UML
      1. 11.1. Introduction
      2. 11.2. What Is C4ISR?
      3. 11.3. Required Products of C4ISR
        1. 11.3.1. AV-1 Overview and Summary Information
        2. 11.3.2. The AV-2 Integrated Dictionary
        3. 11.3.3. OV-1 High-Level Operational Concept Graphic
        4. 11.3.4. OV-2 Operational Node Connectivity Description
        5. 11.3.5. OV-3 Operational Information Exchange Matrix
        6. 11.3.6. SV-1 System Interface Description
        7. 11.3.7. TV-1 Technical Architecture Profile
      4. 11.4. Supporting Products
        1. 11.4.1. OV-4 Command Relationships Chart
        2. 11.4.2. OV-5 Operational Activity Model
        3. 11.4.3. OV-6a Operational Rules Model, SV-10a Systems Rules Model
        4. 11.4.4. OV-6b Operational State Transition Description, SV-10b Systems State Transition Description
        5. 11.4.5. OV-6c Operational Event-Trace Description, SV-10c Systems Event Trace Description
        6. 11.4.6. OV-7 Logical Data Model
        7. 11.4.7. SV-3 Systems-Systems Matrix
        8. 11.4.8. SV-4 Systems Functionality Description
        9. 11.4.9. SV-5 Operational Activity to Systems Function Traceability Matrix
        10. 11.4.10. SV-6 Systems Data Exchange Matrix
        11. 11.4.11. SV-7 Systems Performance Parameters Matrix
        12. 11.4.12. SV-8 Systems Evolution Description
        13. 11.4.13. SV-9 Systems Technology Forecast
        14. 11.4.14. SV-11 Physical Schema
      5. 11.5. Summary
      6. 11.6. Acknowledgments
      7. 11.7. References
    24. Notational Summary