Chapter 1 Introduction 1.1 Concepts in an Executable UML Model Chapter 2 Using Executable UML 2.1 Domain Chart 2.2 Class Diagram 2.3 One State Machine for Each Class 2.4 Statechart Diagram for Shipment Class Showing Executable Actions 2.5 Collaboration Diagram 2.6 Procedure for State Creating Shipment Consisting of a Series of Actions Chapter 3 Domains and Bridges 3.1 Sample Mission Statements 3.2 Domain Chart 3.3 Domain Mission Statement, Including Bridge Descriptions Chapter 4 Use Cases 4.1 Use Case Diagram for the Online Bookstore 4.2 Different Use Cases for Different Actors 4.3 Use Cases Listed as a Table 4.4 External Signals with Their Parameters 4.5 Typical Flow Description for an Order Books Use Case 4.6 Revised Flow Description for an Order Books Use Case 4.7 Order Books Identified as Single-Interaction Use Cases 4.8 Activity Diagram for the Use Case Order Books 4.9 Preconditions and Postconditions for Add Item to Order 4.10 Connecting Preconditions and Postconditions Chapter 5 Classes and Attributes 5.1 Instances and Classes 5.2 Specification Classes and Actual Classes 5.3 Core Data Types 5.4 Class Box with All Components 5.5 Class Box with Types and Tags Suppressed 5.6 Accumulating Attributes 5.7 Never-Meaningful Attributes Chapter 6 Relationships and Associations 6.1 Class Diagram with Association Names and Roles 6.2 Associations Using Verb Phrases 6.3 Associations with Multiplicities 6.4 Separate Classes for Book Product and Order 6.5 Conditional Associations between Customer and Book Purchase 6.6 Multiple Associations between Classes 6.7 History Pattern 6.8 The Association Class ProductSelection 6.9 Association Class Attributes 6.10 Associations to an Association Class 6.11 Separate Product Classes 6.12 Partitioning of Products into Subsets 6.13 Product Generalization and Specialization 6.14 Repeated Specialization 6.15 Multiple Generalization 6.16 Illustration of Multiple Generalization 6.17 Improper Multiple Generalization 6.18 Compound Generalization 6.19 Reflexive Association Modeling Sequence 6.20 Closed Loop Reflexive Association 6.21 A Category Hierarchy 6.22 Reflexive Association Modeling the Category Hierarchy 6.23 Subtyping ProductCategory Chapter 7 Class Actions 7.1 Syntax for Several Object and Attribute Actions 7.2 Examples of Object and Attribute Actions 7.3 Selection Expressions 7.4 Examples of Selection Expressions and Adjuncts 7.5 Example of Iteration 7.6 Examples of Selection Expressions and Adjuncts 7.7 Syntax for Link Actions 7.8 Link Action Examples 7.9 Link Object Action Syntax 7.10 Examples of Link Object Actions 7.11 Creation, Deletion, and Reclassification in Hierarchies 7.12 Examples of Object Creation in Multiple Hierarchies 7.13 Actions in the Shipment State Machine 7.14 Actions in Small 7.15 Iteration over a Collection in Small 7.16 Actions in the Shipment State Machine 7.17 Iteration over a Collection in Tall 7.18 Actions in Tall Chapter 8 Constraints 8.1 Unique Instance Constraint in OCL 8.2 Unique Instance Constraint Idiom 8.3 Unique Instance Constraint in Action Language 8.4 Identifiers on the Class Diagram 8.5 Multiple-Attribute Identifier Constraint in OCL 8.6 Multiple-Attribute Identifier Constraint in Action Language 8.7 Multiple-Attribute Identifier on Class Diagram 8.8 Multiple Identifiers on Class Diagram 8.9 Derived Attributes 8.10 Referential Attributes 8.11 Components of an International Standard Book Number (ISBN) 8.12 Derived Identifier 8.13 Action Language Definition of Derived Attribute bookISBN 8.14 Compound Identifier Using Referential Attributes 8.15 Loop of Unconstrained Associations 8.16 Redundant Association in a Loop 8.17 Loop of Constrained Associations 8.18 Description of a Constrained Association 8.19 OCL for the Equal Set Constraint 8.20 Action Language for the Equal Set Constraint 8.21 Graphical Representation of an Equal Set Constraint 8.22 Subset Constrained Associations 8.23 Description of a Subset Constrained Association 8.24 Graphical Representation of a Subset Constraint Chapter 9 Lifecycles 9.1 Lifecycle of Light Bulb 9.2 Statechart for the One-Minute Microwave Oven 9.3 State Box Containing State Number, Name, and Procedure 9.4 State Transition Table Based on Microwave Oven Statechart Diagram 9.5 Statechart Diagram and STT with Additional Transition 9.6 Wrong Transition Added to Extend the Cooking Period 9.7 Statechart Diagram and STT with New Cooking Extended State 9.8 State Transition Table with "Event Ignored" Entries 9.9 State Transition Table with "Can't Happen" Entries 9.10 Statechart Diagram for the Order 9.11 External View of the Microwave Oven 9.12 Correspondence between Abstraction as a Class and as a State Machine Chapter 10 Communicating Objects 10.1 Shipment State Procedure Sends orderDelivered signal to Order 10.2 Event Parameters Provided to a Procedure in the Order State Machine 10.3 Signal to self 10.4 Order Creates and Deletes Instances of Selection 10.5 Order State Procedure Signals to Create Shipment 10.6 New Shipment is Created, Enters its Initial State, and Executes its Procedure 10.7 Collaboration Diagram Showing Order, Charge, and Shipment 10.8 Sequenced Collaboration Diagram 10.9 Sequence Diagram for Single-Item Ordering Scenario 10.10 Sequence Diagram Showing Object Creation and Deletion Chapter 11 Synchronizing Objects 11.1 Concurrent Signals Chapter 12 Using Lifecycles 12.1 Shipment Lifecycle 12.2 Spider Lifecycle of Shipment 12.3 Accumulating Attributes 12.4 Shipment and Clerk Association 12.5 Establishing the Association between Shipment and Shipping Clerk 12.6 Concurrent Signals 12.7 Resubmitting a Charge Using CheckOut 12.8 Resubmitting a Charge Using a Separate submitCharge signal 12.9 Shopping Cart Class and Related Associations 12.10 Shopping Cart Statechart Diagram 12.11 Simpler Order Statechart Diagram 12.12 Statechart Diagram and State Transition Table for Shipping Clerk Chapter 13 Relationship Dynamics 13.1 Class Diagram for Publisher and Product 13.2 Class Diagram for Product Selection 13.3 Statechart Diagram for Product Selection 13.4 Collaboration between Product Selection and Order 13.5 Sequence Diagram Illustrating Contention for the Same Order 13.6 Shipping Clerk Assigner 13.7 Sequence Diagram Showing an Assigner Managing Competition 13.8 Class Diagram Including Warehouse Associations 13.9 Statechart Diagram for Warehouse Managing Contention 13.10 Product Superclass Lifecycle 13.11 Warehouse Clerk Subclasses 13.12 Polymorphic Events in a Generalization Hierarchy 13.13 Warehouse Clerk Subclasses, Including OffDutyClerk 13.14 Shipping Clerk (on Duty) Lifecycle 13.15 Warehouse Clerk (Superclass) Statechart Diagram Showing Reclassification Chapter 14 Domain Dynamics 14.1 Mongo Controller Object (Bad Design No Control Partitioning) 14.2 Messy Shopping Cart 14.3 Cleaned-Up Cart 14.4 Push Control 14.5 Pure Pull Approach 14.6 Two Concurrent Cycles with a Pivot Point 14.7 Class with the Most Instances is a Candidate Pivot Point 14.8 Bookstore Collaboration 14.9 Activities and Signals 14.10 Activity Diagram Showing Input Sequencing Chapter 15 Domain Verification 15.1 Use Case Add Item to Order 15.2 Order Statechart Diagram 15.3 Product, Order, and Product Selection Classes 15.4 Four Different Test Vectors for a Single Use Case 15.5 Creating Instances of Product 15.6 Establishing the Initial State 15.7 Sequence Diagram for Add Selection Activity (Very Simple!) 15.8 Checking the Results of the Test Case 15.9 Activity Diagram for the Use Case Order Merchandise 15.10 Sequence Diagram for Multiple-Item Ordering Scenario Chapter 16 Model Management 16.1 Subsystems and Classes 16.2 An Imported Class on a Class Diagram 16.3 A Package Diagram Showing Spanning Relationships Between Subsystems 16.4 Subsystem Prefixes as Naming and Numbering Conventions 16.5 Imported Classes on a Collaboration Diagram 16.6 A Package Diagram Showing Spanning Collaborations Between Subsystems Chapter 17 Joining Multiple Domains 17.1 Domain Chart for the Online Bookstore 17.2 Example of a Web GUI Domain 17.3 Class Diagram for the Inventory Domain 17.4 Bookstore Collaboration 17.5 Credit Card Charge Showing Explicit Bridges 17.6 Generating a Signal to External Entity CreditCardCompany 17.7 A Bridge Operation Calling an External Package 17.8 Correspondences between Bookstore and Inventory 17.9 Correspondences between Attributes 17.10 Correspondences between Behaviors 17.11 Example UI Screen and Corresponding Bookstore Attributes Chapter 18 Model Compilers 18.1 Highlights of an Archetype that Creates a Java Class 18.2 Java Class Created by Applying Figure Archetype to the Bookstore Models Appendix A Glossary Appendix B Case Study B.1 ProductSpecification Subsystem Class Diagram B.2 Ordering Subsystem Class Diagram B.3 Order Statechart B.4 ProductSelection Statechart B.5 ShoppingCart Statechart B.6 CreditCardCharge Statechart B.7 Shipping Subsystem Class Diagram B.8 Shipment Statechart B.9 Warehouse Statechart (Serving as a Shipping Clerk Assigner) B.10 ShippingClerk Statechart B.11 Collaboration Diagram |