Leanpub Header

Skip to main content
MBSE4U

Real-time Object Oriented Modeling

This book is an adapted edition of the famous ROOM book: Real-Time Object-Oriented Modeling is the first book that brings together, in a single harmonious approach, the power of object-oriented concepts tailored specifically for real-time systems, with an iterative and incremental process based on the use of executable models.

Minimum price

$70.00

$70.00

You pay

$70.00
$

...Or Buy With Credits!

You can get credits monthly with a Reader Membership
PDF
EPUB
WEB
About

About

About the Book

Are you looking for a more effective approach to real-time systems development? The development of real-time distributed systems is one of the most difficult engineering problems ever faced, taxing the capabilities of traditional real-time software development approaches.

Real-Time Object-Oriented Modeling is the first book that brings together, in a single harmonious approach, the power of object-oriented concepts tailored specifically for real-time systems, with an iterative and incremental process based on the use of executable models. Developed by practitioners, the proven methodology described here is becoming a leader in the industry. Using a learn-by-example approach, this book offers:

  • A single consistent set of graphical modeling concepts, chosen to improve developer effectiveness, which applies uniformly to analysis, design, and implementation. This reduces the learning curve to master the entire method and eliminates expensive discontinuities across different stages of development.
  • An approach to the object paradigm that is easy to learn and that applies to the construction of reusable architectural design components, not just low-level language elements. This unleashes the true power of the object paradigm.
  • Techniques for constructing executable models to gain early confidence in specifications and design decisions.
  • Approaches to project management that deliver the benefits of the object paradigm and executable models.

Share this book

Author

About the Author

Bran Selic, Garth Gullekson, and Paul T. Ward

Contents

Table of Contents

Foreword of the Editors

Foreword

Preface

  1. The Construction of Real-Time Systems
  2. Target Audience
  3. Book Layout
  4. ROOM and the ObjecTime Toolset
  5. A Note on the Choice of Programming Language

Acknowledgements

  1. IPART ONE: General Introduction

1.Elements of a Real-Time Methodology

  1. 1.1Components of Systems Development Methodologies
  2. 1.1.1Modeling Languages
  3. 1.1.2Modeling Heuristics
  4. 1.1.3Work Organization
  5. 1.1.4ROOM
  6. 1.1.5The Scope of the ROOM Modeling Language
  7. 1.1.6A General Constraint—Avoiding the Introduction of Discontinuities
  8. 1.1.7A General Constraint—Using Graphical Representation
  9. 1.2The ROOM Modeling Heuristics
  10. 1.3The Work Organization Framework
  11. 1.4Tool Support for ROOM
  12. 1.5Summary
  13. IIPART TWO: Introduction to the ROOM Modeling Language

2.Characteristics of Real-Time Development

  1. 2.1Properties of Systems to Which ROOM May Be Applied
  2. 2.1.1A Sample Application Problem
  3. 2.1.2Timeliness Issues
  4. 2.1.3Dynamic internal Structure Issues
  5. 2.1.4Reactiveness Issues
  6. 2.1.5Concurrency Issues
  7. 2.1.6Distribution Issues
  8. 2.2Strategies for Dealing with Complexity
  9. 2.2.1Abstraction
  10. 2.2.2Recursion
  11. 2.2.3Incremental Modeling
  12. 2.2.4Reuse
  13. 2.2.5Obstacles to the Use of Abstraction in Real-Time Development
  14. 2.3Summary

3.Key Elements of the ROOM Modeling Language

  1. 3.1The Operational Approach
  2. 3.1.1Problems with Semantic and Scope Discontinuities
  3. 3.1.2Basic Concepts of the Operational Approach
  4. 3.2A Phase-Independent Set of Modeling Abstractions
  5. 3.2.1Problems with Phase Discontinuities
  6. 3.2.2The Concept of Phase Independence
  7. 3.3The Object Paradigm
  8. 3.3.1Objects as Instances: Abstract Data Types
  9. 3.3.2Objects as Software Machines
  10. 3.3.3Objects as Logical Machines
  11. 3.3.4Object Encapsulation
  12. 3.3.5Messages
  13. 3.3.6Classes
  14. 3.3.7The Basics of Inheritance
  15. 3.3.8Multiple Inheritance and Delegation
  16. 3.3.9ROOM and the Object Paradigm
  17. 3.4Summary

