Dependency Cycles between Packages/Subsystems

This smell occurs when two or more packages/subsystems depend on each other. Cycles between packages/subsystems can be created through use, inheritance, or through a combination of use and inheritance.

Related smells: Static Cycles in Dependency Graphs Cyclically-dependent Modularization Cross-module Cycle


The following set of tools detects this smell: Designite(for C#) DesigniteJava(for Java)


M. Lippert, S. Roock, “Refactoring in Large Software Projects: Performing Complex Restructurings Successfully”. John Wiley and Sons, 2006.

Architecture Smells


All rights reserved (c) Tushar Sharma 2017-23.