Understanding UML

The Developer's Guide


  • Mark Watson

The Unified Modeling Language (UML) is a third generation method for specifying, visualizing, and documenting an object-oriented system under development. It unifies the three leading object-oriented methods and others to serve as the basis for a common, stable, and expressive object-oriented development notation. As the complexity of software applications increases, so does the developer's need to design and analyze applications before developing them. This practical introduction to UML provides software developers with an overview of this powerful new design notation, and teaches Java programmers to analyse and design object-oriented applications using the UML notation.
View full description


Book information

  • Published: December 1997
  • ISBN: 978-0-08-052007-0


"...(an) exceptionally balanced and informative text." -—Rich Dragan

Table of Contents

1 Introduction1.1 Development of UML1.2 Using UML to Develop Applications1.3 How This Book is Organized2 The Vocabulary of Object Technology2.1 What Are Objects?2.2 Objects, Classes, and Instances2.3 Message Passing and Associations2.4 Class Hierarchies and Class Inheritance2.5 Public, Private, and Protected2.6 Interface Inheritance2.7 Polymorphism2.8 Beyond the Basics3 A Simple Object-Oriented Methodology3.1 An Iterative Approach to Object-Oriented Development3.2 The Phases of a Development Cycle3.2.1 Requirements Analysis3.2.2 The Analysis Phase3.2.3 The Design Phase3.2.4 The Coding Phase3.2.5 The Testing Phase4 The Unified Modeling Language4.1 UML Diagrams4.1.1 Use Case Diagrams4.1.2 Static Structure Diagrams4.1.3 Interaction Diagrams4.1.4 State Diagrams4.1.5 Implementation Diagrams4.1.6 The Diagramming Process4.2 Additional Diagrams and Notations4.3 A Generic Approach to Object-Oriented Development4.4 A UML Notation Job Aid5 Coding Applications in Java5.1 Java As an Object-Oriented Language5.1.1 Java Language Basics5.2 The Java Development Kit5.3 The Java Platform5.4 Compiling and Interpreting Java5.4.1 Applets versus Applications5.4.2 JavaBeans6 Java Development with an Object-Oriented Modeling Tool6.1 Object-Oriented Modeling Tools6.2 Popkin Software's SA/Object Architect6.2.2 Putting It All Together7 Business Process Reengineering7.1 What is Business Process Reengineering7.1.2 The Redesign Process7.2 IBM's Line of Vision Enterprise Methodology Diagrams and Notation7.3 Watson's Existing Sales Process7.4 Watson's Reengineered Sales Process7.5 Automating the BPR Process8 Use Case Diagrams and Ideal Object Models8.1 Use Case Diagrams8.2 Use Cases and Business Process Reengineering8.3 A Use Case Diagram of the Watson's SalesWeb System8.3.1 Clarifying Our Vocabulary Regarding the Watson's Application8.4 Use Case Descriptions8.5 Instances of Use Cases As Test Cases8.6 From Use Cases to Ideal Object Models8.7 The OOSE Ideal Object Model8.7.1 Interface Classes8.7.2 Entity Classes8.7.3 Control Classes8.7.4 Identifying Classes in Use Cases8.8 An Ideal Object Model for the Report Sales Use Case8.9 Creating Use Case Models with an Object-Oriented Modeling Tool9 CRC Cards9.1 The Layout of a CRC Card9.2 The Steps in a CRC Session9.2.1 Step 1: Assemble a Group9.2.2 Step 2: Review Requirements9.2.3 Step 3: Brainstorm a List of Classes9.2.4 Step 4: Review the List of Classes9.2.5 Step 5: Prepare CRC Cards9.2.6 Step 6: Develop a Description of Each Class9.2.7 Step 7: Brainstorm Responsibilities and Collaborators9.2.8 Step 8: Generate Specific Scenarios9.2.9 Step 9: Talk Through Several Scenarios9.3 CRC Cards and Object-Oriented Thinking9.4 Terms versus UML Terms9.5 Automating the CRC Process10 UML Class and Object Diagrams10.1 Class Diagramming Basics10.1.1 Attributes (Variables)10.1.2 Operations (Methods)10.1.3 More on Attributes and Operations10.1.4 Associations10.1.5 Class Inheritance10.1.6 Interfaces10.1.7 Identifying Aggregations10.1.8 Constraints and Notes10.2 Diagramming Objects10.3 Creating a Class Diagram10.3.1 An Object Diagram10.3.2 A More Elaborate Class Diagram10.4 Creating UML Class Diagrams with and Object-Oriented Modeling Tool11 UML Sequence and Collaboration Diagrams11.2 Sequence Diagrams11.2.1 Sequence Notation11.2.2 Creating a Sequence Diagram11.3 Collaboration Diagrams11.3.1 Collaboration Notation11.3.2 Creating a Collaboration Diagram11.3.3 Collaboration Diagrams and Patterns11.4 Creating Sequence and Collaboration Diagrams with an Object-Oriented Modeling Tool12 UML State and Activity Diagrams12.1 State Diagrams12.1.1 State Diagram Notation12.1.2 Creating a State Diagram12.2 Activity Diagrams12.3 Creating State and Activity Diagrams with an Object-Oriented Modeling CASE Tool13 Designing an Object-Oriented System13.1 Moving from Analysis to Design14 Choosing an Object-Oriented Architecture14.1 Dividing an Application into Tiers14.1.1 A Two-Tiered Design14.1.2 A Three-Tiered Design14.2 Assigning Packages to Tiers and Platforms14.2.1 Two- and Three-Tiered Class Diagrams14.3 UML Implementation Diagrams14.4 Linking the Tiers14.4.1 Object Request Brokers14.5 Summing Up14.6 The Architecture of the SalesWeb System14.7 Capturing a Design in an Object-Oriented Modeling Tool15 Expanding Your Design15.1 Expanding Your Object Model15.1.1 Extending Your Analysis Diagrams15.1.2 Getting Concrete About Operations15.1.3 Patterns15.1.4 Using Classes, Interfaces, and Components15.2 Developing User Screens or Web Pages15.3 Arranging to Access Data15.3.1 The Java DataBase Connectivity Package15.3.2 Object-Oriented and Object-Relational Databases15.4 The SalesWeb Design15.5 Coding and Testing15.5.1 Bottom-Up Testing Starts with Classes15.5.2 Top-Down Testing Starts with Use Cases15.6 Expanding Your Design in an Object-Oriented Modeling ToolAppendix A Code for the SalesWeb ExampleAppendix B A Comparison of UML, Booch, and MOT NotationsAppendix C Products Mentioned in the BookBibliography, Notes, and Web SitesIndex