Dependencies Between Development Components

Components (DCs) can use one another and, therefore, depend on one another. For more information, refer to Public Parts. A component can depend on any number of components, and a number of components can depend on one single component.

Dependencies between DCs are not static and may change over time. A component may declare new dependencies or delete existing ones.

In general, dependencies between components are only allowed at the same hierarchy level, for example, top-level DCs may depend on each other, or DCs that are included in the same parent component.

In the following figure, dependencies are depicted as arrows:

Dependencies between DCs on the same hierarchy level.

Dependencies of a parent DC are not automatically inherited to child DCs. Child components are not allowed to declare dependencies to their parent component. In contrast, a parent component can use its child components.

Rules for Dependencies between DCs

All of the following conditions must be fulfilled, before a DC can use another:

?     Both DCs belong to the same software component or the software component of the using DC explicitly declared the use of the used DC.

?     The used DC is a top-level DC or a direct child component of the using DC, or the parent DC of the used DC is a predecessor of the using DC.

?     There is no exclusion in the access control list of the used DC for the using DC.

?     The DC types are compatible. There is one exclusion criterion: A build-infrastructure DC must not be used by a normal DC.

The figure below shows allowed and not allowed dependencies, based on the rules stated above:

Dependencies between components: software component SC 1 uses SC 2. The diagram shows, which development components the DC G is allowed to use. The ones that can be used by DC G are displayed in green, the others in red.

To use a DC, use dependencies must be created.

Public parts of DCs enclosed by another DC can also be used by other DCs than the parent DC, provided that this DC creates a public part entity reference.