A dynamic size measure for object oriented software

Many static metrics exist in literature for object oriented (OO) software quantifying various static aspects of complexity of its design or source code. However, there is a growing need to employ dynamic measures as they are obtained during the execution of code and thus can reflect actual run-time situations. This has led to various dynamic measures being defined in the past few years focussing on dimensions like coupling, cohesion etc. However, dynamic measures on size have been rarely addressed. In this paper, we propose a dynamic measure for size of OO software at system level which takes into account the number of objects created during the execution. The proposed measure is then theoretically validated using two popular theoretical frameworks. A dynamic analyzer code is developed using AspectJ, an aspect oriented programming extension for Java, which facilitates the collection of metric data. An empirical study consisting of descriptive statistics, Pearson correlation analysis and principal component analysis is carried out on ten sample Java programs to compare the proposed measure with several existing static measures. The study indicates that the proposed measure can serve as a useful alternative to measure size of OO software. Further, the proposed measure is correlated with maintainability of OO software as an external quality attribute. The results indicate that the proposed measure has significant positive relationship with maintainability.

[1]  Hareton K. N. Leung,et al.  An in-depth study of the potentially confounding effect of class size in fault prediction , 2014, TSEM.

[2]  Jitender Kumar Chhabra,et al.  Package Coupling Measurement in Object-Oriented Software , 2009, Journal of Computer Science and Technology.

[3]  Bill Curtis,et al.  Seven/spl plusmn/two software measurement conundrums , 1994, Proceedings of 1994 IEEE 2nd International Software Metrics Symposium.

[4]  Premkumar T. Devanbu,et al.  An Investigation into Coupling Measures for C++ , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[5]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[6]  Yuming Zhou,et al.  DMC: a more precise cohesion measure for classes , 2005, Inf. Softw. Technol..

[7]  Herb Schildt,et al.  C++: The Complete Reference, 4th Edition , 2002 .

[8]  W. Shadish,et al.  Experimental and Quasi-Experimental Designs for Generalized Causal Inference , 2001 .

[9]  Paramvir Singh Design and validation of dynamic metrics for object-oriented software systems , 2009 .

[10]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[11]  Elaine J. Weyuker,et al.  Evaluating Software Complexity Measures , 2010, IEEE Trans. Software Eng..

[12]  Lionel C. Briand,et al.  Dynamic coupling measurement for object-oriented software , 2004, IEEE Transactions on Software Engineering.

[13]  Hany H. Ammar,et al.  Dynamic metrics for object oriented designs , 1999, Proceedings Sixth International Software Metrics Symposium (Cat. No.PR00403).

[14]  Mehwish Riaz,et al.  A systematic review of software maintainability prediction and metrics , 2009, ESEM 2009.

[15]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[16]  Rachel Harrison,et al.  Coupling metrics for object-oriented design , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[17]  Doo-Hwan Bae,et al.  A cohesion measure for object‐oriented classes , 2000 .

[18]  K. K. Aggarwal,et al.  Investigating effect of Design Metrics on Fault Proneness in Object-Oriented Systems , 2007, J. Object Technol..

[19]  Anjana Gosain,et al.  Dynamic Software Metrics for Object Oriented Software: A Review , 2015 .

[20]  Salvatore Mamone,et al.  The IEEE standard for software maintenance , 1994, SOEN.

[21]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[22]  Jehad Al Dallal Object-oriented class maintainability prediction using internal quality attributes , 2013, Inf. Softw. Technol..

[23]  K. K. Aggarwal,et al.  Code and data spatial complexity: two important software understandability measures , 2003, Inf. Softw. Technol..

[24]  Raees Ahmad Khan,et al.  Software Engineering: A Practitioners Approach , 2014 .

[25]  Victor R. Basili,et al.  A Methodology for Collecting Valid Software Engineering Data , 1984, IEEE Transactions on Software Engineering.

[26]  Shari Lawrence Pfleeger,et al.  Towards a Framework for Software Measurement Validation , 1995, IEEE Trans. Software Eng..

