Part I Introduction 1 1 System development as an industrial process 1 1.1 Introduction 1 1.2 A useful analogy 2 1.3 System development characteristics 8 1.4 Summary 19 2 The system life cycle 21 2.1 Introduction 21 2.2 System development as a process of change 21 2.3 System development and reuse 26 2.4 System development and methodology 29 2.5 Objectory 38 2.6 Summary 40 3 What is object-orientation? 42 3.1 Introduction 42 3.2 Object 44 3.3 Class and instance 49 3.4 Polymorphism 55 3.5 Inheritance 56 3.6 Summary 68 4 Object-oriented system development 69 4.1 Introduction 69 4.2 Function/data methods 73 4.3 Object-oriented analysis 76 4.4 Object-oriented construction 79 4.5 Object-oriented testing 80 4.6 Summary 83 5 Object-oriented programming 84 5.1 Introduction 84 5.2 Objects 86 5.3 Classes and instances 87 5.4 Inheritance 93 5.5 Polymorphism 99 5.6 An example 102 5.7 Summary 105 Part II Concepts 107 6 Architecture 109 6.1 Introduction 109 6.2 System development is model building 113 6.3 Model architecture 125 6.4 Requirements model 126 6.5 Analysis model 130 6.6 The design model 143 6.7 The implementation model 149 6.8 Test model 150 6.9 Summary 151 7 Analysis 153 7.1 Introduction 153 7.2 The requirements model 156 7.3 The analysis model 174 7.4 Summary 199 8 Construction 201 8.1 Introduction 201 8.2 The design model 204 8.3 Block design 229 8.4 Working with construction 251 8.5 Summary 256 9 Real-time specialization 259 9.1 Introduction 259 9.2 Classification of real-time systems 259 9.3 Fundamental issues 260 9.4 Analysis 261 9.5 Testing and verification 263 9.6 Testing and verification 272 9.7 Summary 273 10 Database specialization 274 10.1 Introduction 274 10.2 Relational DBMS 276 10.3 Object DBMS 285 10.4 Discussion 287 10.5 Summary 288 11 Components 289 11.1 Introduction 289 11.2 What is a component? 294 11.3 Use of components 297 11.4 Component management 301 11.5 Summary 311 12 Testing 313 12.1 Introduction 313 12.2 On testing 315 12.3 Unit testing 323 12.4 Integration testing 330 12.5 System testing 333 12.6 The testing process 333 12.7 Summary 338 Part III Applications 341 13 Case study: warehouse management system 343 13.1 Introduction 343 13.2 ACME Warehouse Management Inc. 343 13.3 The requirements model 345 13.4 The analysis model 356 13.5 Construction 376 14 Case study: telecom 393 14.1 Introduction 393 14.2 Telecommunication switching systems 393 14.3 The requirements model 397 14.4 The analysis model 407 14.5 The design model 416 14.6 The implementation model 428 15 Managing object-oriented software engineering 436 15.1 Introduction 436 15.2 Project selection and preparation 436 15.3 Product development organization 445 15.4 Project organization and management 450 15.5 Project staffing 459 15.6 Software quality assurance 463 15.7 Software metrics 468 15.8 Summary 472 16 Other object-oriented methods 474 16.1 Introduction 474 16.2 A summary of object-oriented methods 476 16.3 Object-Oriented Analysis(OOA/Coad-Yourdon) 479 16.4 Object-Oriented Design(OOD/Booch) 484 16.5 Hierarchical Object-Oriented Design(HOOD) 487 16.6 Object Modeling Technique(OMT) 493 16.7 Responsibility-Driven Design 496 16.8 Summary 500 Appendix A On the development of Objectory 503 A.1 Introduction 503 A.2 Objectory as an activity 505 A.3 From idea to reality 515 References 518 Index 525