Dependency hierarchy

The dispersion of a software solution is based on transitional virtual components, as mentioned in section Physical components category.  These transitional virtual components, when implemented in a solution, create a graph of components where the parent component depends on one or more children components.  Software solutions with dependency cycles constitute models that are not addressed as part of this study, as explained in section Public Interface of a solution.

In such a component graph, all children components must be available for the parent component to be functional.  A parent component with all the information required to provide services to the rest of the software solution does not need to add child components as dependencies.

As shown in figure above, only the incapacity of a single component to serve all of the services provokes the addition of transitional virtual components and of a communication link towards child components in order to complete the information of the parent component.  These child components also have their own characteristics and their own dependencies; a parent component depends transitively on the whole hierarchy of logic and virtual child components.