1) The Nature of Software
2) Software Engineering
Part One - The Software Process
3) Software Process Structure
4) Process Models
5) Agile Development
6) Human Aspects of Software Engineering
Part Two - Modeling
7) Principles That Guide Practice
8) Understanding Requirements
9) Requirements Modeling: Scenario-Based Methods
10) Requirements Modeling: Class-Based Methods
11) Requirements Modeling: Behavior, Patterns, and Web/Mobile Apps
12) Design Concepts
13) Architectural Design
14) Component-Level Design
15) User Interface Design
16) Pattern-Based Design
17) WebApp Design
18) MobileApp Design
Part Three - Quality Management
19) Quality Concepts
20) Review Techniques
21) Software Quality Assurance
22) Software Testing Strategies
23) Testing Conventional Applications
24) Testing Object-Oriented Applications
25) Testing Web Applications
26) Testing MobileApps
27) Security Engineering
28) Formal Modeling and Verification
29) Software Configuration Management
30) Product Metrics
Part Four - Managing Software Projects
31) Project Management Concepts
32) Process and Project Metrics
33) Estimation for Software Projects
34) Project Scheduling
35) Risk Management
36) Maintenance and Reengineering
Part Five - Advanced Topics
37) Software Process Improvement
38) Emerging Trends in Software Engineering
39) Concluding Comments
Appendix I - An Introduction to UML
Appendix II - Object-Oriented Concepts
Appendix III - Formal Methods