122 Комп’ютерні науки
Permanent URI for this collection
Освітньо-наукова програма: Комп’ютерні науки
Browse
Browsing 122 Комп’ютерні науки by Subject "computational complexity"
Now showing 1 - 1 of 1
Results Per Page
Sort Options
Item Автоматизований аналіз та візуалізація в доповненій реальності архітектури програмних модулів для виявлення антипатернів : дисертація на здобуття наукового ступеня доктора філософії(2026) Франків, Олександр; Глибовець, МиколаДисертація на здобуття наукового ступеня доктора філософії за спеціальністю 122 "Комп’ютерні науки" (12 — Інформаційні технології). — Національний університет "Києво-Могилянська академія", Київ, 2026. Дисертаційна робота присвячена розв’язанню актуальної науково-прикладної задачі аналізу архітектури програмного забезпечення на основі автоматизованої побудови графової моделі програмного модуля та її подальшої візуалізації. Основною метою роботи є розроблення підходу, який дозволяє формалізувати структуру програмної системи, виконувати аналіз її архітектури та виявляти потенційні проблеми проєктування виключно на основі вихідного коду без необхідності використання додаткової документації, UML-діаграм або ручного опису архітектури. На сьогодні одним із важливих викликів у галузі розроблення програмного забезпечення є забезпечення належної якості програмних систем та підтримка їх архітектурної цілісності в процесі розвитку проєкту. Незважаючи на значну кількість наявних засобів автоматизованого аналізу програмного коду, більшість із них зосереджені переважно на виявленні локальних синтаксичних або семантичних помилок. Водночас аналіз загальної структури програмної системи, взаємодії її компонентів та оцінювання архітектурних рішень часто залишаються складними задачами, що потребують значних ручних зусиль з боку розробників. Додатковою проблемою є обмежені можливості наявних інструментів щодо представлення результатів аналізу у формі, зручній для сприйняття людиною. У складних програмних системах текстові звіти або набори окремих метрик нерідко є недостатніми для формування цілісного уявлення про структуру архітектури та локалізацію потенційних проблем. У дисертації проведено аналіз сучасних підходів до оцінювання архітектури програмного забезпечення, зокрема методів статичного аналізу коду, використання програмних метрик, засобів виявлення архітектурних вад, а також методів візуального представлення програмних систем. Показано, що існуючі підходи часто розглядають окремі характеристики програмного забезпечення ізольовано та недостатньо враховують глобальну структуру залежностей між компонентами системи. Встановлено, що традиційні метрики зв’язності, згуртованості або складності є корисними для оцінювання окремих фрагментів програмного коду, однак не забезпечують достатнього рівня наочності для аналізу складних архітектурних взаємозв’язків. Запропоновано підхід до представлення архітектури програмного забезпечення у вигляді орієнтованого зваженого графа. У межах запропонованої моделі вершини графа відповідають структурним елементам програмної системи, зокрема типам даних, полям та методам, а ребра — різним видам залежностей між ними. Модель враховує як декларативні зв’язки, такі як належність або наслідування, так і поведінкові взаємодії, зокрема виклики методів, використання типів та доступ до полів. Використання ваг ребер дозволяє відобразити інтенсивність взаємодій між компонентами системи та забезпечує можливість подальшого аналізу структури програмного забезпечення. Показано, що використання графової моделі дозволяє перейти від текстового представлення вихідного коду до формалізованої структури, придатної для алгоритмічної обробки, аналізу та візуалізації. На відміну від спрощених моделей залежностей, запропонований підхід враховує напрям взаємодії між компонентами та дозволяє аналізувати структуру системи на різних рівнях деталізації. Запропонована модель є достатньо універсальною для адаптації до різних мов програмування. У роботі розроблено методи автоматизованого аналізу архітектури програмного забезпечення на основі дослідження структури графа. Зокрема, запропоновано підходи до виявлення потенційних архітектурних вад, пов’язаних із порушенням зв’язності, згуртованості компонентів та наявністю циклічних залежностей. Аналіз виконується без використання додаткової інформації про програмну систему та базується виключно на структурі побудованої графової моделі. У роботі обґрунтовано використання просторового розміщення вузлів графа та особливості локальної структури залежностей для визначення потенційних проблем архітектури програмного забезпечення. Зокрема, надмірна концентрація зв’язків, ізольовані групи компонентів або аномально велика кількість взаємодій між окремими елементами можуть свідчити про порушення принципів проєктування. Запропонований підхід дозволяє локалізувати проблемні області програмного коду та спростити подальший процес аналізу й рефакторингу програмної системи. Окрему увагу приділено задачі візуалізації графової моделі архітектури програмного забезпечення. У дисертації розглянуто використання просторового представлення графа як засобу підвищення наочності та зменшення когнітивного навантаження під час аналізу складних залежностей між компонентами програмної системи. Для побудови візуального представлення використано силовий алгоритм розміщення графа, що моделює вершини як систему взаємодіючих частинок. Такий підхід дозволяє автоматично формувати естетично прийнятні конфігурації графа, придатні для подальшого аналізу користувачем. У роботі ґрунтовно досліджена можливість застосування методів машинного навчання для оптимізації процесу побудови візуального представлення графової моделі. Зокрема, розглянуто використання графових нейронних мереж як допоміжного інструменту покращення початкового розміщення вузлів графа та зменшення обчислювальної складності класичних силових алгоритмів. Запропонований комбінований підхід дозволяє підвищити швидкодію побудови візуалізації без суттєвого погіршення її естетичних характеристик та читабельності. Показано, що використання методів машинного навчання не може повністю замінити класичні алгоритми візуалізації, а виконує роль допоміжного інструменту оптимізації. Поєднання графових нейронних мереж із силовими алгоритмами дозволяє враховувати структурні особливості графа та забезпечує адаптивність підходу до різних типів програмних систем. Практичним результатом дисертаційної роботи є розроблення програмного комплексу A.D.A.R. (Architecture Displayer in Augmented Reality), призначеного для автоматизованої генерації, аналізу та візуалізації архітектури програмного забезпечення. Розроблена система виконує побудову графової моделі програмного модуля, підтримує аналіз архітектурних залежностей та дозволяє відображати структуру програмної системи у тривимірному просторі. Використання просторової візуалізації та засобів доповненої реальності дозволяє спростити сприйняття складних залежностей між компонентами програмного забезпечення на інтуїтивному рівні. Запропонований підхід може бути використаний у задачах аналізу якості програмного забезпечення, виявлення архітектурних проблем, підтримки процесу супроводу програмних систем, рефакторингу та дослідження структури великих програмних проєктів. Окрім практичного застосування у процесі розроблення програмного забезпечення, результати роботи можуть бути використані у навчальному процесі під час вивчення дисциплін, пов’язаних із архітектурою програмного забезпечення, статичним аналізом коду та методами візуалізації даних. У результаті проведеного дослідження отримано комплексний підхід до аналізу архітектури програмного забезпечення, який поєднує графове представлення структури програмної системи, автоматизований аналіз залежностей, методи візуалізації та елементи машинного навчання. Запропонований підхід забезпечує можливість більш наочного та ефективного дослідження структури програмних систем і може бути основою для подальшого розвитку засобів автоматизованого аналізу програмного забезпечення. Дисертаційна робота складається з п'яти розділів. У першому розділі проведено аналітичний огляд підходів до контролю якості та аналізу архітектури програмного забезпечення, методів візуалізації програмних систем та існуючих інструментів. Виявлено, що жоден із наявних засобів не забезпечує одночасно статичного аналізу вихідного коду, зваженого графа залежностей, адаптивного виявлення аномалій та тривимірної просторової візуалізації, що обґрунтовує задачу дослідження. У другому розділі розроблено графову модель архітектури програмного модуля у вигляді орієнтованого зваженого графа з трьома категоріями вузлів і шістьма класами ребер, що охоплюють як декларативні, так і поведінкові залежності між компонентами. Описано метод автоматизованої побудови моделі для мови Swift на основі графа символів SymbolKit та продемонстровано її придатність для виявлення конкретних проблем проєктування. У третьому розділі розроблено підхід до автоматизованого виявлення архітектурних аномалій на основі статистичного аналізу характеристик графа залежностей. Детектор визначає відхилення відносно типових значень конкретної системи, що забезпечує адаптивність без жорстко заданих порогів. Підхід апробовано на реальному Swift-застосунку із підтвердженням виявлених аномалій аналізом вихідного коду. У четвертому розділі досліджено метрики якості візуалізації графів та встановлено їхні обмеження з точки зору когнітивного сприйняття. Запропоновано використання графових нейронних мереж як евристики для формування початкового розміщення вершин у силових алгоритмах. На вибірці з 44 Swift-проєктів підтверджено повну стабілізацію результатів та скорочення часу побудови layout до 58 % для графів середнього розміру. Розглянуто інтеграцію графової моделі у середовище доповненої реальності як засіб просторової візуалізації. У п'ятому розділі описано програмний комплекс A.D.A.R., реалізований як набір модулів Swift Package Manager із рівнем покриття тестами 95 %. Наведено деталі інтеграції в інструментарій розробника через SPM-плагіни та описано застосунок-переглядач з підтримкою багатокористувацьких AR-сесій і механізмами зменшення когнітивного навантаження. Дослідження проводилося в рамках виконання наукових тем кафедри інформатики Національного університету «Києво-Могилянська академія»: «Моделі та методи машинного навчання в прикладних задачах» (УДК: 004.85, 004.49; 004.056.57, № держреєстрації 0123U102430) та «Аналіз великих об'ємів даних в реальному режимі часу» (УДК: 004.4:061.68, 004.67.775, № держреєстрації 0118U000647).