Figure List
About the Author
Foreword by David Harel
Preface to the Second Edition
Preface to the First Edition
Acknowledgments
Chapter 1:Introduction to Real-Time Systems and Objects
1.1 What Is Special About Real-Time Systems?
1.2 Dealing with Time
1.3 Model-Based Development
1.3.1 Development Activities of the ROPES Process
1.4 Advantages of Objects
1.5 Object Orientation with UML
1.5.1 Objects
1.5.2 Attributes
1.5.3 Behavior
1.5.4 Messaging
1.5.5 Concurrency
1.5.6 Classes
1.5.7 Relations Among Classes and Objects
1.6 UML Diagrams and Notation
1.7 A Look Ahead
1.8 References
Chapter 2:Requirements Analysis of Real-Time Systems
2.1 Use Cases
2.1.1 Actors
2.1.2 Requirements
2.1.3 Use Case Relations
2.1.4 Using Use Cases
2.2 Filling Out the Details of the Use Cases
2.2.1 Scenarios
2.2.2 Sequence Diagrams
2.2.3 Message Properties
2.2.4 Capturing Time and Timeliness
2.2.5 Statecharts and Use Cases
2.3 Identifying Use Cases
2.4 Looking Ahead
2.5 References
Chapter 3:Analysis:Defining the Object Structure
3.1 The Object Discovery Process
3.2 Connecting the Object Model with the use Case Model
3.3 Key Strategies for Object Identification
3.3.1 Underline the Noum Strategy
3.3.2 Identify the Casual Objects
3.3.3 Identify Services(Passive Contributors)
3.3.4 Identify Real-World Items
3.3.5 Identify Physical Devices
3.3.6 Identify Key Concepts
3.3.7 Identify Transactions
3.3.8 Identify Persistent Information
3.3.9 Identify Visual Elements
3.3.10 Identify Control Elements
3.3.11 Apply Scenarios
3.4 Identify Object Associations
3.5 Object Attributes
3.6 Discovering Candidate Classes
3.7 Class Diagrams
3.7.1 Elevator Class Diagram Example
3.8 Defining Class Relationships
3.8.1 Associations
3.8.2 Aggregation and Composition
3.8.3 RTOS Example
3.8.4 Associative Classes
3.8.5 Generalization Relationships
3.9 Looking Ahead
3.10 References
Chapter 4:Analysis:Defining Object Behavior
4.1 Object Behavior
4.1.1 Simple Behavior
4.1.2 State Behavior
4.1.3 Continuous Behaviior
4.2 Defining Object State Behavior
4.3 UML Statecharts
4.3.1 Basic Statecharts
4.3.2 And-States
4.3.3 Submachines
4.3.4 Inherited State Models
4.3.5 Cardiac Pacemaker Example
4.4 The Role of Scenarios in the Definition of Behavior
4.4.1 Timing Diagrams
4.4.2 Sequence Diagrams
4.4.3 Event Hierarchies
4.5 Defining Operations
4.5.1 Types of Operations
4.5.2 Strategies for Defining Operations
4.6 Looking Ahead
4.7 References
Chapter 5:Architectural Design
5.1 Overview of Design
5.2 What Is Architectural Design?
5.2.1 Physical Architecture Issues
5.2.2 Software Architecutre Issues
5.3 Representing Physical Architecture in UML
5.4 Architectural Patterns
5.4.1 Master-Slave Pattern
5.4.2 Microkernel Pattern
5.4.3 Proxy Pattern
5.4.4 Broker Pattern
5.5 Concurrency Design
5.6 Representing Threads
5.6.1 System Task Diagram
5.6.2 Concurrent State Diagrams
5.7 Defining Threads
5.7.1 Identifying Threads
5.8 Assigning Objects to Threads
5.9 Defining Thread Rendezvous
5.9.1 Sharing Resources
5.9.2 Assigning Priorities
5.10 Looking Ahead
5.11 References
Chapter 6:Mechanistic Design
6.1 What Is Mechanistic Design?
6.2 Mechanistic Design Patterns
6.2.1 Simple Patterns
6.2.2 Reuse Patterns
6.3 Looking Ahead
6.4 References
Chapter 7:Detailed Design
7.1 What Is Detailed Design?
7.2 Data Structure
7.2.1 Data Collection Structure
7.3 Associations
7.4 Operations
7.5 Visibility
7.6 Algorithms
7.7 Exceptions
7.8 Summary
7.9 References
Appendix A:Notational Summary
Appendix B:The Future of the UML for Real-Time
Index