4.An Overview of the ROOM Modeling Language

  1. 4.1A Simple ROOM Model
  2. 4.1.1Actors and Actor Classes
  3. 4.1.2Defining Actor Interfaces—Messages, Protocols, and Protocol Classes
  4. 4.1.3Defining Actor Interfaces—Ports
  5. 4.1.4Defining High-Level Actor Behavior—ROOMcharts
  6. 4.1.5Defining High-Level Actor Behavior—Triggers
  7. 4.1.6Defining High-Level Actor Behavior—Actions
  8. 4.1.7Defining Encapsulated Actor Data—Data Classes and Extended State Variables
  9. 4.1.8Defining Message Data
  10. 4.1.9Executing a Simple ROOM Model
  11. 4.1.10Summary
  12. 4.2A Multi-Actor Hierarchical ROOM Model
  13. 4.2.1Hierarchical Actor Structure
  14. 4.2.2Inter-Actor Communication—Conjugation and Bindings
  15. 4.2.3Relay Ports
  16. 4.2.4Replicated References
  17. 4.2.5Optional References
  18. 4.2.6Actor State and Behavior
  19. 4.2.7Internal Ports
  20. 4.2.8Communication via System Service Access Points
  21. 4.2.9Internal Message Sequences
  22. 4.2.10Hierarchical State and Transition Structures
  23. 4.2.11Another Look at Model Execution
  24. 4.2.12Summary
  25. 4.3The ROOM Detail Level
  26. 4.3.1Message Sending and Receiving
  27. 4.3.2Access to Other ROOM Services
  28. 4.3.3Source-Level Debugging and Model Execution
  29. 4.3.4Summary
  30. 4.4A ROOM Model with Inheritance
  31. 4.4.1Inheritance among Protocol Classes
  32. 4.4.2Inheritance among Actor Classes
  33. 4.4.3Inheritance among Data Classes
  34. 4.4.4Summary
  35. 4.5Some Advanced ROOM Features
  36. 4.5.1Layering
  37. 4.5.2The Multiple Containment Construct
  38. 4.5.3Substitutability
  39. 4.5.4Summary
  40. 4.6Summary
  41. IIIPART THREE: The Definition of the ROOM Modeling Language

5.The Conceptual Framework of ROOM

  1. 5.1The Abstraction Levels Paradigm
  2. 5.2The Modeling Dimensions Paradigm
  3. 5.3Complementarity of the Framework Paradigms
  4. 5.4Summary

6.High-Level Structure Modeling

  1. 6.1High-Level Structural Classes
  2. 6.2Actors and Actor Interfaces
  3. 6.2.1Actors
  4. 6.2.2The Encapsulation Shell of an Actor
  5. 6.2.3The Interface Components of an Actor
  6. 6.2.4Graphical Notation for Actor References
  7. 6.3Messages and Protocols
  8. 6.3.1Messages
  9. 6.3.2Protocols
  10. 6.3.3Actor Interface Types, Polymorphism, and Actor Types
  11. 6.4Actor Composition
  12. 6.4.1Communication Relationships and Bindings
  13. 6.4.2Actor Structures
  14. 6.4.3Generic Actor Structures
  15. 6.5Hierarchical Structures
  16. 6.5.1Composite Actors
  17. 6.5.2Relay Ports
  18. 6.5.3Customized Functional Combinations
  19. 6.5.4Complex Relationships as Composite Actors
  20. 6.6The Linkage Between Structure and Behavior31
  21. 6.6.1The Behavior Component
  22. 6.6.2End Ports
  23. 6.6.3Classification of Ports
  24. 6.6.4Behavior as the Coordinator
  25. 6.7Multiple Containment
  26. 6.7.1Equivalences
  27. 6.7.2The Semantics of Equivalences32
  28. 6.8Dynamically Modifiable Structures
  29. 6.8.1Dynamic Actors
  30. 6.8.2Dynamic Actor Relationships
  31. 6.8.3Dynamic Structure Example
  32. 6.9Replication
  33. 6.9.1Replicated Actors
  34. 6.9.2Replicated Ports
  35. 6.9.3Common Replicated Structures
  36. 6.9.4Replicated Port Splitting
  37. 6.9.5Replication and Multiple Containment
  38. 6.10Formal Specifications
  39. 6.10.1Actor Classes
  40. 6.10.2Protocol and Message Classes
  41. 6.11Summary

7.Layering

  1. 7.1The Semantics of Layering Relationships
  2. 7.1.1The Characteristics of Layering
  3. 7.1.2Layering in Software Systems—Virtual Machines
  4. 7.1.3The Dimensionality of Layering
  5. 7.2The ROOM Model of Layering
  6. 7.2.1The ROOM Interlayer Communication Model
  7. 7.2.2Layers and Actors
  8. 7.3The ROOM Virtual Machine Layer
  9. 7.3.1System Services
  10. 7.3.2Interfacing to External Environments
  11. 7.4Identifying Layers
  12. 7.5Formal Specifications
  13. 7.5.1Service Provision Interface
  14. 7.5.2Implementation Interface
  15. 7.5.3Layer Connection Contracts
  16. 7.6Summary

