I’ve been asked recently why I talk about "tangles" rather than "cycles" in the context of cyclic dependencies. The reason is clear when you look at a graph that contains a "strongly connected component" (a tangle):
This graph contains a single tangle of 3 nodes, but many cycles. tiles – xmlDefinition – tiles is one cycle; tiles – definition – tiles is another; tiles – definition – xmlDefinition – tiles is yet another. The number of cycles in a tangle grows dramatically with the size of the tangle. It is not unusual to have hundreds of cycles in a single tangle. Since the tangle is the basic problem, I use that term unless I want to discuss a specific cycle.
2 Comments
Struts more twisted than Spring | Deconstructing Software
[…] achievement was to grow a sizable code-base while avoiding package-level tangles. Struts did not manage […]
Software erosion in pictures – findbugs « sutts on software
[…] more and more packages are being pulled into the tangle such that it is hard or impossible to talk about these as meaningful entities in their own right. […]