Skip to main content
Log in

A Hybrid Set of Complexity Metrics for Large-Scale Object-Oriented Software Systems

  • Regular Paper
  • Published:
Journal of Computer Science and Technology Aims and scope Submit manuscript

Abstract

Large-scale object-oriented (OO) software systems have recently been found to share global network characteristics such as small world and scale free, which go beyond the scope of traditional software measurement and assessment methodologies. To measure the complexity at various levels of granularity, namely graph, class (and object) and source code, we propose a hierarchical set of metrics in terms of coupling and cohesion — the most important characteristics of software, and analyze a sample of 12 open-source OO software systems to empirically validate the set. Experimental results of the correlations between cross-level metrics indicate that the graph measures of our set complement traditional software metrics well from the viewpoint of network thinking, and provide more effective information about fault-prone classes in practice.

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.

Similar content being viewed by others

References

  1. DeMarco T. Controlling Software Projects: Management, Measurement, and Estimates. Englewood Cliffs, N.J.: Prentice-Hall PTR, 1986.

    Google Scholar 

  2. Ramamoorthy C V, Tsai W T, Yamaura T, Bhide A.Metrics guided methodology. In Proc. the 9th Int. Comp. Softw. Appl. Conf., Chicago, USA, Oct. 9-11, 1985, pp.111–120.

  3. Chidamber S R, Kemerer C F. A metrics suite for objectoriented design. IEEE Trans. Softw. Eng., 1994, 20(6): 476–493.

    Article  Google Scholar 

  4. Fernando Brito e Abreu, Regério Carapuça. Object-oriented software engineering: Measuring and controlling the development Process. In Proc. the 4th Int. Conf. Softw. Qual. (ICSQ 1994), McLean, USA, Oct. 3-5, 1994, pp.1–8.

  5. Brain H S. Object-Oriented Metrics: Measures of Complexity. Englewood Cliffs, N.J.: Prentice-Hall PTR, 1996.

    Google Scholar 

  6. Ma Y T, He K Q, Du D H, Liu J, Yan Y L. A complexity metrics set for large-scale object-oriented software systems. In Proc. the 6th Int. Conf. Comp. & Info. Technol. (CIT 2006), Seoul, Korea, Sept. 20-22, 2006, p.189.

  7. Basili V R, Briand L C, Melo W L. A validation of objectoriented design metrics as quality indicators. IEEE Trans. Softw. Eng., 1996, 22(10): 751–761.

    Article  Google Scholar 

  8. Harrison R, Counsell S J, Nithi R V. An evaluation of the MOOD set of object-oriented software metrics. IEEE Trans. Softw. Eng., 1998, 24(6): 491–496.

    Article  Google Scholar 

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

    Article  Google Scholar 

  10. Subramanyam R, Krishnan M S. Empirical analysis of CK metrics for object-oriented design complexity: Implications for software defects. IEEE Trans. Softw. Eng., 2003, 29(4): 297–310.

    Article  Google Scholar 

  11. Gyimothy T, Ferenc R, Siket I. Empirical validation of objectoriented metrics on open source software for fault prediction. IEEE Trans. Softw. Eng., 2005, 31(10): 897–910.

    Article  Google Scholar 

  12. Olague H M, Etzkorn L H, Gholston S, Quattlebaum S. Empirical validation of three software metrics suites to predict fault-proneness of object-oriented classes developed using highly iterative or agile software development processes. IEEE Trans. Softw. Eng., 2007, 33(6): 402–419.

    Article  Google Scholar 

  13. Booch G, Jacobson I, Rumbaugh J. The Unified Modeling Language User Guide. Boston, MA: Addison-Wesley Professional, 1998.

    Google Scholar 

  14. Kleppe A, Warmer J, Bast W. MDA Explained: The Model Driven Architecture: Practice and Promise. Boston, MA: Addison-Wesley Professional, 2003.

    Google Scholar 

  15. Genero M, Piattini M, Calero C. A survey of metrics for UML class diagrams. J. Obj. Technol., 2005, 4(9): 59–92.

    Google Scholar 

  16. Manso M E, Genero M, Piattini M. No-redundant metrics for UML class diagram structural complexity. In Proc. the 15th Int. Conf. Adv. Info. Syst. Eng. (CAiSE 2003), Klagenfurt, Austria, Jun. 16-18, 2003, pp.127–142.

  17. Zhou Y, Xu B. Measuring structure complexity of UML class diagrams. Chinese J. Elec., 2003, 20(3): 227–231.

    Google Scholar 

  18. Genero M, Piattini M, Manso M E, Cantone G. Building UML class diagram maintainability prediction models based on early Metrics. In Proc. the 9th Int. Symp. Softw. Metrics (ISSM 2003), Sydney, Australia, Sept. 3-5, 2003, p.263.

  19. Genero M, Piattini M, Manso M E. Finding “early” indicators of UML class diagrams understandability and modifiability. In Proc. 2004 Int. Symp. Emp. Softw. Eng. (ISESE 2004), Redondo Beach, USA, Aug. 19-20, 2004, pp.207–216.

  20. Yi T, Wu F, Gan C. A comparison of metrics for UML class diagrams. ACM SIGSOFT Softw. Eng. Notes, 2004, 29(5): 1–6.

    Google Scholar 

  21. Ma Y T, He K Q, Du D H. A qualitative method for measuring the structural complexity of software systems based on complex networks. In Proc. the 12th Asia-Pacific Softw. Eng. Conf., Taipei, China, Dec. 15-17, 2005, pp.257–263.

  22. Chatzigeorgiou A, Tsantalis N, Stephanides G. Application of graph theory to OO software engineering. In Proc. the 2006 Int. Workshop on Interdiscipl. Softw. Eng. Research (WISER 2006), Shanghai, China, May 20, 2006, pp.29–36.

  23. Potanin A, Noble J, Frean M, Biddle R. Scale-free geometry in OO programs. Commun. ACM, 2005, 48(5): 99–103.

    Article  Google Scholar 

  24. Concas G, Marchesi M, Pinna S, Serra N. Power-laws in a large object-oriented software system. IEEE Trans. Softw. Eng., 2007, 33(10): 687–708.

    Article  Google Scholar 

  25. Louridas P, Spinellis D, Vlachos V. Power laws in software. ACM Trans. Softw. Eng. Methodol., 2008, 18(1): Article 2.

  26. Kasunic M. The state of software measurement practice: Results of 2006 survey. Technical Report, No. CMU/SEI-2006-TR-009, Softw. Eng. Inst. at Carnegie Mellon Univ., 2006.

  27. Zimmermann T, Nagappan N. Predicting defects using network analysis on dependency graphs. In Proc. the 30th Int. Conf. Softw. Eng. (ICSE 2008), Leipzig, Germany, May 10-18, 2008, pp.531–540.

  28. http://en.wikipedia.org/wiki/Complex_fsnetwork, Jul. 1, 2009.

  29. Watts D J, Strogatz S H. Collective dynamics of small-world networks. Nature, 1998, 393(6684): 440–442.

    Article  Google Scholar 

  30. Barabási A L, Albert R. Emergence of scaling in random networks. Science, 1999, 286(5439): 509–512.

    Article  MathSciNet  Google Scholar 

  31. Guare J. Six Degrees of Separation: A Play. New York: Vintage Books, 1990.

    Google Scholar 

  32. Barabási A L. Linked: The New Science of Networks. New York: Perseus Books Group, 2002.

  33. Myers C R. Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs. Phys. Rev. E, 2003, 68(4): 046116.

    Article  Google Scholar 

  34. Moura A P, Lai Y C, Motter A E. Signatures of small-world and scale-free properties in large computer programs. Phys. Rev. E, 2003, 68(1): 017102.

    Article  Google Scholar 

  35. Valverde S, Solé R V. Hierarchical small worlds in software architecture. Working Paper, No. SFI/03-07-44, Santa Fe Institute, 2003.

  36. Liu J, He K Q, Ma Y T et al. Scale free in software metrics. In Proc. the 30th Int. Comp. Softw. Appl. Conf. (COMPSAC 2006), Chicago, USA, Sept. 17-21, 2006, pp.229–235.

  37. Wheeldon R, Counsell S. Power law distributions in class relationships. In Proc. the 3rd IEEE Int. Workshop on Source Code Analy. & Manipul. (SCAM 2003), Amsterdam, Holland, Sept. 26-27, 2003, pp.45–54.

  38. LaBelle N,Wallingford E. Inter-package dependency networks in open-source software. arXiv: cs.SE/0411096, 2004.

  39. Baxter G, Frean M, Noble J, Rickerby M, Smith H, Visser M, Melton H, Tempero E. Understanding the shape of Java software. ACM SIGPLAN Notices, 2006, 41(10): 397–412.

    Article  Google Scholar 

  40. Concas G, Marchesi M, Pinna S, Serra N. On the suitability of Yule process to stochastically model some properties of object-oriented systems. Physica A, 2006, 370(2): 817–831.

    Article  Google Scholar 

  41. Hyland-Wood D, Carrington D, Kaplan S. Scale-free nature of Java software package, class and method collaboration graphs. Technical Report, No. TR-MS1286, MIND Laboratory, University of Maryland College Park, 2006.

  42. Bilar D. Callgraph properties of executables. AI Commun., 2007, 20(4): 231–243.

    MathSciNet  Google Scholar 

  43. Ichii M, Matsushita M, Inoue K. An exploration of powerlaw in use-relation of Java software systems. In Proc. the 19th Australian Conf. Softw. Eng. (ASWEC 2008), Perth, Western Australia, Mar. 26-28, 2008, pp.422–431.

  44. Cai K Y, Yin B B. Software execution processes as an evolving complex network. Information Sciences, 2009, 179(12): 1903–1928.

    Article  Google Scholar 

  45. Wen L, Kirk D, Dromey R G. Software systems as complex networks. In Proc. the 6th IEEE Int. Conf. Cogn. Info. (ICCI 2007), California, USA, Aug. 6-8, 2007, pp.106–115.

  46. Li D Y, Han Y N, Hu J. Complex network thinking in software engineering. In Proc. 2008 Int. Conf. Comp. Sci. and Softw. Eng., Wuhan, China, Dec. 12-14, 2008, pp.264–268.

  47. Dijkstra E W. The Structure of the “T.H.E.” multiprogramming system. Commun. ACM, 1968, 11(5): 453–457.

    Article  MathSciNet  Google Scholar 

  48. Zhang H, Zhao H, Cai W et al. A qualitative method for analysis the structure of software systems based on k-core. Dyn. Conti. Disc. Impul. Syst. B, 2007, 14(S6): 18–24.

    Google Scholar 

  49. Cai W, Zhao H, Zhang H, Zhao M, Luo G. Static structural complexity metrics for large-scale software. Dyn. Conti. Disc. Impul. Syst. B, 2007, 14(S6): 12–17.

    Google Scholar 

  50. Vasa R, Schneider J G,Woodward C, Cain A. Detecting structural changes in object oriented software systems. In Proc. 2005 Int. Symp. Emp. Softw. Eng. (ISESE 2005), Noosa Heads, Australia, Nov. 17-18, 2005, pp.479–486.

  51. Jenkins S, Kirk S R. Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution. Information Sciences, 2007, 177(12): 2587–2601.

    Article  Google Scholar 

  52. Vasa R, Schneider J G, Nierstrasz O. The inevitable stability of software change. In Proc. the 23rd IEEE Int. Conf. Softw. Maint. (ICSM 2007), Paris, France, Oct. 2-5, 2007, pp.4–13.

  53. Tosun A, Turhan B, Bener A. Validation of network measures as indicators of defective modules in software systems. In Proc. the 5th Int. Conf. Predictor Models in Softw. Eng. (Promise 2009), Vancouver, Canada, May 18-19, 2009, p.5.

  54. McCabe T J. A complexity measure. IEEE Trans. Softw. Eng., 1976, 2(4): 308–320.

    Article  MathSciNet  Google Scholar 

  55. Brooks F P. Three great challenges for half-century-old computer science. J. ACM, 2003, 50(1): 25–26.

    Article  Google Scholar 

  56. Genero M. Defining and validating metrics for conceptual models [Ph.D. Dissertation]. University of Castilla-La Mancha, 2002.

  57. Ravasz E, Somera A L, Mongru D A et al. Hierarchical organization of modularity in metabolic networks. Science, 2002, 297(30): 1551–1555.

    Article  Google Scholar 

  58. Newman M E J. The structure and function of complex networks. SIAM Rev., 2003, 45(2): 167–256.

    Article  MATH  MathSciNet  Google Scholar 

  59. Maslov S, Sneppen K. Specificity and stability in topology of protein networks. Science, 2002, 296(5569): 910–913.

    Article  Google Scholar 

  60. Briand L, Morasca S, Basili V. Property-Based Software Engineering Measurement. IEEE Trans. Softw. Eng., 1996, 22(6): 68–86.

    Article  Google Scholar 

  61. Poels G, Dedene G. Distance-based software measurement: Necessary and sufficient properties for software measures. Info. & Softw. Technol., 2000, 42(1): 35–46.

    Article  Google Scholar 

  62. Henry S M, Kafura D. Software structure metrics based on information flow. IEEE Trans. Softw. Eng., 1981, 7(5): 510–518.

    Article  Google Scholar 

  63. Ma Y T, He K Q, Liu W et al. A grid-oriented platform for software component repository based on domain ontology. In Proc. 2007 IEEE Int. Conf. Services Comput. (SCC 2007), Salt Lake City, USA, Jul. 9-13, 2007, pp.628–635.

  64. Valverde S, Solé R V. Network motifs in computational graphs: A case study in software architecture. Phys. Rev. E, 2005, 72(2): 026107.

    Article  Google Scholar 

  65. Ma Y T, He K Q, Liu J. Network motifs in object-oriented software systems. Dyn. Conti. Disc. Impul. Syst. B, 2007, 14(S6): 166–172.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yu-Tao Ma.

Additional information

An early version has been published in the proceedings of the 6th IEEE International Conference on Computer and Information Technology (CIT 2006).

Supported by the National Grand Fundamental Research 973 Program of China under Grant No. 2007CB310800, the National Natural Science Foundation of China under Grant Nos. 60873083 and 60803025, the Research Fund for the Doctoral Program of Higher Education of China under Grant No. 20090141120022, the Natural Science Foundation of Hubei Province of China under Grant Nos. 2008ABA379 and 2008CDB351, and the Fundamental Research Funds for the Central Universities of China under Grant No. 6082005.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ma, YT., He, KQ., Li, B. et al. A Hybrid Set of Complexity Metrics for Large-Scale Object-Oriented Software Systems. J. Comput. Sci. Technol. 25, 1184–1201 (2010). https://doi.org/10.1007/s11390-010-9398-x

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11390-010-9398-x

Keywords

Navigation