Quantifying Software Maintainability: A Metric-Based Approach for Code Refactoring and Optimization

Authors

  • Gopinath Kathiresan Software Quality Engineering, Apple Inc, USA

Keywords:

Software Maintainability, Code Quality, Refactoring, Maintainability Metrics, Software Development Lifecycle, AI-driven Automation, Technical Debt, Software Complexity, Code Readability, Software Evolution

Abstract

The durability and operational effectiveness together with adaptability of software depends heavily on maintainability elements. Enhancing software complexity produces challenges in code quality management while performance maintenance requires appropriate strategies along with developed tools. The research investigates major aspects of maintainability through an evaluation of measurement tools and code transformation practices and employee-related factors. This work studies contemporary approaches including AI-powered automation and best best practices to implement maintainability during the software development lifecycle sequence. Research analysis supported by industry trends enables this paper to present solutions for routine maintainability problems and established future methods which enhance software sustainability. The study demonstrates why maintainability enhancement requires planned refactoring with suitable metrics and artificial intelligence technology adoption. The analysis explores genuine business implications for software maintainability which affect developers alongside organizations because ongoing process enhancement remains essential. Research approaches for the upcoming years will focus on developing AI reframing mechanisms while improving maintainability evaluation system methods.

References

Gradišnik, M., Beranič, T., & Karakatič, S. (2020). Impact of historical software metric changes in predicting future maintainability trends in open-source software development. Applied Sciences, 10(13), 4624.

Bennett, K. H., & Rajlich, V. T. (2000, May). Software maintenance and evolution: A roadmap. In Proceedings of the Conference on the Future of Software Engineering (pp. 73-87).

Ostberg, J.-P., & Wagner, S. (2014). On automatically collectable metrics for software maintainability evaluation. In Proceedings of the 2014 Joint Conference of the International Workshop on Software Measurement and the International Conference on Software Process and Product Measurement (pp. 32–37). IEEE.

Ardito, L., Coppola, R., Barbato, L., & Verga, D. (2020). A tool-based perspective on software code maintainability metrics: A systematic literature review. Scientific Programming, 2020, Article 8840389. https://doi.org/10.1155/2020/8840389

Benestad, H. C., Anda, B., & Arisholm, E. (2009). Understanding software maintenance and evolution by analyzing individual changes: A literature review. Journal of Software Maintenance and Evolution: Research and Practice, 21(6), 349–378. https://doi.org/10.1002/smr.412

Boehm, B. (2006, May). A view of 20th and 21st century software engineering. In Proceedings of the 28th International Conference on Software Engineering (pp. 12–29). https://doi.org/10.1145/1134285.1134288

Pigoski, T. M. (2001). Software maintenance. In Guide to the Software Engineering Body of Knowledge (SWEBOK) (pp. 87–107). IEEE Computer Society Press.

IEEE Computer Society. (2014). Guide to the Software Engineering Body of Knowledge (SWEBOK), Version 3.0. IEEE Computer Society Press. Retrieved from https://ieeecs-media.computer.org/media/education/swebok/swebok-v3.pdf

ISO/IEC/IEEE. (2006). Software engineering—Software life cycle processes—Maintenance (ISO/IEC/IEEE 14764:2006). International Organization for Standardization.

Kitchenham, B. A., Travassos, G. H., Mayrhauser, A. N., Niessink, F., Schneidewind, N. F., Singer, J., Takada, S., Vehvilainen, R., & Yang, H. (1999). Towards an ontology of software maintenance. Journal of Software Maintenance and Evolution: Research and Practice, 11(6), 365–389. https://doi.org/10.1002/(SICI)1096-908X(199911/12)11:6<365::AID-SMR196>3.0.CO;2-H

Bennett, H., & Rajlich, V. T. (2000). Software maintenance and evolution: A roadmap. Proceedings of the 22nd International Conference on Software Engineering (ICSE), 73–87. ACM.

Chapin, N., Hale, J. F., Khan, K. M., Ramil, J. F., & Tan, W. G. (2001). Types of software evolution and software maintenance. Journal of Software Maintenance and Evolution: Research and Practice, 13, 3–30. https://doi.org/10.1002/smr.220

