Empirical Exploration of Correlations between Software Design Measures: A Replication Study
Authors: Jehad Al Dallal
Abstract:
Software engineers apply different measures to quantify the quality of software design. These measures consider artifacts developed at low or high level software design phases. The results are used to point to design weaknesses and to indicate design points that have to be restructured. Understanding the relationship among the quality measures and among the design quality aspects considered by these measures is important to interpreting the impact of a measure for a quality aspect on other potentially related aspects. In addition, exploring the relationship between quality measures helps to explain the impact of different quality measures on external quality aspects, such as reliability and maintainability. In this paper, we report a replication study that empirically explores the correlation between six well known and commonly applied design quality measures. These measures consider several quality aspects, including complexity, cohesion, coupling, and inheritance. The results indicate that inheritance measures are weakly correlated to other measures, whereas complexity, coupling, and cohesion measures are mostly strongly correlated.
Keywords: Quality attribute, quality measure, software design quality, spearman correlation.
Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1315929
Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 801References:
[1] R. Jabangwe, J. Börstler, D. Šmite, C. Wohlin, Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review, Empirical Software Engineering, 2015, 20(3), pp 640-693.
[2] Chidamber, S. R. and Kemerer, C. F., A Metrics suite for object Oriented Design, IEEE Transactions on Software Engineering, Vol. 20, No. 6, 1994, pp. 476-493.
[3] J. Al Dallal and L. Briand, A precise method-method interaction-based cohesion measure for object-oriented classes, ACM Transactions on Software Engineering and Methodology (TOSEM), 2012, Vol. 21, No. 2, pp. 8:1-8:34.
[4] J. Al Dallal and L. Briand, An object-oriented high-level design-based class cohesion metric, Information and Software Technology, 2010, 52(12), pp. 1346-1361.
[5] J. Al Dallal, Fault prediction and the discriminative powers of connectivity-based object-oriented class cohesion metrics, Information and Software Technology, 2012a, 54(4), pp. 396-416.
[6] V. Basili, L. Briand, W. Melo, A validation of object-oriented design metrics as quality indicators, IEEE Transactions on Software Engineering, 1996, 22(10), pp. 751-761.
[7] T. Gyimothy, R. Ferenc, and I. Siket, Empirical validation of object-oriented metrics on open source software for fault prediction, IEEE Transactions on Software Engineering, 2005, 3(10), pp. 897-910.
[8] R. Shatnawi and W. Li, The effectiveness of software metrics in identifying error-prone classes in post-release software evolution process, The Journal of Systems and Software, 2008, 81, pp. 1868-1882.
[9] Y. Singh, A. Kaur and R. Malhotra, Empirical validation of object-oriented metrics for predicting fault proneness models, Software Quality Journal, 2010, 18, pp. 3-35.
[10] J. Al Dallal, Incorporating transitive relations in low-level design-based class cohesion measurement, Software: Practice and Experience, 2013, Vol. 43. No. 6, pp. 685-704.
[11] J. Al Dallal, Transitive-based object-oriented lack-of-cohesion measure, Procedia Computer Science, Volume 3, 2011, pp. 1581-1587.
[12] J. Al Dallal, Accounting for data encapsulation in the measurement of object-oriented class cohesion, Journal of Software: Evolution and Process (Wiley), Vol. 27, No. 5, 2015, pp. 373-400.
[13] J. Al Dallal and S. Morasca, Investigating the impact of fault data completeness over time on predicting class fault-proneness, submitted for publication in Information and Software Technology, 2017.
[14] Eclipse, http://www.eclipse.org/, accessed in March 2017.
[15] Illusion, http://sourceforge.net/projects/aoi/, March 2017.
[16] DrJava, http://sourceforge.net/projects/drjava/, accessed in March 2017.
[17] CKJM extended - An extended version of Tool for Calculating Chidamber and Kemerer Java Metrics (and many other metrics), http://gromit.iiar.pwr.wroc.pl/p_inf/ckjm/, accessed in January 2017.