Your system might need to handle different types of dependencies to external systems, e.g.:

  • data or information dependencies
  • temporal dependencies
  • local or spatial dependencies
  • hardware dependencies
  • dependencies on persons, organisations or roles
  • transitive (indirect) dependencies

Often you will only show user roles and data/information dependencies in the domain context. However, sometimes other types of dependencies can also be important for your system. Such dependencies can be described in the diagram itself or in an additional explanation.

An example is shown in the next figure: users must register before using the system (step 1), the system orders the text messaging (step 2), which an external text message provider sends via the mobile network (step 3). The user enters the code (step 4), and in step 5, the system verifies the identity of a person against an external branch identity server, which, in turn, triggers a verification at a registry office (step 6).

Steps 3 and 6 are transitive (also called indirect) dependencies. The system depends on the registry office, even if it doesn’t use it’s interface directly. The system is maintained by administrators, who have only access via a hardware device (Hardware Access Control, HAC). The system and the HAC must be physically in the same room - a spatial dependency. Some of these dependencies have impact on the achievement of the quality requirements for your system - and therefore might be risks (see tip 3-4 (Show risks in contxt)).

dependency diagram example