The Complexity Management Problem - Systems must be hierarchically
decomposed into comprehendible units.
Semantically large operations can be decomposed into “smaller”
operations. But the meaning of the larger operations
gets lost in the patterns of smaller operations.
Control flow among many small operations realizing a larger
operation can be difficult to follow since the smaller
operations are semantically unrelated to the larger
The Reusable Parts Problem - Since all of the parts from which a program
is composed are defined in low level semantics reuse of parts
can occur only at the lowest level of definition of parts. Assemblies
are hard to compose. Low cost manufacture of reliable products
requires hierarchical composition of assemblies.