Circular dependencies and change-proneness: An empirical study - Archive ouverte HAL Accéder directement au contenu
Communication Dans Un Congrès Année : 2015

Circular dependencies and change-proneness: An empirical study

Tosin Daniel Oyetoyan
  • Fonction : Auteur
Jens Dietrich
  • Fonction : Auteur
Jean-Rémy Falleri
Kamil Jezek
  • Fonction : Auteur

Résumé

Advice that circular dependencies between programming artefacts should be avoided goes back to the earliest work on software design, and is well-established and rarely questioned. However, empirical studies have shown that real-world (Java) programs are riddled with circular dependencies between artefacts on different levels of abstraction and aggregation. It has been suggested that additional heuristics could be used to distinguish between bad and harmless cycles, for instances by relating them to the hierarchical structure of the packages within a program, or to violations of additional design principles. In this study, we try to explore this question further by analysing the relationship between different kinds of circular dependencies between Java classes, and their change frequency. We find that (1) the presence of cycles can have a significant impact on the change proneness of the classes near these cycles and (2) neither subtype knowledge nor the location of the cycle within the package containment tree are suitable criteria to distinguish between critical and harmless cycles.
Fichier principal
Vignette du fichier
main.pdf (387.61 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01203525 , version 1 (12-03-2020)

Identifiants

Citer

Tosin Daniel Oyetoyan, Jens Dietrich, Jean-Rémy Falleri, Kamil Jezek. Circular dependencies and change-proneness: An empirical study. 22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering, Mar 2015, Montreal, Canada. ⟨10.1109/SANER.2015.7081834⟩. ⟨hal-01203525⟩

Collections

CNRS
52 Consultations
291 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More