Оцінювання витрат на проведення рефакторингу бази даних інформаційної системи, яка експлуатується
DOI:
https://doi.org/10.30837/0135-1710.2023.179.004Ключові слова:
рефакторинг, база даних, СОСОМО ІІ, SQL, запит на змінуАнотація
Об’єктом дослідження є робота з прийняття рішення щодо доцільності проведення рефакторингу бази даних інформаційної системи, яка експлуатується. Визначено, що основні рекомендації з формування та прийняття подібних рішень базуються на використанні переважно інтуїції та досвіду особи, яка приймає рішення. Сучасні дослідження в галузі рефакторингу баз даних присвячені, головним чином, аналізу та вдосконаленню прикладних методик рефакторингу. Проблема визначення доцільності рефакторингу бази даних та, зокрема, визначення можливості здійснення рефакторингу в умовах діючих обмежень ІТ-проєкта залишається практично невирішеною. Тому проведення досліджень з вирішення цієї проблеми є актуальним з теоретичної і прикладної точок зору.
Як основі моделі оцінювання витрат було обрано моделі СОСОМО ІІ. Визначені особливості використання цих моделей під час розрахунку трудовитрат для ІТ-проєктів модифікації або розвитку програмних систем. Встановлені основні SQL-команди, які найчастіше використовуються під час рефакторингу бази даних. Розроблено моделі оцінювання кількості рядків вихідного коду кожної з цих SQL-команд. Вдосконалено модель оцінювання кількості рядків вихідного коду для ІТ-проєкту модифікації або розвитку систем, окремим випадком якого пропонується вважати рефакторинг бази даних.
Проведено експериментальну перевірку отриманих наукових результатів. Для такої перевірки було обрано базу даних інформаційно-облікової системи однієї з організацій, яка виконує функції Інтернет-провайдера. Для цієї системи було сформульовано два запити на зміну, за якими слід було проводити рефакторинг бази даних. Описана послідовність дій з оцінювання трудовитрат і витрат часу на рефакторинг бази даних за визначеними запитами на зміну. Отримані результати оцінювання дозволяють прийняти рішення про можливість проведення рефакторингу бази даних інформаційно-облікової системи.
Посилання
Fowler M. Refactoring Home Page. Refactoring. URL: https://www.refactoring.com/ (дата звернення: 20.04.2023).
Ambler S. W., Sadalage P. Refactoring Databases: Evolutionary Database Design. Addison-Wesley Longman, Incorporated, 2006. 384 p.
Database Refactoring: Improve Production Data Quality. The Agile Data (AD) Method - Strategies for effective data-oriented development. URL: http://agiledata.org/essays/databaseRefactoring.html (date of access: 07.04.2023).
The evolution of knowledge in the refactoring research field / M. Orrú et al. XP 2015 Workshops: XP 2015 Scientific Workshops Proceedings, Helsinki Finland. New York, NY, USA, 2015. https://doi.org/10.1145/2764979.2764989.
Vial G. Database Refactoring: Lessons from the Trenches. IEEE Software. 2015. Vol. 32. No. 6. P. 71–79. https://doi.org/10.1109/ms.2015.131.
Khumnin P., Senivongse T. SQL antipatterns detection and database refactoring process. 2017 18th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), Kanazawa, Japan, 26–28 June 2017. 2017. https://doi.org/10.1109/snpd.2017.8022723.
Synthesizing database programs for schema refactoring / Y. Wang et al. PLDI '19: 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, Phoenix AZ USA. New York, NY, USA, 2019. https://doi.org/10.1145/3314221.3314588.
Filatov V., Semenets V. Methods for Synthesis of Relational Data Model in Information Systems Reengineering Problems. 2018 International Scientific-Practical Conference Problems of Infocommunications. Science and Technology (PIC S&T), Kharkiv, Ukraine, 9–12 October 2018. 2018. https://doi.org/10.1109/infocommst.2018.8632144.
Bohm L. Refactoring Legacy T-SQL for Improved Performance. Berkeley, CA: Apress, 2020. https://doi.org/10.1007/978-1-4842-5581-0.
Fernandes I. P., Terra-Neves M., Seco J. C. Automated Refactoring of Unbounded Queries in Software Automation Platforms. 2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C), Fukuoka, Japan, 10–15 October 2021. 2021. https://doi.org/10.1109/models-c53483.2021.00065.
Spasić M., Janičić M. V. Verification supported refactoring of embedded SQL. Software Quality Journal. 2020. Vol. 29, no. 3. PP. 629–665. https://doi.org/10.1007/s11219-020-09517-y.
Managing Technical Debt in Database Normalization / M. Albarak et al. IEEE Transactions on Software Engineering. 2020. P. 1. https://doi.org/10.1109/tse.2020.3001339.
How do i refactor this? An empirical study on refactoring trends and topics in Stack Overflow / A. Peruma et al. Empirical Software Engineering. 2021. Vol. 27, no. 1. https://doi.org/10.1007/s10664-021-10045-x.
COCOMO II Model Definition Manual Version 2.1. 2000. 90 р. URL: https://www.rose-hulman.edu/class/cs/csse372/201310/Homework/CII_modelman2000.pdf (дата звернення: 12.04.2023).
SQL | DDL, DQL, DML, DCL and TCL Commands - GeeksforGeeks. GeeksforGeeks. URL: https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/ (дата звернення: 12.04.2023).
SQL DDL Commands | Learn the DDL Commands of SQL. EDUCBA. URL: https://www.educba.com/sql-ddl-commands/ (дата звернення: 12.04.2023).
Євланов М.В., Юр’єв І.О., Мірошниченко Д.О. Оцінювання доцільності проведення рефакторингу бази даних інформаційної системи, яка експлуатується. АСУ і прилади автоматики. 2022. Вип. 178. С. 13–22. DOI:10.30837/0135-1710.2022.178.013