A tangle is a set of items that form a cyclic dependency graph at any scope in the compositional model.

cyclic package dependency graph

Tangles drive up the coupling of a structure dramatically, making it much harder to understand, extend or modify, and can make activities such as regression testing, reuse, and porting to modern frameworks (e.g. OSGi) virtually impossible.

Tangled structures cannot be strictly levelized. However Structure101 Studio organizes tangles into levels by calculating the Minimum Feedback Set (mfs) - a minimum set of dependencies that if removed would render the dependency graph acyclic - and showing the levels as if the mfs dependencies were removed.

Structure101 differentiates between tangles at the package/container levels (filled in red) and tangles at lower (e.g. class, function) levels. Only the former contribute to the tangle metrics in the over-complexity chart and complexity perspective. This implies that class tangles are "OK" once they do not span class boundaries, and do not create a Fat package. However even within these bounds it is worth checking that class/method tangles do not get unnecessarily large.