Детальная информация

Название Анализ архитектурной документации: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» = Analysis of architectural documentation
Авторы Яцуненко Максим Игоревич
Научный руководитель Коликова Татьяна Всеволодовна
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2026
Коллекция Выпускные квалификационные работы ; Общая коллекция
Тематика архитектурная документация ; PlantUML ; парсер ; промежуточное представление ; EBNF ; Python ; pytest ; architectural documentation ; parser ; intermediate representation
Тип документа Выпускная квалификационная работа бакалавра
Язык Русский
Уровень высшего образования Бакалавриат
Код специальности ФГОС 09.03.04
Группа специальностей ФГОС 090000 - Информатика и вычислительная техника
DOI 10.18720/SPBPU/3/2026/vr/vr26-3495
Права доступа Доступ по паролю из сети Интернет (чтение, печать, копирование)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\42688
Дата создания записи 21.08.2026

Разрешенные действия

Действие 'Прочитать' будет возможно после подготовки администраторами необходимых файлов

Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа Анонимные пользователи
Сеть Интернет

Данная работа посвящена разработке PlantUML-парсера, предназначенного для подготовки структурных диаграмм к анализу архитектурной документации. Разрабатываемое средство выделяет из текстового описания диаграммы архитектурные элементы, связи, вложенность, псевдонимы и характеристики сущностей, после чего приводит полученные сведения к промежуточному представлению. Задачи, которые решались в ходе исследования: 1. Изучение роли архитектурной документации в жизненном цикле программного обеспечения и причин возникновения расхождений между архитектурными артефактами. 2. Анализ PlantUML как текстового средства описания структурных диаграмм и определение поддерживаемого подмножества конструкций. 3. Разработка модели промежуточного представления, отражающей архитектурные сущности, связи и дополнительные сведения о диаграмме. 4. Разработка формальной грамматики в нотации EBNF для описания поддерживаемого синтаксиса PlantUML. 5. Реализация PlantUML-парсера, включающего модуль разбора, файл грамматики и консольный интерфейс. 6. Проведение модульного тестирования разработанного парсера и оценка покрытия кода тестами. Работа проведена на базе проекта системы анализа архитектурной документации. В качестве исходного материала использовались структурные PlantUML-диаграммы, исходный код разрабатываемого модуля и наборы тестовых сценариев. Разбор диаграмм выполнялся на основе формальной грамматики, описывающей поддерживаемые объявления сущностей, связи, вложенные области, псевдонимы, тела элементов и служебные записи. Результат обработки представлялся через модель промежуточного представления, пригодную для дальнейшего сопоставления с другими архитектурными артефактами. В результате был разработан PlantUML-парсер, обрабатывающий файлы с расширениями .puml, .plantuml и .uml. Парсер выделяет UML-блок, выполняет построчную обработку диаграммы, распознаёт поддерживаемые конструкции, разрешает псевдонимы и вложенность, формирует сущности и связи. Работоспособность разработанного средства была проверена и подтверждена с помощью модульных тестов. Для достижения данных результатов в работе были использованы следующие информационные технологии, программное обеспечение и средства разработки: язык программирования Python, библиотека Lark для синтаксического разбора, нотация EBNF для описания формальной грамматики, Pydantic для описания моделей промежуточного представления, формат JSON для представления результата разбора, стандартные модули json, argparse, pathlib, re и dataclasses, фреймворк pytest и плагин pytest-cov для модульного тестирования и оценки покрытия кода.

This work is devoted to the development of a PlantUML parser designed to prepare structural diagrams for the analysis of architectural documentation. The tool under development extracts architectural elements, relationships, nesting, aliases, and entity characteristics from the text description of the diagram, and then brings the information obtained to an intermediate representation. Tasks that were solved during the research: 1. The study of the role of architectural documentation in the software lifecycle and the causes of discrepancies between architectural artifacts. 2. Analyzing PlantUML as a textual means of describing structural diagrams and determining the supported subset of structures. 3. Development of an intermediate representation model that reflects architectural entities, relationships, and additional information about the diagram. 4. Development of a formal grammar in EBNF notation to describe the supported syntax of PlantUML. 5. Implementation of the PlantUML parser, which includes a parsing module, a grammar file, and a console interface. 6. Conducting unit testing of the developed parser and evaluating the code coverage with tests. The work was carried out on the basis of a project for an architectural documentation analysis system. Structural PlantUML diagrams, the source code of the module under development, and sets of test scenarios were used as the source material. The diagrams were analyzed based on a formal grammar describing supported entity declarations, relationships, nested areas, aliases, element bodies, and service records. The processing result was presented through an intermediate representation model suitable for further comparison with other architectural artifacts. As a result, a PlantUML parser was developed that processes files with the .puml, .plantuml, and .uml extensions. The parser allocates a UML block, performs line-by-line processing of the diagram, recognizes supported constructions, resolves aliases and nesting, forms entities and relationships. The functionality of the developed tool has been tested and confirmed using unit tests. To achieve these results, the following information technologies, software and development tools were used in the work: Python programming language, Lark library for parsing, EBNF notation for describing formal grammar, Pydantic for describing intermediate representation models, JSON format for representing the result of parsing, standard modules json, argparse, pathlib, re and dataclasses, the pytest framework and the pytest-cov plugin for unit testing and evaluation of code coverage.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Загрузить
Интернет Авторизованные пользователи СПбПУ
Загрузить
Интернет Анонимные пользователи
...