| |
| |
Preface | |
| |
| |
| |
Why Software Engineering? | |
| |
| |
| |
What Is Software Engineering? | |
| |
| |
| |
How Successful Have We Been? | |
| |
| |
| |
What Is Good Software? | |
| |
| |
| |
Who Does Software Engineering? | |
| |
| |
| |
A Systems Approach | |
| |
| |
| |
An Engineering Approach | |
| |
| |
| |
Members of the Development Team | |
| |
| |
| |
How Has Software Engineering Changed? | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for Your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Modeling the Process and Life Cycle | |
| |
| |
| |
The Meaning of Process | |
| |
| |
| |
Software Process Models | |
| |
| |
| |
Tools and Techniques for Process Modeling | |
| |
| |
| |
Practical Process Modeling | |
| |
| |
| |
Information System Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for Your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Planning and Managing the Project | |
| |
| |
| |
Tracking Progress | |
| |
| |
| |
Project Personnel | |
| |
| |
| |
Effort Estimation | |
| |
| |
| |
Risk Management | |
| |
| |
| |
The Project Plan | |
| |
| |
| |
Process Models and Project Management | |
| |
| |
| |
Information System Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for Your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Capturing the Requirements | |
| |
| |
| |
The Requirements Process | |
| |
| |
| |
Requirements Elicitation | |
| |
| |
| |
Types of Requirements | |
| |
| |
| |
Characteristics of Requirements | |
| |
| |
| |
Modeling Notations | |
| |
| |
| |
Requirements and Specification Languages | |
| |
| |
| |
Prototyping Requirements | |
| |
| |
| |
Requirements Documentation | |
| |
| |
| |
Validation and Verification | |
| |
| |
| |
Measuring Requirements | |
| |
| |
| |
Choosing a Specification Technique | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Designing the System | |
| |
| |
| |
What Is Design? | |
| |
| |
| |
Decomposition and Modularity | |
| |
| |
| |
Architectural Styles and Strategies | |
| |
| |
| |
Issues in Design Creation | |
| |
| |
| |
Characteristics of Good Design | |
| |
| |
| |
Techniques for Improving Design | |
| |
| |
| |
Design Evaluation and Validation | |
| |
| |
| |
Documenting the Design | |
| |
| |
| |
Information System Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for you | |
| |
| |
| |
What this Chapter Means for Your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Considering Objects | |
| |
| |
| |
What is OO? | |
| |
| |
| |
The OO Development Process | |
| |
| |
| |
Use Cases | |
| |
| |
| |
Representing OO: An Example Using UML | |
| |
| |
| |
OO System Design | |
| |
| |
| |
OO Program Design | |
| |
| |
| |
OO Measurement | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Writing the Programs | |
| |
| |
| |
Programming Standards and Procedures | |
| |
| |
| |
Programming Guidelines | |
| |
| |
| |
Documentation | |
| |
| |
| |
The Programming Process | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for Your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Testing the Programs | |
| |
| |
| |
Software Faults and Failures | |
| |
| |
| |
Testing Issues | |
| |
| |
| |
Unit Testing | |
| |
| |
| |
Integration Testing | |
| |
| |
| |
Testing Object-Oriented Systems | |
| |
| |
| |
Test Planning | |
| |
| |
| |
Automated Testing Tools | |
| |
| |
| |
When to Stop Testing | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for Your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Testing the System | |
| |
| |
| |
Principles of System Testing | |
| |
| |
| |
Function Testing | |
| |
| |
| |
Performance Testing | |
| |
| |
| |
Reliability, Availability, and Maintainability | |
| |
| |
| |
Acceptance Testing | |
| |
| |
| |
Installation Testing | |
| |
| |
| |
Automated System Testing | |
| |
| |
| |
Test Documentation | |
| |
| |
| |
Testing Safety-Critical Systems | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for Your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Delivering the System | |
| |
| |
| |
Training | |
| |
| |
| |
Documentation | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Maintaining the System | |
| |
| |
| |
The Changing System | |
| |
| |
| |
The Nature of Maintenance | |
| |
| |
| |
Maintenance Problems | |
| |
| |
| |
Measuring Maintenance Characteristics | |
| |
| |
| |
Maintenance Techniques and Tools | |
| |
| |
| |
Software Rejuvenation | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for Your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Evaluating Products, Processes, and Resources | |
| |
| |
| |
Approaches to Evaluation | |
| |
| |
| |
Selecting an Evaluation Technique | |
| |
| |
| |
Assessment vs. Prediction | |
| |
| |
| |
Evaluating Products | |
| |
| |
| |
Evaluating Processes | |
| |
| |
| |
Evaluating Resources | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means for You | |
| |
| |
| |
What this Chapter Means for Your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
Improving Predictions, Products, Processes, and Resources | |
| |
| |
| |
Improving Prediction | |
| |
| |
| |
Improving Products | |
| |
| |
| |
Improving Processes | |
| |
| |
| |
Improving Resources | |
| |
| |
| |
General Improvement Guidelines | |
| |
| |
| |
Information Systems Example | |
| |
| |
| |
Real-Time Example | |
| |
| |
| |
What this Chapter Means For You | |
| |
| |
| |
What this Chapter Means for your Development Team | |
| |
| |
| |
What this Chapter Means for Researchers | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
| |
The Future of Software Engineering | |
| |
| |
| |
How Have We Done? | |
| |
| |
| |
Technology Transfer | |
| |
| |
| |
Decision-Making in Software Engineering | |
| |
| |
| |
The Professionalization of Software Engineering: Licensing, Certification, and Ethics | |
| |
| |
| |
Term Project | |
| |
| |
| |
Key References | |
| |
| |
| |
Exercises | |
| |
| |
Annotated Bibliography | |
| |
| |
Index | |