preface iv
chapter 1 the scope of software engineering
learning objectives
1.1 historical aspects
1.2 economic aspects
1.3 maintenance aspects
1.3.1 classical and modern views of maintenance
1.3.2 the importance of postdelivery maintenance
1.4 requirements, analysis, and design aspects
1.5 team development aspects
1.6 why there is no planning phase
1.7 why there is no testing phase
1.8 why there is no documentation phase
1.9 the object-oriented paradigm
1.10 the object-oriented paradigm in perspective
1.11 terminology
1.12 ethical issues
chapter review
for further reading
key terms
problems
references
part a software engineering concepts
chapter 2 software life-cycle models
learning objectives
2.1 software development in theory
2.2 winburg mini case study
2.3 lessons of the winburg mini case study
2.4 teal tractors mini case study
2.5 iteration and incrementation
2.6 winburg mini case study revisited
2.7 risks and other aspects of iteration and incrementation
2.8 managing iteration and incrementation
2.9 other life-cycle models
2.9.1 code-and-fix life-cycle model
2.9.2 waterfall life-cycle model
2.9.3 rapid-prototyping life-cycle model
2.9.4 open-source life-cycle model
2.9.5 agile processes
2.9.6 synchronize-and-stabilize life-cycle model
2.9.7 spiral life-cycle model
2.10 comparison of life-cycle models
chapter review
for further reading
key terms
problems
references
chapter 3 the software process
chapter 4 teams
chapter 5 the tools of the trade
chapter 6 testing
chapter 7 from modules to objects
chapter 8 reusability and portability
chapter 9 planning and estimating
chapter 10 key material from part a
chapter 11 requirements
chapter 12 classical analysis
chapter 13 object-oriented analysis
chapter 14 design
chapter 15 implementation
chapter 16 postdelivery maintenance
chapter 17 more on uml
chapter 18 emerging technologies
bibliography
appendix
author index
subject index