Skip to main content
Log in

Object-oriented dynamic complexity measures for software understandability

  • Original Paper
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

Abstract

Complexity is an inherent property when developing software. Software measures are a way to quantify the structural complexity of software. A rich body of literature exists for object-oriented (OO) static measures focusing on complexity of its design and source code emphasizing the structural aspects at class level. As OO code is inherently dynamic because of the presence of concepts like inheritance, polymorphism, and late binding, static measures of complexity lose precision as more profound use of these concepts occurs. On the other hand, dynamic measures which are obtained during execution of code using dynamic analysis, can give better insight into the run-time aspect of complexity of OO code. However, very few dynamic complexity measures have been proposed for OO software. This paper proposes dynamic measures for complexity of OO software at object, class, and system levels. The proposed measures are defined on the basis of a well-constructed theoretical framework followed by a theoretical validation. For the purpose of collecting run-time metric data, a dynamic analyzer tracer code is developed using AspectJ, an aspect oriented programming extension for Java. Further, we empirically investigate the relationship between proposed measures and understandability of OO software. A controlled experiment is carried out in this regard, and statistical techniques like correlation and linear regression are applied on the experimental data. The results of correlation analysis show significant positive correlation between proposed dynamic complexity measures and understandability. Further, linear regression analysis result suggests that the measures can serve as useful indicator of understandability.

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

Similar content being viewed by others

Notes

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

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

