DESIGN OF THE ARCHITECTURE OF THE AUTOMATED SYSTEM FOR CREATING THE ACCOMPANYING DOCUMENTATION OF THE EDUCATIONAL PROCESS
ISSN (p) 0321-2211, ISSN (e) 2663-3450
Автоматизація та інтелектуалізація приладобудування
DOI: 10.20535/1970.67(1).2024.306737
УДК 004.4
ПРОЄКТУВАННЯ АРХІТЕКТУРИ АВТОМАТИЗОВАНОЇ СИСТЕМИ
СТВОРЕННЯ СУПРОВІДНОЇ ДОКУМЕНТАЦІЇ ОСВІТНЬОГО ПРОЦЕСУ
Цибульник С. О., Накорик В. В., Півторак Д. О.
Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського», Київ, Україна
E-mail: ,
Архітектура програмної автоматизованої системи є основним джерелом якості програмних та програмно-апаратних систем. Вплив архітектури полягає в тому, що вона визначає, наскільки швидко та ефективно
розробник здатний проаналізувати, зрозуміти, перевірити, розширити та підтримувати програмну автоматизовану систему. Зміни в архітектурі програмної системи мають високу вартість через її складність та
можливість руйнування під час розширення.
У даний час більшість знань та інформація про дизайнерські рішення, на яких базується архітектура, неявно вбудовані в неї, що призводить до виникнення проблем під час процесу розроблення, зокрема при програмній реалізації її структурних елементів.
Визначено, що, незважаючи на довгий шлях, який пройшла еволюція архітектури програмних систем, на
сьогодні існує дуже мало об'єктивних, повторюваних та емпірично обґрунтованих методологій та інструментів для проєктування та аналізу архітектури. Здебільшого архітекторами програмного забезпечення є програмісти з великим досвідом практики розроблення програмного забезпечення. Враховуючи цей досвід, вони
чітко розуміють, що помилки в проєкті архітектури є причинами проблем нижчого рівня, що проявляються в
програмному коді. Найчастіше програміст відчуває, коли архітектура його проєкту має низьку якість, тому
що існує велика кількість технічних недоліків, кількість яких з часом лише зростає. Але більшість проєктів
продовжують виконання, що призводить до зниження якості готової програмної автоматизованої системи.
Саме тому метою даної роботи є проєктування та документування програмної архітектури на прикладі
автоматизованої системи створення супровідної документації освітнього процесу, щоб зробити перший крок
у напрямку розуміння взаємозв’язків та впливу прийнятих проєктних рішень на кодову базу.
Для досягнення мети було обрано клас багаторівневих архітектур, серед яких найбільш поширеною є
трирівнева. Розглянуто особливості реалізації відкритої та закритої трирівневих архітектур. На основі архітектурного шаблону MVC розроблено проєкт архітектури автоматизованої системи створення супровідної
документації освітнього процесу. Задокументовано основні підсистеми та елементи даних.
Ключові слова: автоматизована система; архітектура; програмне забезпечення; MVC; документування.
Вступ
Архітектура програмної автоматизованої системи є основним джерелом якості та (з точки зору
довговічності) стійкості програмних та програмноапаратних систем. Це пов’язано з тим, що саме
архітектура впливає на те, наскільки швидко та
правильно розробник здатний проаналізувати,
зрозуміти, перевірити, розширити та підтримувати
програмну автоматизовану систему [1]. Внесення
змін до архітектури програмної системи має високу вартість через те, що вона є дуже складною та
може руйнуватися під час розширення. Наразі
майже всі знання та інформація про проєктні рішення, на яких базується архітектура, неявно вбудовані в неї, що призводить до виникнення проблем під час процесу розроблення, тобто при програмній реалізації її структурних елементів.
Сьогодні зазвичай під архітектурою програмної автоматизованої системи прийнято вважати
структурно-функціональну модель, яка описує
структуру (склад) системи (підсистеми, рівні, ком-
поненти тощо), функції елементів, їх взаємозв’язки та взаємодію (інтерфейси), а також правила їх композиції. Проте дане визначення не єдине.
Якщо дивитися з огляду на структури, то архітектура програмної автоматизованої системи охоплює
сукупність компонентів (структур), які складаються з елементів програмного забезпечення, їхніх
взаємозв’язків та властивостей [2, 3]. З іншого
боку [4] архітектуру можна вважати рядом проєктних рішень, які забезпечують якість та стійкість
програмної системи в процесі її розроблення, розширення та супроводу.
Отже, під архітектурою програмної автоматизованої системи варто розуміти не будь-яку структурно-функціональну модель, а лише таку, в якій
внутрішні системні інтерфейси мають точний
опис, який виключає двояке розуміння функціональних особливостей, а також забезпечуються
якість та стійкість системи в процесі розроблення
та супроводу.
За останні п’ятдесят років у сфері проєкту-
Вісник КПІ. Серія ПРИЛАДОБУДУВАННЯ, Вип. 67(1), 2024.
77
ISSN (p) 0321-2211, ISSN (e) 2663-3450
Автоматизація та інтелектуалізація приладобудування
вання архітектури програмних автоматизованих
систем було створено багато важливих та інноваційних методологій та засобів, які їх реалізовують
[5]. Особливий вплив на розвиток даного напрямку здійснили принципи об’єктно-орієнтовного
проєктування. Ідеї абстракції та інкапсуляції (приховування деталей реалізації) змінили погляд програмістів, їх думки та бачення програмних автоматизованих систем завдяки розробленню новітніх
принципів програмування (наприклад, SOLID),
архітектурних шаблонів [6-8], фреймворків тощо.
Однак, незважаючи на довгий шлях, який
пройшла еволюція архітектури програмних систем, на сьогодні існує дуже мало об’єктивних,
повторюваних та емпірично обгрунтованих методологій та інструментів для проєктування та аналізу архітектури. Зазвичай архітекторами програмного забезпечення стають програмісти, які мають
декілька десятиліть стажу практики розроблення
програмного забезпечення [5]. Враховуючи їх
досвід, вони чітко розуміють, що помилки в проєкті архітектури є корінними причинами проблем
нижчого рівня, що проявляються в програмному
коді [6, 9]. Найчастіше розробник (програміст)
знає або, принаймні, відчуває, коли архітектура
його проекту має низьку якість, тобто існує величезна і постійно зростаюча кількість технічних
недоліків, через які продуктивність програмної
системи падає. Але більшість розробників через
брак досвіду і знань про програмну архітектуру
мають проблеми з визначенням того, як і чому це
відбувається, і ще менше розуміють, як це виправити. Тому їм майже неможливо довести до керівництва, що архітектура проєкту та кодова база
мають бути ретельно проаналізовані та перероблені [5]. Оскільки розробники не мають необхідних
даних та знань, вони не не можуть надати переконливих доказів того, що у разі проведення рефакторингу ситуація покращиться. З цієї причини
більшість проєктів продовжують виконання, що
призводить до зниження якості готової програмної
автоматизованої системи.
Для багатьох галузей промисловості та суспільства [10-13] відсутня необхідність в обговоренні
великої важливості використання програмних
автоматизованих систем достатнього рівня якості
(наприклад, не крихких [14]).
Програмні системи стали надзвичайно поширеними, а разом з ними виросла залежність суспільства від автоматизованих систем, які керуються
програмним (...truncated)