|
|
xvii | |
About the Author |
|
xxv | |
Foreword |
|
xxvii | |
Preface |
|
xxix | |
Acknowledgments |
|
xxxiii | |
PART I: THE BASICS |
|
1 | (200) |
|
Introduction to Objects and the Unified Modeling Language |
|
|
3 | (54) |
|
|
4 | (6) |
|
|
10 | (1) |
|
Object Orientation with the UML |
|
|
11 | (15) |
|
|
12 | (8) |
|
|
20 | (1) |
|
|
20 | (2) |
|
|
22 | (2) |
|
|
24 | (1) |
|
|
24 | (1) |
|
Objects as Autonomous Machines |
|
|
25 | (1) |
|
|
26 | (12) |
|
Relations among Classes and Objects |
|
|
30 | (8) |
|
|
38 | (2) |
|
|
40 | (2) |
|
|
42 | (2) |
|
Things Common to Diagrams |
|
|
44 | (8) |
|
|
44 | (1) |
|
|
45 | (1) |
|
|
45 | (1) |
|
|
46 | (6) |
|
|
52 | (2) |
|
|
54 | (1) |
|
|
54 | (1) |
|
|
55 | (2) |
|
Basic Concepts of Real-Time Systems |
|
|
57 | (40) |
|
|
58 | (1) |
|
|
58 | (2) |
|
|
60 | (4) |
|
|
64 | (3) |
|
|
67 | (6) |
|
Scheduling Concurrent Threads |
|
|
67 | (1) |
|
|
68 | (2) |
|
Thread Rendezvous Patterns |
|
|
70 | (1) |
|
|
71 | (2) |
|
|
73 | (2) |
|
|
73 | (2) |
|
Correctness and Robustness |
|
|
75 | (6) |
|
|
75 | (2) |
|
|
77 | (2) |
|
|
79 | (2) |
|
|
81 | (1) |
|
Fault Tolerance and Safety |
|
|
81 | (1) |
|
Dealing with Resource-Limited Target Environments |
|
|
82 | (1) |
|
Low-Level Hardware Interfacing |
|
|
83 | (1) |
|
Real-Time Operating Systems |
|
|
83 | (12) |
|
|
95 | (1) |
|
|
95 | (1) |
|
|
95 | (1) |
|
|
96 | (1) |
|
Basic Concepts of Safety-Critical Systems |
|
|
97 | (54) |
|
|
98 | (2) |
|
|
98 | (1) |
|
|
98 | (2) |
|
|
100 | (3) |
|
|
103 | (11) |
|
|
104 | (1) |
|
Random Faults vs. Systematic Faults |
|
|
104 | (1) |
|
|
105 | (2) |
|
|
107 | (3) |
|
|
110 | (1) |
|
|
110 | (1) |
|
|
111 | (3) |
|
|
114 | (11) |
|
Single-Channel Protected Design (SCPD) |
|
|
114 | (3) |
|
Multi-Channel Voting Pattern |
|
|
117 | (1) |
|
Homogeneous Redundancy Pattern |
|
|
117 | (2) |
|
Diverse Redundance Pattern |
|
|
119 | (1) |
|
|
119 | (3) |
|
|
122 | (1) |
|
|
123 | (2) |
|
|
125 | (20) |
|
Step 1: Identify the Hazards |
|
|
125 | (6) |
|
Step 2: Determine the Risks |
|
|
131 | (2) |
|
Step 3: Define the Safety Measures |
|
|
133 | (1) |
|
Step 4: Create Safe Requirements |
|
|
134 | (1) |
|
Step 5: Create Safe Designs |
|
|
135 | (1) |
|
Step 6: Implementing Safety |
|
|
136 | (5) |
|
Step 7: Assure Safety Process |
|
|
141 | (2) |
|
|
143 | (2) |
|
A Few Safety-Related Standards |
|
|
145 | (2) |
|
Some Important Safety Standards |
|
|
146 | (1) |
|
|
147 | (1) |
|
|
148 | (1) |
|
|
148 | (2) |
|
|
150 | (1) |
|
Rapid Object-Oriented Process for Embedded Systems |
|
|
151 | (50) |
|
|
152 | (1) |
|
|
153 | (4) |
|
|
153 | (3) |
|
|
156 | (1) |
|
|
157 | (1) |
|
Development-Task Sequencing |
|
|
157 | (5) |
|
|
158 | (1) |
|
|
158 | (2) |
|
|
160 | (2) |
|
Scheduling and Estimation |
|
|
162 | (5) |
|
Advantages of Accurate Schedules |
|
|
164 | (1) |
|
Difficulties of Accurate Scheduling |
|
|
165 | (2) |
|
|
167 | (4) |
|
|
171 | (14) |
|
|
171 | (5) |
|
|
176 | (4) |
|
|
180 | (5) |
|
|
185 | (7) |
|
|
188 | (2) |
|
|
190 | (1) |
|
|
191 | (1) |
|
|
192 | (3) |
|
|
192 | (2) |
|
|
194 | (1) |
|
|
195 | (2) |
|
|
195 | (1) |
|
|
196 | (1) |
|
|
197 | (1) |
|
|
198 | (1) |
|
|
198 | (1) |
|
|
199 | (2) |
PART II: ANALYSIS |
|
201 | (162) |
|
Requirements Analysis of Real-Time Systems |
|
|
203 | (36) |
|
|
204 | (1) |
|
|
204 | (7) |
|
|
204 | (2) |
|
|
206 | (2) |
|
Scenarios, Protocols, and State Machines |
|
|
208 | (3) |
|
|
211 | (7) |
|
|
212 | (1) |
|
Use Case Example: Air Traffic Control System |
|
|
213 | (5) |
|
|
218 | (3) |
|
|
219 | (2) |
|
Specifying External Messages |
|
|
221 | (4) |
|
|
222 | (1) |
|
|
223 | (2) |
|
Detailing Use Case Behavior |
|
|
225 | (7) |
|
Informal Textual Description |
|
|
226 | (1) |
|
|
227 | (1) |
|
|
228 | (3) |
|
Statecharts for Defining Use Case Behavior |
|
|
231 | (1) |
|
|
232 | (1) |
|
|
233 | (1) |
|
Heuristics for Good Requirements Analysis Diagrams |
|
|
234 | (3) |
|
Use Case Diagram Heuristics |
|
|
235 | (1) |
|
|
235 | (1) |
|
Use Case Sequence Diagram Heuristics |
|
|
236 | (1) |
|
|
237 | (1) |
|
|
237 | (1) |
|
|
237 | (1) |
|
|
238 | (1) |
|
Structural Object Analysis |
|
|
239 | (52) |
|
|
240 | (1) |
|
|
240 | (2) |
|
Key Strategies for Object Identification |
|
|
242 | (20) |
|
|
245 | (4) |
|
|
249 | (1) |
|
Identify Coherent Services |
|
|
250 | (1) |
|
Identify Real-World Items |
|
|
250 | (1) |
|
Identify Physical Devices |
|
|
251 | (1) |
|
Identify Essential Abstractions of Domains |
|
|
252 | (2) |
|
|
254 | (1) |
|
Identify Persistent Information |
|
|
255 | (1) |
|
|
256 | (1) |
|
Identify Control Elements |
|
|
256 | (3) |
|
Execute Scenarios on the Object Model |
|
|
259 | (3) |
|
Reification of Objects into Classes |
|
|
262 | (2) |
|
Identify Object Associations |
|
|
264 | (5) |
|
|
268 | (1) |
|
|
269 | (1) |
|
Aggregation and Composition |
|
|
269 | (1) |
|
|
270 | (2) |
|
Generalization Relationships |
|
|
272 | (7) |
|
AATCS Example: Class Diagrams |
|
|
279 | (5) |
|
Heuristics for Good Class Diagrams |
|
|
284 | (5) |
|
Rules for Good Class Diagrams |
|
|
286 | (3) |
|
|
289 | (1) |
|
|
289 | (1) |
|
|
290 | (1) |
|
|
290 | (1) |
|
Behavioral Object Analysis |
|
|
291 | (72) |
|
|
292 | (1) |
|
|
292 | (18) |
|
|
293 | (1) |
|
|
293 | (5) |
|
|
298 | (12) |
|
|
310 | (28) |
|
|
310 | (2) |
|
|
312 | (2) |
|
|
314 | (5) |
|
|
319 | (2) |
|
Orthogonal Regions and Synchronization |
|
|
321 | (1) |
|
|
322 | (6) |
|
|
328 | (2) |
|
|
330 | (2) |
|
Example: AATCS Alarm System |
|
|
332 | (6) |
|
The Role of Scenarios in the Definition of Behavior |
|
|
338 | (11) |
|
|
339 | (3) |
|
|
342 | (1) |
|
|
343 | (6) |
|
|
349 | (8) |
|
|
351 | (3) |
|
Strategies for Defining Operations |
|
|
354 | (3) |
|
|
357 | (1) |
|
Timing-Diagram Heuristics |
|
|
358 | (1) |
|
Activity-Diagram Heuristics |
|
|
359 | (1) |
|
|
359 | (1) |
|
|
360 | (1) |
|
|
360 | (2) |
|
|
362 | (1) |
PART III: DESIGN |
|
363 | (152) |
|
|
367 | (54) |
|
|
368 | (1) |
|
|
368 | (1) |
|
|
369 | (23) |
|
|
370 | (11) |
|
|
381 | (4) |
|
Assigning Objects to Tasks |
|
|
385 | (1) |
|
|
386 | (6) |
|
|
392 | (8) |
|
|
400 | (9) |
|
Representing Physical Architecture in the UML |
|
|
401 | (3) |
|
|
404 | (5) |
|
|
409 | (8) |
|
|
417 | (1) |
|
|
418 | (1) |
|
|
419 | (1) |
|
|
419 | (2) |
|
|
421 | (48) |
|
|
421 | (6) |
|
|
427 | (11) |
|
|
434 | (4) |
|
Mechanistic Design Patterns |
|
|
438 | (27) |
|
|
439 | (6) |
|
Execution Control Patterns |
|
|
445 | (20) |
|
|
465 | (2) |
|
|
467 | (1) |
|
|
467 | (1) |
|
|
467 | (2) |
|
|
469 | (46) |
|
Introduction to Detailed Design |
|
|
470 | (1) |
|
|
471 | (1) |
|
|
472 | (13) |
|
Primitive Representational Types |
|
|
472 | (4) |
|
|
476 | (5) |
|
|
481 | (3) |
|
Data-Collection Structure |
|
|
484 | (1) |
|
|
485 | (4) |
|
|
489 | (2) |
|
|
491 | (2) |
|
Detailed Algorithmic Design |
|
|
493 | (12) |
|
Representing Algorithms in the UML |
|
|
494 | (1) |
|
Algorithmic Example: Run-Time Data Interpolation |
|
|
495 | (10) |
|
|
505 | (7) |
|
Source Language-Based Exception Handling |
|
|
507 | (4) |
|
State-Based Exception Handling |
|
|
511 | (1) |
|
|
512 | (1) |
|
|
513 | (1) |
|
|
514 | (1) |
|
|
514 | (1) |
PART IV: ADVANCED REAL-TIME OBJECT MODELING |
|
515 | (168) |
|
Threads and Schedulability |
|
|
517 | (60) |
|
|
518 | (1) |
|
|
518 | (13) |
|
|
518 | (1) |
|
|
519 | (1) |
|
|
520 | (11) |
|
|
531 | (10) |
|
Rate Monotonic Scheduling |
|
|
536 | (1) |
|
Earliest-Deadline-First Scheduling |
|
|
537 | (1) |
|
Least Laxity Dynamic Scheduling |
|
|
538 | (1) |
|
Maximum-Urgency-First Scheduling |
|
|
538 | (1) |
|
Weighted Shortest-Processing-Time-First (WSPTF) Scheduling |
|
|
539 | (1) |
|
Minimizing Maximum Lateness Scheduling |
|
|
540 | (1) |
|
Thread Synchronization and Resource Sharing |
|
|
541 | (12) |
|
Mutual-Exclusion Semaphores |
|
|
543 | (1) |
|
|
544 | (3) |
|
|
547 | (1) |
|
|
547 | (2) |
|
|
549 | (2) |
|
|
551 | (2) |
|
|
553 | (1) |
|
Schedulability Analysis of Hard Real-Time Systems |
|
|
553 | (13) |
|
|
554 | (3) |
|
Global Method with Task Blocking |
|
|
557 | (4) |
|
|
561 | (2) |
|
Separate Task Utilization Bounds |
|
|
563 | (2) |
|
|
565 | (1) |
|
Schedulability Analysis of Soft Real-Time Systems |
|
|
566 | (6) |
|
Warm and Fuzzy: Timeliness in the Soft Context |
|
|
567 | (3) |
|
|
570 | (2) |
|
|
572 | (1) |
|
|
573 | (1) |
|
|
574 | (2) |
|
|
576 | (1) |
|
|
577 | (54) |
|
|
578 | (1) |
|
|
578 | (10) |
|
But Is It the Right State Machine? |
|
|
581 | (7) |
|
|
588 | (23) |
|
|
589 | (4) |
|
|
593 | (1) |
|
|
593 | (1) |
|
Device Mode State Pattern |
|
|
594 | (2) |
|
Transaction State Pattern |
|
|
596 | (2) |
|
Component Synchronization State Pattern |
|
|
598 | (1) |
|
|
599 | (3) |
|
Event Hierarchy State Pattern |
|
|
602 | (2) |
|
|
604 | (1) |
|
|
605 | (2) |
|
|
607 | (3) |
|
Retriggerable Counter State Pattern |
|
|
610 | (1) |
|
Model-Level Debugging and Testing |
|
|
611 | (17) |
|
|
613 | (1) |
|
|
614 | (3) |
|
|
617 | (11) |
|
|
628 | (1) |
|
|
628 | (1) |
|
|
629 | (1) |
|
|
629 | (2) |
|
|
631 | (52) |
|
|
632 | (1) |
|
|
633 | (3) |
|
|
636 | (15) |
|
Architectural Support Patterns |
|
|
636 | (4) |
|
Collaboration and Distribution Patterns |
|
|
640 | (5) |
|
Safety and Reliability Patterns |
|
|
645 | (2) |
|
|
647 | (4) |
|
Framework Design Principles and Metrics |
|
|
651 | (6) |
|
|
652 | (1) |
|
Generalization Hierarchy Structure |
|
|
653 | (1) |
|
|
654 | (1) |
|
|
654 | (1) |
|
Naming and Syntax Conventions |
|
|
655 | (1) |
|
|
656 | (1) |
|
The Rhapsody Object Execution Framework (OXF) |
|
|
657 | (10) |
|
|
657 | (3) |
|
|
660 | (1) |
|
Inter-Object Association Patterns |
|
|
661 | (3) |
|
Using C++ Standard Template Library |
|
|
664 | (1) |
|
Abstract Operating System |
|
|
664 | (2) |
|
|
666 | (1) |
|
Sample Application Using the Rhapsody OXF Framework |
|
|
667 | (13) |
|
|
680 | (1) |
|
|
681 | (1) |
|
|
682 | (1) |
Appendix A: Summary of UML Notation |
|
683 | (18) |
Appendix B: Rhapsody: A Fully Constructive UML Visual Programming Tool |
|
701 | (12) |
Appendix C: Time Wiz: An Integrated Tool for Timing Analysis |
|
713 | (10) |
Index |
|
723 | (43) |
CD-ROM Warranty |
|
766 | |