You are previewing Sams Teach Yourself UML in 24 Hours, Third Edition.
O'Reilly logo
Sams Teach Yourself UML in 24 Hours, Third Edition

Book Description

Learn UML, the Unified Modeling Language, to create diagrams describing the various aspects and uses of your application before you start coding, to ensure that you have everything covered. Millions of programmers in all languages have found UML to be an invaluable asset to their craft.

More than 50,000 previous readers have learned UML with Sams Teach Yourself UML in 24 Hours. Expert author Joe Schmuller takes you through 24 step-by-step lessons designed to ensure your understanding of UML diagrams and syntax. This updated edition includes the new features of UML 2.0 designed to make UML an even better modeling tool for modern object-oriented and component-based programming. The CD-ROM includes an electronic version of the book, and Poseidon for UML, Community Edition 2.2, a popular UML modeling tool you can use with the lessons in this book to create UML diagrams immediately.

Table of Contents

  1. Copyright
    1. Dedication
  2. About the Author
  3. Acknowledgments
  4. We Want to Hear from You
  5. Introduction
    1. What's New in This Edition
    2. Who Should Read This Book?
    3. Organization of This Book
    4. Conventions Used Throughout This Book
  6. I. Getting Started
    1. 1. Introducing the UML
      1. Adding a Method to the Madness
      2. How the UML Came to Be
      3. Components of the UML
        1. Class Diagram
        2. Object Diagram
        3. Use Case Diagram
        4. State Diagram
        5. Sequence Diagram
        6. Activity Diagram
        7. Communication Diagram
        8. Component Diagram
        9. Deployment Diagram
      4. Some Other Features
        1. Notes
        2. Keywords and Stereotypes
      5. New Diagrams in UML 2.0
        1. Composite Structure Diagram
        2. Interaction Overview Diagram
        3. Timing Diagram
        4. Something Old, Something New—The Package Diagram
      6. Why So Many Diagrams?
      7. But Isn't It Just a Bunch of Pictures?
      8. Summary
      9. Q&A
      10. Workshop
        1. Quiz
        2. Exercises
    2. 2. Understanding Object-Orientation
      1. Objects, Objects Everywhere
      2. Some Object-Oriented Concepts
        1. Abstraction
        2. Inheritance
        3. Polymorphism
        4. Encapsulation
        5. Message Sending
        6. Associations
        7. Aggregation
      3. The Payoff
      4. Summary
      5. Q&A
      6. Workshop
        1. Quiz
    3. 3. Working with Object-Orientation
      1. Visualizing a Class
      2. Attributes
      3. Operations
      4. Attributes, Operations, and Visualization
      5. Responsibilities and Constraints
      6. Attached Notes
      7. Classes—What They Do and How to Find Them
      8. Summary
      9. Q&A
      10. Workshop
        1. Quiz
        2. Exercises
    4. 4. Working with Relationships
      1. Associations
        1. Constraints on Associations
        2. Association Classes
        3. Links
      2. Multiplicity
      3. Qualified Associations
      4. Reflexive Associations
      5. Inheritance and Generalization
        1. Discovering Inheritance
        2. Abstract Classes
      6. Dependencies
      7. Class Diagrams and Object Diagrams
      8. Summary
      9. Q&A
      10. Workshop
        1. Quiz
        2. Exercises
    5. 5. Understanding Aggregations, Composites, Interfaces, and Realizations
      1. Aggregations
        1. Constraints on Aggregations
      2. Composites
      3. Composite Structure Diagram
      4. Interfaces and Realizations
      5. Interfaces and Ports
        1. Visibility
        2. Scope
      6. Summary
      7. Q&A
      8. Workshop
        1. Quiz
        2. Exercises
    6. 6. Introducing Use Cases
      1. Use Cases: What They Are
      2. Use Cases: Why They're Important
      3. An Example: The Soda Machine
        1. The “Buy Soda” Use Case
        2. Additional Use Cases
      4. Including a Use Case
      5. Extending a Use Case
      6. Starting a Use Case Analysis
      7. Summary
      8. Q&A
      9. Workshop
        1. Quiz
        2. Exercises
    7. 7. Working with Use Case Diagrams
      1. Representing a Use Case Model
        1. The Soda Machine Revisited
        2. Tracking the Steps in the Scenarios
      2. Visualizing Relationships Among Use Cases
        1. Inclusion
        2. Extension
        3. Generalization
        4. Grouping
      3. Use Case Diagrams in the Analysis Process
      4. Applying Use Case Models: An Example
        1. Understanding the Domain
        2. Understanding the Users
        3. Understanding the Use Cases
        4. Drilling Down
      5. Taking Stock of Where We Are
        1. Structural Elements
        2. Relationships
        3. Grouping
        4. Annotation
        5. Extension
        6. . . . And More
      6. The Big Picture
      7. Summary
      8. Q&A
      9. Workshop
        1. Quiz
        2. Exercises
    8. 8. Working with State Diagrams
      1. What Is a State Diagram?
        1. The Fundamental Symbol Set
        2. Adding Details to the State Icon
        3. Adding Details to the Transitions: Events and Actions
        4. Adding Details to the Transitions: Guard Conditions
      2. Substates
        1. Sequential Substates
        2. Concurrent Substates
      3. History States
      4. New in UML 2.0
      5. Why Are State Diagrams Important?
      6. Building the Big Picture
      7. Summary
      8. Q&A
      9. Workshop
        1. Quiz
        2. Exercises
    9. 9. Working with Sequence Diagrams
      1. What Is a Sequence Diagram?
        1. Objects
        2. Messages
        3. Time
      2. Cars and Car Keys
        1. A Class Diagram
        2. A Sequence Diagram
      3. The Soda Machine
      4. Sequence Diagrams: The Generic Sequence Diagram
      5. Creating an Object in the Sequence
      6. Framing a Sequence: Sequence Diagramming in UML 2.0
        1. Interaction Occurrences
        2. Combined Interaction Fragments
      7. Building the Big Picture
      8. Summary
      9. Q&A
      10. Workshop
        1. Quiz
        2. Exercises
    10. 10. Working with Communication Diagrams
      1. What Is a Communication Diagram?
      2. Cars and Car Keys
        1. Changing States and Nesting Messages
      3. The Soda Machine
      4. Creating an Object
      5. One More Point About Numbering
      6. A Few More Concepts
        1. Multiple Receiving Objects in a Class
        2. Representing Returned Results
        3. Active Objects
        4. Synchronization
      7. Building the Big Picture
      8. Summary
      9. Q&A
      10. Workshop
        1. Quiz
        2. Exercises
    11. 11. Working with Activity Diagrams
      1. The Basics: What Is an Activity Diagram?
        1. Decisions, Decisions, Decisions
        2. Concurrent Paths
        3. Signals
      2. Applying Activity Diagrams
        1. A Process: Creating a Document
      3. Swimlanes
      4. Hybrid Diagrams
      5. New Concepts from UML 2.0
        1. The Objects of an Activity
        2. Taking Exception
        3. Deconstructing an Activity
        4. Marking Time and Finishing a Flow
        5. Special Effects
      6. An Overview of an Interaction
      7. Building the Big Picture
      8. Summary
      9. Q&A
      10. Workshop
        1. Quiz
        2. Exercises
    12. 12. Working with Component Diagrams
      1. What Is (and What Isn't) a Component?
      2. Components and Interfaces
        1. Reviewing Interfaces
        2. Replacement and Reuse
      3. What Is a Component Diagram?
        1. Representing a Component in UML 1.x and UML 2.0
        2. Representing Interfaces
        3. Boxes—Black and White
      4. Applying Component Diagrams
      5. Component Diagrams in the Big Picture
      6. Summary
      7. Q&A
      8. Workshop
        1. Quiz
        2. Exercises
    13. 13. Working with Deployment Diagrams
      1. What Is a Deployment Diagram?
      2. Applying Deployment Diagrams
        1. A Home System
        2. A Token-Ring Network
        3. ARCnet
        4. Thin Ethernet
        5. The Ricochet Wireless Network
      3. Deployment Diagrams in the Big Picture
      4. Summary
      5. Q&A
      6. Workshop
        1. Quiz
        2. Exercises
    14. 14. Understanding Packages and Foundations
      1. Package Diagrams
        1. The Purpose of a Package
        2. Interpackage Relationships
        3. Merging Packages
      2. A Hierarchy
        1. An Analogy
        2. Moving On
      3. To Boldly Go . . .
      4. Packaging the Infrastructure of UML
        1. The Core
          1. Primitive Types
          2. Abstractions
          3. Basic
          4. Constructs
        2. Profiles
      5. And Now At Last . . . the UML!
        1. The Four Layers Again
        2. Packaging the Superstructure of the UML
          1. Classes
          2. CommonBehaviors
          3. UseCases
          4. CompositeStructures
          5. AuxiliaryConstructs
      6. Extending the UML
        1. Stereotypes
          1. Dependency
          2. Class
          3. Package
        2. Graphic Stereotypes
        3. Constraints
        4. Tagged Values
      7. Summary
      8. Q&A
      9. Workshop
        1. Quiz
        2. Exercise
    15. 15. Fitting the UML into a Development Process
      1. Methodologies: Old and New
        1. The Old Way
        2. A New Way
      2. What a Development Process Must Do
      3. GRAPPLE
      4. RAD3: The Structure of GRAPPLE
        1. Requirements Gathering
          1. Discover Business Processes
          2. Perform Domain Analysis
          3. Identify Cooperating Systems
          4. Discover System Requirements
          5. Present Results to Client
        2. Analysis
          1. Understand System Usage
          2. Flesh Out Use Cases
          3. Refine Class Diagrams
          4. Analyze Changes of State in Objects
          5. Define Interactions Among Objects
          6. Analyze Integration with Cooperating Systems
        3. Design
          1. Develop and Refine Object Diagrams
          2. Develop Component Diagrams
          3. Plan for Deployment
          4. Design and Prototype User Interface
          5. Design Tests
          6. Begin Documentation
        4. Development
          1. Construct Code
          2. Test Code
          3. Construct User Interfaces, Connect to Code, and Test
          4. Complete Documentation
        5. Deployment
          1. Plan for Backup and Recovery
          2. Install Finished System on Appropriate Hardware
          3. Test Installed System
          4. Celebrate
      5. The GRAPPLE Wrap-up
      6. Summary
      7. Q&A
      8. Workshop
        1. Quiz
  7. II. A Case Study
    1. 16. Introducing the Case Study
      1. Getting Down to Business
      2. GRAPPLEing with the Problem
      3. Discovering Business Processes
        1. Serving a Customer
        2. Preparing the Meal
        3. Cleaning the Table
      4. Lessons Learned
      5. Summary
      6. Q&A
      7. Workshop
        1. Quiz
        2. Exercises
    2. 17. Performing a Domain Analysis
      1. Analyzing the Business Process Interview
      2. Developing the Initial Class Diagram
      3. Grouping the Classes
      4. Forming Associations
        1. Associations with Customer
        2. Associations with Server
        3. Associations with Chef
        4. Associations with Busser
        5. Associations with Manager
        6. A Digression
      5. Forming Aggregates and Composites
      6. Filling Out the Classes
        1. Customer
        2. Employee
        3. Check
      7. General Issues About Models
        1. Model Dictionary
        2. Diagram Organization
      8. Lessons Learned
      9. Summary
      10. Q&A
      11. Workshop
        1. Quiz
        2. Exercises
    3. 18. Gathering System Requirements
      1. Developing the Vision
      2. Setting Up for Requirements Gathering
      3. The Requirements JAD Session
      4. The Outcome
      5. Now What?
      6. Summary
      7. Q&A
      8. Workshop
        1. Quiz
        2. Exercise
    4. 19. Developing the Use Cases
      1. The Care and Feeding of Use Cases
      2. The Use Case Analysis
      3. The Server Package
        1. Take an Order
        2. Transmit the Order to the Kitchen
        3. Change an Order
        4. Track Order Status
        5. Notify Chef About Party Status
          1. Description
          2. Assumptions
          3. Preconditions
          4. Postconditions
          5. Steps
          6. Benefiting Actor
        6. Total Up a Check
          1. Description
          2. Assumptions
          3. Preconditions
          4. Postconditions
          5. Steps
          6. Benefiting Actor
        7. Print a Check
          1. Description
          2. Assumptions
          3. Preconditions
          4. Postconditions
          5. Steps
          6. Benefiting Actor
        8. Summon an Assistant
          1. Description
          2. Assumptions
          3. Preconditions
          4. Postconditions
          5. Steps
          6. Benefiting Actor
        9. Remaining Use Cases
      4. Components of the System
      5. Summary
      6. Q&A
      7. Workshop
        1. Quiz
        2. Exercises
    5. 20. Getting into Interactions
      1. The Working Parts of the System
        1. The Server Package
        2. The Chef Package
        3. The Busser Package
        4. The Assistant Server Package
        5. The Assistant Chef Package
        6. The Bartender Package
        7. The Coat-Check Clerk Package
      2. Interactions in the System
        1. Take an Order
        2. Change an Order
        3. Track Order Status
      3. Implications
      4. Summary
      5. Q&A
      6. Workshop
        1. Quiz
        2. Exercises
    6. 21. Designing Look, Feel, and Deployment
      1. Some General Principles of GUI Design
      2. The GUI JAD Session
      3. From Use Cases to User Interfaces
      4. UML Diagrams for GUI Design
      5. Mapping Out System Deployment
        1. The Network
        2. The Nodes and the Deployment Diagram
      6. Next Steps
      7. And Now a Word from Our Sponsor
        1. Empowering a Sales Force
        2. Expanding in the Restaurant World
      8. Summary
      9. Q&A
      10. Workshop
        1. Quiz
        2. Exercises
    7. 22. Understanding Design Patterns
      1. Parameterization
      2. Design Patterns
      3. Chain of Responsibility
        1. Chain of Responsibility: Restaurant Domain
        2. Chain of Responsibility: Web Browser Event Models
      4. Your Own Design Patterns
      5. The Advantages of Design Patterns
      6. Summary
      7. Q&A
      8. Workshop
        1. Quiz
        2. Exercise
  8. III. Looking Ahead
    1. 23. Modeling Embedded Systems
      1. Back to the Restaurant
      2. The Mother of Invention
      3. Fleshing Out the GetAGrip
      4. What Is an Embedded System?
      5. Embedded Systems Concepts
        1. Time
        2. Threads
        3. Interrupts
        4. Operating System
      6. Modeling the GetAGrip
        1. Classes
        2. Use Cases
        3. Interactions
        4. General State Changes
        5. Deployment
      7. Flexing Their Muscles
      8. Summary
      9. Q&A
      10. Workshop
        1. Quiz
        2. Exercises
    2. 24. Shaping the Future of the UML
      1. Extensions for Business
      2. Lessons from the Business Extensions
      3. Graphic User Interfaces
        1. Connecting to Use Cases
        2. Modeling the GUI
      4. Expert Systems
        1. Components of an Expert System
        2. An Example
        3. Modeling the Knowledge Base
      5. Web Applications
      6. That's All, Folks
      7. Summary
      8. Q&A
      9. Workshop
        1. Quiz
        2. Exercises
  9. IV. Appendixes
    1. A. Quiz Answers
      1. Hour 1
      2. Hour 2
      3. Hour 3
      4. Hour 4
      5. Hour 5
      6. Hour 6
      7. Hour 7
      8. Hour 8
      9. Hour 9
      10. Hour 10
      11. Hour 11
      12. Hour 12
      13. Hour 13
      14. Hour 14
      15. Hour 15
      16. Hour 16
      17. Hour 17
      18. Hour 18
      19. Hour 19
      20. Hour 20
      21. Hour 21
      22. Hour 22
      23. Hour 23
      24. Hour 24
    2. B. Working with a UML Modeling Tool
      1. What You Should Find in a Modeling Tool
      2. Working with UML in Visio Professional Edition
        1. Getting Started
        2. The Class Diagram
        3. The Object Diagram
        4. The Sequence Diagram
      3. A Few Words About a Few Tools
        1. Rational Rose
        2. Select Component Architect
        3. Visual UML
    3. C. A Summary in Pictures
      1. Activity Diagram
      2. Class Diagram
      3. Communication Diagram
      4. Component Diagram
      5. Composite Structure Diagram
      6. Deployment Diagram
      7. Object Diagram
      8. Package Diagram
      9. Parameterized Collaboration
      10. Sequence Diagram
      11. State Diagram
      12. Timing Diagram
      13. Use Case Diagram
  10. Windows Installation Instructions
  11. Important Definitions