CITATION

Kimmel, Paul. UML Demystified. US: McGraw-Hill Osborne Media, 2005.

UML Demystified

Authors:

Published:  October 2005

eISBN: 9780071486712 0071486712 | ISBN: 9780072261820
  • Contents
  • Acknowledgments
  • Introduction
  • Chapter 1 A Picture Is Worth a Thousand Lines of Code
  • Understanding Models
  • Understanding the UML
  • The Evolution of Software Design
  • If No One Is Modeling, Why Should You?
  • Modeling and the Future of Software Development
  • Modeling Tools
  • Using Models
  • Creating Diagrams
  • Reviewing Kinds of Diagrams
  • Finding the Finish Line
  • How Many Diagrams Do I Create?
  • How Big Should a Diagram Be?
  • How Much Text Should Supplement My Models?
  • Get a Second Opinion
  • Contrasting Modeling Languages with Process
  • Quiz
  • Answers
  • Chapter 2 Start at the Beginning with Use Cases
  • Making the Case for Use Cases
  • Prioritizing Capabilities
  • Communicating with Nontechnophiles
  • Using Use Case Symbols
  • Actor Symbols
  • Use Cases
  • Connectors
  • Including and Extending Use Cases
  • Annotating Use Case Diagrams
  • Creating Use Case Diagrams
  • How Many Diagrams Is Enough?
  • Example Use Case Diagrams
  • Driving Design with Use Cases
  • Quiz
  • Answers
  • Chapter 3 Diagramming Features as Processes
  • Elaborating on Features as Processes
  • A Journey toward Code
  • Understanding Activity Diagram Uses
  • Using Activity Diagram Symbols
  • Initial Node
  • Control Flow
  • Actions
  • Decision and Merge Nodes
  • Transition Forks and Joins
  • Partitioning Responsibility with Swimlanes
  • Indicating Timed Signals
  • Capturing Input Parameters
  • Showing Exceptions in Activity Diagrams
  • Terminating Activity Diagrams
  • Creating Activity Diagrams
  • Reengineering Process
  • Reengineering a Subactivity
  • Knowing When to Quit
  • Quiz
  • Answers
  • Chapter 4 Discovering Behaviors with Interaction Diagrams
  • Elements of Sequence Diagrams
  • Using Object Lifelines
  • Activating a Lifeline
  • Sending Messages
  • Adding Constraints and Notes
  • Using Interaction Frames
  • Understanding What Sequences Tell Us
  • Discovering Objects and Messages
  • Elements of Collaboration (or Communication) Diagrams
  • Equating Design to Code
  • Quiz
  • Answers
  • Chapter 5 What Are the Things That Describe My Problem?
  • Elements of Basic Class Diagrams
  • Understanding Classes and Objects
  • Modeling Relationships in Class Diagrams
  • Stereotyping Classes
  • Using Packages
  • Using Notes and Comments
  • Constraints
  • Modeling Primitives
  • Modeling Enumerations
  • Indicating Namespaces
  • Figuring Out the Classes You Need
  • Using the Naive Approach
  • Discovering More than Domain Analysis Yields
  • Quiz
  • Answers
  • Chapter 6 Showing How Classes Are Related
  • Modeling Inheritance
  • Using Single Inheritance
  • Using Multiple Inheritance
  • Modeling Interface Inheritance
  • Whiteboarding
  • Using Realization
  • Describing Aggregation and Composition
  • Showing Associations and Association Classes
  • Exploring Dependency Relationships
  • Adding Details to Classes
  • Quiz
  • Answers
  • Chapter 7 Using State Chart Diagrams
  • Elements of a State Diagram
  • Exploring State Symbols
  • Exploring Transitions
  • Creating Behavioral State Machines
  • Creating Protocol State Machines
  • Implementing State Diagrams
  • Quiz
  • Answers
  • Chapter 8 Modeling Components
  • Introducing Component-Based Design
  • Using a Top-Down Approach to Design
  • Using a Bottom-Up Approach to Design
  • Modeling a Component
  • Specifying Provided and Required Interfaces
  • Exploring Component Modeling Styles
  • Diagramming Components for Consumers
  • Diagramming Components for Producers
  • Quiz
  • Answers
  • Chapter 9 Fit and Finish
  • Modeling Dos and Don'ts
  • Don't Keep Programmers Waiting
  • Work from a Macro View to a Micro View
  • Document Sparingly
  • Find an Editor
  • Be Selective about Diagrams You Choose to Create
  • Don't Count on Code Generation
  • Model and Build from Most Risky to Least Risky
  • If It's Obvious Don't Model It
  • Emphasize Specialization
  • Using Known State Patterns
  • Refactoring Your Model
  • Adding Supporting Documentation
  • Validating Your Model
  • Quiz
  • Answers
  • Chapter 10 Visualizing Your Deployment Topology
  • Modeling Nodes
  • Showing Artifacts in Nodes
  • Adding Communication Paths
  • Quiz
  • Answers
  • Appendix A: Final Exam
  • Answers
  • Selected Bibliography
  • Index