|
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
|