A longitudinal analysis of the dependency concentration in smaller modules for open-source software products

Our recent studies on single releases of multiple open-source software (OSS) products showed a higher concentration of dependencies in smaller modules. For one of the products, it was observed that an isolatable and observable refactoring initiative exacerbated this concentration inequality. In this paper, we empirically investigate the dependency concentration in smaller modules from a longitudinal perspective: (1) whether this concentration inequality always exists over product life time; (2) how it changes. We hypothesize that the concentration inequality should either remain at same levels or increase over time. This is because large-scale and long-lived software products usually go through some degree of continuous and intermittent refactoring. Our results show that dependencies concentrate in smaller classes in all releases, and this concentration inequality generally increases over successive releases. We suggest that software practitioners continuously pay a higher QA attention to smaller modules. We also recommend increasing such QA focus as a product matures and goes through refactoring activities.

[1]  Hongfang Liu,et al.  Theory of relative defect proneness , 2008, Empirical Software Engineering.

[2]  Akif Günes Koru,et al.  The Theory of Relative Dependency: Higher Coupling Concentration in Smaller Modules , 2010, IEEE Software.

[3]  Javam C. Machado,et al.  The prediction of faulty classes using object-oriented design metrics , 2001, J. Syst. Softw..

[4]  Meir M. Lehman,et al.  Approach to a theory of software evolution , 2001, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[5]  Alan MacCormack,et al.  The Impact of Component Modularity on Design Evolution: Evidence from the Software Industry , 2007 .

[6]  Hongfang Liu,et al.  Testing the theory of relative defect proneness for closed-source software , 2010, Empirical Software Engineering.

[7]  A. Wagstaff,et al.  On the measurement of inequalities in health. , 1991, Social science & medicine.

[8]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[9]  Stephen R. Schach,et al.  Quality Impacts of Clandestine Common Coupling , 2003, Software Quality Journal.

[10]  N. Kakwani,et al.  Socioeconomic inequalities in health: Measurement, computation, and statistical inference , 1997 .

[11]  Khaled El Emam,et al.  The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics , 2001, IEEE Trans. Software Eng..

[12]  Giuliano Antoniol,et al.  Investigating large software system evolution: the Linux kernel , 2002, Proceedings 26th Annual International Computer Software and Applications.

[13]  Khaled El Emam,et al.  The Optimal Class Size for Object-Oriented Software , 2002, IEEE Trans. Software Eng..

[14]  Murray Hill,et al.  Programmer Productivity in the Inscape Environment , .

[15]  Hongfang Liu,et al.  Modeling the Effect of Size on Defect Proneness for Open-Source Software , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[16]  Ramanath Subramanyam,et al.  Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects , 2003, IEEE Trans. Software Eng..

[17]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[18]  Jeff Tian,et al.  Software quality engineering - testing, quality assurance, and quantifiable improvement , 2005 .

[19]  Hongfang Liu,et al.  An Investigation into the Functional Form of the Size-Defect Relationship for Software Modules , 2009, IEEE Transactions on Software Engineering.

[20]  David P. Darcy,et al.  Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis , 1998, IEEE Trans. Software Eng..