HACKER SAFE certified sites prevent over 99.9% of hacker crime.

Jeremy Scahill Read an original essay by Jeremy Scahill and save 30% on Blackwater: The Rise of the World's Most Powerful Mercenary Army.

Blackwater $11.86
Trade Paper Add to Cart



 
Ships free on qualified orders.
$74.25
List price: 79.99
You save: $5.74
HARDCOVER, NEW
Ships in 1 to 3 days
Add to Wishlist
available for shipping or prepaid pickup only
Qty Store Section
2 Local Warehouse Software Engineering- Object Oriented Programming


Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns with CDROM (Addison-Wesley Object Technology)
by Bruce P. Douglass

Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns with CDROM (Addison-Wesley Object Technology) Cover

Only 2 left in stock at $74.25!

Synopses & Reviews

Publisher Comments:

"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. AUTHOR BIO: Bruce Powel Douglass has worked as a software developer in real-time systems for almost twenty years. He is employed as Chief Evangelist for I-Logix, where he has been working closely with Rational and the other UML partners on the UML specification. He is on the Advisory Boards of the Embedded Systems Conference and the UML World Conference and has taught his own commercial real-time object-oriented courses for more than seven years.

Book News Annotation:

Presents an embedded systems programming methodology that Douglass has found successful in developing real-time systems. It allows application developers to apply practical techniques from mainstream object-oriented software development. Using the industry standard Unified Modeling Language, he considers such topics as schedualability, behavioral patterns, and real-time frameworks. The disk contains models from the book and two applications useful in developing real-time and embedded systems. The package could be used in a graduate or undergraduate course.
Annotation c. Book News, Inc., Portland, OR (booknews.com)

Synopsis:

Bruce Powel Douglass details a proven methodology that allows the average software programmer to have substantial success "doing hard time" — in other words, designing and coding software for the booming real-time and embedded systems market.

Table of Contents

