Development of a hybrid method for calculation of software complexity
Keywords:software engineering, software complexity, complexity metrics, hybrid method
The use of code metrics allows software developers and project managers to evaluate various features of the software (to be built or already in existence), predict workload, determine software complexity and reliability, and quantify the quality of software systems being developed. Articles written in recent years have proposed various methods for solving this problem. However, there is still no very effective approach to measuring software complexity. This article provides a brief overview of existing software complexity metrics and proposes a new hybrid method for computing software complexity. The proposed hybrid method for evaluating software complexity combines the key features of the Halsted, Maccabe, and SLOC metrics and also allows for a more efficient assessment of complexity.
T. DeMarco, Controlling Software Projects. Yourdon Press, New York, 1982, 816 p.
S. Reddivari and J. Raman, “Software Quality Prediction: An Investigation Based on Machine Learning”, 2019 IEEE 20th International Conference on Information Reuse and Integration for Data Science (IRI), pp. 115–122. doi: 10.1109/IRI.2019.00030.
A.V. Smirnov, “Methods for assessing and managing the quality of software”, Izvestia ETU “LETI” no. 2, pp. 20–25, 2019.
I. Somerville, Software engineering, 10th edition. Pearson, 2015, 816 p.
S.A. Yaremchuk, “Method for estimating the number of software defects using complexity metrics”, Radioelectronic and computer systems, no. 5, pp. 212–218, 2012.
P.A. Laplante, Dictionary of computer science, engineering and technology. CRC Press, 2017, 560 p.
J. Rashid, T. Mahmood, M.W. Nisar, “A Study on Software Metrics and its Impact on Software Quality”, Technical Journal, University of Engineering and Technology (UET), Taxila, Pakistan, vol. 24, no. 1, pp. 1–14, 2019.
T. Honglei, S. Wei and Z. Yanan, “The Research on Software Metrics and Software Complexity Metrics”, 2009 International Forum on Computer Science-Technology and Applications, pp. 131–136, 2009. doi: 10.1109/IFCSTA.2009.39.
T.H. Kazimov and T.A. Bayramova, “Evaluating Key Performance Indicators for Software Development”, IV International Congress on New Trends in Science, Engineering and Tehcnology, pp. 99–105, 2020.
Shweta, S. Sharma, and R. Singh, “Analysis of correlation between software complexity metrics”, International Journal of Innovative Science, Engineering & Technology, vol. 2 issue 8, August 2015.
S. McIntosh et al., “An empirical study of the impact of modern code review practices on software quality”, Empirical Software Engineering, 21, pp. 2146–2189, 2016. Available: https://doi.org/10.1007/s10664-015-9381-9.
S. Bhatia and J. Malhotra, “A survey on impact of lines of code on software complexity”, 2014 International Conference on Advances in Engineering & Technology Research (ICAETR – 2014), pp. 1–4, 2014. doi: 10.1109/ICAETR.2014.7012875.
A. Ghazarian, “A Theory of Software Complexity”, 2015 IEEE/ACM 4th SEMAT Workshop on a General Theory of Software Engineering, pp. 29–32, 2015. doi: 10.1109/GTSE.2015.11.
M. Khan, F. Ahmad, and M.A. Khanum, “Literature review on software complexity, software usability and software deliverability”, International Journal of Advanced Research in Computer Science, vol. 9, no. 2, pp. 438–441, 2018. doi: 10.26483/ijarcs.v9i2.5853.
M. Alenezi and M. Zarour, “On the relationship between software complexity and security”, International Journal of Software Engineering & Applications (IJSEA), vol. 11, no. 1, pp. 51–60, 2020.
Nikhil Govil, “Applying Halstead Software Science on Different Programming Languages for Analyzing Software Complexity”, Proceedings of the Fourth International Conference on Trends in Electronics and Informatics (ICOEI 2020), pp. 939–943, 2020. doi: 10.1109/ICOEI48184.2020.9142911
Y. Javed, M. Alenezi, M. Akour, and A. Alzyod, “Discovering the relationship between software complexity and software vulnerabilities”, Journal of Theoretical and Applied Information Technology, vol. 96, no. 14, pp. 4690–4698, 2018.
Y. Shin, “Exploring Complexity Metrics as Indicators of Software Vulnerability”, in the 3rd International Doctoral Symposium on Empirical Software Engineering, Kaiserslautern, Germany, October 8, 2008.
I. Chowdhury and M. Zulkernine, “Can complexity, coupling, and cohesion metrics be used as early indicators of vulnerabilities?”, Proceedings of the 2010 ACM Symposium on Applied Computing – SAC ‘10, 2010. doi:10.1145/1774088.1774504.
O. Masmali and O. Badreddin, “Towards a Model-based Fuzzy Software Quality Metrics”, 8th International Conference on Model-Driven Engineering and Software Development, pp.139–148, 2020.
Tong Yi and Chun Fang, “A Novel Method of Complexity Metric for Object-Oriented Software”, International Journal of Digital Multimedia Broadcasting, vol. 2018, pp. 1–9, 2018. Available: https://doi.org/10.1155/2018/7624768
S. Moshin Reza, M. Mahfujur Rahman, H. Parvez, O. Badreddin, and S. Al Mamun, “Performance Analysis of Machine Learning Approaches in Software Complexity Prediction”, Proceedings of International Conference on Trends in Computational and Cognitive Engineering. Advances in Intelligent Systems and Computing, vol. 1309, pp. 27–39, 2021. doi: 10.1007/978-981-33-4673-4_3.
P. Morrison, K. Herzig, B. Murphy, and L. Williams, “Challenges with applying vulnerability prediction models”, in Proceedings of the 2015 Symposium and Bootcamp on the Science of Security, pp. 1–9, 2015.
Mohd. Kamran Khan et al., “Literature review on software complexity, software Usability and software deliverability”, International Journal of Advanced Research in Computer Science, 9 (2), pp. 438–441, 2018.
M. Devon Simmonds, “Complexity and the Engineering of Bug-Free Software”, Proceedings of the International Conference on Frontiers in Education: Computer Science and Computer Engineering (FECS), Athens, pp. 94–100, 2018.
T. Hariprasad, G. Vidhyagaran, K. Seenu, and C.Thirumalai, “Software complexity analysis using halstead metrics”, 2017 International Conference on Trends in Electronics and Informatics (ICEI), Tirunelveli, pp. 1109–1113, 2017. doi: 10.1109/ICOEI.2017.8300883.
A. Athar Khan, M. Amjad, Sajeda M. Amralla, and Tahera H. Mirza, “Comparison of Software Complexity Metrics”, International Journal of Computing and Network Technology, no. 1, pp.19–26, 2016.
G.R. Choudhary, S. Kumar, K. Kumar, A. Mishra, and C. Catal, “Empirical analysis of change metrics for software fault prediction”, Computers & Electrical Engineering, vol. 67, pp. 15–24, 2018. Available: https://doi.org/10.1016/ j.compeleceng. 2018.02.043.
N. Govil, “Applying Halstead Software Science on Different Programming Languages for Analyzing Software Complexity”, 2020 4th International Conference on Trends in Electronics and Informatics (ICOEI)(48184), pp. 939–943, 2020. doi: 10.1109/ICOEI48184.2020.9142911.
L. Pudovkina and V. Sinyaiev, “Applying empirical models and halstead metrics to evaluate the quality of application software”, Open Information and Computer Integrated Technologies, no. 86, pp.190–197, 2019. doi: 10.32620/oikit.2019.86.14
T.J. McCabe, “A Complexity Measure”, in IEEE Transactions on Software Engineering, vol. SE-2, no. 4, pp. 308–320, 1976. doi: 10.1109/TSE.1976.233837.
H. Liu, X. Gong, L. Liao and B. Li, “Evaluate How Cyclomatic Complexity Changes in the Context of Software Evolution”, 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC), pp. 756–761, 2018. doi: 10.1109/COMPSAC.2018.10332.