Preface.
PART ONE INTRODUCTION TO SOFTWARE ENGINEERING
Chapter 1 The Scope of Software Engineering
Learning Objectives
1.1 Historical Aspects
1.2 Economic Aspects
1.3 Maintenance Aspects
1.4 Requirements, Analysis, and Design Aspects
1.5 Team Development Aspects
1.6 Why There Is No Planning Phase
1.7 Why There Is No Testing Phase
1.8 Why There Is No Documentation Phase
1.9 The Object-Oriented Paradigm
1.10 The Object-Oriented Paradigm in Perspective
1.11 Terminology
1.12 Ethical Issues
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 2 Software Life-Cycle Models
Learning Objectives
2.1 Software Development in Theory
2.2 Winburg Mini Case Study
2.3 Lessons of the Winburg Mini Case Study
2.4 Teal Tractors Mini Case Study
2.5 Iteration and Incrementation
2.6 Winburg Mini Case Study Revisited
2.7 Risks and Other Aspects of Iteration and Incrementation
2.8 Managing Iteration and Incrementation
2.9 Other Life-Cycle Models
2.10 Comparison of Life-Cycle Models
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 3 The Software Process
Learning Objectives
3.1 The Unified Process
3.2 Iteration and Incrementation within the Object-Oriented Paradigm
3.3 The Requirements Workfiow
3.4 The Analysis Workflow
3.5 The Design Workflow
3.6 The Implementation Workflow
3.7 The Test Workflow
3.8 Postdelivery Maintenance
3.9 Retirement
3.10 The Phases of the Unified Process
3.11 One- versus Two-Dimensional Life-Cycle Models
3.12 Improving the Software Process
3.13 Capability Maturity Models
3.14 Other Software Process Improvement Initiatives
3.15 Costs and Benefits of Software Process Improvement
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 4 Teams 104
Learning Objectives
4.1 Team Organization
4.2 Democratic Team Approach
4.3 Classical Chief Programmer Team Approach
4.4 Beyond Chief Programmer and Democratic Teams
4.5 Synchronize-and-Stabilize Teams
4.6 Teams for Agile Processes
4.7 Open-Source Programming Teams
4.8 People Capability Maturity Model
4.9 Choosing an Appropriate Team
Organization
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 5 The Tools of the Trade
Learning Objectives
5.1 Stepwise Refinement
5.2 Cost-Benefit Analysis
5.3 Software Metrics
5.4 CASE
5.5 Taxonomy of CASE
5.6 Scope of CASE
5.7 Software Versions
5.8 Configuration Control
5.9 Build Tools
5.10 Productivity Gains with CASE Technology
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 6 Testing
Learning Objectives
6.1 Quality Issues
6.2 Non-Execution-Based Testing
6.5 Execution-Based Testing
6.4 What Should Be Tested?
6.5 Testing versus Correcmess Proofs
6.6 Who Should Perform Execution-Based Testing?
6.7 When Testing Stops
Chapter 7 From Modules to Objects
Learning Objectives
7.1 What Is a Module?
7.2 Cohesion
7.3 Coupling
7.4 Data Encapsulation
7.5 Abstract Data Types
7.6 Information Hiding
7.7 Objects
7.8 Inheritance, Polymorphism, and Dynamic Binding
7.9 The Object-Oriented Paradigm
Chapter 8 Reusability and Portability
Learning Objectives
8.1 Reuse Concepts
8.2 Impediments to Reuse
8.3 Reuse Case Studies
8.4 Objects anct Reuse
8.5 Reuse during Design
8.6 Reuse and Postdelivery Maintenance
8.7 Portability..
8.8 Why Portability?
8.9 Techniques for Achieving Portability
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 9 Planning and Estimating
Learning Objectives
9.1 Planning and the Software Process
9.2 Estimating Duration and Cost
9.3 Components of a Software Project Management Plan
9.4 Software Project Management Plan Framework
9.5 IEEE Software Project Management Plan
9.6 Planning Testing
9.7 Planning Object-Oriented Projects
9.8 Training Requirements
9.9 Documentation Standards
9.10 CASE Tools for Planning and Estimating
9.11 Testing the Software Project Management Plan
Chapter Review
For Further Reading
Key Terms
Problems
References
PART TWO THE WORKFLOWS OF THE SOFTWARE LIFE CYCLE
Chapter 10 Requirements
Learning Objectives
10.1 Determining What the Client Needs
10.2 Overview of the Requirements Workflow
10.5 Understanding the Domain
10.4 The Business Model
10.5 Initial Requirements
10.6 Initial Understanding of the Domain: The MSG Foundation Case Study
10.7 Initial Business Model: The MSG Foundation Case Study
10.8 Initial Requirements: The MSG Foundation Case Study
10.9 Continuing the Requirements Workflow: The MSG Foundation Case Study
10.10 Revising the Requirements: The MSG Foundation Case Study
10.11 The Test Workflow: The MSG Foundation Case Study
10.12 The Classical Requirements Phase
10.13 Rapid Prototyping
10.14 Human Factors
10.15 Reusing the Rapid Prototype
10.16 CASE Tools for the Requirements Workfiow
10.17 Metrics for the Requirements Workflow
10.18 Challenges of the Requirements Workflow
Chapter Review
For Further Reading
Key Terms
Case Study Key Terms
Problems
References
Chapter 11 Classical Analysis
Learning Objectives
11.1 The Specification Document
11.2 Informal Specifications
11.5 Structured Systems Analysis
11.4 Structured Systems Analysis: The MSG Foundation Case Study
11.5 Other Semiformal Techniques
11.6 Entity-Relationship Modeling
11.7 Finite State Machines
11.8 Petri Nets
11.9 Z 358
11.10 Other Formal Techniques
11.11 Comparison of Classical Analysis Techniques
11.12 Testing during Classical Analysis
11.13 CASE Tools for Classical Analysis
11.14 Metrics for Classical Analysis
11.15 Software Project Management Plan: The MSG Foundation Case Study
11.16 Challenges of Classical Analysis
Chapter Review
For Further Reading
Key Terms
Case Study Key Terms
Problems
References
Chapter 12 Object-Oriented Analysis
Learning Objectives
12.1 The Analysis Workflow
12.2 Extracting the Entity Classes
12.3 Object-Oriented Analysis: The Elevator Problem Case Study
12.4 Functional Modeling: The Elevator Problem Case Study
12.5 Entity Class Modeling: The Elevator Problem Case Study
12.6 Dynamic Modeling: The Elevator Problem Case Study
12.7 The Test Workflow: Object-Oriented Analysis
12.8 Extracting the Boundary and Control Classes
12.9 The Initial Functional Model: The MSG Foundation Case Study
12.10 The Initial Class Diagram: The MSG Foundation Case Study
12.11 The Initial Dynamic Model: The MSG Foundation Case Study
12.12 Revising the Entity Classes: The MSG Foundation Case Study
12.13 Extracting the Boundary Classes: The MSG Foundation Case Study
12.14 Extracting the Control Classes: The MSG Foundation Case Study
12.15 Use-Case Realization: The MSG Foundation Case Study
12.16 Incrementing the Class Diagram: The MSG Foundation Case Study
12.17 The Test Workfiow: The MSG Foundation Case Study
12.18 The Specification Document in the Unified Process
12.19 More on Actors and Use Cases
12.20 CASE Tools for the Object-Oriented Analysis Workflow
12.21 Challenges of the Object-Oriented Analysis Workflow
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 13 Design
Learning Objectives
13.1 Design and Abstraction
13.2 Operation-Oriented Design
13.3 Data Flow Analysis
13.4 Transaction Analysis
13.5 Data-Oriented Design
13.6 Object-Oriented Design
13.7 Object-Oriented Design: The Elevator Problem Case Study
13.8 Object-Oriented Design: The MSG Foundation Case Study
13.9 The Design Workfiow
13.10 The Test Workfiow: Design
13.11 The Test Workflow: The MSG Foundation Case Study
13.12 Formal Techniques for Detailed Design
13.13 Real-Time Design Techniques
13.14 CASE Tools for Design
13.15 Metrics for Design
13.16 Challenges of the Design Workflow
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 14 implementation
Learning Objectives
14.1 Choice of Programming Language
14.2 Fourth-Generation Languages
14.3 Good Programming Practice
14.4 Coding Standards
14.5 Code Reuse
14.6 Integration
14.7 The Implementation Worlfflow
14.8 The Implementation Workfiow: The MSG Foundation Case Study
14.9 The Test Worldtow: Implementation
14.10 Test Case Selection
14.11 Black-Box Unit-Testing Techniques
14.12 Black-Box Test Cases: The MSG Foundation Case Study
14.13 Glass-Box Unit-Testing Techniques
14.14 Code Walkthroughs and Inspections
14.15 Comparison of Unit-Testing Techniques
14.16 Cleanroom
14.17 Potential Problems When Testing Objects
14.18 Management Aspects of Unit Testing
14.19 When to Rewrite Rather than Debug a Code Artifact
14.20 Integration Testing
14.21 Product Testing
14.22 Acceptance Testing
14.23 The Test Workflow: The MSG Foundation Case Study
14.24 CASE Tools for Implementation
14.25 CASE Tools for the Test Workflow
14.26 Metrics for the Implementation Workflow
14.27 Challenges of the Implementation Workflow
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 15 Postdelivery Maintenance
Learning Objectives
15.1 Development and Maintenance
15.2 Why Postdelivery Maintenance Is Necessary
15.3 What Is Required of Post&livery Maintenance Programmers?
15.4 Postdelivery Maintenance Mini Case Study
15.5 Management of Postdelivery Maintenance
15.6 Maintenance of Object-Oriented Software
15.7 Postdelivery Maintenance Skills versus Development Skills
15.8 Reverse Engineering
15.9 Testing during Post&livery Maintenance
15.10 CASE Tools for Postdelivery Maintenance
15.11 Metrics for Postdelivery Maintenance
15.12 Post&livery Maintenance: The MSG Foundation Case Study
15.13 Challenges of Postdelivery Maintenance
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 16 More on UML
Learning Objectives
16.1 UML Is Not a Methodology
16.2 Class Diagrams
16.3 Notes
16.4 Use-Case Diagrams
16.5 Stereotypes
16.6 Interaction Diagrams
16.7 Statecharts
16.8 Activity Diagrams
16.9 Packages 549
16.10 Component Diagrams
16.11 Deployment Diagrams
16.12 Review of UML Diagrams
16.13 UML and Iteration
Chapter Review
For Further Reading
Key Terms
Problems
References
Bibliography
Appendix A Term Project: Osric's Office Appliances and Decor
Appendix B Software Engineering Resources
Appendix C Requirements Workfiow' The MSG Foundation Case Study
Appendix D Structured Systems Analysis: The MSG Foundation Case Study
Appendix E Analysis Worldlow: The MSG Foundation Case Study
Appendix F Software Project Management Plan: The MSG Foundation Case Study
Appendix G Design Workfiow: The MSG Foundation Case Study
Appendix H Implementation Workfiow: The MSG Foundation Case Study (C++ Version)
Appendix I Implementation Workfiow: The MSG Foundation Case Study (Java Version)
Appendix J Test Workfiow: The MSG Foundation Case Study
Author Index
Subject Index