[27]  Steve Counsell,et al.  Dynamic coupling metric: proof of concept , 2005, IEE Proc. Softw..

[28]  Norman E. Fenton,et al.  Measurement : A Necessary Scientific Basis , 2004 .

[29]  Lionel C. Briand,et al.  Exploring the relationships between design measures and software quality in object-oriented systems , 2000, J. Syst. Softw..

[30]  Sanjay Misra,et al.  Weighted Class Complexity: A Measure of Complexity for Object Oriented Systems , 2008, J. Inf. Sci. Eng..

[31]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[32]  Amjed Tahir,et al.  A systematic mapping study on dynamic metrics and software quality , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[33]  Vijay K. Vaishnavi,et al.  Predicting Maintenance Performance Using Object-Oriented Design Complexity Metrics , 2003, IEEE Trans. Software Eng..

[34]  Horst Zuse,et al.  A Framework of Software Measurement , 1998 .

[35]  Ewan D. Tempero,et al.  Dynamic Measurement of Polymorphism , 2007, ACSC.

[36]  Tibor Gyimóthy,et al.  The Dynamic Function Coupling Metric and Its Use in Software Evolution , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[37]  Renato R. Gonzalez,et al.  A unified metric of software complexity: Measuring productivity, quality, and value , 1995, J. Syst. Softw..

[38]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[39]  Steve Counsell,et al.  A dynamic runtime coupling metric for meta-level architectures , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[40]  Jitender Kumar Chhabra,et al.  Dynamic cohesion measures for object-oriented software , 2011, J. Syst. Archit..

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

[42]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[43]  James M. Bieman,et al.  Cohesion and reuse in an object-oriented system , 1995, SSR '95.

[44]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

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

[46]  S. Jayaprakash,et al.  Properties of Control-Flow Complexity Measures , 1991, IEEE Trans. Software Eng..

[47]  Varun Gupta Validation of dynamic coupling metrics for object-oriented software , 2011, SOEN.

[48]  Jitender Kumar Chhabra,et al.  A survey of dynamic software metrics , 2010 .

[49]  Letha H. Etzkorn,et al.  Clarifying specialized forms of association in UML and OML , 1998 .

[50]  Wang Yu-ying,et al.  Dynamic fan-in and fan-out metrics for program comprehension , 2007 .

[51]  Jitender Kumar Chhabra,et al.  Package level cohesion measurement in object-oriented software , 2011, Journal of the Brazilian Computer Society.

[52]  James F. Power,et al.  An empirical investigation into the dimensions of run-time coupling in Java programs , 2004, PPPJ.

[53]  Yuming Zhou,et al.  Examining the Potentially Confounding Effect of Class Size on the Associations between Object-Oriented Metrics and Change-Proneness , 2009, IEEE Transactions on Software Engineering.

[54]  Joseph D. Gradecki,et al.  Mastering AspectJ: Aspect-Oriented Programming in Java , 2003 .

[55]  Anjana Gosain,et al.  A Survey of Dynamic Program Analysis Techniques and Tools , 2014, FICTA.

[56]  Rajiv D. Banker,et al.  Software complexity and maintainability , 1989, ICIS '89.

[57]  Lionel C. Briand,et al.  An object-oriented high-level design-based class cohesion metric , 2010, Inf. Softw. Technol..

[58]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[59]  Sandro Morasca,et al.  Property-Based Software Engineering Measurement , 1996, IEEE Trans. Software Eng..

[60]  Laurie Hendren,et al.  Dynamic metrics for java , 2003, OOPSLA 2003.

[61]  SANJAY MISRA,et al.  An inheritance complexity metric for object-oriented code: A cognitive approach , 2011 .

[62]  R. Gorsuch,et al.  Effects of under- and overextraction on principal axis factor analysis with varimax rotation. , 1996 .

[63]  Paramvir Singh,et al.  Dynamic coupling metrics for object oriented software systems: a survey , 2014, SOEN.