Do internal software metrics have relationship with fault-proneness and change-proneness?

Cover Page

Cite item

Full Text

Open Access Open Access
Restricted Access Access granted
Restricted Access Subscription Access

Abstract

Fault-proneness is a measure that indicates the possibility of programming errors occurring within a software system. On the other hand, change-proneness refers to the potential for modifications to be made to the software. Both of these measures are crucial indicators of software maintainability, as they influence internal software metrics such as size, inheritance, and coupling, particularly when numerous changes are made to the system. In the literature, research has predicted change- and fault-proneness using internal software metrics. That research is almost a decade old. However, given the continuous evolution of software systems, it is essential to revisit and update our understanding of these relationships. Therefore, we have conducted an empirical investigation to revisit the relationship among various internal software metrics and change-proneness, and faultproneness, aiming to provide current and relevant insights. In our study, we identified 25 internal software metrics along with the measures of change-proneness and fault-proneness within the well-known opensource systems belonging to the Apache and Eclipse ecosystems. Next, we analyzed the relationships between these metrics using statistical correlation methods. Our results revealed that most of the metrics have little to no correlation with fault-proneness. However, metrics related to inheritance, coupling, and comments showed a moderate to high correlation with change-proneness. These findings will help developers to minimize the higher correlated software metrics to enhance maintainability in terms of change- and fault-proneness. Additionally, these insights can guide researchers in developing new approaches for predicting changes and faults by incorporating the metrics that have been shown to have stronger correlations.

About the authors

M. M. Rahman

Institute of Information Technology (IIT), University of Dhaka (DU)

Email: bit0413@iit.du.ac.bd
Dhaka, Bangladesh

T. Ahammed

Institute of Information Technology (IIT), University of Dhaka (DU)

Email: toukir@iit.du.ac.bd
Dhaka, Bangladesh

M. M. A. Joarder

Institute of Information Technology (IIT), University of Dhaka (DU)

Email: joarder@iit.du.ac.bd
Dhaka, Bangladesh

K. Sakib

Institute of Information Technology (IIT), University of Dhaka (DU)

Email: sakib@iit.du.ac.bd
Dhaka, Bangladesh

References

  1. ISO IEC 9126-1: Software Engineering-Product Quality – Part 1: Quality Model, Geneva: International Organization for Standardization, 2001.
  2. Alshayeb M. Empirical investigation of refactoring effect on software quality. Inf. Software Technol. 2009. V. 51. № 9. P. 1319–1326. https://doi.org / 10.1016 / j.infsof.2009.04.002
  3. Zhang F., Mockus A., Zou Yi., Khomh F., Hassan A.E. How does context affect the distribution of software maintainability metrics. International Conference on Software Maintenance (ICSM). 2013. P. 350–359. https://doi.org / 10.1109 / ICSM.2013.4
  4. Palomba F., Bavota G., Di Penta M., Fasano F., Oliveto R., De Lucia A. On the diffuseness and the impact on maintainability of code smells: A large scale empirical investigation. Empirical Software Eng. 2018. V. 23. № 3. P. 1188–1221. https://doi.org / 10.1007 / s10664-017-9535-z
  5. Zhou Yu., Leung H., Xu B. Examining the potentially confounding effect of class size on the associations between object-oriented metrics and changeproneness. IEEE Trans. Software Eng. 2009. V. 35. № 5. P. 607–623. https://doi.org / 10.1109 / TSE.2009.32
  6. Shatnawi R., Li W. The effectiveness of software metrics in identifying error-prone classes in post-release software evolution process. J. Syst. Software. 2008. V. 81. № 11. P. 1868–1882. https://doi.org / 10.1016 / j.jss.2007.12.794
  7. Lu H., Zhou Yu., Xu B., Leung H., Chen L. The ability of object-oriented metrics to predict change-proneness: A meta-analysis. Empirical Software Eng. 2012. V. 17. № 3. P. 200–242. https://doi.org / 10.1007 / s10664-011-9170-z
  8. Radjenović D., Heričko M., Torkar R., Živkovič A. Software fault prediction metrics: A systematic literature review. Inf. Software Technol. 2013. V. 55. № 8. P. 1397–1418. https://doi.org / 10.1016 / j.infsof.2013.02.009
  9. Rahman F. Devanbu P. How, and why, process metrics are better. 35th International Conference on Software Engineering (ICSE). San Francisco, 2013. IEEE. 2013. P. 432–441. https://doi.org / 10.1109 / ICSE.2013.6606589
  10. Malhotra R., Khanna M. Investigation of relationship between object-oriented metrics and change proneness. Int. J. Mach. Learn. Cybern. 2013. V. 4. № 4. P. 273–286. https://doi.org / 10.1007 / s13042-012-0095-7
  11. Olague H.M., Etzkorn L.H., Gholston S., Quattlebaum S. Empirical validation of three software metrics suites to predict fault- proneness of object-oriented classes developed using highly iterative or agile software development processes. IEEE Trans. Software Eng. 2007. V. 33. № 6. P. 402–419. https://doi.org / 10.1109 / TSE.2007.1015
  12. Eski S., Buzluca F. An empirical study on objectoriented metrics and software evolution in order to reduce testing costs by predicting change-prone classes. 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops, Berlin, 2011. IEEE. 2011. P. 566–571. https://doi.org / 10.1109 / icstw.2011.43
  13. Khomh F., Di Penta M., Gueheneuc Y.-G. An exploratory study of the impact of code smells on software change-proneness, 2009 16th Working Conference on Reverse Engineering, Lille, France, 2009. IEEE. 2009. P. 75–84. https://doi.org / 10.1109 / wcre.2009.28
  14. Rahman Md.M., Ahammed T., Joarder Md.M.A., Sakib K. Does code smell frequency have a relationship with fault-proneness. Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering, Oulu, Finland, 2023, New York: Association for Computing Machinery. 2023. P. 261–262. https://doi.org / 10.1145 / 3593434.3593457
  15. Aggarwal K.K., Singh Yo., Kaur A., Malhotra R. Empirical analysis for investigating the effect of object-oriented metrics on fault proneness: A replicated case study. Software Process: Improvement and Practice. 2009. V. 14. № 1. P. 39–62. https://doi.org / 10.1002 / spip.389
  16. Pecorelli F., Palomba F., Khomh F., De Lucia A. Developer-driven code smell prioritization. Proceedings of the 17th International Conference on Mining Software Repositories, Seoul, 2020, New York: Association for Computing Machinery. 2020. P. 220–231. https://doi.org / 10.1145 / 3379597.3387457
  17. Gupta S.C., Kapoor V.K. Fundamentals of Mathematical Statistics. Sultan Chand & Sons, 2020.
  18. Cohen J. Statistical Power Analysis for the Behavioral Sciences. New York: Routledge, 2013, 2nd ed. https://doi.org / 10.4324 / 9780203771587

Supplementary files

Supplementary Files
Action
1. JATS XML

Copyright (c) 2025 Russian Academy of Sciences

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».