!--a11y-->
Dependencies Between Development
ComponentsComponents (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.
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 used DC, or the parent DC of the used DC is a predecessor of the used 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.
