Synopses & Reviews
System developers have used modeling languages for decades to specify, visualize, construct, and document systems. The Unified Modeling Language (UML) is one of those languages. UML makes it possible for team members to collaborate by providing a common language that applies to a multitude of different systems. Essentially, it enables you to communicate solutions in a consistent, tool-supported language.Today, UML has become the standard method for modeling software systems, which means you're probably confronting this rich and expressive language more than ever before. And even though you may not write UML diagrams yourself, you'll still need to interpret diagrams written by others.UML 2.0 in a Nutshell from O'Reilly feels your pain. It's been crafted for professionals like you who must read, create, and understand system artifacts expressed using UML. Furthermore, it's been fully revised to cover version 2.0 of the language.This comprehensive new edition not only provides a quick-reference to all UML 2.0 diagram types, it also explains key concepts in a way that appeals to readers already familiar with UML or object-oriented programming concepts.Topics include:
- The role and value of UML in projects
- The object-oriented paradigm and its relation to the UML
- An integrated approach to UML diagrams
- Class and Object, Use Case, Sequence, Collaboration, Statechart, Activity, Component, and Deployment Diagrams
- Extension Mechanisms
- The Object Constraint Language (OCL)
If you're new to UML, a tutorial with realistic examples has even been included to help you quickly familiarize yourself with the system.
For those who use the Universal Modeling Language (UML) in the design of complex software systems, this book is the ultimate reference--sales of the first edition topped 55,000 copies. When developers approach a complex enterprise software project using object-oriented languages such as Java, C++, and C#, they most often start with UML, a modeling system that allows everyone on the project to visualize ways to build the application. With
About the Author
Dan Pilone is Rational Certified in OOAD, RUP, and Rose. His previous employer was a Rational Partner and Dan has taught (formally as well as informally) quite a few UML classes for Hughes, ARINC, UPS, Georgia Systems Operation Center (GSOC), and the Naval Research Laboratory (NRL). As a software architect for clients, Dan has made extensive use of UML (in all views of the architecture) to help convey information to management, developers, team leads, and requirement folks (doing use case analysis in a UML-like fashion). Dan is also Sun J2EE Enterprise Architect certified, which required him to submit his own EJB designs using UML sequence, class, and collaboration diagrams. Dan has worked at Hughes Inc. developing a satellite communication system for which they did real-time UML modeling, and also large numbers of State Diagrams to model the acquisition/control stages.
Table of Contents
Dedication; Preface; About This Book; How to Use This Book; Typographic Conventions; Safari Enabled; Comments and Questions; Acknowledgments; Chapter 1: Fundamentals of UML; 1.1 Getting Started; 1.2 Background; 1.3 UML Basics; 1.4 UML Specifications; 1.5 Putting UML to Work; 1.6 Modeling; 1.7 UML Rules of Thumb; Chapter 2: Class Diagrams; 2.1 Classes; 2.2 Attributes; 2.3 Operations; 2.4 Methods; 2.5 Abstract Classes; 2.6 Relationships; 2.7 Interfaces; 2.8 Templates; 2.9 Variations on Class Diagrams; Chapter 3: Package Diagrams; 3.1 Representation; 3.2 Visibility; 3.3 Importing and Accessing Packages; 3.4 Merging Packages; 3.5 Variations on Package Diagrams; Chapter 4: Composite Structures; 4.1 Composite Structures; 4.2 Collaborations; 4.3 Collaboration Occurrences; Chapter 5: Component Diagrams; 5.1 Components; 5.2 Component Views; Chapter 6: Deployment Diagrams; 6.1 Artifacts; 6.2 Nodes; 6.3 Deployment; 6.4 Variations on Deployment Diagrams; Chapter 7: Use Case Diagrams; 7.1 Use Cases; 7.2 Actors; 7.3 Advanced Use Case Modeling; 7.4 Use Case Scope; Chapter 8: Statechart Diagrams; 8.1 Behavioral State Machines; 8.2 States; 8.3 State Machine Extension; 8.4 Protocol State Machines; 8.5 Pseudostates; 8.6 Event Processing; 8.7 Variations on Statechart Diagrams; Chapter 9: Activity Diagrams; 9.1 Activities and Actions; 9.2 Tokens; 9.3 Activity Nodes; 9.4 Advanced Activity Modeling; Chapter 10: Interaction Diagrams; 10.1 What Are Interactions?; 10.2 Interaction Participants; 10.3 Messages; 10.4 Execution Occurrences; 10.5 State Invariants; 10.6 Event Occurrences; 10.7 Traces; 10.8 Combined Fragments; 10.9 Interaction Occurrences; 10.10 Decomposition; 10.11 Continuations; 10.12 Sequence Timing; 10.13 Alternate Interaction Notations; Chapter 11: Tagged Values, Stereotypes, and UML Profiles; 11.1 Modeling and UML in Context; 11.2 Stereotypes; 11.3 Tagged Values; 11.4 Constraints; 11.5 UML Profiles; 11.6 Tools and How They Use Profiles; Chapter 12: Effective Diagramming; 12.1 Wallpaper Diagrams; 12.2 Sprawling Scope; 12.3 One Diagram/One Abstraction; 12.4 Besides UML; Appendix A: MDA: Model-Driven Architecture; A.1 What Is MDA?; A.2 The Models of MDA; A.3 Design Decisions; A.4 Sewing the Models Together; A.5 Transforming Models; A.6 Languages to Formally Describe MDA; Appendix B: The Object Constraint Language; B.1 OCL Basics; B.2 OCL Syntax; B.3 Advanced OCL Modeling; Colophon;