Direct Dependencies Out is one of the source-code metrics Understand computes across 17+ languages — browse them in the GUI, export and track them, or script them with the Python API.
Direct Dependencies Out
API ID: CountDirectDepsOutLanguages: Any
Targets: Architectures
Number of other architectures this architecture's own entities depend on.
Dependencies from descendants only are not counted. Dependencies from this level to children or to outside architectures both count.
In the sample below, for "project", only main.cpp is a direct entity. main.cpp depends on api.cpp (child project/api), ui.cpp (child project/ui), and library1.cpp (libraries/library1), so CountDirectDepsOut is 3. api.cpp and ui.cpp are not counted because they are descendants.
Compare to CountDepsOut, which counts those same partners and in addition partners reached only by descendant entities.
Consider a directory-style architecture and dependencies:
- project
- api
- api.cpp
- ui
- ui.cpp
- main.cpp
- api
- libraries
- library1
- ibrary1.cpp
- library2
- library2.cpp
- library1
- tests
- main
- main_test.cpp
- api
- api_test.cpp
- main
Dependencies (with reference counts):
- main.cpp → api.cpp (3 refs)
- main.cpp → ui.cpp (9 refs)
- main.cpp → library1.cpp (8 refs)
- api.cpp → library1.cpp (6 refs)
- ui.cpp → library2.cpp (4 refs)
- ui.cpp → api.cpp (2 refs)
- main_test.cpp → main.cpp (7 refs)
- api_test.cpp → api.cpp (5 refs)
For project, the metrics are:
| Metric | Value |
|---|---|
| CountDepsIn | 2 |
| CountDepsOut | 2 |
| CountDepRefsIn | 12 |
| CountDepRefsOut | 18 |
| CountDirectDepsIn | 1 |
| CountDirectDepsOut | 3 |
| CountDirectDepRefsIn | 7 |
| CountDirectDepRefsOut | 20 |
| CountMajorDepsIn | 1 |
| CountMajorDepsOut | 1 |