You are previewing Unified Modeling Language User Guide, The, Second Edition.
O'Reilly logo
Unified Modeling Language User Guide, The, Second Edition

Book Description

For nearly ten years, the Unified Modeling Language (UML) has been the industry standard for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. As the de facto standard modeling language, the UML facilitates communication and reduces confusion among project stakeholders. The recent standardization of UML 2.0 has further extended the language's scope and viability. Its inherent expressiveness allows users to model everything from enterprise information systems and distributed Web-based applications to real-time embedded systems.

In this eagerly anticipated revision of the best-selling and definitive guide to the use of the UML, the creators of the language provide a tutorial to its core aspects in a two-color format designed to facilitate learning. Starting with an overview of the UML, the book explains the language gradually by introducing a few concepts and notations in each chapter. It also illustrates the application of the UML to complex modeling problems across a variety of application domains. The in-depth coverage and example-driven approach that made the first edition of The Unified Modeling Language User Guide an indispensable resource remain unchanged. However, content has been thoroughly updated to reflect changes to notation and usage required by UML 2.0.

Highlights include:

  • A new chapter on components and internal structure, including significant new capabilities for building encapsulated designs

  • New details and updated coverage of provided and required interfaces, collaborations, and UML profiles

  • Additions and changes to discussions of sequence diagrams, activity diagrams, and more

  • Coverage of many other changes introduced by the UML 2.0 specification

With this essential guide, you will quickly get up to speed on the latest features of the industry standard modeling language and be able to apply them to your next software project.



