Hierarchy: Uses
Definition: a uses b if there exist situations in which the correct functioning of a depends on the ability of a correct implementation of b
- Allow a to use b when:
- a is simpler because it uses b
- b is not substantially more complex because it is not allowed to use a
- there is a useful subset containing b and not a
- there is no conceivably useful subset containing a but not b
- What do you do with recursion? Group a and b as a single entity in the uses relation
System structure can be specified by the uses relation
- Level 0 is the set of all programs that use no other program
- Level i ( i > 0) is the set of all programs that use at least one program on level i -1 and no program at level i.
The uses relation should be acyclic