8.High-Level Behavior Modeling

  1. 8.1The ROOM Event-Processing Model
  2. 8.1.1Events
  3. 8.1.2Run-to-Completion Event Processing
  4. 8.1.3Event Priorities
  5. 8.1.4Event Queueing and Scheduling
  6. 8.2State Machine Models
  7. 8.2.1The Essentials of State Machines
  8. 8.2.2Extended State Machines
  9. 8.2.3State Machines and Complexity
  10. 8.3ROOMcharts
  11. 8.3.1Basic Notation and Concepts
  12. 8.3.2Advanced Modeling Concepts
  13. 8.4Formal Specifications
  14. 8.5Summary

9.Inheritance

  1. 9.1Toward a Theory of Using Inheritance—Issues, Guidelines, and Heuristics
  2. 9.1.1The Meaning of Inheritance Hierarchies
  3. 9.1.2Inheritance and Inclusion
  4. 9.1.3The Definition and Use of Abstract Classes
  5. 9.1.4Subclassing
  6. 9.1.5Excluding Attributes
  7. 9.1.6Overriding Attributes
  8. 9.1.7Inverted Inheritance
  9. 9.1.8Issues in Generating an Inheritance Hierarchy
  10. 9.1.9Maintenance Issues
  11. 9.1.10Management Issues
  12. 9.2Inheritance in ROOM
  13. 9.2.1Structural Inheritance
  14. 9.2.2Behavioral Inheritance
  15. 9.2.3Protocol Inheritance
  16. 9.3Inheritance Example
  17. 9.3.1Specification
  18. 9.3.2Analysis and Design
  19. 9.4Summary

10.The Detail Level

  1. 10.1The Linkage Between the Detail Level and the Higher ROOM Levels
  2. 10.2State Machine Action Code
  3. 10.2.1Inter-Actor Communications
  4. 10.2.2Dealing with Time
  5. 10.2.3Interaction with Dynamic Structure
  6. 10.2.4Behavior and Replicated Structures
  7. 10.2.5Interaction with External Entities
  8. 10.2.6Exception Handling58
  9. 10.2.7Inheritance and Action Code
  10. 10.3Detail Level Objects
  11. 10.3.1ROOM Linkage Objects
  12. 10.3.2User-Defined Classes and Libraries
  13. 10.4Code Generation61
  14. 10.5Summary

11.Implementing ROOM Models

  1. 11.1The Architecture of the ROOM Virtual Machine
  2. 11.1.1Format and Scope
  3. 11.1.2Structures
  4. 11.1.3The Services System
  5. 11.1.4The Control System
  6. 11.1.5The Timing Service
  7. 11.1.6The Processing Service
  8. 11.1.7The Frame Service
  9. 11.1.8The Communications Service
  10. 11.1.9Other Services
  11. 11.2Mapping ROOM Specifications into Real-Time Environments
  12. 11.2.1Environment Assumptions
  13. 11.2.2Implementing High-Level Behavior
  14. 11.2.3Implementing Structure
  15. 11.2.4Implementing Services
  16. 11.3Summary
  17. IVPART FOUR: Process Issues

12.Model Development Heuristics

  1. 12.1Example: Introduction
  2. 12.2Example: Model Requirements
  3. 12.3Example: Modeling the System and Its Environment
  4. 12.3.1Capturing the Initial Model
  5. 12.3.2Deriving the Admin and User Protocol Classes
  6. 12.3.3Capturing the User Behavior
  7. 12.4Example: Modeling the System
  8. 12.4.1Deriving the Top-Level System Actors
  9. 12.4.2Examining the Telephone Call Scenario
  10. 12.4.3Modeling the PBX Actor
  11. 12.4.4Completing the PBX Structure Capture
  12. 12.4.5Capturing Behavior
  13. 12.4.6Validating the TelephoneHandler: Executing the Model
  14. 12.4.7Capturing the Remaining Behavior
  15. 12.4.8Constructing the Validation Components
  16. 12.4.9Validation Results
  17. 12.5Example: Synopsis of the Modeling Process
  18. 12.6Example: Distributed System Impacts
  19. 12.7An Introduction to Model Development
  20. 12.7.1Model Development versus Product Development
  21. 12.7.2Model Development Objectives
  22. 12.7.3Model Development Overview
  23. 12.8Modeling Activities
  24. 12.8.1Discovery
  25. 12.8.2Invention
  26. 12.8.3Validation
  27. 12.9Scenarios
  28. 12.9.1Definition and Scope
  29. 12.9.2Describing Requirements as Scenarios
  30. 12.9.3Scenarios for Design and Concurrency Resolution
  31. 12.9.4Scenario Packages
  32. 12.9.5Summary of Scenarios
  33. 12.10System Scope: Environment and Validation Components
  34. 12.10.1Definition of System Boundary
  35. 12.10.2Modeling the Boundary
  36. 12.10.3Validation Components
  37. 12.11Model Development Strategy
  38. 12.11.1Incrementing and Iterating Models
  39. 12.11.2Model Commencement versus Completion
  40. 12.11.3Inheritance and Iteration
  41. 12.11.4Requirements Traceability
  42. 12.11.5Summary of Model Development Strategy
  43. 12.12Techniques for Element Identification and Consolidation
  44. 12.12.1Element Identification
  45. 12.12.2Element Consolidation
  46. 12.12.3Actor Class Identification and Consolidation
  47. 12.12.4Protocol Class Identification and Consolidation
  48. 12.12.5Data Class Identification and Consolidation
  49. 12.12.6Layer Identification
  50. 12.13Behavior Capture and Consolidation
  51. 12.13.1Scenarios
  52. 12.13.2Scenario Conflict Resolution
  53. 12.13.3Capturing States and Transitions
  54. 12.13.4Coding
  55. 12.13.5Summary of Behavior Capture and Consolidation
  56. 12.14Validation
  57. 12.14.1General Approach
  58. 12.14.2Detailed Techniques
  59. 12.14.3Summary of Validation
  60. 12.15Summary

