PPT Slide
Large system programming is like a tar pit:
The more you struggle, the more you sink in it.
No one thing seems to be the difficulty, but as a whole, the programmers get trapped in it and the project dies (e.g., we can take one paw or hand out of the tar pit, but not our whole body).
A programming system product must be:
- 1) General (for input, as well as algorithms).
- 2) Thoroughly tested so it can be depended upon. This increases costs be as much as 3 times over untested products.
- 3) Documented so it can be used, fixed, and extended.
- 4) Finally, a programming product becomes a component of a software system (it works with other programs and can be called or interrupted) => I/O interfaces become very important => a programming product must be tested in all possible combinations with other system components. This is very difficult => A programming system product as a system component costs at least 3 times as much as the same program as a programming product.
- 5) Programming product must be within allotted budget.
A programming system product is 9 times higher in cost than a stand-alone product (3 for program testing x 3 for system testing).