Details
| Title | Анализ архитектурной документации: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» = Analysis of architectural documentation |
|---|---|
| Creators | Яцуненко Максим Игоревич |
| Scientific adviser | Коликова Татьяна Всеволодовна |
| Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Imprint | Санкт-Петербург, 2026 |
| Collection | Выпускные квалификационные работы ; Общая коллекция |
| Subjects | архитектурная документация ; PlantUML ; парсер ; промежуточное представление ; EBNF ; Python ; pytest ; architectural documentation ; parser ; intermediate representation |
| Document type | Bachelor graduation qualification work |
| Language | Russian |
| Level of education | Bachelor |
| Speciality code (FGOS) | 09.03.04 |
| Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-3495 |
| Rights | Доступ по паролю из сети Интернет (чтение, печать, копирование) |
| Additionally | New arrival |
| Record key | ru\spstu\vkr\42688 |
| Record create date | 8/21/2026 |
Allowed Actions
–
Action 'Read' will be available if administrator prepare required files
Action 'Download' will be available if you login or access site from another network
| Group | Anonymous |
|---|---|
| Network | Internet |
Данная работа посвящена разработке 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.
| Network | User group | Action |
|---|---|---|
| ILC SPbPU Local Network | All |
|
| Internet | Authorized users SPbPU |
|
| Internet | Anonymous |
|