Table of Contents

  1. Copyright
    1. Dedication
  2. The Addison-Wesley Object Technology Series
  3. The Component Software Series
  4. Preface
    1. Goals
    2. Audience
    3. How to Use This Book
    4. Organization and Special Features
      1. Modeling Architectural Patterns
        1. Acknowledgement
    5. A Brief History of the UML
  5. 1. Getting Started
    1. 1. Why We Model
      1. The Importance of Modeling
      2. Principles of Modeling
      3. Object-Oriented Modeling
    2. 2. Introducing the UML
      1. An Overview of the UML
        1. The UML Is a Language
        2. The UML Is a Language for Visualizing
        3. The UML Is a Language for Specifying
        4. The UML Is a Language for Constructing
        5. The UML Is a Language for Documenting
        6. Where Can the UML Be Used?
      2. A Conceptual Model of the UML
        1. Building Blocks of the UML
          1. Things in the UML
          2. Structural Things
          3. Behavioral Things
          4. Grouping Things
          5. Annotational Things
          6. Relationships in the UML
          7. Diagrams in the UML
        2. Rules of the UML
        3. Common Mechanisms in the UML
          1. Specifications
          2. Adornments
          3. Common Divisions
          4. Extensibility Mechanisms
      3. Architecture
      4. Software Development Life Cycle
    3. 3. Hello, World!
      1. Key Abstractions
      2. Mechanisms
      3. Artifacts
  6. 2. Basic Structural Modeling
    1. 4. Classes
      1. Getting Started
      2. Terms and Concepts
        1. Names
        2. Attributes
        3. Operations
        4. Organizing Attributes and Operations
        5. Responsibilities
        6. Other Characteristics
      3. Common Modeling Techniques
        1. Modeling the Vocabulary of a System
        2. Modeling the Distribution of Responsibilities in a System
        3. Modeling Nonsoftware Things
        4. Modeling Primitive Types
      4. Hints and Tips
    2. 5. Relationships
      1. Getting Started
      2. Terms and Concepts
        1. Dependencies
        2. Generalizations
        3. Associations
          1. Name
          2. Role
          3. Multiplicity
          4. Aggregation
        4. Other Features
        5. Drawing Styles
      3. Common Modeling Techniques
        1. Modeling Simple Dependencies
        2. Modeling Single Inheritance
        3. Modeling Structural Relationships
      4. Hints and Tips
    3. 6. Common Mechanisms
      1. Getting Started
      2. Terms and Concepts
        1. Notes
        2. Other Adornments
        3. Stereotypes
        4. Tagged Values
        5. Constraints
        6. Standard Elements
        7. Profiles
      3. Common Modeling Techniques
        1. Modeling Comments
        2. Modeling New Properties
        3. Modeling New Semantics
      4. Hints and Tips
    4. 7. Diagrams
      1. Getting Started
      2. Terms and Concepts
        1. Structural Diagrams
          1. Class Diagram
          2. Component Diagram
          3. Composite Structure Diagram
          4. Object Diagram
          5. Artifact Diagram
          6. Deployment Diagram
        2. Behavioral Diagrams
          1. Use Case Diagram
          2. Sequence Diagram
          3. Communication Diagram
          4. State Diagram
          5. Activity Diagram
      3. Common Modeling Techniques
        1. Modeling Different Views of a System
        2. Modeling Different Levels of Abstraction
        3. Modeling Complex Views
      4. Hints and Tips
    5. 8. Class Diagrams
      1. Getting Started
      2. Terms and Concepts
        1. Common Properties
        2. Contents
        3. Common Uses
      3. Common Modeling Techniques
        1. Modeling Simple Collaborations
        2. Modeling a Logical Database Schema
        3. Forward and Reverse Engineering
      4. Hints and Tips
  7. 3. Advanced Structural Modeling
    1. 9. Advanced Classes
      1. Getting Started
      2. Terms and Concepts
        1. Classifiers
        2. Visibility
        3. Instance and Static Scope
        4. Abstract, Leaf, and Polymorphic Elements
        5. Multiplicity
        6. Attributes
        7. Operations
        8. Template Classes
        9. Standard Elements
      3. Common Modeling Techniques
        1. Modeling the Semantics of a Class
      4. Hints and Tips
    2. 10. Advanced Relationships
      1. Getting Started
      2. Terms and Concepts
        1. Dependencies
        2. Generalizations
        3. Associations
          1. Navigation
          2. Visibility
          3. Qualification
          4. Composition
          5. Association Classes
          6. Constraints
        4. Realizations
      3. Common Modeling Techniques
        1. Modeling Webs of Relationships
      4. Hints and Tips
    3. 11. Interfaces, Types, and Roles
      1. Getting Started
      2. Terms and Concepts
        1. Names
        2. Operations
        3. Relationships
        4. Understanding an Interface
      3. Common Modeling Techniques
        1. Modeling the Seams in a System
        2. Modeling Static and Dynamic Types
      4. Hints and Tips
    4. 12. Packages
      1. Getting Started
      2. Terms and Concepts
        1. Names
        2. Owned Elements
        3. Visibility
        4. Importing and Exporting
      3. Common Modeling Techniques
        1. Modeling Groups of Elements
        2. Modeling Architectural Views
      4. Hints and Tips
    5. 13. Instances
      1. Getting Started
      2. Terms and Concepts
        1. Abstractions and Instances
        2. Types
        3. Names
        4. Operations
        5. State
        6. Other Features
        7. Standard Elements
      3. Common Modeling Techniques
        1. Modeling Concrete Instances
      4. Hints and Tips
    6. 14. Object Diagrams
      1. Getting Started
      2. Terms and Concepts
        1. Common Properties
        2. Contents
        3. Common Uses
      3. Common Modeling Techniques
        1. Modeling Object Structures
        2. Reverse Engineering
      4. Hints and Tips
    7. 15. Components
      1. Getting Started
      2. Terms and Concepts
        1. Components and Interfaces
        2. Replaceability
        3. Organizing Components
        4. Ports
        5. Internal Structure
      3. Common Modeling Techniques
        1. Modeling Structured Classes
        2. Modeling an API
      4. Hints and Tips
  8. 4. Basic Behavioral Modeling
    1. 16. Interactions
      1. Getting Started
      2. Terms and Concepts
        1. Context
        2. Objects and Roles
        3. Links and Connectors
        4. Messages
        5. Sequencing
        6. Creation, Modification, and Destruction
        7. Representation
      3. Common Modeling Techniques
        1. Modeling a Flow of Control
      4. Hints and Tips
    2. 17. Use Cases
      1. Getting Started
      2. Terms and Concepts
        1. Subject
        2. Names
        3. Use Cases and Actors
        4. Use Cases and Flow of Events
        5. Use Cases and Scenarios
        6. Use Cases and Collaborations
        7. Organizing Use Cases
        8. Other Features
      3. Common Modeling Techniques
        1. Modeling the Behavior of an Element
      4. Hints and Tips
    3. 18. Use Case Diagrams
      1. Getting Started
      2. Terms and Concepts
        1. Common Properties
        2. Contents
        3. Notation
        4. Common Uses
      3. Common Modeling Techniques
        1. Modeling the Context of a System
        2. Modeling the Requirements of a System
        3. Forward and Reverse Engineering
      4. Hints and Tips
    4. 19. Interaction Diagrams
      1. Getting Started
      2. Terms and Concepts
        1. Common Properties
        2. Contents
        3. Sequence Diagrams
        4. Structured Control in Sequence Diagrams
          1. Optional execution
          2. Conditional execution
          3. Parallel execution
          4. Loop (iterative) execution
        5. Nested Activity Diagrams
        6. Communication Diagrams
        7. Semantic Equivalence
        8. Common Uses
      3. Common Modeling Techniques
        1. Modeling Flows of Control by Time Ordering
        2. Modeling Flows of Control by Organization
        3. Forward and Reverse Engineering
      4. Hints and Tips
    5. 20. Activity Diagrams
      1. Getting Started
      2. Terms and Concepts
        1. Common Properties
        2. Contents
        3. Actions and Activity Nodes
        4. Control Flows
        5. Branching
        6. Forking and Joining
        7. Swimlanes
        8. Object Flow
        9. Expansion Regions
        10. Common Uses
      3. Common Modeling Techniques
        1. Modeling a Workflow
        2. Modeling an Operation
        3. Forward and Reverse Engineering
      4. Hints and Tips
  9. 5. Advanced Behavioral Modeling
    1. 21. Events and Signals
      1. Getting Started
      2. Terms and Concepts
        1. Kinds of Events
        2. Signals
        3. Call Events
        4. Time and Change Events
        5. Sending and Receiving Events
      3. Common Modeling Techniques
        1. Modeling a Family of Signals
        2. Modeling Abnormal Occurrences
      4. Hints and Tips
    2. 22. State Machines
      1. Getting Started
      2. Terms and Concepts
        1. Context
        2. States
          1. Initial and Final States
        3. Transitions
          1. Event Trigger
          2. Guard Condition
          3. Effect
        4. Advanced States and Transitions
          1. Entry and Exit Effects
          2. Internal Transitions
          3. Do-Activities
          4. Deferred Events
          5. Submachines
        5. Substates
          1. Nonorthogonal Substates
          2. History States
          3. Orthogonal Substates
          4. Fork and Join
          5. Active Objects
      3. Common Modeling Techniques
        1. Modeling the Lifetime of an Object
      4. Hints and Tips
    3. 23. Processes and Threads
      1. Getting Started
      2. Terms and Concepts
        1. Flow of Control
        2. Classes and Events
        3. Communication
        4. Synchronization
      3. Common Modeling Techniques
        1. Modeling Multiple Flows of Control
        2. Modeling Interprocess Communication
      4. Hints and Tips
    4. 24. Time and Space
      1. Getting Started
      2. Terms and Concepts
        1. Time
        2. Location
      3. Common Modeling Techniques
        1. Modeling Timing Constraints
        2. Modeling the Distribution of Objects
      4. Hints and Tips
    5. 25. State Diagrams
      1. Getting Started
      2. Terms and Concepts
        1. Common Properties
        2. Contents
        3. Common Uses
      3. Common Modeling Techniques
        1. Modeling Reactive Objects
        2. Forward and Reverse Engineering
      4. Hints and Tips
  10. 6. Architectural Modeling
    1. 26. Artifacts
      1. Getting Started
      2. Terms and Concepts
        1. Names
        2. Artifacts and Classes
        3. Kinds of Artifacts
        4. Standard Elements
      3. Common Modeling Techniques
        1. Modeling Executables and Libraries
        2. Modeling Tables, Files, and Documents
        3. Modeling Source Code
      4. Hints and Tips
    2. 27. Deployment
      1. Getting Started
      2. Terms and Concepts
        1. Names
        2. Nodes and Artifacts
        3. Organizing Nodes
        4. Connections
      3. Common Modeling Techniques
        1. Modeling Processors and Devices
        2. Modeling the Distribution of Artifacts
      4. Hints and Tips
    3. 28. Collaborations
      1. Getting Started
      2. Terms and Concepts
        1. Names
        2. Structure
        3. Behavior
        4. Organizing Collaborations
      3. Common Modeling Techniques
        1. Modeling Roles
        2. Modeling the Realization of a Use Case
        3. Modeling the Realization of an Operation
        4. Modeling a Mechanism
      4. Hints and Tips
    4. 29. Patterns and Frameworks
      1. Getting Started
      2. Terms and Concepts
        1. Patterns and Architecture
        2. Mechanisms
        3. Frameworks
      3. Common Modeling Techniques
        1. Modeling Design Patterns
        2. Modeling Architectural Patterns
      4. Hints and Tips
    5. 30. Artifact Diagrams
      1. Getting Started
      2. Terms and Concepts
        1. Common Properties
        2. Contents
        3. Common Uses
      3. Common Modeling Techniques
        1. Modeling Source Code
        2. Modeling an Executable Release
        3. Modeling a Physical Database
        4. Modeling Adaptable Systems
        5. Forward and Reverse Engineering
      4. Hints and Tips
    6. 31. Deployment Diagrams
      1. Getting Started
      2. Terms and Concepts
        1. Common Properties
        2. Contents
        3. Common Uses
      3. Common Modeling Techniques
        1. Modeling an Embedded System
        2. Modeling a Client/Server System
        3. Modeling a Fully Distributed System
        4. Forward and Reverse Engineering
      4. Hints and Tips
    7. 32. Systems and Models
      1. Getting Started
      2. Terms and Concepts
        1. Systems and Subsystems
        2. Models and Views
        3. Trace
      3. Common Modeling Techniques
        1. Modeling the Architecture of a System
        2. Modeling Systems of Systems
      4. Hints and Tips
  11. 7. Wrapping Up
    1. 33. Applying the UML
      1. Transitioning to the UML
      2. Where to Go Next
    2. A. UML Notation
      1. Things
        1. Structural Things
        2. Behavioral Things
        3. Grouping Things
        4. Annotational Things
      2. Relationships
        1. Dependency
        2. Association
        3. Generalization
      3. Extensibility
      4. Diagrams
    3. B. Rational Unified Process
      1. Characteristics of the Process
      2. Phases and Iterations
        1. Phases
          1. Inception
          2. Elaboration
          3. Construction
          4. Transition
        2. Iterations
        3. Development Cycles
      3. Disciplines
      4. Artifacts
        1. Models
        2. Other Artifacts
          1. Requirements Set
          2. Design Set
          3. Test Set
          4. Implementation Set
          5. Deployment Set
    4. Glossary