- Because an OS is large and complex, it must be created piece by piece. Each of these pieces should be a well delineated portion of the system, with carefully defined inputs, outputs, and functions.
- Large Systems:  100k's to millions of lines of code involving 100 to 1000 man-years of work
- Complex: Performance is important while there is conflicting needs of different users. 
- It is not possible to remove all bugs from such complex and large software. Behavior is hard to predict; tuning is done by guessing.
Subsections
Cem Ozdogan
2011-02-14