Software Engineering: A Practitioner's Approach
Software Engineering: A Practitioner's Approach
software is engineered
software doesn’t wear out
software is custom built
Wear vs. Deterioration
increased failure
rate due to side effects
Failure
rate
change
actual curve
idealized curve
Time
Failure curve for hardware
Infant Mortality
Wear Out
Failure rate
Time
Software Applications
system software
application software
engineering/scientific software
embedded software
product-line software
WebApps (Web applications)
AI software
Legacy Software
Management myths
Book of standards and procedures provide the people all
information they want
If we get behind schedule, we can add more programmers and
catch up
If I decide to outsource the software project, I can just relax
and let that firm build it
Customer myths
A general statement of objectives is sufficient to begin writing
programs
Project requirements continually change, but change can be
easily accomodated because software is flexible
Practitioner’s myths
Once we write the program and get it to work, our job is done
There is no way of assessing program quality until it executes
The only deliverable work product for a successful project is
the working program
Software engineering will make us create unnecessary
documentation and will invariably slow us down