Design tangles are cyclic, package-level dependencies.

A tangle is a portion of a dependency graph within which all the items are directly or indirectly dependent on all the other nodes in the tangle. Structure101 Studio's auto-partitioning isolates tangles in a red box.

auto-partition

Tangled graph (left) with tangle isolated (right)

For any tangle, it is possible to calculate a "minimum feedback set (mfs)" - a minimum number of edges which would have to be removed in order to leave the graph acyclic (no longer tangled). Structure101 Studio colors the edges in the mfs red (e.g. xni to parser above).

The design tangle metric is calculated as the total number of code-level references in the mfs divided by the total number of code-level references on the parent high-level packages (the number of code-level references between any 2 packages is shown as a number on the corresponding dependency arrow).

The design tangle metric for the parent package of the graph above is therefore:

6 / (14 + 6 + 51) = 0.09 = 9%

Note: