1 Object Oriented and Real Time come Together 1
1.1 TENSIONS ATTHE BASE 3
1.2 THE BIG PICTURE 5
1.3 FOCUS OF THE BOOK 8
1.4 SUMMARY 9
2 The Behavioural Fabric of Systems 10
2.1 THE IDEA OF A BEHAVIOURAL FABRIC 10
2.2 PATTERNS IN THE BEHAVIOURAL FABRIC 13
2.3 WORKING WITH THE BEHAVIOURAL FABRIC 16
2.4 POINT-TO-POINT VS.RIPPLE PATTERNS 32
2.5 SUMMARY 33
3 Basic Use Case Map Model 34
3.1 BASIC NOTATION AND INTERPRETATION 35
3.2 AN EXAMPLE: MOUSE DOUBLE CLICK 42
3.3 BOUND MAPS (OPERATION DOMAIN) 44
3.4 BOUND MAPS (ASSEMBLY DOMAIN) 48
3.5 ISSUES OF SCALE 51
3.6 SUMMARY 55
4 A Context for Designing with Use Case Maps 56
4.1 ANOVERVIEW OF THE CONTEXT 57
4.2 MODELS ATTHE DIFFERENT LEVELS 59
4.3 THE CONTEXT WITHOUT USE CASE MAPS 61
4.4 USE CASE MAPS IN DEVELOPMENT PROCESSES 62
4.5 SOME IMPORTANT ISSUES 64
4.6 COMPONENTTYPES IN USE CASE MAPS 65
4.7 SUMMARY 72
5 A Simple Example 73
5.1 HIGH-LEVEL DESIGN, OPERATION (UCM1) 74
5.2 DETAILED DESIGN, OPERATION (CG1, ISD1) 76
5.3 HIGH-LEVEL DESIGN, OPERATION (UCM2) 79
5.4 DETAILED DESIGN, OPERATION (ISD2) 80
5.5 DETAILED DESIGN, ASSEMBLY (CSD) 82
5.6 HIGH-LEVEL DESIGN, ASSEMBLY (UCM3) 86
5.7 DETAILED DESIGN, ASSEMBLY (CG2, VG) 87
5.8 HIGH-LEVEL DESIGN, MANFG (CRD1) 89
5.9 DETAILED DESIGN, MANFG (CRD2) 92
5.10 IMPLEMENTATION (CODE) 93
5.11 SUMMARY 99
6 Case Study: A Conventional Object-Oriented Application from an Unconventional Perspective 100
6.1 USE CASES AND INTERFACE MOCK-UP 101
6.2 SOME CLASSES 105
6.3 USE CASE MAPS 107
6.4 CLASS REFINEMENT (DETAILED DESIGN) 117
6.5 COLLABORATION GRAPHS (DETAILED DESIGN) 120
6.6 VISIBILITY GRAPHS AND SOURCE CODE 122
6.7 SUMMARY 129
7 Advanced Use Case Map Model 130
7.1 UNBOUND MAPS 131
7.2 AN EXAMPLE: TIMEOUT AND RECOVERY 137
7.3 BOUND MAPS 139
7.4 ORIGINATION-TERMINATION PATTERNS 147
7.5 SUMMARY 149
8 Case Study: High-Level Design of a Real Time, Distributed System 150
8.1 DISCOVERING PROCESSES 151
8.2 MAPS FOR PERFORMANCE AND ROBUSTNESS 157
8.3 MAPS AS INVARIANTS FOR EVALUATING TRADE-OFFS 163
8.4 SCALEUP ISSUES 166
8.5 SUMMARY 170
9 Detailed Design Notation 171
9.1 THE COLLABORATION GRAPH NOTATION 172
9.2 USING THE NOTATION FOR DESIGN 174
9.3 COLLABORATION GRAPHS AND USE CASE MAPS 183
9.4 SUMMARY 186
10 Case Study: Rounding Out the Real Time, Distributed System Example 187
10.1 FROM MAPS TO COLLABORATION GRAPHS 188
10.2 EXPLORING COLLABORATION GRAPHS 195
10.3 A REALISTIC EXAMPLE OF STRUCTURAL DYNAMICS 198
10.4 CLASSES FOR PROCESSES AND OBJECTS 205
10.5 USE CASE MAPS AS A COMMON DENOMINATOR 214
10.6 SUMMARY 215
11 Patterns 216
11.1 OPERATIONAL ORGANIZATIONS OF PROCESSES 217
11.2 LAYERING AND EVENT DISPATCHING 220
11.3 MULTIPLE ROLE PLAYING BY OBJECTS IN SLOTS 224
11.4 MANUFACTURING OPERATIONAL COMPONENTS 233
11.5 RELATIONSHIP TO THE PATTERNS LITERATURE 239
11.6 SUMMARY 241
12.1 A RECAP OF THE DESIGN MODELS AND CONTEXT 242
12 Supplementing Familiar Design Methods 242
12.2 ARE USE CASE MAPS FOR YOU? 246
12.3 OBJECT ORIENTED SOFTWARE ENGINEERING (OOSE) 252
12.4 REAL TIME OBJECT-ORIENTED MODELING (ROOM) 256
12.5 FUSION 260
12.6 OTHER METHODS 264
12.7 CROSS-REFERENCE OF DIAGRAM TYPES 265
12.8 SUMMARY 269
Appendix A Notation Summary 270
Appendix B Some Coding Examples 275
References 293
Index 296