journal article·2023-02-25Open access

Exploring Maintainability Index Variants for Software Maintainability Measurement in Object-Oriented Systems

Tjaša Heričko, Boštjan Šumak

Applied Sciences· Volume 13· Issue 5

Abstract

During maintenance, software systems undergo continuous correction and enhancement activities due to emerging faults, changing environments, and evolving requirements, making this phase expensive and time-consuming, often exceeding the initial development costs. To understand and manage software under development and maintenance better, several maintainability measures have been proposed. The Maintainability Index is commonly used as a quantitative measure of the relative ease of software maintenance. There are several Index variants that differ in the factors affecting maintainability (e.g., code complexity, software size, documentation) and their given importance. To explore the variants and understand how they compare when evaluating software maintainability, an experiment was conducted with 45 Java-based object-oriented software systems. The results showed that the choice of the variant could influence the perception of maintainability. Although different variants presented different values when subjected to the same software, their values were strongly positively correlated and generally indicated similarly how maintainability evolved between releases and over the long term. Though, when focusing on fine-grained results posed by the Index, the variant selection had a larger impact. Based on their characteristics, behavior, and interrelationships, the variants were divided into two distinct clusters, i.e., variants that do not consider code comments in their calculation and those that do.
Source: crossref · Quality: baseline

Research context

OpenAlex topics: Software Engineering Research · Software Reliability and Analysis Research · Software Engineering Techniques and Practices

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

Affiliations

Faculty of Electrical Engineering and Computer Science, University of Maribor, Koroška Cesta 46, 2000 Maribor, Slovenia

Funding

Slovenian Research Agency

References (75)