Swanson, E. B. (1976). The dimensions of maintenance. Proceedings of the 2nd International Conference on Software Engineering (ICSE), 492–497. IEEE Computer Society Press.

Almogahed, A., Mahdin, H., Omar, M., Zakaria, N. H., Mostafa, S. A., AlQahtani, S. A., ... & Hidayat, R. (2023). A refactoring classification framework for efficient software maintenance. IEEE Access, 11, 78904–78917. https://doi.org/10.1109/ACCESS.2023.3291234

Kothapalli, S., Manikyala, A., Kommineni, H. P., Venkata, S. G. N., Gade, P. K., Allam, A. R., ... & Kundavaram, R. R. (2019). Code refactoring strategies for DevOps: Improving software maintainability and scalability. ABC Research Alert, 7(3), 193–204.

Wahler, M., Drofenik, U., & Snipes, W. (2016, October). Improving code maintainability: A case study on the impact of refactoring. In 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME) (pp. 493–501). IEEE. https://doi.org/10.1109/ICSME.2016.44

Malhotra, R., & Lata, K. (2020). A systematic literature review on empirical studies towards prediction of software maintainability. Soft Computing, 24(21), 16655–16677. https://doi.org/10.1007/s00500-020-05005-4

Riaz, M., Mendes, E., & Tempero, E. (2009, October). A systematic review of software maintainability prediction and metrics. In 2009 3rd International Symposium on Empirical Software Engineering and Measurement (pp. 367–377). IEEE. https://doi.org/10.1109/ESEM.2009.5314233

Salamea, M. J., & Farré, C. (2019, July). Influence of developer factors on code quality: A data study. In 2019 IEEE 19th International Conference on Software Quality, Reliability and Security Companion (QRS-C) (pp. 120–125). IEEE. https://doi.org/10.1109/QRS-C.2019.00035

Mannan, U. A., Ahmed, I., & Sarma, A. (2018, November). Towards understanding code readability and its impact on design quality. In Proceedings of the 4th ACM SIGSOFT International Workshop on NLP for Software Engineering (pp. 18–21). https://doi.org/10.1145/3283812.3283821

Basili, V. R., & Reiter Jr, R. W. (1979). An investigation of human factors in software development. Computer, 12(12), 21–38. https://doi.org/10.1109/C-M.1979.218092

Khankhoje, R. (2018). The Power of AI Driven Reporting in Test Automation. International Journal of Science and Research (IJSR), 7(11), 1956-1959.

Kaur, G., & Singh, B. (2017, June). Improving the quality of software by refactoring. In 2017 International Conference on Intelligent Computing and Control Systems (ICICCS) (pp. 185-191). IEEE.

Kataoka, Y., Imai, T., Andou, H., & Fukaya, T. (2002, October). A quantitative evaluation of maintainability enhancement by refactoring. In International Conference on Software Maintenance, 2002. Proceedings. (pp. 576-585). IEEE.

Kothapalli, S., Manikyala, A., Kommineni, H. P., Venkata, S. G. N., Gade, P. K., Allam, A. R., ... & Kundavaram, R. R. (2019). Code Refactoring Strategies for DevOps: Improving Software Maintainability and Scalability. ABC Research Alert, 7(3), 193-204.

Tortorella, M. (2015). Reliability, maintainability, and supportability: Best practices for systems engineers. John Wiley & Sons.

Khair, M. A. (2018). Security-centric software development: Integrating secure coding practices into the software development lifecycle. Technology & Management Review, 3(1), 12-26.

Published

30-11-2020

How to Cite

Kathiresan, G. (2020). Quantifying Software Maintainability: A Metric-Based Approach for Code Refactoring and Optimization. Well Testing Journal, 29(2), 77–101. Retrieved from https://welltestingjournal.com/index.php/WT/article/view/157

Issue

Section

Original Research Articles

Similar Articles

1 2 3 4 5 6 7 8 9 > >> 

You may also start an advanced similarity search for this article.