Details

Title: Автоматическое описание зависимостей для Bazel BUILD файлов на основе исходных файлов на языке программирования Scala: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта»
Creators: Эзериня Марта
Scientific adviser: Маслаков Алексей Павлович
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint: Санкт-Петербург, 2024
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: Scala; Bazel; Gazelle; зависимости; система сборки; build файлы; dependencies; build system; build files
Document type: Bachelor graduation qualification work
File type: PDF
Language: Russian
Level of education: Bachelor
Speciality code (FGOS): 09.03.04
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2024/vr/vr24-1818
Rights: Доступ по паролю из сети Интернет (чтение)
Additionally: New arrival
Record key: ru\spstu\vkr\28862

Allowed Actions:

Action 'Read' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Annotation

Проект разрабатывается с использованием системы сборки Bazel и основывается на анализе структуры кода, написанного на языке Scala. В центре подхода лежит создание расширения для инструмента Gazelle. Для синтаксического анализа Scala кода используется библиотека Scalameta, которая использует комбинацию синтаксического и семантического анализа для построения синтаксического AST дерева. Для извлечения внутренних и внешних зависимостей были реализованы решения, использующие обход по AST, загрузку и индексирование внешних зависимостей из публичных репозиториев. Задачи, которые решались в ходе разработки: 1. Изучение принципов работы и особенностей системы сборки Bazel. 2. Выявление особенностей структуры BUILD файлов в Bazel для проектов, написанных на Scala. 3. Анализ структуры и специфики кода на языке программирования Scala, чтобы определить модель извлечения зависимостей. 4. Разработка системы для автоматического извлечения информации о зависимостях из кода на Scala. 5. Создание программного обеспечения, реализующего разработанные алгоритмы и автоматизирующего процесс обновления BUILD файлов для Bazel. 6. Проведение тестирования разработанного решения на реальных Scala проектах. В результате работы был создан инструмент, позволяющий автоматизировать создание описания зависимостей для Bazel BUILD файлов на основе исходного кода на языке Scala. При помощи данного инструмента был значительно сокращён процесс подготовки и настройки рабочего окружения разработчиков, а также снижено количество ошибок при работе с зависимостями.

The project is being developed using the Bazel build system and is based on an analysis of the structure of the code written in Scala. At the heart of the approach is the creation of an extension for the Gazelle tool. For the syntactic analysis of Scala code, the Scalameta library is used, which uses a combination of syntactic and semantic analysis to build a syntactic AST tree. Solutions using AST traversal, loading and indexing of external dependencies from public repositories have been implemented to extract internal and external dependencies. Tasks that were solved during the development: 1. Study of the principles of operation and features of the Bazel assembly system. 2. Identification of the structure features of the BUILD files in Bazel for projects written in Scala. 3. Analysis of the structure and specifics of the code in the Scala programming language to determine the dependency extraction model. 4. Development of a system for automatic extraction of dependency information from Scala code. 5. Creation of software that implements the developed algorithms and automates the process of updating BUILD files for Bazel. 6. Testing the developed solution on real Scala projects. As a result of the work, a tool was created that allows you to automate the creation of dependency descriptions for Bazel BUILD files based on the source code in the Scala language. With this tool, the process of preparing and configuring the developers work environment has been significantly reduced, as well as the number of errors when working with dependencies has been reduced.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read
Internet Authorized users SPbPU Read
-> Internet Anonymous

Usage statistics

stat Access count: 0
Last 30 days: 0
Detailed usage statistics