The Unified Modeling Language User Guide

Grady Booch, James Rumbaugh, Ivar Jacobson






Just as architects and musicians need architectural drawings or music scores to be written using standard notations that everyone agrees on and understands, developers need a single, common, widely usable modeling language for the development of software systems. The UML has been proposed as this standard and has received the support of academic and industry heavyweights.

The Unified Modeling Language User Guide is the first of three definitive UML works written by the creators of UML, Grady Booch, Jim Rumbaugh, and Ivar Jacobson. Together these three widely respected and world-famous methodologists form an unbeatable author team representing combined worldwide sales of their prior individual books of more than 250,000 copies. This book will introduce the core 80% of the UML, approaching it in a layered fashion and providing numerous examples of its application. The Unified Modeling Language User Guide is suitable for developers unfamiliar with UML or with modeling in general.

Back to Top

Appropriate Courses

Unified Modeling Language (UML).

Back to Top


Table Of Contents

(Chapters 4 - 31 begin with Getting Started, contain Terms and Concepts and Common Modeling Techniques sections, and conclude with Hints and Tips.)






1. Why We Model.


The Importance of Modeling.
Principles of Modeling.
Object-Oriented Modeling.

2. Introducing the UML.


An Overview of the UML.
A Conceptual Model of the UML.
Software Development Life Cycle.

3. Hello, World!



Key Abstractions.




4. Classes.



Modeling the Vocabulary of a System.
Modeling the Distribution of Responsibilities in a System.
Modeling Nonsoftware Things.
Modeling Primitive Types.

5. Relationships.



Modeling Simple Dependencies.
Modeling Single Inheritance.
Modeling Structural Relationships.

6. Common Mechanisms.



Modeling New Building Blocks.
Modeling Comments.
Modeling New Semantics.
Modeling New Properties.

7. Diagrams.



Modeling Different Views of a System.
Modeling Different Levels of Abstraction.
Modeling Complex Views.

8. Class Diagrams.



Modeling Simple Collaborations.
Modeling a Logical Database Schema.
Forward and Reverse Engineering.




9. Advanced Classes.



Modeling the Semantics of a Class.

10. Advanced Relationships.



Modeling Webs of Relationships.

11. Interfaces, Types, and Roles.



Modeling the Seams in a System.
Modeling Static and Dynamic Types.

12. Packages.



Modeling Groups of Elements.
Modeling Architectural Views.

13. Instances.



Modeling Concrete Instances.
Modeling Prototypical Instances.

14. Object Diagrams.



Modeling Object Structures.
Forward and Reverse Engineering.




15. Interactions.



Modeling a Flow of Control.

16. Use Cases.



Modeling the Behavior of an Element.

17. Use Case Diagrams.



Modeling the Context of a System.
Modeling the Requirements of a System.
Forward and Reverse Engineering.

18. Interaction Diagrams.



Modeling Flows of Control by Time Ordering.
Modeling Flows of Control by Organization.
Forward and Reverse Engineering.

19. Activity Diagrams.



Modeling a Workflow.
Modeling an Operation.
Forward and Reverse Engineering.




20. Events and Signals.



Modeling a Family of Signals.
Modeling Exceptions.

21. State Machines.



Modeling the Lifetime of an Object.

22. Processes and Threads.



Modeling Multiple Flows of Control.
Modeling Interprocess Communication.

23. Time and Space.



Modeling Timing Constraints.
Modeling the Distribution of Objects.
Modeling Objects that Migrate.

24. Statechart Diagrams.



Modeling Reactive Objects.
Forward and Reverse Engineering.




25. Components.



Modeling Executables and Libraries.
Modeling Tables, Files, and Documents.
Modeling an API.
Modeling Source Code.

26. Deployment.



Modeling Processors and Devices.
Modeling the Distribution of Components.

27. Collaborations.



Modeling the Realization of a Use Case.
Modeling the Realization of an Operation.
Modeling a Mechanism.

28. Patterns and Frameworks.



Modeling Design Patterns.
Modeling Architectural Patterns.

29. Component Diagrams.



Modeling Source Code.
Modeling an Executable Release.
Modeling a Physical Database.
Modeling Adaptable Systems.
Forward and Reverse Engineering.

30. Deployment Diagrams.



Modeling an Embedded System.
Modeling a Client/Server System.
Modeling a Fully Distributed System.
Forward and Reverse Engineering.

31. Systems and Models.



Modeling the Architecture of a System.
Modeling Systems of Systems.




32. Applying the UML.



Transitioning to the UML.
Where to Go Next.

Appendix A: UML Notation.
Appendix B: UML Standard Elements.
Appendix C: Rational Unified Process.
Index. 0201571684T04062001



Back to Top