- The information domain of a problem must be represented and understood.
- The functions that the software performs must be defined.
- The behavior of the software (as a consequence of external events) must be represented.
- The models that depict information, function, and behavior must be partitioned in a manner that uncovers detail in a layered (or hierarchical) fashion.
- The analysis task should move from essential information toward implementation detail.