ICONIX Software Engineering, Inc.  

Table of Contents

Use Case Driven Object Modeling with UML:
A Practical Approach

  ICONIX JumpStart Training
  UML JumpStart with EA
  SysML JumpStart Training
  Hands on ICONIX Process
(Onsite or Open Enrollment)
  Request Training Info
  EA for Power Users
  Mastering UML w/ICONIX Process
  EA TrainingPack
  Enterprise Architect
  MDG Integration for Eclipse
  MDG Integration for Visual Studio
  Design Driven Testing
  Use Case Driven Object Modeling - Theory and Practice
  Agile Dev. with ICONIX Process
  Extreme Programming Refactored
  eBook: Embedded Systems Development using SysML
  eBook: 20 Terabytes a Night
  ICONIX Process for SOA
  ICONIX Process for Embedded Systems
  Tutorial: Design Driven Testing
  Case Study: Large Synoptic Survey Telescope
  Case Study: ESRI Professional Services
  Case Study: Virginia DMV
  Song of the Extremos (Humor)
  Alice in Use Case Land (Humor)

Preface xv

Theory vs. Practice xv

Organization of This Book xvi

Acknowledgments xvi

Chapter 1: The ICONIX Unified Object Modeling Approach 1

Background 3
Introduction to the Approach 6
Thoughts on Methodology 9
Process Fundamentals 10
The Approach in a Nutshell 12

Chapter 2: Domain Modeling 17

Discover Classes 19
Build Generalization Relationships 24
Build Associations Between Classes 26
Develop Association Classes 29
Mine Your Legacy Documentation for Domain Classes 30
Draw an Analysis-Level Class Diagram 35
Continue to Iterate and Refine 35

Chapter 3: Use Case Modeling 41

Use Cases, Actors, and Use Case Diagrams 43
Analysis-Level and Design-Level Use Cases 44
Writing Use Cases 45
Working Inwards From a GUI to Identify Use Cases 45
Mining Your Legacy User Manuals for Use Cases 50
Refining Use Cases 51
Basic and Alternative Courses of Action 52
Factoring Out Commonality in Usage 54
Constructs From the UML and OML 54
Back to Our Example 56
Use Case Packages 61
Use Cases and Requirements 62
Wrapping Up Use Case Modeling 63

Chapter 4: Robustness Analysis 67

Key Roles of Robustness Analysis 69
Sanity Check 69
Completeness Check 70
Object Identification 71
Preliminary Design 72
More About Robustness Analysis Object Types 72
Performing Robustness Analysis 74
Updating Your Domain (Static) Model 81
Wrapping Up Robustness Analysis 86

Chapter 5: Interaction Modeling 89

The Goals of Interaction Modeling 90
Sequence Diagrams 92
Getting Started 94
Putting Methods on Classes 102
Examples 106
Updating Your Static Model 110
Finalizing Attributes and Methods 111
Ensuring Quality 112
Adding Infrastructure 113
Patternizing Your Design 113
Back to the Example 114
Completing Interaction Modeling 115

Chapter 6: Collaboration and State Modeling 119

When Do We Need Collaboration Diagrams? 120
State Diagrams 123
How Many State Diagrams Do We Need? 124
Activity Diagrams 126
Extending Interaction Modeling 128

Chapter 7: Addressing Requirements 131

What Is a Requirement? 132
The Nature of Requirements, Use Cases, and Functions 133
Requirements Traceability 137
Extending a Visual Modeling Tool to Support Requirements 138
Requirements and the ICONIX Approach 140
Getting Ready to Code 141

Chapter 8: Implementation 145

Project Staffing Issues 146
Project Management 147
Revisiting the Static Model 148
Allocating Classes to Components 149
Code Headers 150
Testing 152
Metrics 153
Tracking Use Case Driven Development 156
Wrapping Up 157

Appendix A: "Uses" vs. "Extends" 159

Bibliography 165

Index 167




ICONIX Software Engineering, Inc.
11301 W Olympic Blvd., Suite 559, Los Angeles, CA 90064
Tel (310) 474-8482 / Fax (310) 474-8609
email: UMLTraining@iconixsw.com