Dependencies - Components

This exploration shows the components within a given container, and the dependencies between them.

Dependencies - Components

Click a component to highlight the relationships with other components in the container. Solid lines show efferent (outbound) dependencies, dashed lines show afferent (inbound) dependencies and red lines show direct cyclic dependencies.

Dependencies - Components

This example shows afferent (inbound) dependencies from the various controllers to the ClinicService, and efferent (outbound) dependencies from the ClinicService to the various repositories.

Circle size

The size of the circles is related to the instability of the component, as defined using Uncle Bob's instability metric as follows:

Instability = Ce / (Ce + Ca)
  • Ce is the number of efferent (outbound) dependencies.
  • Ca is the number of afferent (inbound) dependencies.

The resulting value (a number between 0 and 1) can be used as an indicator of the component's resilience to change. The higher the number (and larger the circle), the potentially more unstable the component.

Tooltip

Hovering the mouse pointer over a component will show a tooltip with more detail about that component.

Dependencies - Components