Skip to main content
Log in

A Metrics Suite for Measuring Indirect Coupling Complexity

  • Published:
Programming and Computer Software Aims and scope Submit manuscript

Abstract

Software development can be a time-consuming and costly process that requires a significant amount of effort. Developers are often tasked with completing programming tasks or making modifications to existing code without increasing overall complexity. It is essential for them to understand the dependencies between the program components before implementing any changes. However, as code evolves, it becomes increasingly challenging for project managers to detect indirect coupling links between components. These hidden links can complicate the system, cause inaccurate effort estimates, and compromise the quality of the code. To address these challenges, this study aims to provide a set of measures that leverage measurement theory and hidden links between software components to expand the scope, effectiveness, and utility of accepted software metrics. The research focuses on two primary topics: (1) how indirect coupling measurements can aid developers with maintenance tasks and (2) how indirect coupling metrics can quantify software complexity and size, leveraging weighted differences across techniques. The study presents a comprehensive set of measures designed to assist developers and project managers with project management and maintenance activities. Using the power of indirect coupling measurements, these measures can enhance the quality and efficiency of software development and maintenance processes.

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.
Fig. 7.
Fig. 8.
Fig. 9.
Fig. 10.
Fig. 11.
Fig. 12.
Fig. 13.
Fig. 14.

REFERENCES

  1. Lehman, M.M., Ramil, J.F., Wernick, P.D., Perry, D.E., and Turski, W.M., Metrics and laws of software evolution-the nineties view, Proc. 4th Int. Software Metrics Symp., Albuquerque, NM, 1997, pp. 20–32.

  2. Almeyda, S. and Dávila, A., Process improvement in software requirements engineering: A systematic mapping study, Program. Comput. Software, 2022, vol. 48, pp. 513–533.

    Article  Google Scholar 

  3. ISO/IEC no. 14764: Software Engineering–Software Life Cycle Processes–Maintenance, International Organization for Standardization, 2006(E).

  4. Tripathy, P. and Naik, K., Software Evolution and Maintenance: A Practioner’s Approach, John Wiley and Sons Inc., 2015, p. 393.

    Google Scholar 

  5. Chidamber, S.R. and Kemerer, C.F., Towards a metrics suite for object oriented design, in Proc. OOPSLA’91 Conf. on Object-Oriented Programming Systems, Languages, and Applications, Phoenix: ACM Digital Library, 1991, pp. 197–211.

  6. Li, W. and Henry, S., Object-oriented metrics that predict maintainability, J. Syst. Software, 1993, vol. 23, pp. 111–122.

    Article  Google Scholar 

  7. Chidamber, S.R. and Kemerer, C.F., A metrics suite for object oriented design, IEEE Trans. Software Eng., 1994, vol. 20, pp. 476–493.

    Article  Google Scholar 

  8. Briand, L., Devanbu, P., and Melo, W., An investigation into coupling measures for C++, in Proc. 19th Int. Conf. on Software ICSE’97, ACM Digital Library, 1997, pp. 412–421.

  9. Zimmermann, T., Weisgerber, P., Diehl, S., and Zeller, A., Mining version histories to guide software changes, in Proc. 26th Int. Conf. on Software Engineering, IEEE Computer Society, 2004, pp. 563–572.

  10. Tempero, E. and Ralph, P., A framework for defining coupling metrics, Sci. Comput. Program., 2018, vol. 166, no. 8, pp. 1–17.

    Article  Google Scholar 

  11. Lethbridge, T.C. and Laganière, R., Object-Oriented Software Engineering: Practical Software Development Using UML and Java, 2nd ed., McGraw-Hill, 2005, p. 561.

    Google Scholar 

  12. Hong Yul Yang, Measuring indirect coupling, Ph.D. Thesis, Univ. of Auckland, 2010.

  13. Pfleeger, S.L. and Bohner, S., A framework for software maintenance metrics, Proc. Conf. on Software Maintenance, San Diego, 1990, pp. 320–327.

  14. Poshyvanyk, D., Marcus, A., Ferenc, R., and Gyimothy, T., Using information retrieval based coupling measures for impact analysis, Empirical Software Eng., 2009, vol. 14, pp. 5–32.

    Article  Google Scholar 

  15. Bavota, G., Dit, B., Oliveto, R., Di Penta, M., Poshyvanyk, D., and De Lucia, A., An empirical study on the developers’ perception of software coupling, Proc. IEEE Int. Conf. on Software Engineering (ICSE’13), San Francisco, 2013, pp. 692–701.

  16. Frolov, A.M., A hybrid approach to enhancing the reliability of software, Program. Comput. Software, 2004, vol. 30, pp. 18–24.

    Article  Google Scholar 

  17. Eder, J., Kappel, G., and Schrefl, M., Coupling and cohesion in object-oriented systems, Tech. Rep., Univ. of Klagenfurt, 1992, no. 1.

  18. Hitz, M. and Montazeri, B., Measuring coupling and cohesion in object-oriented systems, Proc. Int. Symp. on Applied Corporate Computing, Monterrey, Oct. 25–27, 1995, vol. 50, pp. 75–76.

  19. Zimmermann, T. and Nagappan, N., Predicting defects using network analysis on dependency graphs, Proc. 30th Int. Conf. on Software Engineering, Leipzig, 2008.

  20. Gill, N.S. and Balkishan, Dependency and interaction oriented complexity metrics of component-based systems, ACM SIGSOFT Software Eng. Notes, 2008, vol. 33, no. 2.

  21. Kasyanov, V.N., Graph applications in programming, Program. Comput. Software, 2001, vol. 27, pp. 146–164.

    Article  MathSciNet  Google Scholar 

  22. Briand, L.C., Wust, J., and Lounis, H., Using coupling measurement for impact analysis in object-oriented systems, in Proc. IEEE Int. Conf. on Software Maintenance ICSM’99, Oxford: IEEE Xplore, 1999, pp. 475–482.

  23. MacCormack, A., Rusnak, J., and Baldwin, C., Exploring the duality between product and organizational architectures: a test of the “mirroring” hypothesis, Res. Policy, 2012, vol. 41, pp. 1309–1324.

    Article  Google Scholar 

  24. Durán, M., Juárez-Ramírez, R., Jiménez, S., and Tona, C., User story estimation based on the complexity decomposition using Bayesian networks, Program. Comput. Software, 2020, vol. 46, pp. 569–583.

    Article  Google Scholar 

  25. Valdés-Souto, F. and Naranjo-Albarrán, L., Improving the software estimation models based on functional size through validation of the assumptions behind the linear regression and the use of the confidence intervals when the reference database presents a wedge-shape form, Program. Comput. Software, 2021, vol. 47, pp. 673–693.

    Article  Google Scholar 

  26. Li, H. and Li, B., A pair of coupling metrics for software networks, J. Syst. Sci. Complexity, 2011, vol. 24, pp. 51–60.

    Article  MathSciNet  Google Scholar 

  27. Mo, R., Cai, Y., Kazman, R., Xiao, L., and Feng, Q., Decoupling level: A new metric for architectural maintenance complexity, Proc. 38th Int. Conf. on Software Engineering – ICSE’16, Austin, 2016, pp. 499–510.

  28. Almugrin, S., Albattah, W., and Melton, A., Using indirect coupling metrics to predict package maintainability and testability, J. Syst. Software, 2016, vol. 121, pp. 298–310.

    Article  Google Scholar 

  29. Lagerström, R., Baldwin, C., MacCormack, A., Sturtevant, D., and Doolan, L., Exploring the relationship between architecture coupling and software vulnerabilities: a Google Chrome case, Harvard Business School Working Paper, Feb. 2017, vol. 10379, pp. 53–69.

  30. V’yukova, N.I., Galatenko, V.A., and Samborskii, S.V., Dynamic program analysis tools in gcc and clang compilers, Program. Comput. Software, 2020, vol. 46, pp. 281–296.

    Article  Google Scholar 

  31. Timakov, A.A., Information flow control in software db units based on formal verification, Program. Comput. Software, 2022, vol. 48, pp. 265–285.

    Article  MathSciNet  Google Scholar 

  32. Martin, R.C., Agile Software Development: Principles, Patterns, and Practices, New Jersey: Pearson Education, Inc., 2003, p. 557.

    Google Scholar 

  33. Fenton, N., Software measurement: A necesary scientific basis, IEEE Trans. Software Eng., 1994, vol. 20, pp. 199–206.

    Article  Google Scholar 

  34. Weyuker, E.J., Evaluating software complexity measures, IEEE Trans. Software Eng., 1988, vol. 14, pp. 1357–1365.

    Article  MathSciNet  Google Scholar 

  35. Pemmaraju, S. and Skiena, S., Computational Discrete Mathematics: Combinatorics and Graph Theory with Mathematica, Cambridge Univ. Press, 2003, p. 497.

    Book  Google Scholar 

  36. McCabe, T.J., A complexity measure, IEEE Trans. Software Eng., 1976, vol. SE-2, pp. 308–320.

    Article  MathSciNet  Google Scholar 

  37. Gabow, H.N., Path-based depth-first search for strong and biconnected components, Inf. Process. Lett., 2000, vol. 74, pp. 107–114.

    Article  MathSciNet  Google Scholar 

  38. MongoDB, .NET Driver for MongoDB, 2019.

  39. Newtonsoft, Json.NET: Popular high-performance JSON Framework for. NET, 2019.

    Google Scholar 

  40. NETMF, .NET Micro Framework Interpreter, 2019.

  41. Microsoft, Node.js tools for Visual Studio, 2019.

  42. Neo4j, Neo4j.NET Driver, 2019.

  43. Kendall, M.G., Rank Correlation Methods, 4th ed., London: Griffin, 1970, p. 202.

    Google Scholar 

  44. Ksenzov, M.V., Architectural refactoring of corporate program systems, Program. Comput. Software, 2006, vol. 32, pp. 31–43.

    Article  Google Scholar 

  45. Halstead, M.H., Toward a theoretical basis for estimating programming effort, in Proc. 1975 ACM Annu. Conf., ACM Digital Library, 1975, pp. 222–224.

Download references

Funding

This work was supported by ongoing institutional funding. No additional grants to carry out or direct this particular research were obtained.

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to J. Navas-Su, A. Gonzalez-Torres, M. Hernandez-Vasquez, J. Solano-Cordero, F. Hernandez-Castro or A. Bener.

Ethics declarations

The authors declare that they have no conflicts of interest.

Additional information

Publisher’s Note.

Pleiades Publishing remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Navas-Su, J., Gonzalez-Torres, A., Hernandez-Vasquez, M. et al. A Metrics Suite for Measuring Indirect Coupling Complexity. Program Comput Soft 49, 735–761 (2023). https://doi.org/10.1134/S0361768823080157

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1134/S0361768823080157

Keywords:

Navigation