Автоматизований аналіз та візуалізація в доповненій реальності архітектури програмних модулів для виявлення антипатернів : дисертація на здобуття наукового ступеня доктора філософії
Loading...
Date
2026
Authors
Франків, Олександр
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Дисертація на здобуття наукового ступеня доктора філософії за спеціальністю 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).
Description
PhD thesis to obtain the degree of Doctor of Philosophy in the Programme Subject Area 122 "Computer Science" (12 — Information Technologies). — National University of Kyiv-Mohyla Academy, Kyiv, 2026. The dissertation is devoted to solving the relevant scientific and applied problem of software architecture analysis based on the automated construction of a graph model of a software system and its further visualization. The primary objective of the research is the development of an approach that enables formalization of software structure, architectural analysis, and detection of potential design problems using only source code without requiring additional documentation, UML diagrams, or manually created architectural descriptions. One of the major challenges in modern software engineering is ensuring software quality and maintaining architectural integrity during software evolution. Despite the large number of existing automated code analysis tools, most of them are primarily focused on detecting local syntactic or semantic errors. At the same time, the analysis of global software structure, interactions between system components, and evaluation of architectural decisions often remain difficult tasks requiring substantial manual effort from developers. Another important issue is the limited ability of existing tools to present analysis results in a form convenient for human perception. In large and complex software systems, textual reports or isolated metric values are often insufficient for building a comprehensive understanding of software architecture and localizing problematic areas of source code. The dissertation includes an analysis of modern approaches to software architecture evaluation, including static source code analysis methods, software quality metrics, architectural anti-pattern detection techniques, and software architecture visualization methods. It is shown that many existing approaches analyze individual software characteristics in isolation and insufficiently account for the global dependency structure between software components. It has been established that traditional metrics of coupling, cohesion, and complexity are useful for evaluating individual fragments of source code but do not provide sufficient clarity for analyzing complex architectural relationships. An approach to representing software architecture in the form of a directed weighted graph is proposed. Within the developed model, graph vertices correspond to structural elements of the software system, including data types, fields, and methods, while edges represent different types of dependencies between them. The model considers both declarative relationships, such as ownership or inheritance, and behavioral interactions, including method invocations, type usage, and field access. The use of weighted edges enables representation of interaction intensity between software components and supports further structural analysis of software architecture. It is demonstrated that the graph model makes it possible to transform the textual representation of source code into a formalized structure suitable for algorithmic processing, analysis, and visualization. Unlike simplified dependency models, the proposed approach considers the direction of interactions between software components and enables architecture analysis at different levels of detail. The proposed model is sufficiently generic to be adapted to different programming languages, while for the Swift programming language it can be directly aligned with actual language constructs. The dissertation proposes methods for automated software architecture analysis based on investigation of graph structure. In particular, approaches for detecting potential architectural flaws related to high coupling, low cohesion, and cyclic dependencies are developed. The analysis is performed without requiring any additional information about the software system and relies exclusively on the structure of the constructed graph model. The research demonstrates that the spatial arrangement of graph nodes and the characteristics of local dependency structures can be used as indicators of potential software architecture problems. In particular, excessive concentration of dependencies, isolated groups of components, or abnormally large numbers of interactions between specific elements may indicate violations of software design principles. The proposed approach makes it possible to localize problematic areas of source code and simplify subsequent analysis and refactoring processes. Special attention is devoted to the problem of software architecture visualization. The dissertation examines the use of spatial graph representation as a means of improving clarity and reducing cognitive load during the analysis of complex dependencies between software components. A force-directed graph layout algorithm is used for constructing the visual representation, modeling graph vertices as a system of interacting particles. Such an approach enables automatic generation of aesthetically acceptable graph configurations suitable for further analysis by users. The dissertation also investigates the possibility of applying machine learning methods to optimize the graph visualization process. In particular, the use of graph neural networks is considered as an auxiliary tool for improving the initial placement of graph nodes and reducing the computational complexity of classical force-directed algorithms. The proposed combined approach improves visualization performance while preserving readability and aesthetic quality. It is shown that machine learning methods are not considered a complete replacement for classical visualization algorithms but rather an auxiliary optimization instrument. Combining graph neural networks with force-directed algorithms makes it possible to account for structural graph characteristics and provides adaptability of the approach for different types of software systems. The practical result of the dissertation is the development of the A.D.A.R. (Architecture Displayer in Augmented Reality) software system intended for automated generation, analysis, and visualization of software architecture. The developed system performs graph model construction for software modules, supports analysis of architectural dependencies, and enables visualization of software structure in three-dimensional space. The use of spatial visualization and augmented reality technologies simplifies perception of complex relationships between software components at an intuitive level. The proposed approach can be applied to software quality analysis, architectural flaw detection, maintenance support, refactoring, and investigation of large-scale software project structures. In addition to practical use in software development processes, the results of the research can also be used in education for courses related to software architecture, static code analysis, graph theory, and data visualization methods. As a result of the conducted research, a comprehensive approach to software architecture analysis has been developed that combines graph-based representation of software structure, automated dependency analysis, visualization methods, and machine learning elements. The proposed approach provides more efficient and intuitive analysis of software systems and may serve as a foundation for further development of automated software analysis tools. The dissertation consists of five chapters. The first chapter presents an analytical review of software quality control approaches, software architecture analysis methods, and software system visualization techniques. The analysis reveals that none of the existing tools simultaneously provides static source code analysis, a weighted dependency graph, adaptive anomaly detection, and three-dimensional spatial visualization, which motivates the research problem. The second chapter develops a graph model of software module architecture as a directed weighted graph with three node categories — data types (dt), properties (p), and methods (m) — and six edge classes covering both declarative and behavioral dependencies between components. An automated model construction method for Swift based on the SymbolKit compiler symbol graph is described, and the model's applicability to detecting specific design problems is demonstrated. The third chapter proposes an approach to automated architectural anomaly detection based on statistical analysis of dependency graph characteristics. The detector identifies deviations relative to the typical values within a specific system, ensuring adaptability without hard-coded thresholds. The approach is validated on a real Swift application, with detected anomalies confirmed through source code analysis. The fourth chapter investigates graph visualization quality metrics and establishes their limitations from a cognitive perception perspective. A graph neural network is proposed as a heuristic for generating initial node placement in force-directed algorithms. On a dataset of 44 Swift projects, complete stabilization of results is confirmed along with layout construction time reduction of up to 58% for medium-sized graphs. The integration of the graph model into an augmented reality environment as a spatial visualization tool is examined. The fifth chapter describes the A.D.A.R. software system implemented as a set of Swift Package Manager modules with 95% test coverage. Details of developer toolchain integration through SPM plugins and the AR viewer application with multi-user session support and cognitive load reduction mechanisms are presented. The research was conducted within the scientific topics of the Department of Computer Science of the National University of Kyiv-Mohyla Academy: "Models and Methods of Machine Learning in Applied Problems" (UDC: 004.85, 004.49; 004.056.57, State Registration No. 0123U102430) and "Analysis of Large Data Volumes in Real Time" (UDC: 004.4:061.68, 004.67.775, State Registration No. 0118U000647).
Keywords
архітектура програмного забезпечення, програмне забезпечення, граф залежностей, статичний аналіз, виявлення антипатернів, графова нейронна мережа, доповнена реальність, автоматизована візуалізація архітектури, нейронні мережі, штучний інтелект, обчислювальна складність, діаметр графа, абстрактне синтаксичне дерево, когнітивне навантаження, силовий алгоритм розміщення, дисертація, software architecture, software, dependency graph, static analysis, anti-pattern detection, graph convolutional network, augmented reality, automated architecture visualization, neural networks, artificial intelligence, computational complexity, graph diameter, abstract syntax tree, cognitive load, force-directed layout
Citation
Франків О. О. Автоматизований аналіз та візуалізація в доповненій реальності архітектури програмних модулів для виявлення антипатернів : дисертація на здобуття наукового ступеня доктора філософії / Франків Олександр Олександрович ; наук. кер. Глибовець Микола Миколайович ; Національний університет "Києво-Могилянська академія", Міністерство освіти і науки України. - Київ : [б. в.], 2026. - 161 с. : іл., схеми, табл. - Містить додатки.