SPECIAL OFFER
Use code BACKTOLEARN during checkout to save 50% on books, eBooks, & videos. Shop now.
Register your product to gain access to bonus material or receive a coupon.
• Extensive coverage of object-oriented development, a programming perspective being implemented by many companies.
• Discussion of key issues in software engineering: risk management, technology transfer, and the role of decision-making in software engineering.
• Integrated treatment of concepts such as reuse, risk management, and quality engineering — Embeds discussion of these topics in the software engineering activities that are affected by them, instead of treating them as separate issues.
• Discussion of measurement issues as an integral part of software engineering strategy, rather than as a separate discipline.
• Examination of legal and ethical issues in software engineering — Poses thought-provoking questions at the end of each chapter.
• The Companion Website http://wps.prenhall.com/esm_pfleeger_softengtp_4/ provides additional materials to be used with the text in support of software engineering classes and other readers wanting to expand their knowledge of software engineering. Each section corresponds to a chapter of the book. This site also links to additional resources, real world examples, and articles related to many topics in the book. It provides resources for both students and instructors.
KEY BENEFIT: This introduction to software engineering and practice addresses both procedural and object-oriented development. KEY TOPICS: Is thoroughly updated to reflect significant changes in software engineering, including modeling and agile methods. Emphasizes essential role of modeling design in software engineering. Applies concepts consistently to two common examples — a typical information system and a real-time system. Combines theory with real, practical applications by providing an abundance of case studies and examples from the current literature. MARKET: A useful reference for software engineers.
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 Requirements Elicitation
4.3 Types of Requirements
4.4 Characteristics of Requirements
4.5 Modeling Notations
4.6 Requirements and Specification Languages
4.7 Prototyping Requirements
4.8 Requirements Documentation
4.9 Validation and Verification
4.10 Measuring Requirements
4.11 Choosing a Specification Technique
4.12 Information Systems Example
4.13 Real-Time Example
4.14 Term Project
4.15 Key References
4.16 Exercises
5 Designing the Architecture
5.1 The Design Process
5.2 Decomposition and Views
5.3 Modeling Architectures
5.4 Architectural Styles and Strategies
5.5 Achieving Quality Attributes
5.6 Collaborative Design
5.7 Architecture Evaluation and Refinement
5.8 Documenting Software Architectures
5.9 Architecture Design Review
5.10 Software Product Lines
5.11 Information System Example
5.12 Real-Time Example
5.13 What this Chapter Means for you
5.14 What this Chapter Means for Your Development Team
5.15 What this Chapter Means for Researchers
5.16 Term Project
5.17 Key References
5.18 Exercises
6 Designing the Modules
6.1 Design Methodology
6.2 Design Principles
6.3 Object-Oriented Design
6.4 Representing Object-Oriented Designs in the UML
6.5 Object-Oriented Design Patterns
6.6 Other Design Considerations
6.7 Object-Oriented Measurement
6.8 Design Documentation
6.9 Information Systems Example
6.10 Real-Time Example
6.11 What this Chapter Means for You
6.12 What this Chapter Means for your Development Team
6.13 What this Chapter Means for Researchers
6.14 Term Project
6.15 Key References
6.16 Exercises
7 Writing the Programs
7.1 Programming Standards and Procedures
7.2 Programming Guidelines
7.3 Documentation
7.4 The Programming Process
7.5 Information Systems Example
7.6 Real-Time Example
7.7 What this Chapter Means for You
7.8 What this Chapter Means for Your Development Team
7.9 What this Chapter Means for Researchers
7.10 Term Project
7.11 Key References
7.12 Exercises
8 Testing the Programs
8.1 Software Faults and Failures
8.2 Testing Issues
8.3 Unit Testing
8.4 Integration Testing
8.5 Testing Object-Oriented Systems
8.6 Test Planning
8.7 Automated Testing Tools
8.8 When to Stop Testing
8.9 Information Systems Example
8.10 Real-Time Example
8.11 What this Chapter Means for You
8.12 What this Chapter Means for Your Development Team
8.13 What this Chapter Means for Researchers
8.14 Term Project
8.15 Key References
8.16 Exercises
9 Testing the System
9.1 Principles of System Testing
9.2 Function Testing
9.3 Performance Testing
9.4 Reliability, Availability, and Maintainability
9.5 Acceptance Testing
9.6 Installation Testing
9.7 Automated System Testing
9.8 Test Documentation
9.9 Testing Safety-Critical Systems
9.10 Information Systems Example
9.11 Real-Time Example
9.12 What this Chapter Means for You
9.13 What this Chapter Means for Your Development Team
9.14 What this Chapter Means for Researchers
9.15 Term Project
9.16 Key References
9.17 Exercises
10 Delivering the System
10.1 Training
10.2 Documentation
10.3 Information Systems Example
10.4 Real-Time Example
10.5 What this Chapter Means for You
10.6 What this Chapter Means for your Development Team
10.7 What this Chapter Means for Researchers
10.8 Term Project
10.9 Key References
10.10 Exercises
11 Maintaining the System
11.1 The Changing System
11.2 The Nature of Maintenance
11.3 Maintenance Problems
11.4 Measuring Maintenance Characteristics
11.5 Maintenance Techniques and Tools
11.6 Software Rejuvenation
11.7 Information Systems Example
11.8 Real-Time Example
11.9 What this Chapter Means for You
11.10 What this Chapter Means for Your Development Team
11.11 What this Chapter Means for Researchers
11.12 Term Project
11.13 Key References
11.14 Exercises
12 Evaluating Products, Processes, and Resources
12.1 Approaches to Evaluation
12.2 Selecting an Evaluation Technique
12.3 Assessment vs. Prediction
12.4 Evaluating Products
12.5 Evaluating Processes
12.6 Evaluating Resources
12.7 Information Systems Example
12.8 Real-Time Example
12.9 What this Chapter Means for You
12.10 What this Chapter Means for Your Development Team
12.11 What this Chapter Means for Researchers
12.12 Term Project
12.13 Key References
12.14 Exercises
13 Improving Predictions, Products, Processes, and Resources
13.1 Improving Prediction
13.2 Improving Products
13.3 Improving Processes
13.4 Improving Resources
13.5 General Improvement Guidelines
13.6 Information Systems Example
13.7 Real-Time Example
13.8 What this Chapter Means For You
13.9 What this Chapter Means for your Development Team
13.10 What this Chapter Means for Researchers
13.11 Term Project
13.12 Key References
13.13 Exercises
14 The Future of Software Engineering
14.1 How Have We Done?
14.2 Technology Transfer
14.3 Decision-Making in Software Engineering
14.4 The Professionalization of Software Engineering: Licensing, Certification, and Ethics
14.5 Term Project
14.6 Key References
14.7 Exercises
Annotated Bibliography
Index