Testing the theory of relative dependency from an evolutionary perspective: higher dependencies concentration in smaller modules over the lifetime of software products. Issue 5 (5th April 2016) - Bian, Yixin; Parande, Mohammed Aziz; Koru, Gunes; Zhao, Song
Abstract: Recent studies conducted on the single releases of multiple software products showed that dependencies concentrate on smaller modules, that is, smaller modules have more dependencies per source line of code. This phenomenon, called the Theory of Relative Dependency, explains why some earlier studies reported that smaller modules were proportionally more defect prone. It is important to test the Theory of Relative Dependency from multiple perspectives so that it can be used as an explanatory argument when garnering organizational support to give a higher quality assurance (QA) priority to smaller modules. In this study, we test the validity of this theory from an evolutionary perspective by examining the consecutive releases of a number of software products. Dependencies do concentrate over smaller modules regardless of the product age. Furthermore, continuous refactoring efforts are associated with increasing concentration of dependencies on smaller modules over product lifetime. Based on the consistent results, software managers and developers should consider giving a higher QA priority to smaller modules over the lifetime of a software product. In the projects where refactoring is adopted continuously, the QA priority on smaller modules should be further increased as the software product ages. Copyright © 2016 John Wiley & Sons, Ltd. Abstract : In this study, we test the Theory of Relative Dependency from an evolutionary perspective by examining the consecutive releases of a number of software products. Dependencies do concentrate in smaller modules over product lifetime. Furthermore, continuous refactoring efforts are associated with an increasing concentration of dependencies on smaller modules regardless of the product age. Based on the consistent results, software managers and developers should give a higher quality assurance priority to smaller modules over the lifetime of a software product.