Muutke küpsiste eelistusi

Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns [Multiple-component retail product]

  • Formaat: Multiple-component retail product, 800 pages, kõrgus x laius x paksus: 249x196x43 mm, kaal: 1290 g, Contains 1 Hardback and 1 CD-ROM
  • Ilmumisaeg: 17-Jun-1999
  • Kirjastus: Addison Wesley
  • ISBN-10: 0201498375
  • ISBN-13: 9780201498370
  • Multiple-component retail product
  • Hind: 85,42 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Multiple-component retail product, 800 pages, kõrgus x laius x paksus: 249x196x43 mm, kaal: 1290 g, Contains 1 Hardback and 1 CD-ROM
  • Ilmumisaeg: 17-Jun-1999
  • Kirjastus: Addison Wesley
  • ISBN-10: 0201498375
  • ISBN-13: 9780201498370
"This book will almost certainly become a seminal work in this field...the one book everyone will want to have both as a tutorial and as a reference." --Larry McAlister, Senior Systems Architect, ENSCO, Inc. The global demand for real-time and embedded systems is growing rapidly. With this increased demand comes an urgent need for more programmers in this realm; yet making the transition to real-time systems development or learning to build these applications is by no means simple. Real-time system designs must be written to meet hard and unforgiving requirements. It is a pursuit that requires a unique set of skills. Clearly, real-time systems development is a formidable task, and developers face many unique challenges as they attempt to do "hard time." Doing Hard Time is written to facilitate the daunting process of developing real-time systems. It presents an embedded systems programming methodology that has been proven successful in practice. The process outlined in this book allows application developers to apply practical techniques--garnered from the mainstream areas of object-oriented software development--to meet the demanding qualifications of real-time programming.Bruce Douglass offers ideas that are up-to-date with the latest concepts and trends in programming. By using the industry standard Unified Modeling Language (UML), as well as the best practices from object technology, he guides you through the intricacies and specifics of real-time systems development. Important topics such as schedulability, behavioral patterns, and real-time frameworks are demystified, empowering you to become a more effective real-time programmer. The accompanying CD-ROM holds substantial value for the reader. It contains models from the book, as well as two applications that are extremely useful in the development of real-time and embedded systems. The first application, a UML-compliant design automation tool called Rhapsody (produced by I-Logix), captures analysis and design of systems and generates full behavioral code for those models with intrinsic model-level debug capabilities. The second application, TimeWiz, can analyze the timing and performance of systems and determine the schedulability of actions in multitasking systems. 0201498375B04062001
Figure List
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)
Advantages of Objects
4(6)
Terms and Concepts
10(1)
Object Orientation with the UML
11(15)
Objects
12(8)
Attributes
20(1)
Behavior
20(2)
Messaging
22(2)
Responsibility
24(1)
Concurrency
24(1)
Objects as Autonomous Machines
25(1)
Class Diagrams
26(12)
Relations among Classes and Objects
30(8)
Use Cases
38(2)
Sequence Diagrams
40(2)
Physical Representation
42(2)
Things Common to Diagrams
44(8)
Notes
44(1)
Packages
45(1)
Constraints
45(1)
Stereotypes
46(6)
Summary
52(2)
A Look Ahead
54(1)
Exercises
54(1)
References
55(2)
Basic Concepts of Real-Time Systems
57(40)
What is Real-Time?
58(1)
Terms and Concepts
58(2)
Timeliness
60(4)
Responsiveness
64(3)
Concurrency
67(6)
Scheduling Concurrent Threads
67(1)
Event Arrival Patterns
68(2)
Thread Rendezvous Patterns
70(1)
Sharing Resources
71(2)
Predictability
73(2)
Memory Management
73(2)
Correctness and Robustness
75(6)
Deadlock
75(2)
Exceptional Conditions
77(2)
Race Conditions
79(2)
Distributed Systems
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)
Summary
95(1)
Looking Ahead
95(1)
Exercises
95(1)
References
96(1)
Basic Concepts of Safety-Critical Systems
97(54)
Introduction to Safety
98(2)
The Therac-25 Story
98(1)
Other Stories
98(2)
Terms and Concepts
100(3)
Safety-Related Faults
103(11)
Safety Is a System Issue
104(1)
Random Faults vs. Systematic Faults
104(1)
Single-Point Failures
105(2)
Common Mode Failures
107(3)
Latent Faults
110(1)
Fail-Safe State
110(1)
Achieving Safety
111(3)
Safety Architectures
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)
Monitor-Actuator Pattern
119(3)
Watchdog Pattern
122(1)
Safety Executive Pattern
123(2)
Eight Steps to Safety
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)
Step 8: Test, Test, Test
143(2)
A Few Safety-Related Standards
145(2)
Some Important Safety Standards
146(1)
Summary
147(1)
Looking Ahead
148(1)
Exercises
148(2)
References
150(1)
Rapid Object-Oriented Process for Embedded Systems
151(50)
Introduction
152(1)
Terms and Concepts
153(4)
Development Phases
153(3)
Ordering
156(1)
Maturity
157(1)
Development-Task Sequencing
157(5)
Waterfall Lifecycle
158(1)
Iterative Lifecycles
158(2)
Prototyping
160(2)
Scheduling and Estimation
162(5)
Advantages of Accurate Schedules
164(1)
Difficulties of Accurate Scheduling
165(2)
The ROPES Macro Cycle
167(4)
Analysis
171(14)
Requirements Analysis
171(5)
Systems Analysis
176(4)
Object Analysis
180(5)
Design
185(7)
Architectural Design
188(2)
Mechanistic Design
190(1)
Detailed Design
191(1)
Translation
192(3)
Activities
192(2)
Artifacts
194(1)
Testing
195(2)
Activities
195(1)
Artifacts
196(1)
Summary
197(1)
Looking Ahead
198(1)
Exercises
198(1)
References
199(2)
PART II: ANALYSIS 201(162)
Requirements Analysis of Real-Time Systems
203(36)
Introduction
204(1)
Terms and Concepts
204(7)
Use Cases
204(2)
Messages and Events
206(2)
Scenarios, Protocols, and State Machines
208(3)
Use Cases
211(7)
Use Case Relations
212(1)
Use Case Example: Air Traffic Control System
213(5)
External Events
218(3)
Context-Level Messages
219(2)
Specifying External Messages
221(4)
External Event List
222(1)
Response Time
223(2)
Detailing Use Case Behavior
225(7)
Informal Textual Description
226(1)
Scenarios
227(1)
Sequence Diagrams
228(3)
Statecharts for Defining Use Case Behavior
231(1)
Identifying Use Cases
232(1)
Using Use Cases
233(1)
Heuristics for Good Requirements Analysis Diagrams
234(3)
Use Case Diagram Heuristics
235(1)
Use Case Heuristics
235(1)
Use Case Sequence Diagram Heuristics
236(1)
Summary
237(1)
Looking Ahead
237(1)
Exercises
237(1)
References
238(1)
Structural Object Analysis
239(52)
Introduction
240(1)
Terms and Concepts
240(2)
Key Strategies for Object Identification
242(20)
Underline the Nouns
245(4)
Identify Causal Agents
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)
Identify Transactions
254(1)
Identify Persistent Information
255(1)
Identify Visual Elements
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)
Multiplicity
268(1)
Associations and Links
269(1)
Aggregation and Composition
269(1)
Object Attributes
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)
Summary
289(1)
Looking Ahead
289(1)
Exercises
290(1)
References
290(1)
Behavioral Object Analysis
291(72)
Introduction
292(1)
Terms and Concepts
292(18)
Simple Behavior
293(1)
State Behavior
293(5)
Continuous Behavior
298(12)
UML Statecharts
310(28)
Basic State Semantics
310(2)
Transitions and Events
312(2)
Actions and Activities
314(5)
Pseudostates
319(2)
Orthogonal Regions and Synchronization
321(1)
Basic Statecharts Syntax
322(6)
Inherited State Models
328(2)
Ill-Formed State Models
330(2)
Example: AATCS Alarm System
332(6)
The Role of Scenarios in the Definition of Behavior
338(11)
Timing Diagrams
339(3)
Sequence Diagrams
342(1)
Activity Diagrams
343(6)
Defining Operations
349(8)
Types of Operations
351(3)
Strategies for Defining Operations
354(3)
Statechart Heuristics
357(1)
Timing-Diagram Heuristics
358(1)
Activity-Diagram Heuristics
359(1)
Summary
359(1)
Looking Ahead
360(1)
Exercises
360(2)
References
362(1)
PART III: DESIGN 363(152)
Architectural Design
367(54)
Introduction
368(1)
Terms and Concepts
368(1)
Tasking Model
369(23)
Representing Tasks
370(11)
Defining Task Threads
381(4)
Assigning Objects to Tasks
385(1)
Defining Task Rendezvous
386(6)
Component Model
392(8)
Deployment Model
400(9)
Representing Physical Architecture in the UML
401(3)
Multiprocessor Systems
404(5)
Safety/Reliability Model
409(8)
Summary
417(1)
Looking Ahead
418(1)
Exercises
419(1)
References
419(2)
Mechanistic Design
421(48)
Introduction
421(6)
Terms and Concepts
427(11)
Design-Pattern Basics
434(4)
Mechanistic Design Patterns
438(27)
Correctness Patterns
439(6)
Execution Control Patterns
445(20)
Summary
465(2)
Looking Ahead
467(1)
Exercises
467(1)
References
467(2)
Detailed Design
469(46)
Introduction to Detailed Design
470(1)
Terms and Concepts
471(1)
Data Structure
472(13)
Primitive Representational Types
472(4)
Subrange Constraints
476(5)
Derived Attributes
481(3)
Data-Collection Structure
484(1)
Associations
485(4)
The Object Interface
489(2)
Definition of Operations
491(2)
Detailed Algorithmic Design
493(12)
Representing Algorithms in the UML
494(1)
Algorithmic Example: Run-Time Data Interpolation
495(10)
Exceptions
505(7)
Source Language-Based Exception Handling
507(4)
State-Based Exception Handling
511(1)
Summary
512(1)
Looking Ahead
513(1)
Exercises
514(1)
References
514(1)
PART IV: ADVANCED REAL-TIME OBJECT MODELING 515(168)
Threads and Schedulability
517(60)
Introduction
518(1)
Terms and Concepts
518(13)
Time-Based Systems
518(1)
Reactive Systems
519(1)
Time Concepts
520(11)
Scheduling Threads
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)
Dekker's Algorithm
544(3)
Spinlocks
547(1)
Counting Semaphores
547(2)
Condition Variables
549(2)
Barriers
551(2)
Rendezvous Objects
553(1)
Schedulability Analysis of Hard Real-Time Systems
553(13)
Global Analysis
554(3)
Global Method with Task Blocking
557(4)
Computing Blocking
561(2)
Separate Task Utilization Bounds
563(2)
Aperiodic Tasks
565(1)
Schedulability Analysis of Soft Real-Time Systems
566(6)
Warm and Fuzzy: Timeliness in the Soft Context
567(3)
Soft Schedulability
570(2)
Summary
572(1)
Looking Ahead
573(1)
Exercises
574(2)
References
576(1)
Dynamic Modeling
577(54)
Introduction
578(1)
Terms and Concepts
578(10)
But Is It the Right State Machine?
581(7)
Behavioral Patterns
588(23)
Latch State Pattern
589(4)
Polling State Pattern
593(1)
Latched Data Pattern
593(1)
Device Mode State Pattern
594(2)
Transaction State Pattern
596(2)
Component Synchronization State Pattern
598(1)
Barrier State Pattern
599(3)
Event Hierarchy State Pattern
602(2)
Random State Pattern
604(1)
Null State Pattern
605(2)
Watchdog State Pattern
607(3)
Retriggerable Counter State Pattern
610(1)
Model-Level Debugging and Testing
611(17)
Animated Debugging
613(1)
Animated Testing
614(3)
Sample Debugging Session
617(11)
Summary
628(1)
Looking Ahead
628(1)
Exercises
629(1)
References
629(2)
Real-Time Frameworks
631(52)
Introduction
632(1)
Terms and Concepts
633(3)
Real-Time Frameworks
636(15)
Architectural Support Patterns
636(4)
Collaboration and Distribution Patterns
640(5)
Safety and Reliability Patterns
645(2)
Behavioral Patterns
647(4)
Framework Design Principles and Metrics
651(6)
Set of Services
652(1)
Generalization Hierarchy Structure
653(1)
Replaceable Components
654(1)
Portability
654(1)
Naming and Syntax Conventions
655(1)
Performance
656(1)
The Rhapsody Object Execution Framework (OXF)
657(10)
Rhapsody Architecture
657(3)
Execution Framework
660(1)
Inter-Object Association Patterns
661(3)
Using C++ Standard Template Library
664(1)
Abstract Operating System
664(2)
Animation Framework
666(1)
Sample Application Using the Rhapsody OXF Framework
667(13)
Summary
680(1)
Exercises
681(1)
References
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


Bruce Powel Douglass is the Chief Evangelist for i-Logix, a leading producer of tools for real-time systems development. He contributed to the original specification of the UML and to the UML 2.0 as one of the co-chairs of the Object Management Groups Real-Time Analysis and Design Working Group. Bruce consults for a number of companies and organizations, including NASA, on building large-scale, real-time, safety-critical systems. He is the author of seven other books, including Real-Time Design Patterns (Addison-Wesley, 2003) and Doing Hard Time (Addison-Wesley, 1999).