Skip to main content
Log in

A dynamic size measure for object oriented software

  • Original Article
  • Published:
International Journal of System Assurance Engineering and Management Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. https://www.cs.ubc.ca/labs/spl/projects/aspectc.htm.

  2. www.aspectc.org/.

  3. Downloaded from www.eclipse.org/aspectj on 18th October, 2014.

  4. Downloaded from http://www.oracle.com/technetwork/java/javase/downloads/index.html on 14th October, 2014.

  5. Downloaded from www.sourceforge.net/projects/jhawk on 2nd March, 2015.

References

  • Abreu FB (1995) The MOOD metrics set. In: Proceedings of ECOOP’95, vol 95

  • Aggarwal KK, Singh Y, Kaur A, Malhotra R (2007) Investigating effect of design metrics on fault proneness in object-oriented systems. J Object Technol 6(10):127–141

    Article  Google Scholar 

  • Al Dallal J (2013) Object-oriented class maintainability prediction using internal quality attributes. Inf Softw Technol 55(11):2028–2048

    Article  Google Scholar 

  • Al Dallal J, Briand LC (2010) An object-oriented high-level design-based class cohesion metric. Inf Softw Technol 52(12):1346–1361

    Article  Google Scholar 

  • Arisholm E, Briand LC, Foyen A (2004) Dynamic coupling measurement for object-oriented software. IEEE Trans Softw Eng 30(8):491–506

    Article  Google Scholar 

  • Bandi RK, Vaishnavi VK, Turk DE (2003) Predicting maintenance performance using object-oriented design complexity metrics. IEEE Trans Softw Eng 29(1):77–87

    Article  Google Scholar 

  • Banker RD, Datar SM, Zweig S (1989) Software complexity and maintainability. In: Proceedings of 10th international conference on information systems, pp 247–255

  • Bansiya J, Etzkorn L, Davis C, Li W (1999) A class cohesion metric for object-oriented designs. J Object-Oriented Program 11(8):47–52

    Google Scholar 

  • Basili V, Weiss D (1984) A methodology for collecting valid software engineering data. IEEE Trans Softw Eng 10:728–738

    Article  Google Scholar 

  • Basili VR, Briand LC, Melo WL (1996) A validation of object-oriented design metrics as quality indicators. IEEE Trans Softw Eng 22(10):751–761

    Article  Google Scholar 

  • Beszedes A, Gergely T, Farago S, Gyimothy T, Fischer F (2007) The dynamic function coupling metric and its use in software evolution. In: 11th European conference on software maintenance and reengineering. IEEE, pp 103–112

  • Bieman JM, Kang BK (1995) Cohesion and reuse in an object-oriented system. ACM SIGSOFT Softw Eng Notes 20(Special Issue):259–262

    Article  Google Scholar 

  • Briand LC, El Emam K, Morasca S (1995) Theoretical and empirical validation of software product measures. International software engineering research network, Technical report ISERN-95-03

  • Briand LC, Morasca S, Basili VR (1996) Property-based software engineering measurement. IEEE Trans Softw Eng 22(1):68–86

    Article  Google Scholar 

  • Briand L, Devanbu P, Melo W (1997) An investigation into coupling measures for C++. In: Proceedings of the 19th international conference on software engineering. ACM, pp 412–421

  • Briand LC, Wüst J, Daly JW, Porter DV (2000) Exploring the relationships between design measures and software quality in object-oriented systems. J Syst Softw 51(3):245–273

    Article  Google Scholar 

  • Chae HS, Kwon YR, Bae DH (2000) A cohesion measure for object-oriented classes. Softw Pract Exp 30(12):1405–1432

    Article  MATH  Google Scholar 

  • Chhabra JK, Gupta V (2010) A survey of dynamic software metrics. J Comput Sci Technol 25(5):1016–1029

    Article  Google Scholar 

  • Chhabra JK, Aggarwal KK, Singh Y (2003) Code and data spatial complexity: two important software understandability measures. Inf Softw Technol 45(8):539–546

    Article  Google Scholar 

  • Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476–493

    Article  Google Scholar 

  • Choi KH, Tempero E (2007) Dynamic measurement of polymorphism. In: Proceedings of the 13th Australasian conference on computer science, vol 62. Australian Computer Society, pp 211–220

  • Curtis B, Carleton A (1994) Seven ± two software measurement conundrums. In: Proceedings of 8th international software metric symposium. IEEE Computer Society Press, pp 96–105

  • Dufour, B, Driesen K, Hendren L, Verbrugge C (2003) Dynamic metrics for Java. In: ACM SIGPLAN notices-special issue: proceedings of the OOPSLA ‘03 conference, vol 38, no 11. ACM, pp 149–168

  • El Emam K, Benlarbi S, Goel N, Rai SN (2001) The confounding effect of class size on the validity of object-oriented metrics. IEEE Trans Softw Eng 27(7):630–650

    Article  Google Scholar 

  • El-Emam K (2000) A methodology for validating software product metrics. NRC/ERB-1076, National Research Council of Canada, Ottawa, Ontario, Canada

  • Fenton N (1994) Software measurement: a necessary scientific basis. IEEE Trans Softw Eng 20(3):199–206

    Article  Google Scholar 

  • Fenton NE, Pfleeger SL (1997) Software metrics: a rigorous and practical approach. PWS Publishing Company, Boston

    Google Scholar 

  • Geetika R, Singh P (2014) Dynamic coupling metrics for object oriented software systems: a survey. ACM SIGSOFT Softw Eng Notes 39(2):1–8

    Article  Google Scholar 

  • Genero M, Piattini M, Calero C (2002) An empirical study to validate metrics for class diagrams. In: Proceedings of international database engineering and applications symposium (IDEAS’02), Edmonton, pp 1–10

  • Gonzalez R (1995) A unified metric of software complexity: measuring productivity, quality and value. J Syst Softw 29:17–37

    Article  Google Scholar 

  • Gosain A, Sharma G (2015) Dynamic software metrics for object oriented software: a review. In: Mandal JK, Satapathy SC, Kumar Sanyal M, Sarkar PP, Mukhopadhyay A (eds) Information systems design and intelligent applications. Advances in Intelligent Systems and Computing, vol 340. Springer, pp 579–589

  • Gosain A, Sharma G (2014a) Towards a theoretical validation of dynamic metrics for object oriented software. In: Proceedings of 2nd international conference on emerging research in computing, information, communication and applications, Bangaluru, vol 2 pp 770–776

  • Gosain A, Sharma G (2014b) A survey of dynamic program analysis techniques and tools. In: Proceedings of 3rd international conference on frontiers of intelligent computing: theory and applications (FICTA 2014). Springer, pp 113–122

  • Gradecki JD, Lesiecki N (2003) Mastering AspectJ: aspect-oriented programming in Java. Wiley, Indianapolis

    Google Scholar 

  • Gupta V (2011) Validation of dynamic coupling metrics for object-oriented software. ACM SIGSOFT Softw Eng Notes 36(5):1–3

    Article  Google Scholar 

  • Gupta V, Chhabra JK (2008) Measurement of dynamic metrics using dynamic analysis. In: Proceedings of WSEAS international conference on applied computing conference, pp 81–86

  • Gupta V, Chhabra JK (2009) Package coupling measurement in object-oriented software. J Comput Sci Technol 24(2):273–283

    Article  Google Scholar 

  • Gupta V, Chhabra JK (2011) Dynamic cohesion measures for object-oriented software. J Syst Archit 57(4):452–462

    Article  Google Scholar 

  • Gupta V, Chhabra JK (2012) Package level cohesion measurement in object-oriented software. J Braz Comput Soc 18(3):251–266

    Article  Google Scholar 

  • Harrison R, Counsell S, Nithi R (1998) Coupling metrics for object-oriented design. In: Proceedings of fifth international symposium on software metrics. IEEE, pp 150–157

  • Hassoun Y, Johnson R, Counsell S (2004) A dynamic runtime coupling metric for meta-level architectures. In: Proceedings of 8th European conference on software maintenance and reengineering (CSMR). IEEE, pp 339–346

  • Hassoun Y, Counsell S, Johnson R (2005) Dynamic coupling metric: proof of concept. In: Software, IEE Proceedings, IET, vol 152(6), pp 273–279

  • Henderson-Sellers B (1996) Object oriented metrics: measures of complexity. Prentice Hall, Upper Saddle River

    Google Scholar 

  • IEEE Std. 610.12-1990 (1990) Standard Glossary of Software Engineering Terminology. IEEE Computer Society Press, Los Alamitos, CA

  • Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes C, Loingtier JM, Irwin J (1997) Aspect-oriented programming. In: Proceedings of the 11th European conference on object-oriented programming. ECOOP’97. Springer, Berlin, pp 220–242

  • Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold WG (2001) An overview of AspectJ. In: ECOOP’2001—object-oriented programming. Springer, Berlin, pp 327–354

  • Kitchenham B, Pfleeger SL, Fenton N (1995) Towards a framework for software measurement validation. IEEE Trans Softw Eng 21(12):929–944

    Article  Google Scholar 

  • Kitchenham BA, Pfleeger SL, Pickard LM, Jones PW, Hoaglin DC, El Emam K, Rosenberg J (2002) Preliminary guidelines for empirical research in software engineering. IEEE Trans Softw Eng 28(8):721–734

    Article  Google Scholar 

  • Laddad R (2003) AspectJ in action: practical aspect-oriented programming. Manning Publications, Greenwich

    Google Scholar 

  • Lakshmanian KB, Jayaprakash S, Sinha PK (1991) Properties of control-flow complexity measures. IEEE Trans Softw Eng 17(12):1289–1295

    Article  Google Scholar 

  • Li W, Henry S (1993) Object-oriented metrics that predict maintainability. J Syst Softw 23(2):111–122

    Article  Google Scholar 

  • Lorenz M, Kidd J (1994) Object-oriented software metrics: a practical guide. Prentice-Hall, Englewood Cliffs

    Google Scholar 

  • Mamone S (1994) The IEEE standard for software maintenance. SIGSOFT SE Notes 19(1):75–76

    Article  Google Scholar 

  • Martin ROO (1994) Design quality metrics: an analysis of dependencies. In Workshop on pragmatic and theoretical directions in object-oriented software metrics, OOPSLA’94, vol 94

  • Misra S, Akman I (2008) Weighted class complexity: a measure of complexity for object oriented system. J Inf Sci Eng 24:1689–1708

    Google Scholar 

  • Misra S, Akman I, Koyuncu M (2011) An inheritance complexity metric for object-oriented code: a cognitive approach. Sadhana 36(3):317–337

    Article  MathSciNet  Google Scholar 

  • Mitchell Á, Power JF (2004a) An empirical investigation into the dimensions of run-time coupling in Java programs. In: Proceedings of the 3rd international symposium on principles and practice of programming in Java, Trinity College Dublin, pp 9–14

  • Mitchell Á, Power JF (2004b) Run-time cohesion metrics: an empirical investigation. In: Proceedings of international conference on software engineering research and practice, SERP’04, pp 532–537

  • Pressman RS (2005) Software engineering: a practitioner’s approach. Palgrave, Macmillan, London

    MATH  Google Scholar 

  • Riaz M, Mendes E, Tempero E (2009) A systematic review of software maintainability prediction and metrics. In: Proceedings of 3rd international symposium on empirical software engineering and measurement, IEEE Computer Society, pp 367–377

  • Schildt H (2007) Java™: the complete reference, 7th edn. McGraw Hill, New York

    MATH  Google Scholar 

  • Shadish WR, Cook TD, Campbell DT (2002). Experimental and quasi-experimental designs for generalized causal inference. Cengage Learning, ISBN-13: 9780395615560/ISBN-10: 0395615569

  • Singh P (2013) Design and validation of dynamic metrics for object-oriented software systems’. PhD dissertation, Department of Computer Science and Engineering, Guru Nanak Dev University, Amritsar, India. Retrieved from Shodhganga-INFLIBNET Centre. http://shodhganga.inflibnet.ac.in/handle/10603/10463

  • Tahir A, MacDonell SG (2012) A systematic mapping study on dynamic metrics and software quality. In: Proceedings of 28th IEEE international conference on software maintenance (ICSM). IEEE, pp 326–335

  • Wang J et al (2005) DMC: a more precise cohesion measure for classes. Inf Softw Technol 47(3):167–180

    Article  Google Scholar 

  • Wang YY, Li QS, Chen P, Ren CD (2007) Dynamic fan-in and fan-out metrics for program comprehension. J Shanghai Univ (English Edition) 11:474–479

    Article  Google Scholar 

  • Weyuker EJ (1988) Evaluating software complexity measures. IEEE Trans Softw Eng 14(9):1357–1365

    Article  MathSciNet  Google Scholar 

  • Wood JM, Tataryn DJ, Gorsuch RL (1996) Effects of under-and over-extraction on principal axis factor analysis with varimax rotation. Psychol Methods 1(4):354–365

    Article  Google Scholar 

  • Yacoub SM, Ammar HH, Robinson T (1999) Dynamic metrics for object oriented designs. In: Proceedings of sixth international software metrics symposium. IEEE, pp 50–61

  • Zaidman A, Demeyer S (2004) Analyzing large event traces with the help of coupling metrics. In: Proceedings of international workshop on object-oriented reengineering, Antwerp, Belgium

  • Zhou Y, Leung H, Xu B (2009) Examining the potentially confounding effect of class size on the associations between object-oriented metrics and change-proneness. IEEE Trans Softw Eng 35(5):607–623

    Article  Google Scholar 

  • Zhou Y, Xu B, Leung H, Chen L (2014) An in-depth study of the potentially confounding effect of class size in fault prediction. ACM Trans Softw Eng Methodol 23(1):1–51

    Article  Google Scholar 

  • Zuse H (1998) A framework of software measurement. Walter de Gruyter, Berlin

    Book  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ganga Sharma.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Gosain, A., Sharma, G. A dynamic size measure for object oriented software. Int J Syst Assur Eng Manag 8 (Suppl 2), 1209–1221 (2017). https://doi.org/10.1007/s13198-017-0588-6

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s13198-017-0588-6

Keywords

Navigation