З’ясовано, що досягнення високих показників якості програмного забезпечення (ПЗ), зокрема зручності його супроводу (англ. maintainability [1]), з кожним робом стає дедалі більшою проблемою через появу нових технологій, зокрема хмарних технологій та безсерверної архітектури. Попри це, вимоги до рівня зручності супроводу ПЗ тільки зростають, а дана характеристика його якості отримує все більше уваги. Раніше розроблені науковими та інженерними спільнотами численні інструменти, методології, підходи та методи розробки ПЗ для його підвищення якості є недостатньо ефективними за наявних умов. Було підтверджено, що застосування удосконаленого методу підвищення зручності супроводу ПЗ за умов застосування безсерверної архітектури є нагальною необхідністю. Було проаналізовано поточний стан підходів до підвищення зручності супроводу ПЗ. Внаслідок цього була обрана так звана “чиста архітектура” (з англ. Clean Architecture) як найкращий наявний підхід із причини того, що він успадковує основні переваги конкурентних підходів, надає чіткіші настанови та охоплює ширший спектр процесу розроблення ПЗ. Незважаючи на те, що він забезпечує істотне підвищення основних характеристик зручності супроводу ПЗ, таких як модульність (англ. modularity) і зручність перевикористання (англ. resusability), все ще є інші характеристики, які потрібно розглянути, такі як аналізованість (англ. analyzability), модифікованість (англ. modifiability) і тестування (англ. testability). Було визначено вимоги та розроблено удосконалений метод підвищення зручності супроводу ПЗ за умов застосування безсерверної архітектури, який задовольняє всі попередньо сформульовані вимоги. Зокрема, цей підхід покращує роботу з залежностями, надає базову структуру для компонент, підвищує згуртованість та зменшує зчепленість функціоналу. Для оцінювання ефективності створеного методу було розроблено дві реалізації одного й того ж проекту: на підставі Clean Architecture та з використанням удосконаленого методу. Для них були розраховані такі метрики оцінювання зручності супроводу ПЗ: показник зручності супроводу ПЗ (англ. Maintainability Index, MI) та його варіація, за якої до уваги беруться тільки файли з показником менше 100, яку будемо називати відфільтрований показник зручності супроводу ПЗ (англ. Filtered Maintainability Index, FMI). Проаналізувавши отримані результати, було виявлено, що застосування удосконаленого методу підвищує значення першої метрики на 2,1 % та другої на 8,3 %. Отже, було доведено ефективність розробленого вдосконаленого методу.
[1] ISO25010/57. (2022). Maintainability. https://iso25000.com/index.php/en/iso-25000-standards/iso-25010/57-maintainability
[2] Alenezi, M., & Zarour, M. (2020). On the relationship between software complexity and security. International Journal of Software Engineering & Applications (IJSEA), 11(1), 51–60. https://doi.org/10.5121/ijsea.2020.11104
[3] Abeyrathne, T. K. L., Gayal, B. A. I., Jayathilake, R. D. C. K., Weththasinghe, W. V. S. A. (2021). Increase Maintainability of a Software Product using Structuredness. University of Kelaniya. https://www.researchgate.net/publication/354363138_Increase_Maintainability_of_a_Software_Product_using_Structuredness
[4] Hasselbring, W. (2018). Software Architecture: Past, Present, Future. Gruhn, V., Striemer, R. (eds.). The Essence of Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-319-73897-0_10
[5] Lakhai, V., Kuzmych, O., Seniv, M. (2022). An improved approach to the development of software with increased requirements for flexibility and reliability in terms of creating small and medium-sized projects. IEEE 17th International Conference on Computer Sciences and Information Technologies (CSIT). Lviv. https://doi.org/10.1109/csit56902.2022.10000787
[6] Bondyopadhyay, A., & Dr. Mandal, A. C. (2022). Improvement of Software Reliability using Data Mining Technique. International Journal of Scientific and Research Publications, 12(6), 183–187. http://dx.doi.org/10.29322/IJSRP.12.06.2022.p126XX
[7] Anwer, F., Aftab, S., Waheed, U., Muhammad, S. S. (2017). Agile Software Development Models TDD, FDD, DSDM, and Crystal Methods: A Survey. International Journal of Multidisciplinary Sciences and Engineering, 246–270. https://www.researchgate.net/publication/316273992_Agile_Software_Development_Models_TDD_FDD_DSDM_and_Crystal_Methods_A_Survey
[8] Landre, E., Wesenberg, H., Olmheim, J. (2007). Agile enterprise software development using domain-driven design and test first. 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007. https://doi.org/10.1145/1297846.1297967
[9] Uludag, O., Hauder, M., Kleehaus, M., Schimpfle C., Matthes, F. (2018). Supporting Large-Scale Agile Development with Domain-Driven Design. International Conference on Agile Software Development, 232–247. http://dx.doi.org/10.1007/978-3-319-91602-6_16
[10] Martin, R. C. (2017). Clean Architecture: A Craftsman’s Guide To Software Structure And Design, London: Pearson [in England].
[11] Radon. (2020). Code Metrics. https://radon.readthedocs.io/en/latest/intro.html