DocumentCode
700374
Title
Circular dependencies and change-proneness: An empirical study
Author
Oyetoyan, Tosin Daniel ; Falleri, Jean-Remy ; Dietrich, Jens ; Jezek, Kamil
Author_Institution
Dept. of Comput. & Inf. Syst., Norwegian Univ. of Sci. & Technol., Trondheim, Norway
fYear
2015
fDate
2-6 March 2015
Firstpage
241
Lastpage
250
Abstract
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.
Keywords
Java; object-oriented programming; Java program; abstraction level; aggregation level; change proneness; circular dependency; critical program cycle; harmless program cycle; hierarchical structure; package containment tree; programming artefacts; software design; Abstracts; Concrete; Data mining; Generators; Java; Maintenance engineering; Software; Circular dependency; maintainability; patterns;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Analysis, Evolution and Reengineering (SANER), 2015 IEEE 22nd International Conference on
Conference_Location
Montreal, QC
Type
conf
DOI
10.1109/SANER.2015.7081834
Filename
7081834
Link To Document