What is Hierarchical Composition?
It is the organization of a system’s elements into a strict tree of containers and leafs, with a single root container. This has many advantages. Large systems can be understood, navigated and managed better. Any properly encapsulated container can be reused in another system. Tools can handle hierarchical systems more easily that a glob or web of elements. Even system elements themselves can navigate and use their system or other systems easier. Note that Hierarchical Composition is missing from standard OO languages. There’s nothing to prevent a complicated weblike object graph. This contributes to the tendency of large OO systems to be hard to fathom.