1 Introduction --;1.1 The Software Problem --;1.2 Software Engineering Problem --;1.3 The Software Engineering Approach --;1.4 Summary --;1.5 Overview of the Book --;Exercises --;2 Software Processes --;2.1 Software Process --;2.2 Characteristics of a Software Process --;2.3 Software Development Process --;2.4 Project Management Process --;2.5 Software Configuration Management Process --;2.6 Process Management Process --;2.7 Summary --;Exercises --;3 Software Requirements Analysis and Specification --;3.1 Software Requirements --;3.2 Problem Analysis --;3.3.1 Characteristics of an SRS --;3.4 Validation --;3.5 Metrics --;3.6 Summary --;Exercises --;Case Study --;4 Planning a Software Project --;4.1 Cost Estimation --;4.2 Project Scheduling --;4.3 Staffing and Personnel Planning --;4.4 Software Configuration Management Plans --;4.5 Quality Assurance Plans --;4.6 Project Monitoring Plans --;4.7 Risk Management --;4.8 Summary --;Exercises --;Case Study Plan --;5 Function-Oriented Design --;5.1 Design Principles --;5.2 Module-Level Concepts --;5.3 Design Notation and Specification --;5.4 Structured Design Methodology --;5.5 Verification --;5.6 Metrics --;5.7 Summary --;Exercises --;Case Study --;6 Object-Oriented Design --;6.1 OO Analysis and OO Design --;6.2 Concepts --;6.3 Design Notation and Specification --;6.4 Design Methodology --;6.5 Metrics --;6.6 Summary --;Exercises --;Case Study --;7 Detailed Design --;7.1 Module Specifications --;7.2 Detailed Design --;7.3 Verification --;7.4 Metrics --;7.5 Summary --;Exercises --;8 Coding --;8.1 Programming Practice --;8.2 Verification --;8.3 Metrics --;8.4 Summary --;Exercises --;Case Study --;9 Testing --;9.1 Testing Fundamentals --;9.2 Functional Testing --;9.3 Structural Testing --;9.4 Testing Object-Oriented Programs --;9.5 Testing Process --;9.6 Metrics --;Reliability Estimation --;9.7 Summary --;Exercises --;Case Study --;References.
This undergraduate-level textbook provides a first course in software engineering. It covers every phase of software development from requirements through to testing and uses a running case study as a project to illustrate the topics discussed. This new edition introduces software processes and object oriented design.