Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

O'Reilly logo
UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition

Book Description

  • Would you like to understand the most important elements of Class diagrams? (See page 35.)

  • Do you want to see the new UML 2.0 interaction frame notation for adding control flow to sequence diagrams (see page 58) and the unofficial notation that many prefer? (See page 60.)

  • Do you want to know what changes have been made to all versions of the UML? (See page 151.)

  • Do you want a quick reference to the most useful parts of the UML notation? (See the inside covers.)

  • Do you want to find out what diagram types were added to the UML 2.0 without wading through the spec? (See page 11.)

  • More than 300,000 developers have benefited from past editions of UML Distilled. This third edition is the best resource for quick, no-nonsense insights into understanding and using UML 2.0 and prior versions of the UML.

    Some readers will want to quickly get up to speed with the UML 2.0 and learn the essentials of the UML. Others will use this book as a handy, quick reference to the most common parts of the UML. The author delivers on both of these promises in a short, concise, and focused presentation.

    This book describes all the major UML diagram types, what they're used for, and the basic notation involved in creating and deciphering them. These diagrams include class, sequence, object, package, deployment, use case, state machine, activity, communication, composite structure, component, interaction overview, and timing diagrams. The examples are clear and the explanations cut to the fundamental design logic.

    If you are like most developers, you don't have time to keep up with all the new innovations in software engineering. This new edition of Fowler's classic work gets you acquainted with some of the best thinking about efficient object-oriented software design using the UML--in a convenient format that will be essential to anyone who designs software professionally.

    Table of Contents

    1. Copyright
      1. Dedication
    2. Praise for UML Distilled
    3. Diagrams
    4. The Addison-Wesley Object Technology Series
    5. The Component Software Series
    6. List of Figures
    7. Foreword to the Third Edition
    8. Foreword to the First Edition
    9. Preface
      1. Why Bother with the UML?
      2. Structure of the Book
      3. Changes for the Third Edition
      4. Acknowledgments
    10. 1. Introduction
      1. What Is the UML?
      2. Ways of Using the UML
      3. How We Got to the UML
      4. Notations and Meta-Models
      5. UML Diagrams
      6. What Is Legal UML?
      7. The Meaning of UML
      8. UML Is Not Enough
      9. Where to Start with the UML
      10. Where to Find Out More
    11. 2. Development Process
      1. Iterative and Waterfall Processes
      2. Predictive and Adaptive Planning
      3. Agile Processes
      4. Rational Unified Process
      5. Fitting a Process to a Project
      6. Fitting the UML into a Process
        1. Requirements Analysis
        2. Design
        3. Documentation
        4. Understanding Legacy Code
      7. Choosing a Development Process
      8. Where to Find Out More
    12. 3. Class Diagrams: The Essentials
      1. Properties
        1. Attributes
        2. Associations
      2. Multiplicity
      3. Programming Interpretation of Properties
      4. Bidirectional Associations
      5. Operations
      6. Generalization
      7. Notes and Comments
      8. Dependency
      9. Constraint Rules
      10. When to Use Class Diagrams
      11. Where to Find Out More
    13. 4. Sequence Diagrams
      1. Creating and Deleting Participants
      2. Loops, Conditionals, and the Like
      3. Synchronous and Asynchronous Calls
      4. When to Use Sequence Diagrams
    14. 5. Class Diagrams: Advanced Concepts
      1. Keywords
      2. Responsibilities
      3. Static Operations and Attributes
      4. Aggregation and Composition
      5. Derived Properties
      6. Interfaces and Abstract Classes
      7. Read-Only and Frozen
      8. Reference Objects and Value Objects
      9. Qualified Associations
      10. Classification and Generalization
      11. Multiple and Dynamic Classification
      12. Association Class
      13. Template (Parameterized) Class
      14. Enumerations
      15. Active Class
      16. Visibility
      17. Messages
    15. 6. Object Diagrams
      1. When to Use Object Diagrams
    16. 7. Package Diagrams
      1. Packages and Dependencies
      2. Package Aspects
      3. Implementing Packages
      4. When to Use Package Diagrams
      5. Where to Find Out More
    17. 8. Deployment Diagrams
      1. When to Use Deployment Diagrams
    18. 9. Use Cases
      1. Content of a Use Case
      2. Use Case Diagrams
      3. Levels of Use Cases
      4. Use Cases and Features (or Stories)
      5. When to Use Use Cases
      6. Where to Find Out More
    19. 10. State Machine Diagrams
      1. Internal Activities
      2. Activity States
      3. Superstates
      4. Concurrent States
      5. Implementing State Diagrams
      6. When to Use State Diagrams
      7. Where to Find Out More
    20. 11. Activity Diagrams
      1. Decomposing an Action
      2. Partitions
      3. Signals
      4. Tokens
      5. Flows and Edges
      6. Pins and Transformations
      7. Expansion Regions
      8. Flow Final
      9. Join Specifications
      10. And There’s More
      11. When to Use Activity Diagrams
      12. Where to Find Out More
    21. 12. Communication Diagrams
      1. When to Use Communication Diagrams
    22. 13. Composite Structures
      1. When to Use Composite Structures
    23. 14. Component Diagrams
      1. When to Use Component Diagrams
    24. 15. Collaborations
      1. When to Use Collaborations
    25. 16. Interaction Overview Diagrams
      1. When to Use Interaction Overview Diagrams
    26. 17. Timing Diagrams
      1. When to Use Timing Diagrams
    27. Changes between UML Versions
      1. Revisions to the UML
      2. Changes in UML Distilled
      3. Changes from UML 1.0 to 1.1
        1. Type and Implementation Class
        2. Complete and Incomplete Discriminator Constraints
        3. Composition
        4. Immutability and Frozen
        5. Returns on Sequence Diagrams
        6. Use of the Term “Role”
      4. Changes from UML 1.2 (and 1.1) to 1.3 (and 1.5)
        1. Use Cases
        2. Activity Diagrams
      5. Changes from UML 1.3 to 1.4
      6. Changes from UML 1.4. to 1.5
      7. From UML 1.x to UML 2.0
        1. Class Diagrams: The Essentials (Chapter 3)
        2. Sequence Diagrams (Chapter 4)
        3. Class Diagrams: Concepts (Chapter 5)
        4. State Machine Diagrams (Chapter 10)
        5. Activity Diagrams (Chapter 11)
    28. Bibliography