Part One: The Product and the Process
Chapter 1 The Product
Chapter 2 The Process
Part Two: Managing Software Projects
Chapter 3 Project Management Concepts
Chapter 4 Software Process and Project Metrics
Chapter 5 Software Project Planning
Chapter 6 Risk Analysis and Management
Chapter 7 Project Scheduling and Tracking
Chapter 8 Software Quality Assurance
Chapter 9 Software Configuration Management
Part Three: Conventional Methods for Software Engineering
Chapter 10 System Engineering
Chapter 11 Analysis Concepts and Principles
Chapter 12 Analysis Modeling
Chapter 13 Design Concepts and Principles
Chapter 14 Architectural Design
Chapter 15 User Interface Design
Chapter 16 Component-Level Design
Chapter 17 Software Testing Techniques
Chapter 18 Software Testing Strategies
Chapter 19 Technical Metrics for Software
Part Four: Object Oriented Software Engineering
Chapter 20 Object-Oriented Concepts and Principles
Chapter 21 Object-Oriented Analysis
Chapter 22 Object-Oriented Design
Chapter 23 Object-Oriented Testing
Chapter 24 Technical Metrics for Object-Oriented Systems
Part Five: Advanced Topics in Software Engineering
Chapter 25 Formal Methods
Chapter 26 Cleanroom Software Engineering
Chapter 27 Component-Based Software Engineering
Chapter 28 Client/Server Software Engineering
Chapter 29 Web Engineering
Chapter 30 Reengineering
Chapter 31 Computer-Aided Software Engineering
Chapter 32 The Road Ahead
A more detailed view
This table of contents lists only major section headings. For a more detailed
TOC, see Software Engineering: A Practitioner's Approach, 5/e. Each chapter
concludes with references, problems and points to ponder, and further readings
and information
Part One: The Product and the Process
Chapter 1
The Product
- 1.1 The Evolving Role of Software
- 1.2 Software
- 1.3 Software: A Crisis on the Horizon
- 1.4 Software Myths
- 1.5 Summary
Chapter 2
The Process
- 2.1 Software EngineeringA Layered Technology
- 2.2 The Software Process
- 2.3 Software Process Models
- 2.4 The Linear Sequential Model
- 2.5 The Prototyping Model
- 2.6 The RAD Model
- 2.7 Evolutionary Software Process Models
- 2.8 Component-Based Development
- 2.9 The Formal Methods Model
- 2.10 Fourth Generation Techniques
- 2.11 Process Technology
- 2.12 Product and Process
- 2.13 Summary
Part TwoManaging Software Projects
Chapter 3
Project Management Concepts
- 3.1 The Management Spectrum
- 3.2 People
- 3.3 The Product
- 3.4 The Process
- 3.5 The Project
- 3.6 The W5HH Principle
- 3.7 Critical Practices
- 3.8 Summary
Chapter 4
Software Process and Project Metrics
- 4.1 Measures, Metrics, and Indicators
- 4.2 Metrics in the Process and Project Domains
- 4.3 Software Measurement
- 4.4 Reconciling Different Metrics Approaches
- 4.5 Metrics for Software Quality
- 4.6 Integrating Metrics within the Software Engineering Process
- 4.7 Managing VariationStatistical Quality Control
- 4.8 Metrics for Small Organizations
- 4.9 Establishing a Software Metrics Program
- 4.10 Summary
Chapter 5
Software Project Planning
- 5.1 Observations on Estimating
- 5.2 Project Planning Objectives
- 5.3 Software Scope
- 5.4 Resources
- 5.5 Software Project Estimation
- 5.6 Decomposition Techniques
- 5.7 Empirical Estimation Models
- 5.8 The Make-Buy Decision
- 5.9 Automated Estimation Tools
- 5.10 Summary
Chapter 6
Risk analysis and Management
- 6.1 Reactive vs. Proactive Risk Strategies
- 6.2 Software Risks
- 6.3 Risk Identification
- 6.4 Risk Projection
- 6.5 Risk Refinement
- 6.6 Risk Mitigation, Monitoring and Management
- 6.7 Safety Risks and Hazards
- 6.8 The RMMM Plan
- 6.9 Summary
Chapter 7
Project Scheduling and Tracking
- 7.1 Basic Concepts
- 7.2 The Relationship Between People and Effort
- 7.3 Defining a Task Set for the Software Project
- 7.4 Selecting Software Engineering Tasks
- 7.5 Refinement of Major Tasks
- 7.6 Defining a Task Network
- 7.7 Scheduling
- 7.8 Earned Value Analysis
- 7.9 Error Tracking
- 7.10 The Project Plan
- 7.11 Summary
Chapter 8
Software Quality Assurance
- 8.1 Quality Concepts
- 8.2 The Quality Movement
- 8.3 Software Quality Assurance
- 8.4 Software Reviews
- 8.5 Formal Technical Reviews
- 8.6 Formal Approaches to SQA
- 8.7 Statistical Quality Assurance
- 8.8 Software Reliability
- 8.9 Mistake Proofing for Software
- 8.10 The ISO 9000 Quality Standards
- 8.11 The SQA Plan
- 8.12 Summary
Chapter 9 Software Configuration Management
- 9.1 Software Configuration Management
- 9.2 The SCM Process
- 9.3 Identification of Objects in the Software Configuration
- 9.4 Version Control
- 9.5 Change Control
- 9.6 Configuration Audit
- 9.7 Status Reporting
- 9.8 SCM Standards
- 9.9 Summary
Part ThreeConventional Methods for Software Engineering
Chapter 10
System Engineering
- 10.1 Computer-Based Systems
- 10.2 The System Engineering Hierarchy
- 10.3 Business Process Engineering: An Overview
- 10.4 Product Engineering: An Overview
- 10.5 Requirements Engineering
- 10.6 System Modeling
- 10.7 Summary
Chapter 11
Analysis Concepts and Principles
- 11.1 Requirements Analysis
- 11.2 Requirements Elicitation for Software
- 11.3 Analysis Principles
- 11.4 Software Prototyping
- 11.5 Specification
- 11.6 Specification Review
- 11.7 Summary
Chapter 12
Analysis Modeling
- 12.1 A Brief History
- 12.2 The Elements of the Analysis Model
- 12.3 Data Modeling
- 12.4 Functional Modeling and Information Flow
- 12.5 Behavioral Modeling
- 12.6 The Mechanics of Structured Analysis
- 12.7 The Data Dictionary
- 12.8 An Overview of Other Classical Analysis Methods
- 12.9 Summary
Chapter 13
Design Concepts and Principles
- 13.1 Software Design and Software Engineering
- 13.2 The Design Process
- 13.3 Design Principles
- 13.4 Design Concepts
- 13.5 Effective Modular Design
- 13.6 Design Heuristics for Effective Modularity
- 13.7 The Design Model
- 13.8 Design Documentation
- 13.9 Summary
Chapter 14
Architectural Design
- 14.1 Software Architecture
- 14.2 Data Design
- 14.3 Architectural Styles
- 14.4 Analyzing Alternative Architectural Designs
- 14.5 Mapping Requirements into a Software Architecture
- 14.6 Transform Mapping
- 14.7 Transaction Mapping
- 14.8 Refining the Architectural Design
- 14.9 Summary
Chapter 15
User Interface Design
- 15.1 The Golden Rules
- 15.2 User Interface Design
- 15.3 Task Analysis and Modeling
- 15.4 Interface Design Activities
- 15.5 Implementation Tools
- 15.6 Design Evaluation
- 15.7 Summary
Chapter 16
Component-Level Design
- 16.1 Structured Programming
- 16.2 Comparison of Design Notation
- 16.3 Summary
Chapter 17
Software Testing Techniques
- 17.1 Software Testing Fundamentals
- 17.2 Test Case Design
- 17.3 White Box Testing
- 17.4 Basis Path Testing
- 17.5 Control Structure Testing
- 17.6 Black-Box Testing
- 17.7 Testing for Specialized Environments, Architectures, and Applications
- 17.8 Summary
Chapter 18
Software Testing Strategies
- 18.1 A Strategic Approach to Software Testing
- 18.2 Strategic Issues
- 18.3 Unit Testing
- 18.4 Integration Testing
- 18.5 Validation Testing
- 18.6 System Testing
- 18.7 The Art of Debugging
- 18.8 Summary
Chapter 19
Technical Metrics for Software
- 19.1 Software Quality
- 19.2 A Framework for Technical Software Metrics
- 19.3 Metrics for the Analysis Model
- 19.4 Metrics for the Design Model
- 19.5 Metrics for Source Code
- 19.6 Metrics for Testing
- 19.7 Metrics for Maintenance
- 19.8 Summary
Part FourObject-Oriented Software Engineering
Chapter 20
Object-Oriented Concepts and Principles
- 20.1 The Object-Oriented Paradigm
- 20.2 Object-Oriented Concepts
- 20.3 Identifying the Elements of an Object Model
- 20.4 Management of Object-Oriented Software Projects
- 20.5 Summary
Chapter 21
Object-Oriented Analysis
- 21.1 Object-Oriented Analysis
- 21.2 Domain Analysis
- 21.3 Generic Components of the OO Analysis Model
- 21.4 The OOA Process
- 21.5 The Object-Relationship Model
- 21.6 The Object-Behavior Model
- 21.7 Summary
Chapter 22
Object-Oriented Design
- 22.1 Design for Object-Oriented Systems
- 22.2 The System Design Process
- 22.3 The Object Design Process
- 22.4 Design Patterns
- 22.5 Object-Oriented Programming
- 22.6 Summary
Chapter 23
Object-Oriented Testing
- 23.1 Broadening the View of Testing
- 23.2 Testing OOA and OOD Models
- 23.3 Object-Oriented Testing Strategies
- 23.4 Test Case Design for OO Software
- 23.5 Testing Methods Applicable at the Class
Level
- 23.6 Inter-Class Test Case Design
- 23.7 Summary
Chapter 24
Technical Metrics for Object-Oriented Systems
- 24.1 The Intent of Object-Oriented Metrics
- 24.2 The Distinguishing Characteristics of Object-Oriented Metrics
- 24.3 Metrics for the OO Design Model
- 24.4 Class-Oriented Metrics
- 24.5 Operation-Oriented Metrics
- 24.6 Metrics for Object-Oriented Testing
- 24.7 Metrics for Object-Oriented Projects
- 24.8 Summary
Part FiveAdvanced Topics in Software Engineering
Chapter 25
Formal Methods
- 25.1 Basic Concepts
- 25.2 Mathematical Preliminaries
- 25.3 Applying Mathematical Notation for Formal Specification
- 25.4 Formal Specification Languages
- 25.5 Using Z to Represent an Example Software Component
- 25.6 The Ten Commandments of Formal Methods
- 25.7 Formal MethodsThe Road Ahead
- 25.8 Summary
Chapter 26
Cleanroom Software Engineering
- 26.1 The Cleanroom Approach
- 26.2 Functional Specification
- 26.3 Design Refinement and Verification
- 26.4 Cleanroom Testing
- 26.5 Summary
Chapter 27
Component-Based Software Engineering
- 27.1 Engineering of Component-Based Systems
- 27.2 The CBSE Process
- 27.3 Domain Engineering
- 27.4 Component-Based Development
- 27.5 Classifying and Retrieving Components
- 27.6 Economics of CBSE
- 27.7 Summary
Chapter 28
Client-Server Software Engineering
- 28.1 The Structure of Client/Server Systems
- 28.2 Software Engineering for C/S Systems
- 28.3 Analysis Modeling Issues
- 28.4 Design for C/S Systems
- 28.5 Testing Issues
- 28.6 Summary
Chapter 29
Web Engineering
- 29.1 The Attributes of Web-Based Applications
- 29.2 The WebE Process
- 29.3 A Framework for WebE
- 29.4 Formulating/Analyzing Web-Based Systems
- 29.5 Design for Web-Based Applications
- 29.6 Testing Web-Based Applications
- 29.7 Management Issues
- 29.8 Summary
Chapter 30
Reengineering
- 30.1 Business Process Reengineering
- 30.2 Software Reengineering
- 30.3 Reverse Engineering
- 30.4 Restructuring
- 30.5 Forward Engineering
- 30.6 The Economics of Reengineering
- 30.7 Summary
Chapter 31
Computer-Aided Software Engineering
- 31.1 What is CASE?
- 31.2 Building Blocks for CASE
- 31.3 A Taxonomy of CASE Tools
- 31.4 Integrated CASE Environments
- 31.5 The Integration Architecture
- 31.6 The CASE Repository
- 31.7 Summary
Chapter 32
The Road Ahead
- 32.1 The Importance of SoftwareRevisited
- 32.2 The Scope of Change
- 32.3 People and the Way They Build Systems
- 32.4 The "New" Software Engineering Process
- 32.5 New Modes for Representing Information
- 32.6 Technology as a Driver
- 32.7 A Concluding Comment