Preface
1 Why Software Engineering?
1.1 What Is Software Engineering?
1.2 How Successful Have We Been?
1.3 What Is Good Software?
1.4 Who Does Software Engineering?
1.5 A Systems Approach
1.6 An Engineering Approach
1.7 Members of the Development Team
1.8 How Has Software Engineering Changed?
1.9 Information Systems Example
1.10 Real-Time Example
1.11 What This Chapter Means for You
1.12 What This Chapter Means for Your Development Team
1.13 What This Chapter Means for Researchers
1.14 Term Project
1.15 Key References
1.16 Exercises
2 Modeling the Process and Life Cycle
2.1 The Meaning of Process
2.2 Software Process Models
2.3 Tools and Techniques for Process Modeling
2.4 Practical Process Modeling
2.5 Information System Example
2.6 Real-Time Example
2.7 What This Chapter Means for You
2.8 What This Chapter Means for Your Development Team
2.9 What This Chapter Means for Researchers
2.10 Term Project
2.11 Key References
2.12 Exercises
3 Planning and Managing the Project
3.1 Tracking Progress
3.2 Project Personnel
3.3 Effort Estimation
3.4 Risk Management
3.5 the Project Plan
3.6 Process Models and Project Management
3.7 Information System Example
3.8 Real-Time Example
3.9 What This Chapter Means for You
3.10 What This Chapter Means for Your Development Team
3.11 What This Chapter Means for Researchers
3.12 Term Project
3.13 Key References
3.14 Exercises
4 Capturing the Requirements
4.1 The Requirements Process
4.2 Types of Requirements
4.3 Characteristics of Requirements
4.4 How to Express Requirements
4.5 Additional Requirements Notations
4.6 Prototyping Requirements
4.7 Requirements Documentation
4.8 Participants in the Requirements Process
4.9 Requirements Validation
4.10 Measuring Requirements
4.11 Choosing a Requirements Specification Technique
4.12 Information Systems Example
4.13 Real-Time Example
4.14 What This Chapter Means for You
4.15 What This Chapter Means for Your Development Team
4.16 What This Chapter Means for Researchers
4.17 Term Project
4.18 Key References
4.19 Exercises
5 Designing the System
6 Concerning Objects
7 Writing the Programs
8 Testing the Programs
9 Testing the System
10 Delivering the System
11 Maintaining the System
12 Evaluating Products,Processes,and Resources
13 Improving Predictions,Products,Processes,and Resourees
14 The Future of Software Engineering
Annotated Bibliography
Index