Автоматизоване виявлення вад архітектури програмного модуля з використанням графової моделі візуалізації

Автор(и)

  • Олександр Олександрович Франків Національний університет «Києво-Могилянська академія», Україна https://orcid.org/0009-0005-5264-358X

DOI:

https://doi.org/10.18523/2617-3808.2025.8.167-173

Ключові слова:

програмування, програмний модуль, архітектура програмного забезпечення (ПЗ), оцінювання якості ПЗ, візуалізація архітектури, автоматизований статичний аналіз, шаблони проєктування, метрики, зв’язність програмного коду, згуртованість програмного коду

Анотація

У цій статті описано новий підхід до автоматизованого виявлення вад проєктування програмного модуля з використанням моделі візуалізації архітектури у формі графа із застосуванням додаткових алгоритмів аналізу. Запропонований спосіб дозволяє виявити поширені вади та інформацію про них у легкому для сприйняття поданні з використанням лише вихідного коду програми. У статті розглянуто чотири ознаки наявності помилок при проєктуванні в контексті ООП, зокрема порушеної згуртованості, зв’язності і циклічних залежностей, а також способи їх виявлення та представлення у моделі архітектури. На реальних прикладах виконано автоматизоване виявлення вад із використанням розробленого інструменту для мови Swift з підтвердженням їх наявності у процесі детального аналізу кодової бази.

Біографія автора

Олександр Олександрович Франків, Національний університет «Києво-Могилянська академія»

студент PhD програми «Комп’ютерні науки» факультету інформатики Національного університету «Києво-Могилянська академія», o.frankiv@ukma.edu.ua

Посилання

  1. Bobrov, A. (2020). 2048 [Source code]. GitHub. https://github.com/aibobrov/2048.
  2. Chidamber, S. R., & Kemerer, C. F. (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20 (6), 476–493. https://doi.org/10.1109/32.295895.
  3. Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring: Improving the design of existing code. Addison Wesley Professional.
  4. Frankiv, O. O. (2023). Application of augmented reality for software module architecture visualization. Scientific Notes of NaUKMA, 5, 26–30. https://doi.org/10.18523/2617-3808.2022.5.26-30 [in Ukrainian].
  5. Frankiv, O. O., & Hlybovets, M. M. (2024). Automated visualization of software architecture components for Swift. Cybernetics and Systems Analysis, 60 (6), 190–198. https://doi.org/10.1007/s10559-024-00737-9 [in Ukrainian].
  6. Lenarduzzi, V., Pecorelli, F., Saarimäki, N., Lujan, S., & Palomba, F. (2022). A critical comparison on six static analysis tools: Detection agreement and precision. SSRN Electronic Journal. https://doi.org/10.2139/ssrn.4044439.
  7. Li, R., Liang, P., Soliman, M., & Avgeriou, P. (2022). Understanding software architecture erosion: A systematic mapping study. Journal of Software: Evolution and Process, 34 (3), e2423. https://doi.org/10.1002/smr.2423.
  8. Schneider, S., Bakhtin, A., Li, X., Soldani, J., Brogi, A., Černý, T., & Scandariato, R. (2025). Comparison of static analysis architecture recovery tools for microservice applications. Empirical Software Engineering, 30, 128. https://doi.org/10.1007/s10664-025-10686-2.
  9. Tang, M.-H., Kao, M.-H., & Chen, M.-H. (1999). An empirical study on object-oriented metrics. In Proceedings of the Sixth International Software Metrics Symposium (pp. 242–249). https://doi.org/10.1109/metric.1999.809745.
  10. Voas, J., & Kuhn, R. (2017). What happened to software metrics? Computer, 50 (5), 88–98. https://doi.org/10.1109/MC.2017.144.

##submission.downloads##

Опубліковано

2025-11-26