PREFACE
Acknowledgments, xii
CHAPTER 1 INTRODUCTION
1.1 What Is Object-Oriented?, 1
1.2 What Is Object-Oriented Development?, 4
1.3 Object-Oriented Themes, 7
1.4 Evidence for Usefulness of Object-Oriented Development,9
1.5 Organization of this Book, 10
Bibliographic Notes, 12
References, 12
Exercises, 13
Part 1: Modeling Concepts
CHAPTER 2 MODELING AS A DESIGN TECHNIQUE
2.1 Modeling, 15
2.2 The Object Modeling Technique,
2.3 Chapter Summary, 19
Exercises, 19
CHAPTER 3 OBJECT MODELING
3.1 Objects and Classes, 21
3.2 Links and Associations, 27
3.3 Advanced Link and Association Concepts,31
3.4 Generalization and Inheritance, 38
3.5 Grouping Constructs, 43
3.6 A Sample Object Model, 43
3.7 Practical Tips, 46
3.8 Chapter Summary, 47
Bibliographic Notes, 48
References, 48
Exercises, 49
CHAPTER 4 ADVANCED OBJECT MODELING
4.1 Aggregation, 57
4.2 Abstract Classes, 61
4.3 Generalization as Extension and Restriction, 63
4.4 Multiple Inheritance, 65
4.5 Metadata, 69
4.6 Candidate Keys, 71
4.7 Constraints, 73
4.8 Chapter Summary, 77
Bibliographic Notes, 79
References, 79
Exercises, 80
CHAPTER 5 DYNAMIC MODELING
5. l Events and States, 84
5.2 Operations, 92
5.3 Nested State Diagrams, 94
5.4 Concurrency, 99
5.5 Advanced Dynamic Modeling Concepts,
5.6 A Sample Dynamic Model, 105
5.7 Relation of Object and Dynamic Models,110
5.8 Practical Tips, 111
5.9 Chapter Summary, l 12
Bibliographic Notes, 113
References, 115
Exercises, 115
CHAPTER 6 FUNCTIONAL MODELING
6.1 Functional Models, 123
6.2 Data Flow Diagrams, 124
6.3 Specifying Operations, 130
6.4 Constraints, 132
6.5 A Sample Functional Model, 133
6.6 Relation of Functional to Object and Dynamic Models,137
6.7 Chapter Summary, 139
Bibliographic Notes, 140
References, 140
Exercises, 141
Part 2: Design Methodology
CHAPTER 7 METHODOLOGY PREVIEW
7.1 OMT as a Software Engineering Methodology,144
7.2 The OMT Methodology, 145
7.3 Impact of an Object-Oriented Approach, 146
7.4 Chapter Summary, 146
Exercises, 147
CHAPTER 8 ANALYSIS
8.1 Overview of Analysis, 148
8.2 Problem Statement, 150
8.3 Automated Teller Machine Example,151
8.4 Object Modeling, 152
8.5 Dynamic Modeling, 169
8.6 Functional Modeling, 179
8.7 Adding Operations, 183
8.8 Iterating the Analysis, 185
8.9 Chapter Summary, 187
Bibliographic Notes, 188
References, 188
Exercises, 189
CHAPTER 9 SYSTEM DESIGN
9.1 Overview of System Design, 198
9.2 Breaking a System into Subsystems,199
9.3 Identifying Concurrency, 202
9.4 Allocating Subsystems to Processors and Tasks, 203
9.5 Management of Data Stores, 205
9.6 Handling Global Resources, 207
9.7 Choosing Software Control Implementation, 207
9.8 Handling Boundary Conditions, 210
9.9 Setting Trade-off Priorities, 210
9.10 Common Architectural Frameworks, 211
9.11 Architecture of the ATM System, 217
9.12 Chapter Summary, 218
Bibliographic Notes, 220
References, 220
Exercises, 221
CHAPTER 10 OBJECT DESIGN
10.1 Overview of Object Design, 227
10.2 Combining the Three Models, 229
10.3 Designing Algorithms, 230
10.4 Design Optimization, 235
10.5 Implementation of Control, 239
10.6 Adjustment of Inheritance, 242
10.7 Design of Associations, 245
10.8 Object Representation, 248
10.9 Physical Packaging, 249
10.10 Documenting Design Decisions,251
10.11 Chapter Summary, 252
Bibliographic Notes, 254
References, 254
Exercises, 255
CHAPTER 11 METHODOLOGY SUMMARY
11.1 Analysis, 261
11.2 System Design, 262
11.3 Object Design, 263
11.4 Chapter Summary, 264
Exercises, 264
CHAPTER 12 COMPARISON OF METHODOLOGIES
12.1 Structured Analysis/Structured Design (SA/SD), 266
12.2 Jackson Structured Development (JSD), 268
12.3 Information Modeling Notations, 271
12.4 Object-Oriented Work, 273
12.5 Chapter Summary, 274
References, 275
Exercises, 275
Part 3: Implementation
CHAPTER 13 FROM DESIGN TO IMPLEMENTATION
13.1 Implementation Using a Programming Language,278
13.2 Implementation Using a Database System, 279
13.3 Implementation Outside a Computer, 280
13.4 Overview of Part 3,280
CHAPTER 14 PROGRAMMING STYLE
14.1 Object-Oriented Style, 281
14.2 Reusability, 282
14.3 Extensibility, 285
14.4 Robustness, 286
14.5 Programming-in-the-Large,288
14.6 Chapter Summary, 291
Bibliographic Notes, 291
References, 292
Exercises, 292
CHAPTER 15 OBJECT-ORIENTED LANGUAGES
15.1 Translating a Design into an Implementation,296
15.2 Class Definitions, 297
15.3 Creating Objects, 301
15.4 Calling Operations, 305
15.5 Using Inheritance, 308
15.6 Implementing Associations, 312
15.7 Object-Oriented Language Features, 318
15.8 Survey of Object-Oriented Languages, 325
15.9 Chapter Summary, 330
Bibliographic Notes, 332
References, 333
Exercises, 334
CHAPTER 16 NON-OBJECT-ORIENTED LANGUAGES
16.1 Mapping Object-Oriented Concepts, 340
16.2 Translating Classes into Data Structures, 342
16.3 Passing Arguments to Methods, 344
16.4 Allocating Objects, 345
16.5 Implementing Inheritance, 347
16.6 Implementing Method Resolution, 351
16.7 Implementing Associations, 355
16.8 Dealing with Concurrency, 358
16.9 Encapsulation, 359
16.10 What You Lose, 361
16.11 Chapter Summary, 362
Bibliographic Notes, 363
References, 364
Exercises, 364
CHAPTER 17 RELATIONAL DATABASES
17.1 General DBMS Concepts, 366
17.2 Relational DBMS Concepts, 368
17.3 Relational Database Design, 373
17.4 Advanced Relational DBMS, 387
17.5 Chapter Summary, 388
Bibliographic Notes, 389
References, 390
Exercises, 390
Part 4: Applications
CHAPTER 18 OBJECT DIAGRAM COMPILER
18.1 Background, 398
18.2 Problem Statement, 399
18.3 Analysis, 401
18.4 System Design, 407
18.5 Object Design, 408
18.6 Implementation, 412
18.7 Lessons Learned, 412
18.8 Chapter Summary, 413
Bibliographic Notes, 413
References, 413
Exercises, 414
CHAPTER 19 COMPUTER ANIMATION
19.1 Background, 417
19.2 Problem Statement, 418
19.3 Analysis, 420
19.4 System Design, 424
19.5 Object Design, 426
19.6 Implementation, 428
19.7 Lessons Learned, 430
19.8 Chapter Summary, 431
Bibliographic Notes, 431
References, 432
Exercises, 432
CHAPTER 20 ELECTRICAL DISTRIBUTION DESIG
20.1 Background, 433
20.2 Problem Statement, 435
20.3 Analysis, 436
20.4 System Design, 444
20.5 Object Design, 445
20.6 Implementation, 448
20.7 Lessons Learned, 448
20.8 Chapter Summary, 449
Bibliographic Notes, 449
References, 449
Exercises, 450
APPENDIX A OMT GRAPHICAL NOTATION,453
APPENDIX B GLOSSARY,454
ANSWERS TO SELECTED EXERCISES,465
INDEX,491