• 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