References

  1. IEEE Std 1061-1998 (1998) IEEE Standard for a Software Quality Metrics Methodology, Software and Systems Engineering Standards Committee Technical Report

  2. Basili VR (1980) Qualitative software complexity models: a summary. In: Tutorial on models and methods for software management and engineering, IEEE Computer Society Press, Los Alamitos, California

  3. Zuse H (1990) Software complexity: measures and methods. Walter de Gruyter, Berlin

    MATH  Google Scholar 

  4. 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 

  5. Briand LC, Wüst J, Ikonomovski SV, Lounis H (1999) Investigating quality factors in object-oriented designs: an industrial case study. In: ICSE’99, pp 345–354

  6. Biggerstaff TJ, Mitbander BG, Webster D (1993) The concept assignment problem in program understanding. In: Proceedings of 15th international conference on software engineering, pp 482–498

  7. Booch G (1991) Object-oriented design with applications. The Benjamin/Cummings Publishing Company, Redwood City

    MATH  Google Scholar 

  8. Brooks FP (1987) No silver bullets: essence and accidents of software engineering. Computer 20(4):10–19

    Article  Google Scholar 

  9. Fenton N, Bieman J (2014) Software metrics: a rigorous and practical approach. CRC Press, Boca Raton

    Book  MATH  Google Scholar 

  10. Chidamber SR, Darcy DP, Kemerer CF (1998) Managerial use of metrics for object-oriented software: an exploratory analysis. IEEE Trans Softw Eng 24(8):629–639

    Article  Google Scholar 

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

    Article  Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  15. 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 

  16. Etzkorn L, Bansiya J, Davis C (1999) Design and code complexity metrics for OO classes. J Object Oriented Program 12(1):35–40

    Google Scholar 

  17. Munson JC, Khoshgoftaar TM (1992) Measuring dynamic program complexity. IEEE Softw 9(6):48–55

    Article  Google Scholar 

  18. Khoshgoftaar TM, Munson JC, Lanning DL (1993) Dynamic system complexity. In: Proceedings of international software metrics symposium, Metrics’93, Baltimore MD, pp 129–140

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

    Article  Google Scholar 

  20. 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, AISC, vol 340. Springer India, Berlin, pp 579–589

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

  22. 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 

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

    Article  Google Scholar 

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

    Article  Google Scholar 

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

  26. 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, pp 220–242

  27. McCabe T (1976) A complexity metric. IEEE Trans Softw Eng 2(4):308–320

    Article  MATH  Google Scholar 

  28. Halstead MH (1977) Elements of software science. Elsevier, New York

    MATH  Google Scholar 

  29. Bansiya J, Davis C, Etzkorn L (1999) An entropy based complexity measure for object oriented designs. Theory Pract Object Syst 5(2):111–118 Wiley

    Article  Google Scholar 

  30. Wang Y, Shao J (2003) Measurement of the cognitive functional complexity of software. In: Proceedings IEEE international conference on cognitive informatics, ICCI’03, pp 67–71

  31. 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 

  32. Banker RD, Datar S, Zweig D (1989) Software complexity and maintainability. In: Proceedings of the tenth international conference on information systems, pp 247–255

  33. Jabangwe R, Börstler J, Smite D, Wohlin C (2015) Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review. Empir SoftwEng 20(3):640–693

    Article  Google Scholar 

  34. Munson J, Khoshgoftaar T (1996) Software metrics for reliability assessment. In: Lyu Michael (ed) Handbook of software reliability engineering. McGraw-Hill, New York, pp 493–529

    Google Scholar 

  35. Munson JC, Hall GA (1996) Estimating test effectiveness with dynamic complexity measurement. Empir Softw Eng 1(3):279–305

    Article  Google Scholar 

  36. Ammar HH, Nikzadeh T, Dugan J (1997) A methodology for risk assessment of functional specification of software systems using coherent petri nets. In: Proceedings of 4th international software metrics symposium, Metrics’97. Albuquerque, New Mexico, pp 108–117

  37. Yacoub S, Ammar H, Robinson T (2000) A methodology for architectural-level risk assessment using dynamic metrics. In: Proceedings of 11th international symposium on software reliability engineering, pp 210–221

  38. 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(11). ACM pp 149–168

  39. Lai ST (1998) A software metric combination model for software reuse. In: Proceedings of asia pacific software engineering conference Taipei, pp 70–77

  40. Briand LC, El Emam K, Morasca S (1995) Theoretical and empirical validation of software product measures. Technical Report ISERN-95-03, International Software Engineering Research Network

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

    Article  MathSciNet  Google Scholar 

  42. 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 

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

    Book  Google Scholar 

  44. 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, pp 339–346. IEEE

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

    Article  Google Scholar 

  46. Gosain A, Sharma G (2014) 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, pp 770–776

  47. 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

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

  49. Tahir A, Ahmad R (2010) An AOP-based approach for collecting software maintainability dynamic metrics. In: Proceedings of 2nd international conference on computer research and development, pp 168–172. IEEE

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

    Google Scholar 

  51. Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslen A (2000) Experimentation in software engineering. Kluwer Academic Publishers, Norwell

    Book  MATH  Google Scholar 

  52. Kitchenhem B, Pfleeger S, Pickard LM, Jones PW, Hoaglin DC, El Emmam K, Rosenberg J (2002) Preliminary guidelines for empirical research in software engineering. IEEE Trans Softw Eng 28(8):721–734

    Article  Google Scholar 

  53. Basili VR (2006) The role of controlled experiments in software engineering research. In: Proceedings of international conference on empirical software engineering issues: critical assessment and future directions. Springer, Berlin, pp 33–37

  54. Basili VR, Weiss DM (1984) A methodology for collecting valid software engineering data. IEEE Trans Softw Eng 10(6):728–738

    Article  Google Scholar 

  55. Serrano M, Trujillo J, Calero C, Piattini M (2007) Metrics for data warehouse conceptual models understandability. Inf Softw Technol 49(8):851–870

    Article  Google Scholar 

  56. Gosain A, Nagpal S, Sabharwal S (2013) Validating dimension hierarchy metrics for the understandability of multidimensional models for data warehouse. IET Softw 7(2):93–103

    Article  Google Scholar 

  57. Svahnberg M, Aurum A, Wohlin C (2008) Using students as subjects—an empirical evaluation. In: ESEM, pp 288–290

  58. Carver J, Jaccheri L, Morasca S, Schull F(2003) Issues in using students as subjects in empirical studies in software engineering education. In: Proceedings of the 9th international software metrics symposium (METRICS’03). IEEE Computer Society, Washington, pp 239–250

  59. Gosain A, Mann S (2014) Empirical validation of metrics for object oriented multidimensional model for data warehouse. Int J Syst Assur Eng Manag 5(3):262–275

    Article  Google Scholar 

  60. Shadish WR, Cook TD, Campbell DT (2002) Experimental and quasi-experimental designs for generalized causal inference. Wadsworth Cengage Learning, Boston

    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. Object-oriented dynamic complexity measures for software understandability. Innovations Syst Softw Eng 13, 177–190 (2017). https://doi.org/10.1007/s11334-017-0304-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-017-0304-3

Keywords

Navigation