Slides adapted from the slides for the book "Software Engineering: The Current Practice" by Václav Rajlich © 2012 by Václav Rajlich
Accidental difficulties
Essential difficulties
Programs are among the most complex systems ever created
Software is abstract
Software is easy to change
Large systems include more than software, e.g., hardware, users, domain
People understand linear or semi-linear systems
Paradigm: "Coherent tradition of scientific research"
Anomaly: an important fact that directly contradicts the old paradigm
Discontinuity in the development of the discipline (i.e., a revolution)
Anomaly: Previous ad-hoc techniques did not scale
Waterfall did not solve the problems of software development
New lifespan models emphasize software evolution