Figure List About the Author Preface Acknowledgments Section 1: Basics Chapter 1: Introduction to Objects and the Unified Modeling Language 1.1 Advantages of Objects 1.2 Terms and Concepts 1.3 Object Orientation with UML 1.3.1 Objects 1.3.2 Attributes 1.3.3 Behavior 1.3.4 Messaging 1.3.5 Responsibility 1.3.6 Concurrency 1.3.7 Objects as Autonomous Machines 1.4 Class Diagrams 1.4.1 Relations Among Classes and Objects 1.4.1.1 Association 1.4.1.2 Aggregation 1.4.1.3 Composition 1.4.1.4 Generalization 1.4.1.5 Dependency 1.5 Use Cases 1.6 Sequence Diagrams 1.7 Physical Representation 1.8 Things Common to Diagrams 1.8.1 Notes 1.8.2 Packages 1.8.3 Constraints 1.8.4 Stereotypes 1.9 Summary 1.10 A Look Ahead 1.11 Exercises 1.12 References Chapter 2: Basic Concepts of Real-Time Systems 2.1 What is Real-Time? 2.2 Terms and Concepts 2.3 Timeliness 2.4 Responsiveness 2.5 Concurrency 2.5.1 Scheduling Concurrent Threads 2.5.2 Event Arrival Patterns 2.5.3 Thread Rendezvous Patterns 2.5.4 Sharing Resources 2.5.4.1 Asynchronous Access 2.5.4.2 Critical Sections 2.5.4.3 Semaphores 2.6 Predictability 2.6.1 Memory Management 2.7 Correctness and Robustness 2.7.1 Deadlock 2.7.2 Exceptional Conditions 2.7.3 Race Conditions 2.8 Distributed Systems 2.9 Fault Tolerance and Safety 2.10 Dealing with Resource-Limited Target Environments 2.11 Low-Level Hardware Interfacing 2.12 Real-Time Operating Systems 2.12.1 Scalability 2.12.2 Scheduling 2.12.3 Typical RTOS Features 2.12.3.1 Hardware Independence 2.12.3.2 Scalable Architectures 2.12.3.3 Resource Management (Memory Allocation) 2.12.3.4 Concurrency Management 2.12.3.5 Data Access Control and Protection 2.12.3.6 Time Management 2.12.3.7 Networking 2.12.3.8 I/O Services and File Systems 2.12.3.9 High-Level Language Support Libraries 2.12.3.10 Graphics Toolkits 2.13 Summary 2.14 Looking Ahead 2.15 Exercises 2.16 References Chapter 3: Basic Concepts of Safety-Critical Systems 3.1 Introduction to Safety 3.1.1 The Therac-25 Story 3.1.2 Other Stories 3.2 Terms and Concepts 3.3 Safety Related Faults 3.3.1 Safety is a System Issue 3.3.2 Random Faults Versus Systematic Faults 3.3.3 Single Point Failures 3.3.4 Common Mode Failures 3.3.5 Latent Faults 3.3.6 Fail-Safe State 3.3.7 Achieving Safety 3.4 Safety Architectures 3.4.1 Single Channel Protected Design 3.4.1.1 Multichannel Voting Pattern 3.4.1.2 Homogeneous Redundancy Pattern 3.4.1.3 Diverse Redundancy Pattern 3.4.1.4 Monitor-Actuator Pattern 3.4.1.5 Watchdog Pattern 3.4.1.6 Safety Executive Pattern 3.5 Eight Steps to Safety 3.5.1 Step 1: Identify the Hazards 3.5.1.1 Determine the Faults Leading to Hazards 3.5.2 Step 2: Determine the Risks 3.5.3 Step 3: Define the Safety Measures 3.5.4 Step 4: Create Safe Requirements 3.5.5 Step 5: Create Safe Design 3.5.6 Step 6: Implementing Safely 3.5.6.1 Language Selection 3.5.7 Step 7: Assure Safety Process 3.5.8 Step 8: Test, Test, Test 3.6 A Few Safety Related Standards 3.7 Summary 3.8 Looking Ahead 3.9 Exercises 3.10 References Chapter 4: Rapid Object-Oriented Process for Embedded Systems 4.1 Introduction 4.2 Terms and Concepts 4.2.1 Development Phases 4.2.2 Ordering 4.2.3 Maturity 4.3 Development Task Sequencing 4.3.1 Waterfall Lifecycle 4.3.2 Iterative Lifecycles 4.3.3 Prototyping 4.4 Scheduling and Estimation 4.4.1 Advantages of Accurate Schedules 4.4.2 Difficulties of Accurate Scheduling 4.5 The ROPES Macro Cycle 4.6 Analysis 4.6.1 Requirements Analysis 4.6.1.1 Activities 4.6.1.2 Metamodel Entities Used 4.6.1.3 Artifacts 4.6.2 Systems Analysis 4.6.2.1 Activities 4.6.2.2 Metamodel Entities Used 4.6.2.3 Artifacts 4.6.3 Object Analysis 4.6.3.1 Activities 4.6.3.2 Metamodel Entities Used 4.6.3.3 Artifacts 4.7 Design 4.7.1 Architectural Design 4.7.1.1 Activities 4.7.1.2 Metamodel Entities Used 4.7.1.3 Artifacts 4.7.2 Mechanistic Design 4.7.2.1 Activities 4.7.2.2 Metamodel Entities Used 4.7.2.3 Artifacts 4.7.3 Detailed Design 4.7.3.1 Activities 4.7.3.2 Metamodel Entities Used 4.7.3.3 Artifacts 4.8 Translation 4.8.1 Activities 4.8.2 Artifacts 4.9 Testing 4.9.1 Activities 4.10 Summary 4.11 Looking Ahead 4.12 Exercises 4.13 References Section 2: Analysis Chapter 5: Requirements Analysis of Real-Time Systems 5.1 Introduction 5.2 Terms and Concepts 5.2.1 Use Cases 5.2.2 Messages and Events 5.2.3 Scenarios, Protocols, and State Machines 5.3 Use Cases 5.3.1 Use Case Relations 5.3.1.1 Use Case Generalization Relation 5.3.1.2 Use Case Extension Relation 5.3.1.3 Use Case Includes Relation 5.3.2 Use Case Example: Air Traffic Control System 5.4 External Events 5.4.1 Context-Level Messages 5.4.1.1 Message Properties 5.5 Specifying External Messages 5.5.1 External Event List 5.5.2 Response Time 5.6 Detailing Use Case Behavior 5.6.1 Informal Textual Description 5.6.2 Scenarios 5.6.3 Sequence Diagrams 5.6.4 Statecharts for Defining Use Case Behavior 5.7 Identifying Use Cases 5.8 Using Use Cases 5.9 Heuristics for Good Requirements Analysis Diagrams 5.9.1 Use Case Diagram Heuristics 5.9.2 Use Case Heuristics 5.9.3 Use Case Sequence Diagram Heuristics 5.10 Summary 5.11 Looking Ahead 5.12 Exercises 5.13 References Chapter 6: Structural Object Analysis 6.1 Introduction 6.2 Terms and Concepts 6.3 Key Strategies for Object Identification 6.3.1 Underline the Noun 6.3.2 Identify Causal Agents 6.3.3 Identify Coherent Services 6.3.4 Identify Real-World Items 6.3.5 Identify Physical Devices 6.3.6 Identify Essential Abstractions of Domains 6.3.7 Identify Transactions 6.3.8 Identify Persistent Information 6.3.9 Identify Visual Elements 6.3.10 Identify Control Elements 6.3.11 Execute Scenarios on the Object Model 6.4 Reification of Objects into Classes 6.5 Identify Object Associations 6.5.1 Multiplicity 6.5.2 Associations and Links 6.6 Aggregation and Composition 6.7 Object Attributes 6.8 Generalization Relationships 6.9 AATCS Example: Class Diagrams 6.10 Heuristics for Good Class Diagrams 6.10.1 Rules for Good Class Diagrams 6.11 Summary 6.12 Looking Ahead 6.13 Exercises 6.14 References Chapter 7: Object Behavioral Analysis 7.1 Introduction 7.2 Terms and Concepts 7.2.1 Simple Behavior 7.2.2 State Behavior 7.2.3 Continuous Behavior 7.2.3.1 Fuzzy Systems 7.2.3.2 Artificial Neural Network (ANN) Systems 7.2.3.3 General Mathematics with Recursion 7.3 UML Statecharts 7.3.1 Basic State Semantics 7.3.2 Transitions and Events 7.3.3 Actions and Activities 7.3.4 Pseudostates 7.3.5 Orthogonal Regions and Synchronization 7.3.6 Basic Statechart Syntax 7.3.7 Inherited State Models 7.3.8 Ill-formed State Models 7.3.9 Example: AATCS Alarm System 7.4 The Role of Scenarios in the Definition of Behavior 7.4.1 Timing Diagrams 7.4.2 Sequence Diagrams 7.5 Activity Diagrams 7.6 Defining Operations 7.6.1 Types of Operations 7.6.2 Strategies for Defining Operations 7.7 Statechart Heuristics 7.8 Timing Diagram Heuristics 7.9 Activity Diagram Heuristics 7.10 Summary 7.11 Looking Ahead 7.12 Exercises 7.13 References Section 3: Design Chapter 8: Architectural Design 8.1 Introduction 8.2 Terms and Concepts 8.3 Tasking Model 8.3.1 Representing Tasks 8.3.1.1 Task Diagrams 8.3.1.2 Concurrent State Diagrams 8.3.1.3 Concurrent Activity Diagrams 8.3.1.4 Concurrent Sequence Diagrams 8.3.1.5 Concurrent Collaboration Diagrams 8.3.1.6 Concurrent Timing Diagrams 8.3.2 Defining Task Threads 8.3.2.1 Task Definition Strategies 8.3.3 Assigning Objects to Tasks 8.3.4 Defining Task Rendezvous 8.4 Component Model 8.5 Deployment Model 8.5.1 Representing Physical Architecture in the UML 8.5.2 Multiprocessor Systems 8.5.2.1 Component Location and Access 8.6 Safety/Reliability Model 8.6.1 8.6.1.1 Homogeneous Redundancy Pattern 8.6.1.2 Diverse Redundancy Pattern 8.6.1.3 Monitor-Actuator Pattern 8.6.1.4 Watchdog Pattern 8.6.1.5 Safety Executive Pattern 8.7 Summary 8.8 Looking Ahead 8.9 Exercises 8.10 References Chapter 9: Mechanistic Design 9.1 Introduction 9.2 Terms and Concepts 9.2.1 Design Pattern Basics 9.3 Mechanistic Design Patterns 9.3.1 Correctness Patterns 9.3.1.1 Smart Pointer Pattern 9.3.1.2 Second Guess Pattern 9.3.1.3 Exception Monitor Pattern 9.3.2 Execution Control Patterns 9.3.2.1 Policy Pattern 9.3.2.2 State Pattern 9.3.2.3 State Table Pattern 9.3.2.4 State Walker Pattern 9.3.2.5 Control Loop Pattern 9.3.2.6 Reactive Control Loop Pattern 9.3.2.7 Fuzzy State Pattern 9.3.2.8 Neural Network Pattern 9.4 Summary 9.5 Looking Ahead 9.6 Exercises 9.7 References Chapter 10: Detailed Design 10.1 Introduction to Detailed Design 10.2 Terms and Concepts 10.3 Data Structure 10.3.1 Primitive Representational Types 10.3.2 Subrange Constraints 10.3.3 Derived Attributes 10.3.4 Data Collection Structure 10.4 Associations 10.5 The Object Interface 10.6 Definition of Operations 10.7 Detailed Algorithmic Design 10.7.1 Representing Algorithms in the UML 10.7.2 Algorithmic Example: Run-Time Data Interpolation 10.7.2.1 The Math 10.7.2.2 Binding the Object Model with the Algorithm 10.8 Exceptions 10.8.1 Source Language-based Exception Handling 10.8.2 State-based Exception Handling 10.9 Summary 10.10 Looking Ahead 10.11 Exercises 10.12 References Section 4: Advanced Real-Time Modeling Chapter 11: Threads and Schedulability 11.1 Introduction 11.2 Terms and Concepts 11.2.1 Time-Based Systems 11.2.2 Reactive Systems 11.2.3 Time Concepts 11.2.3.1 Utility Functions 11.3 Scheduling Threads 11.3.1 Rate Monotonic Scheduling 11.3.2 Earliest Deadline Scheduling 11.3.3 Least Laxity Dynamic Scheduling 11.3.4 Maximum Urgency First Scheduling 11.3.5 Weighted Shortest Processing Time First (WSPTF) Scheduling 11.3.6 Minimizing Maximum Lateness Scheduling 11.4 Thread Synchronization and Resource Sharing 11.4.1 Mutual Exclusion Semaphore 11.4.2 Dekker's Algorithm 11.4.3 Spinlocks 11.4.4 Counting Semaphores 11.4.5 Condition Variables 11.4.6 Barriers 11.4.7 Rendezvous Objects 11.5 Schedulability Analysis of Hard Real-Time Systems 11.5.1 Global Analysis 11.5.2 Global Method with Blocking 11.5.3 Computing Blocking 11.5.4 Separate Task Utilization Bounds 11.5.5 Aperiodic Tasks 11.6 Schedulability Analysis of Soft Real-Time Systems 11.6.1 Warm and Fuzzy: Timeliness in the Soft Context 11.6.2 Soft Schedulability 11.7 Summary 11.8 Looking Ahead 11.9 Exercises 11.10 References Chapter 12: Dynamic Modeling 12.1 Introduction 12.2 Terms and Concepts 12.2.1 But is it the Right State Machine? 12.3 Behavioral Patterns 12.3.1 Latch State Pattern 12.3.2 Polling State Pattern 12.3.3 Latched Data Pattern 12.3.4 Device Mode State Pattern 12.3.5 Transaction State Pattern 12.3.6 Component Synchronization State Pattern 12.3.7 Barrier State Pattern 12.3.8 Event Hierarchy State Pattern 12.3.9 Random State Pattern 12.3.10 Null State Pattern 12.3.11 Watchdog State Pattern 12.3.12 Retriggerable Counter State Pattern 12.4 Model-Level Debugging and Testing 12.4.1 Animated Debugging 12.4.2 Animated Testing 12.4.3 Sample Debugging Session 12.5 Summary 12.6 Looking Ahead 12.7 Exercises 12.8 References Chapter 13: Real-Time Frameworks 13.1 Introduction 13.2 Terms and Concepts 13.3 Real-Time Frameworks 13.3.1 Architectural Support Patterns 13.3.1.1 Microkernel Architecture Pattern 13.3.1.2 6-Tier Microkernel Architecture pattern 13.3.2 13.3.2.1 Container-Iterator Pattern 13.3.2.2 Observer Pattern 13.3.2.3 Proxy Pattern 13.3.2.4 Broker Pattern 13.3.3 Safety and Reliability Patterns 13.3.3.1 Watchdog Pattern 13.3.3.2 Safety Executive Pattern 13.3.4 Behavioral Patterns 13.3.4.1 State Pattern 13.3.4.2 State Table Pattern 13.4 Framework Design Principles and Metrics 13.4.1 Set of Services 13.4.2 Generalization Hierarchy Structure 13.4.3 Replaceable Components 13.4.4 Portability< 13.4.5 Naming and Syntax Conventions 13.4.6 Performance 13.5 The Rhapsody Object Execution Framework (OXF) 13.5.1 Rhapsody Architecture 13.5.2 Execution Framework 13.5.3 Interobject Association Patterns 13.5.3.1 Using Associations 13.5.4 Using C++ Standard Template Library 13.5.5 Abstract Operating System 13.5.6 Animation Framework 13.6 Sample Application Using the Rhapsody OXF Framework 13.7 Summary 13.8 Exercises 13.9 References Appendix A: UML Notation Summary Appendix B: Introduction to Rhapsody Appendix C: Introduction to Timewiz Index CD-ROM Warranty

Product Details

ISBN:
9780201498370
Subtitle:
Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns with CDROM
Author:
Douglass, Bruce P.
Author:
Douglass, Bruce P.
Publisher:
Libri
Location:
Reading, Mass.
Subject:
Programming
Subject:
Programming - Object Oriented Programming
Subject:
UML (Computer science)
Subject:
Embedded computer systems
Subject:
UML
Edition Number:
1st
Edition Description:
Hardcover
Series:
The Addison-Wesley object technology series
Series Volume:
no. 12
Binding:
Hardcover
Language:
English
Illustrations:
Y
Pages:
800
Dimensions:
9.66x7.62x1.76 in. 3.19 lbs.