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

Название: Автоматическое описание зависимостей для Bazel BUILD файлов на основе исходных файлов на языке программирования Scala: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта»
Авторы: Эзериня Марта
Научный руководитель: Маслаков Алексей Павлович
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения: Санкт-Петербург, 2024
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: Scala; Bazel; Gazelle; зависимости; система сборки; build файлы; dependencies; build system; build files
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Бакалавриат
Код специальности ФГОС: 09.03.04
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2024/vr/vr24-1818
Права доступа: Доступ по паролю из сети Интернет (чтение)
Дополнительно: Новинка
Ключ записи: ru\spstu\vkr\28862

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

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

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

Сеть: Интернет

Аннотация

Проект разрабатывается с использованием системы сборки 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.

Права на использование объекта хранения

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

Статистика использования

stat Количество обращений: 0
За последние 30 дней: 0
Подробная статистика