Show source-provided references
1. (2022). Standard No. ISO/IEC/IEEE 14764:2022.
2. Satapathy, S., Bhateja, V., and Joshi, A. (2017, January 10–11). Software Maintenance: From the Perspective of Effort and Cost Requirement. Proceedings of the International Conference on Data Engineering and Communication Technology, Maharashtra, India.
3. A Method for Estimating Maintenance Cost in a Software Project: A Case Study10.1002/(SICI)1096-908X(199705)9:3<161::AID-SMR148>3.0.CO;2-8 ↗
4. Ren, Y., Xing, T., Chen, X., and Chai, X. (2011, January 28–29). Research on Software Maintenance Cost of Influence Factor Analysis and Estimation Method. Proceedings of the 2011 3rd International Workshop on Intelligent Systems and Applications, Wuhan, China.10.1109/ISA.2011.5873461 ↗
5. (2017). Standard No. ISO/IEC 25010:2011.
6. A systematic literature review of machine learning techniques for software maintainability prediction10.1016/j.infsof.2019.106214 ↗
7. Riaz, M., Mendes, E., and Tempero, E. (2009, January 15–16). A systematic review of software maintainability prediction and metrics. Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement, Lake Buena Vista, FL, USA.10.1109/ESEM.2009.5314233 ↗
8. Construction and testing of polynomials predicting software maintainability. Oregon Workshop on Software Metrics10.1016/0164-1212(94)90067-1 ↗
9. Using metrics to evaluate software system maintainability10.1109/2.303623 ↗
10. Development and Application of an Automated Source Code Maintainability Index10.1002/(SICI)1096-908X(199705)9:3<127::AID-SMR149>3.0.CO;2-S ↗
11. Measuring Maintainability Index of a Software Depending on Line of Code Only10.9790/0661-16276469 ↗
12. Microsoft (2021, December 20). Visual Studio. Available online: https://visualstudio.microsoft.com/.
13. Virtual Machinery (2021, December 20). MI and MINC—Maintainability Index. Available online: http://www.virtualmachinery.com/sidebar4.htm.
14. Determination of Maintainability Index for Object Oriented Systems
15. Kaur, A., Kaur, K., and Pathak, K. (2014, January 8–10). A proposed new model for maintainability index of open source software. Proceedings of the 3rd International Conference on Reliability, Infocom Technologies and Optimization, Noida, India.10.1109/ICRITO.2014.7014758 ↗
16. Modeling Design/Coding Factors That Drive Maintainability of Software Systems10.1007/s11219-005-1754-7 ↗
17. Empirical comparison of two metrics suites for maintainability prediction in packages of object-oriented systems: A case study of open source software10.3844/jcssp.2014.2330.2338 ↗
18. The software maintainability index revisited
19. Sjøberg, D.I.K., Anda, B., and Mockus, A. (2012, January 19–20). Questioning software maintenance metrics: A comparative case study. Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, Lund, Sweden.10.1145/2372251.2372269 ↗
20. Counsell, S., Liu, X., Eldh, S., Tonelli, R., Marchesi, M., Concas, G., and Murgia, A. (2015, January 26–28). Re-visiting the ‘Maintainability Index’ Metric from an Object-Oriented Perspective. Proceedings of the 2015 41st Euromicro Conference on Software Engineering and Advanced Applications, Madeira, Portugal.10.1109/SEAA.2015.41 ↗
21. Software code maintainability: A literature review
22. A comparative study of maintainability index of open source software
23. Application of Data-Oriented Design in Game Development10.1088/1742-6596/1694/1/012035 ↗
24. Molnar, A., and Motogna, S. (2017, January 25–27). Discovering Maintainability Changes in Large Software Systems. Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement, Gothenburg, Sweden.10.1145/3143434.3143447 ↗
25. A generic methodology for early identification of non-maintainable source code components through analysis of software releases10.1016/j.infsof.2019.106218 ↗
26. Kencana, G.H., Saleh, A., Darwito, H.A., Rachmadi, R.R., and Sari, E.M. (2020, January 1–2). Comparison of Maintainability Index Measurement from Microsoft CodeLens and Line of Code. Proceedings of the 2020 7th International Conference on Electrical Engineering, Computer Sciences and Informatics (EECSI), Yogyakarta, Indonesia.10.23919/EECSI50503.2020.9251901 ↗
27. Şanlıalp, İ., Öztürk, M.M., and Yiğit, T. (2022). Energy Efficiency Analysis of Code Refactoring Techniques for Green and Sustainable Software in Portable Devices. Electronics, 11.10.3390/electronics11030442 ↗
28. Predicting the maintainability of open source software using design metrics10.1007/s11859-008-0104-6 ↗
29. Revisiting the debate: Are code metrics useful for measuring maintenance effort?10.1007/s10664-022-10193-8 ↗
30. Strečanský, P., Chren, S., and Rossi, B. (April, January 30). Comparing Maintainability Index, SIG Method, and SQALE for Technical Debt Identification. Proceedings of the 35th Annual ACM Symposium on Applied Computing, Brno, Czech Republic.
31. A systematic and comprehensive investigation of methods to build and evaluate fault prediction models10.1016/j.jss.2009.06.055 ↗
32. Co-evolutionary multi-population genetic programming for classification in software defect prediction: An empirical case study10.1016/j.asoc.2017.01.050 ↗
33. Gradišnik, M., Beranič, T., and Karakatič, S. (2020). Impact of historical software metric changes in predicting future maintainability trends in open-source software development. Appl. Sci., 10.10.3390/app10134624 ↗
34. Kaur, L., and Mishra, A. (2018, January 18–19). A comparative analysis of evolutionary algorithms for the prediction of software change. Proceedings of the 2018 International Conference on Innovations in Information Technology (IIT), Al Ain, United Arab Emirates.10.1109/INNOVATIONS.2018.8605988 ↗
35. Performance of maintainability index prediction models: A feature selection based study10.1007/s12530-017-9201-0 ↗
36. Bray, M., Brune, K., Fisher, D.A., Foreman, J., and Gerken, M. (1997). C4 Software Technology Reference Guide-A Prototype, Software Engineering Institute—Carnegie Mellon University. Technical Report.
37. GitHub (2021, December 20). The 2021 State of the Octoverse. Available online: https://octoverse.github.com/.
38. Stack Overflow (2021, December 20). Stack Overflow Developer Survey. Available online: https://insights.stackoverflow.com/survey/2021.
39. Puntigam, F. (2009, January 6–10). Interfaces of Active Objects with Internal Concurrency. Proceedings of the 1st International Workshop on Distributed Objects for the 21st Century, Genova, Italy.10.1145/1557876.1557877 ↗
40. Object-oriented programming paradigm for damage tolerant evaluation of engineering structural components10.1016/j.advengsoft.2010.10.012 ↗
41. Brito e Abreu, F., and Melo, W. (1996, January 25–26). Evaluating the impact of object-oriented design on software quality. Proceedings of the 3rd International Software Metrics Symposium, Berlin, Germany.
42. Coleman, D. (1992, January 7). Assessing maintainability. Proceedings of the Software Engineering Productivity Conference, Salt Lake City, UT, USA.
43. Empirical studies on software product maintainability prediction: A systematic mapping and review
44. Comparative Analysis of Object-Oriented Software Maintainability Prediction Models10.1515/fcds-2018-0018 ↗
45. A tool-based perspective on software code maintainability metrics: A systematic literature review
46. Virtual Machinery (2021, December 20). JHawk. Available online: http://www.virtualmachinery.com/jhawkprod.htm.
47. Lacchia, M. (2021, December 20). Radon. Available online: https://radon.readthedocs.io/.
48. Verifysoft Technology (2021, December 20). Testwell CMT++/CMTJava. Available online: https://www.verifysoft.com/en_cmtx.html.
49. Object-oriented metrics that predict maintainability. Object-Oriented Software10.1016/0164-1212(93)90077-B ↗
50. Particle swarm optimization-based ensemble learning for software change prediction10.1016/j.infsof.2018.05.007 ↗
51. Three empirical studies on predicting software maintainability using ensemble methods10.1007/s00500-014-1576-2 ↗
52. Predicting maintenance performance using object-oriented design complexity metrics10.1109/TSE.2003.1166590 ↗
53. Estimation and prediction metrics for adaptive maintenance effort of object-oriented systems10.1109/32.988708 ↗
54. Hayes, J., Patel, S., and Zhao, L. (2004, January 24–26). A metrics-based software maintenance effort model. Proceedings of the 8th European Conference on Software Maintenance and Reengineering, Tampere, Finland.
55. Assessing effort estimation models for corrective maintenance through empirical studies10.1016/j.infsof.2004.05.002 ↗
56. Dahiya, S.S., Chhabra, J.K., and Kumar, S. (2007, January 18–21). Use of genetic algorithm for software maintainability metrics’ conditioning. Proceedings of the 15th International Conference on Advanced Computing and Communications (ADCOM 2007), Guwahati, India.10.1109/ADCOM.2007.69 ↗
57. Sharma, A., Grover, P., and Kumar, R. (2009, January 17–19). Predicting maintainability of component-based systems by using fuzzy logic. Proceedings of the International Conference on Contemporary Computing, Noida, India.10.1007/978-3-642-03547-0_55 ↗
58. A fuzzy approach for evaluation of maintainability of object oriented software system
59. Pratap, A., Chaudhary, R., and Yadav, K. (2014, January 7–8). Estimation of software maintainability using fuzzy logic technique. Proceedings of the 2014 International Conference on Issues and Challenges in Intelligent Computing Techniques (ICICT), Ghaziabad, India.10.1109/ICICICT.2014.6781331 ↗
60. Revilla, M.A. (2007, January 5–9). Correlations between Internal Software Metrics and Software Dependability in a Large Population of Small C/C++ Programs. Proceedings of the 18th IEEE International Symposium on Software Reliability (ISSRE ’07), Trollhattan, Sweden.10.1109/ISSRE.2007.12 ↗
61. Microsoft (2021, December 20). Visual Studio—Maintainability Index. Available online: https://docs.microsoft.com/en-us/visualstudio/code-quality/code-metrics-maintainability-index-range-and-meaning.
62. Molnar, A.J., and Motogna, S. (2020, January 5–6). A Study of Maintainability in Evolving Open-Source Software. Proceedings of the Evaluation of Novel Approaches to Software Engineering: 15th International Conference, ENASE 2020, Prague, Czech Republic. Revised Selected Papers 15.
63. Chowdhury, S.A., Uddin, G., and Holmes, R. (2022, January 23–24). An Empirical Study on Maintainable Method Size in Java. Proceedings of the 19th International Conference on Mining Software Repositories, Pittsburgh, PA, USA.10.1145/3524842.3527975 ↗
64. Prabowo, G., Suryotrisongko, H., and Tjahyanto, A. (2018, January 19–20). A Tale of Two Development Approach: Empirical Study on The Maintainability and Modularity of Android Mobile Application with Anti-Pattern and Model-View-Presenter Design Pattern. Proceedings of the 2018 International Conference on Electrical Engineering and Informatics (ICELTICs), Banda Aceh, Indonesia.10.1109/ICELTICS.2018.8548784 ↗
65. μBIGMSA-Microservice-Based Model for Big Data Knowledge Discovery: Thinking Beyond the Monoliths10.1007/s11277-020-07822-0 ↗
66. Wilson, A., Wedyan, F., and Omari, S. (2022, January 5–7). An Empirical Evaluation and Comparison of the Impact of MVVM and MVC GUI Driven Application Architectures on Maintainability and Testability. Proceedings of the 2022 International Conference on Intelligent Data Science Technologies and Applications (IDSTA), San Antonio, TX, USA.10.1109/IDSTA55301.2022.9923083 ↗
67. Impacts of software community patterns on process and product: An empirical study10.1016/j.scico.2021.102731 ↗
68. An empirical evaluation of the “Cognitive Complexity” measure as a predictor of code understandability10.1016/j.jss.2022.111561 ↗
69. Cohen, J. (1988). Statistical Power Analysis for the Behavioral Sciences, Routledge Academic.
70. New effect size rules of thumb10.22237/jmasm/1257035100 ↗
71. The simple difference formula: An approach to teaching nonparametric correlation10.2466/11.IT.3.1 ↗
72. Correlation coefficients: Appropriate use and interpretation10.1213/ANE.0000000000002864 ↗
73. Multidimensional scaling10.1002/wcs.1203 ↗
74. Sharma, S., and Batra, N. (2019, January 14–16). Comparative Study of Single Linkage, Complete Linkage, and Ward Method of Agglomerative Clustering. Proceedings of the 2019 International Conference on Machine Learning, Big Data, Cloud and Parallel Computing (COMITCon), Faridabad, India.
75. Heričko, T., and Šumak, B. (2022, January 23–27). Analyzing Linter Usage and Warnings Through Mining Software Repositories: A Longitudinal Case Study of JavaScript Packages. Proceedings of the 2022 45th Jubilee International Convention on Information, Communication and Electronic Technology (MIPRO), Opatija, Croatia.10.23919/MIPRO55190.2022.9803554 ↗