Table of Contents vii 7.4.Data Structure-Centered Design 2-10 7.5.Component-Based Design (CBD) 2-10 7.6.Other Methods 2-10 8.Software Design Tools 2-11 Matrix of Topics vs.Reference Material 2-12 Chapter 3:Software Construction 3-1 1.Software Construction Fundamentals 3-1 1.1.Minimizing Complexity 3-3 1.2.Anticipating Change 3-3 1.3.Constructing for Verification 3-3 1.4.Reuse 3-3 1.5.Standards in Construction 3-3 2.Managing Construction 3-4 2.1.Construction in Life Cycle Models 2.2.Construction Planning 2.3.Construction Measurement 3.Practical Considerations 445 3.1.Construction Design 3.2.Construction Languages 35 3.3.Coding 3.4.Construction Testing 36 3.5.Construction for Reuse 3.6.Construction with Reuse 3-7 3.7.Construction Quality 3-7 3.8.Integration 3-7 4.Construction Technologies 3-8 4.1.API Design and Use 38 4.2.Object-Oriented Runtime Issues 3-8 4.3.Parameterization and Generics 3-8 4.4.Assertions,Design by Contract,and Defensive Programming 3-8 4.5.Error Handling,Exception Handling,and Fault Tolerance 3-9 4.6.Executable Models 3-9 4.7.State-Based and Table-Driven Construction Techniques 3-9 4.8.Runtime Configuration and Internationalization 3-10 4.9.Grammar-Based Input Processing 3-10 4.10.Concurrency Primitives 3-10 4.11.Middleware 3-10 4.12.Construction Methods for Distributed Software 3-11 4.13.Constructing Heterogeneous Systems 3-11 4.14.Performance Analysis and Tuning 3-11 4.15.Platform Standards 3-11 4.16.Test-First Programming 3-11 5.Software Construction Tools 3-12 5.1.Development Environments 3-12 5.2.GUl Builders 3-12 5.3.Unit Testing Tools 3-12 5.4.Profiling,Performance Analysis,and Slicing Tools 3-12 Matrix of Topics vs.Reference Material 3-13Table of Contents vii 7.4. Data Structure-Centered Design 2-10 7.5. Component-Based Design (CBD) 2-10 7.6. Other Methods 2-10 8. Software Design Tools 2-11 Matrix of Topics vs. Reference Material 2-12 Chapter 3: Software Construction 3-1 1. Software Construction Fundamentals 3-1 1.1. Minimizing Complexity 3-3 1.2. Anticipating Change 3-3 1.3. Constructing for Verification 3-3 1.4. Reuse 3-3 1.5. Standards in Construction 3-3 2. Managing Construction 3-4 2.1. Construction in Life Cycle Models 3-4 2.2. Construction Planning 3-4 2.3. Construction Measurement 3-4 3. Practical Considerations 3-5 3.1. Construction Design 3-5 3.2. Construction Languages 3-5 3.3. Coding 3-6 3.4. Construction Testing 3-6 3.5. Construction for Reuse 3-6 3.6. Construction with Reuse 3-7 3.7. Construction Quality 3-7 3.8. Integration 3-7 4. Construction Technologies 3-8 4.1. API Design and Use 3-8 4.2. Object-Oriented Runtime Issues 3-8 4.3. Parameterization and Generics 3-8 4.4. Assertions, Design by Contract, and Defensive Programming 3-8 4.5. Error Handling, Exception Handling, and Fault Tolerance 3-9 4.6. Executable Models 3-9 4.7. State-Based and Table-Driven Construction Techniques 3-9 4.8. Runtime Configuration and Internationalization 3-10 4.9. Grammar-Based Input Processing 3-10 4.10. Concurrency Primitives 3-10 4.11. Middleware 3-10 4.12. Construction Methods for Distributed Software 3-11 4.13. Constructing Heterogeneous Systems 3-11 4.14. Performance Analysis and Tuning 3-11 4.15. Platform Standards 3-11 4.16. Test-First Programming 3-11 5. Software Construction Tools 3-12 5.1. Development Environments 3-12 5.2. GUI Builders 3-12 5.3. Unit Testing Tools 3-12 5.4. Profiling, Performance Analysis, and Slicing Tools 3-12 Matrix of Topics vs. Reference Material 3-13