The First Section:Concepts 1
Chapter 1:Complexity 3
1.1 The Inherent Complexity of Software 3
1.2 The Structure of Complex Systems 9
1.3 Bringing Order to Chaos 16
1.4 On Designing Complex Systems 21
Sidebar:Categories of Analysis and Design Methods 18
Chapter 2:The Object Model 27
2.1 The Evolution of the Object Model 28
2.2 Elements of the Object Model 40
2.3 Applying the Object Model 72
Sidebar:Foundations of the Object Model 36
Chapter 3:Classes and Objects 81
3.1 The Nature of an Object 81
3.2 Relationships Among Objects 97
3.3 The Nature of a Class 103
3.4 Relationships Among Classes 106
3.5 The Interplay of Classes and Objects 135
3.6 On Building Quality Classes and Objects 136
Sidebar:Invoking a Method 118
Chapter 4:Classification 145
4.1 The Importance of Proper Classification 146
4.2 Identifying Classes and Objects 150
4.3 Key Abstractions and Mechanisms 162
Sidebar:A Problem of Classification 151
The Second Section:The Method 169
Chapter 5:The Notation 171
5.1 Elements of the Notation 172
5.2 Class Diagrams 176
5.3 State Transition Diagrams 199
5.4 Object Diagrams 208
5.5 Interaction Diagrams 217
5.6 Module Diagrams 219
5.7 Process Diagrams 223
5.8 Applying the Notation 226
Chapter 6:The Process 229
6.1 First Principles 230
6.2 The Micro Development Process 234
6.3 The Macro Development Process 248
Chapter 7:Pragmatics 267
7.1 Management and Planning 268
7.2 Staffing 271
7.3 Release Management 275
7.4 Reuse 277
7.5 Quality Assurance and Metrics 278
7.6 Documentation 281
7.7 Tools 282
7.8 S?ecial Topics 285
7.8 The Benefits and Risks of Object-Oriented Development 287
The Third Section:Applications 291
Chapter 8:Data Acquisition:Weather Monitoring Station 293
8.1 Analysis 294
8.2 Design 312
8.3 Evolution 318
8.4 Maintenance 325
Sidebar:Weather Monitoring Station Requirements 294
Chapter 9:Frameworks:Foundation Class Library 327
9.1 Analysis 328
9.2 Design 333
9.3 Evolution 365
9.4 Maintenance 372
Sidebar:Foundation Class Library Requirements 329
Chapter 10:ClientServer Computing:Inventory Tracking 377
10.1 Analysis 378
10.2 Design 400
10.3 Evolution 410
10.4 Maintenance 412
Sidebar:Inventory Tracking System Requirements 379
Chapter 11:Artificial Intelligence:Cryptanalysis 413
11.1 Analysis 414
11.2 Design 421
11.3 Evolution 438
11.4 Maintenance 442
Sidebar:Cryptanalysis Requirements 415
Chapter 12:Command and Control:Traffic Management 445
12.1 Analysis 446
12.2 Design 455
12.3 Evolution 464
12.4 Maintenance 468
Sidebar:Traffic Management System Requirements 448
Afterword 471
Appendix:Object-Oriented Programming Languages 473
A.1 Concepts 474
A.2 Smalltalk 475
A.3 Object Pascal 479
A.4 C+++ 480
A.5 Common Lisp Object System 484
A.6 Ada 486
A.7 Eiffel 487
A.8 Other Object-Oriented Programming Languages 489
Notes 491
Glossary 511