| Cadillac system | has definition A system that does more than is needed |   | 
| is a subtopic of 4.8 - Reviewing Requirements |   | 
| is a kind of software system |   | 
| software system | becomes complex because it is easy to add new features and because software engineers typically add features without fully understanding a system, which may not have been originally designed to accommodate the features |   | 
| can automate business process |   | 
| can be divided in many ways: |   | 
| is better at error handling if it effectively prevents the user from making errors, detects errors, and helps the user to correct errors |   | 
| is typically initially developed as a prototype |   | 
| must have well-described requirements if other systems or subsystems are going to use its services or communicate with it |   | 
| should be designed for flexibility right from the start |   | 
| undergoes evolution over its life-span |   | 
| system | can have specification which is then implemented by a collection of components |   | 
| exists even if its components change over the course of time, or are replaced by equivalent components |   | 
| has scope |   | 
| has part component |   | 
| has part hardware |   | 
| has part module |   | 
| has part software |   | 
| has part subsystem |   | 
| is divided up into subsystems |   |