You are previewing Executable UML: A Foundation for Model-Driven Architecture.
O'Reilly logo
Executable UML: A Foundation for Model-Driven Architecture

Book Description

Executable UML is a major innovation in the field of software development. It is designed to produce a comprehensive and understandable model of a solution independent of the organization of the software implementation. It is a highly abstract thinking tool that aids in the formalization of knowledge, and is also a way of describing the concepts that make up abstract solutions to software development problems.

This timely new book, Executable UML: A Foundation for Model-Driven Architecture, thoroughly introduces, documents, and explains this important new technology. The authors show how UML can formalize requirements and use cases into a rich set of verifiable diagrams, how it can be used to produce executable and testable models, and how these models can be translated directly into code. In addition, the book explains how individual system domains are woven together by an executable UML model compiler.

The book is full of tips and techniques to help you:

  • Partition a system into subject matters based on individual aspects

  • Pick the right level for use case modeling to speed subject matter comprehension

  • Model classes and focus on relationships to capture subject matter semantics precisely

  • Express behavior using the newly adopted UML action semantics and action languages

  • Specify constraints using tags specified in OCL (Object Constraint Language)

In addition, this book tackles topics of particular importance in execution, such as how to:

  • Synchronize objects by building lifecycles using statechart diagrams

  • Model relationships and contention safely

  • Distribute dynamics to avoid unmaintainable controller objects

  • Verify the models by executing test cases against the statechart diagrams and constraints

A large-scale, fully developed case study runs throughout the book to illustrate concepts and techniques. These models, plus tools to translate and run Executable UML models, can be downloaded from the book's websites, www.executableumlbook.com and www.projtech.com.



0201748045B05092002

Table of Contents

  1. Copyright
  2. List of Figures
  3. Foreword
  4. Preface
  5. Acknowledgments
  6. Introduction
    1. Raising the Level of Abstraction
    2. Executable UML
    3. Making UML Executable
    4. Model Compilers
    5. Model-Driven Architecture
    6. References
  7. Using Executable UML
    1. The System Model
    2. Modeling a Single Domain
    3. Verification and Execution
    4. The Big Picture
    5. References
  8. Domains and Bridges
    1. Domains
    2. Domains and Requirements
    3. Bridges
    4. Aspects and Join Points
    5. Domains and Aspects
    6. References
  9. Use Cases
    1. Basics of Use Cases
    2. Working with Use Cases
    3. Activity Diagrams
    4. Formalizing Use Cases
    5. Scenarios and Testing
    6. System Modeling
    7. References
  10. Classes and Attributes
    1. Classes
    2. Attributes
    3. Attribute Data Types
    4. Documenting Classes and Attributes
    5. Checking Classes and Attributes
    6. Rules, Rules, Rules
    7. References
  11. Relationships and Associations
    1. Associations
    2. Association Descriptions
    3. Checking Associations
    4. Association Classes
    5. Generalization and Specialization
    6. Reflexive Associations
    7. The Class Model
    8. References
  12. Class Actions
    1. Object and Attribute Actions
    2. Selection Expressions
    3. Link Actions
    4. Link Object Actions
    5. Generalization Hierarchies
    6. Other Action Languages
    7. References
  13. Constraints
    1. Unique Instance Constraints
    2. Derived Attributes
    3. Referential Constraints
    4. Association Loops
    5. Constraints Capture Semantics
    6. References
  14. Lifecycles
    1. Concept of a Lifecycle
    2. State Machine
    3. State Transition Table
    4. Creating and Deleting Objects
    5. Forming Lifecycles
    6. Lifecycles for Classes
    7. References
  15. Communicating Objects
    1. Signals
    2. Creating and Deleting Objects
    3. Visualizing Domain Dynamics
    4. Domain Dynamics
  16. Synchronizing Objects
    1. How to Think about Time
    2. Rules about Signals
    3. Rules about Procedures
    4. Rules about Data Access
    5. Delayed Signals and Time Events
    6. Rules, Rules, Rules
    7. References
  17. Using Lifecycles
    1. Statechart Diagram Construction Techniques
    2. Reworking the Class Diagram
    3. References
  18. Relationship Dynamics
    1. Dynamically Simple Associations
    2. Associations Involving Competition
    3. Dynamics in Generalization Hierarchies
    4. Polymorphic Events and Polymorphic Signals
    5. Reclassification
    6. References
  19. Domain Dynamics
    1. Partitioning Control
    2. Control Strategies
    3. Delegation of Control
    4. Input Conditioning
    5. Distributed Dynamics
    6. References
  20. Domain Verification
    1. Finding Unit Tests for a Single Use Case
    2. Test Execution
    3. System Tests
    4. Finding Test Cases from the Models
    5. The Verification Gap
    6. References
  21. Model Management
    1. Dividing Large Domains
    2. Subsystems and the Class Diagram
    3. Collaborations between Subsystems
    4. Adjusting Subsystem Partitioning
    5. Model Management
  22. Joining Multiple Domains
    1. Kinds of Domains
    2. Anonymous Explicit Bridges
    3. Implicit Bridging with Join Points
    4. Bridging to the Model Compiler
  23. Model Compilers
    1. Compiling the Models: The Bookstore
    2. Model Compilers and the Software Platform
    3. Fit
    4. Buying, Modifying, and Building a Model Compiler
    5. Modeling the Model Compiler as a Domain
    6. References
  24. Glossary
      1. A
      2. B
      3. C
      4. D
      5. E
      6. F
      7. I
      8. J
      9. L
      10. M
      11. O
      12. P
      13. R
      14. S
      15. T
      16. U
  25. Case Study
    1. Subsystem ProductSpecification
    2. Subsystem Ordering
    3. Subsystem Shipping
    4. Domain Data Types
    5. Object Collaboration Diagram
  26. Index