13.Architectural Heuristics

  1. 13.1The Definition of Architecture
  2. 13.1.1Properties of Good Architectures
  3. 13.1.2Architecture of the PBX Example
  4. 13.2Approaches to Architecture
  5. 13.3Internal Control: The Neglected Essential
  6. 13.3.1Internal Control
  7. 13.3.2The Disregard for Internal Control Issues
  8. 13.4Approaches to Internal Control
  9. 13.4.1Separating Internal Control from Function
  10. 13.4.2Control Policies and Control Mechanisms
  11. 13.4.3The Canonical Real-Time System Model
  12. 13.4.4Modeling the Behavior of Controlled Components
  13. 13.5Summary

14.Work Organization

  1. 14.1Product-Oriented versus Project-Oriented Development
  2. 14.2Product Requirements
  3. 14.3Product Development Activities
  4. 14.4Deliverables
  5. 14.5Universal Model Relationships
  6. 14.6Specific Model Types
  7. 14.7Project Team Organization
  8. 14.8Project Management and Tracking
  9. 14.9Summary
  10. APPENDICES

APPENDIX A: The ObjecTime Toolset

  1. History and Objectives
  2. Software Development Environments
  3. ObjecTime Model Development Environment
  4. Model Management
  5. Model Editors
  6. Model Cross Reference and Navigators
  7. Model Compiler
  8. ObjecTime Run-Time Systems
  9. Model Validation

APPENDIX B: An Annotated Implementation Example

  1. Introduction
  2. Elements of C++ Syntax
  3. Generic Definitions
  4. FSM-Specific Definitions
  5. Generic Utility Procedures
  6. FSM-Specific Routines
  7. Generic Routines
  8. Main Program

APPENDIX C: Rationale for ROOMcharts

  1. Methods of Describing Behavior
  2. Assertional Methods
  3. Operational Methods
  4. A Comparison of Statecharts and ROOMcharts

APPENDIX D: ROOM Graphical Notation Summary

  1. Structure Notation
  2. Behavior Notation

APPENDIX E: ROOM Linear Form Representation — Concrete Syntax

  1. Notational Conventions
  2. BNF for ROOM Linear Form
  3. General
  4. Actor Classes
  5. Protocol Classes

References and Bibliography

Blurb

  1. About the Authors
  2. About the Book

Contributors

About the Contributors

Tim is a member of the executive board of the German consulting company oose, a consultant and trainer, lecturer of master courses, publisher, book author, and active member of the OMG and INCOSE community.

Tim has written sections of the initial SysML specification and is still active in the ongoing work on SysML v1, and the next generation SysML v2.

He is involved in many MBSE activities and you can meet him on several conferences about MBSE and related topics.

As a consultant he has advised a lot of companies from different domains. The insights into their challenges are one source of his experience that he shares in his books and presentations.

Tim has written many books about modeling including Systems Engineering with SysML (Morgan Kaufmann, 2008) and Model-Based System Architecture (Wiley, 2015). He is the editor of the pragmatic and independent MBSE methodology SYSMOD – the Systems Modeling Toolbox.

You can contact him at tim@mbse4u.com and read his blog about MBSE at www.model-based-systems-engineering.com.

About the Publisher

About the Publisher

This book is published on Leanpub by MBSE4U

Lean Publishing for MBSE

MBSE4U is a lean publishing house specializing in MBSE books, providing up-to-date content that reflects the dynamic changes in the MBSE community and market.

MBSE4U aims to provide knowledge, practice, and more about MBSE. It offers publications about MBSE methodologies and methods such as SYSMOD, VAMOS, FAS, and MBSE craftsmanship.

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub