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.
REFERENCES
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.
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.
ISO/IEC no. 14764: Software Engineering–Software Life Cycle Processes–Maintenance, International Organization for Standardization, 2006(E).
Tripathy, P. and Naik, K., Software Evolution and Maintenance: A Practioner’s Approach, John Wiley and Sons Inc., 2015, p. 393.
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.
Li, W. and Henry, S., Object-oriented metrics that predict maintainability, J. Syst. Software, 1993, vol. 23, pp. 111–122.
Chidamber, S.R. and Kemerer, C.F., A metrics suite for object oriented design, IEEE Trans. Software Eng., 1994, vol. 20, pp. 476–493.
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.
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.
Tempero, E. and Ralph, P., A framework for defining coupling metrics, Sci. Comput. Program., 2018, vol. 166, no. 8, pp. 1–17.
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.
Hong Yul Yang, Measuring indirect coupling, Ph.D. Thesis, Univ. of Auckland, 2010.
Pfleeger, S.L. and Bohner, S., A framework for software maintenance metrics, Proc. Conf. on Software Maintenance, San Diego, 1990, pp. 320–327.
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.
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.
Frolov, A.M., A hybrid approach to enhancing the reliability of software, Program. Comput. Software, 2004, vol. 30, pp. 18–24.
Eder, J., Kappel, G., and Schrefl, M., Coupling and cohesion in object-oriented systems, Tech. Rep., Univ. of Klagenfurt, 1992, no. 1.
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.
Zimmermann, T. and Nagappan, N., Predicting defects using network analysis on dependency graphs, Proc. 30th Int. Conf. on Software Engineering, Leipzig, 2008.
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.
Kasyanov, V.N., Graph applications in programming, Program. Comput. Software, 2001, vol. 27, pp. 146–164.
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.
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.
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.
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.
Li, H. and Li, B., A pair of coupling metrics for software networks, J. Syst. Sci. Complexity, 2011, vol. 24, pp. 51–60.
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.
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.
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.
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.
Timakov, A.A., Information flow control in software db units based on formal verification, Program. Comput. Software, 2022, vol. 48, pp. 265–285.
Martin, R.C., Agile Software Development: Principles, Patterns, and Practices, New Jersey: Pearson Education, Inc., 2003, p. 557.
Fenton, N., Software measurement: A necesary scientific basis, IEEE Trans. Software Eng., 1994, vol. 20, pp. 199–206.
Weyuker, E.J., Evaluating software complexity measures, IEEE Trans. Software Eng., 1988, vol. 14, pp. 1357–1365.
Pemmaraju, S. and Skiena, S., Computational Discrete Mathematics: Combinatorics and Graph Theory with Mathematica, Cambridge Univ. Press, 2003, p. 497.
McCabe, T.J., A complexity measure, IEEE Trans. Software Eng., 1976, vol. SE-2, pp. 308–320.
Gabow, H.N., Path-based depth-first search for strong and biconnected components, Inf. Process. Lett., 2000, vol. 74, pp. 107–114.
MongoDB, .NET Driver for MongoDB, 2019.
Newtonsoft, Json.NET: Popular high-performance JSON Framework for. NET, 2019.
NETMF, .NET Micro Framework Interpreter, 2019.
Microsoft, Node.js tools for Visual Studio, 2019.
Neo4j, Neo4j.NET Driver, 2019.
Kendall, M.G., Rank Correlation Methods, 4th ed., London: Griffin, 1970, p. 202.
Ksenzov, M.V., Architectural refactoring of corporate program systems, Program. Comput. Software, 2006, vol. 32, pp. 31–43.
Halstead, M.H., Toward a theoretical basis for estimating programming effort, in Proc. 1975 ACM Annu. Conf., ACM Digital Library, 1975, pp. 222–224.
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
Corresponding authors
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
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1134/S0361768823080157