Software Components – Concepts


Software components (SCs) combine development components (DCs) into larger units for delivery and deployment.

?     Every top-level component must be assigned to exactly one software component.

?     Child components always belong to the same software component as their parent.

?     The assignment of DCs to SCs is not static and may change over time.

?     SCs cannot be nested into each other.


SCs do not control the visibility of their assigned development components.

?     Therefore, SCs are not considered to adhere to the black box principle like DCs.

?     SCs do not define public parts: all assigned components are automatically defined as public.

SCs can depend on each other and use each other, similarly to DCs.

  • Since SCs do not have development objects of their own, they define dependencies exclusively for the components assigned to them.
  • A DC can use another DC from a different SC only if its own SC defines an appropriate dependency.
  • DCs can restrict from being used by certain SCs by defining access control lists (ACLs).
  • SCs may thus be used to effectively implement software layers.

SCs have globally unique names, which are structured according to the rules for DC names. You must define the name when you create the software component; the name cannot be changed later. Names of software components usually consist of a vendor ID and only one segment, such as

For more information about reasonable names for software components, see Tips for Naming Components.