Arcan is a Java software analysis tool, supporting the detection of architectural smells. Currently, it supports the following three architectural smells (AS):

  • Unstable Dependency: describes a subsystem (component) that depends on other subsystems that are less stable than itself. Subsystems affected by this may cause a ripple effect of changes in the system .
  • Hub-Like Dependency: this smell arises when an abstraction has (outgoing and ingoing) dependencies with a large number of other abstractions.
  • Cyclic Dependency: refers to a subsystem (component) that is involved in a chain of relations that break the desirable acyclic nature of a subsystems dependency structure. The subsystems involved in a dependency cycle can be hardly released, maintained or reused in isolation.


Arcelli Fontana, Francesca, Ilaria Pigazzini, Riccardo Roveda, and Marco Zanoni. 2016. “Automatic Detection of Instability Architectural Smells.” In Proceedings of the 32nd International Conference on Software Maintenance and Evolution (Icsme 2016). Raleigh, North Carolina, USA: IEEE. PDF

Arcelli Fontana, Francesca, Ilaria Pigazzini, Riccardo Roveda, Damian Andriew Tamburri, Marco Zanoni and Di Nitto Elisabetta.2017. “Arcan: a Tool for Architectural Smells Detection.” International Conference On Software Architecture (ICSA 2017). Gothenburg, Sweden, April 3-7, IEEE.PDF