Details

Title: Исследование и разработка алгоритмов и технических решений сбора и анализа данных о процессах разработки программного обеспечения: выпускная квалификационная работа магистра: направление 02.04.01 «Математика и компьютерные науки» ; образовательная программа 02.04.01_02 «Организация и управление суперкомпьютерными системами»
Creators: Климов Егор Георгиевич
Scientific adviser: Лукашин Алексей Андреевич
Other creators: Голубева Ирина Эрнестовна
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт прикладной математики и механики
Imprint: Санкт-Петербург, 2021
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: Базы данных; разработка программного обеспечения; анализ процесса разработки программного обеспечения; предметно-ориентированные языки; эмпирическая разработка программного обеспечения
UDC: 004.6
Document type: Master graduation qualification work
File type: PDF
Language: Russian
Level of education: Master
Speciality code (FGOS): 02.04.01
Speciality group (FGOS): 020000 - Компьютерные и информационные науки
Links: Отзыв руководителя; Рецензия; Отчет о проверке на объем и корректность внешних заимствований
DOI: 10.18720/SPBPU/3/2021/vr/vr21-3807
Rights: Доступ по паролю из сети Интернет (чтение, печать)
Record key: ru\spstu\vkr\13663

Allowed Actions:

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

Group: Anonymous

Network: Internet

Annotation

Дипломная работа посвящена исследованию проблем сбора и анализа данных о процессах разработки программного обеспечения и созданию инструмента для проведения исследований в этой области. Задачи, которые решались в ходе исследования: 1. Анализ основных источников данных, используемых при проведении ис­следований в области эмпирического анализа разработки программного обеспечения; 2. Реализация встроенного предметно-ориентированного языка для описа­ния задач; 3. Реализация инструмента для сбора и анализа данных с использовани­ем платформы Java Virtual Machine и экосистемы Python. Инструмент должен позволять проводить локальные исследования и на удаленном вычислительном окружении; 4. Подготовка инструмента к удобной поставке до конечных пользователей. Работа проведена на базе исследовательской группы «Лаборатория инструментов совместной работы» («Intelligent Collaboration Tools Lab») компании «JetBrains». Анализ требуемых данных и подходов проводился на основании изучения материалов профильных конференций в области эмпирической разработки программного обеспечения и сбора артефактов процесса разработки программного обеспечения. В результате, средствами ЯВУ Котлин были разработаны встроенный предметно-ориентированный язык CodescopeDSL, позволяющий описывать эксперименты в виде сценариев выполнения («скриптов»), а также сервис для исполнения этих сценариев и проведения коллективных исследований. Сервис введен в эксплуатацию исследовательской группой «Лаборатория инструментов совместной работы».

Thesis is devoted to researching the problems of mining and analyzing on software development processes artifacts and creating a tool for conducting research in this area. The tasks that were solved during the study: 1. Analysis of the main data sources used in research in the field of empirical software engineering; 2. Implementation of embedded domain-specific language for describing scientific pipelines in field of Mining Software Repositores using Java Virtual Machine and Python; 3. Implementation of a local environment for executing scripts, as well as a server environment, allowing collective research; 4. Create easy-to-use deployment solution. The work was carried out on the basis of the research group «Intelligent Collaboration Tools Lab» of the «JetBrains» company. The analysis of the required data and approaches was carried out based on the study of materials from specialized conferences in the field of empirical software development and the mining software repositories. As a result, the domain-oriented language CodescopeDSL was developed, which allows describing experiments in the form of execution scripts ("scripts"). Service for executing these scripts and conducting collaborative research. The service was put into operation by the research group «Intelligent Collaboration Tools Lab».

Document access rights

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

Table of Contents

  • ВВЕДЕНИЕ
  • Глава 1. Исследование процессов разработки программного обеспечения
    • 1.1. Определение процесса разработки программного обеспечения
    • 1.2. Направления исследований
      • 1.2.1. Поиск и исследование неисправностей
      • 1.2.2. Исследование методологий разработки
      • 1.2.3. Практики разработки ПО
      • 1.2.4. Тестирование программного обеспечения
      • 1.2.5. Оценка качества
      • 1.2.6. Эволюция программного обеспечения
      • 1.2.7. Работа с требованиями при разработке ПО
      • 1.2.8. Работа в команде и коллективное принятие решений
      • 1.2.9. Исследование сообщества разработчиков
    • 1.3. Артефакты процесса разработки программного обеспечения
    • 1.4. Артефакты на практике
      • 1.4.1. Правовые ограничения
      • 1.4.2. Системы контроля версий
      • 1.4.3. Системы управления проектами и обратная связь с пользователями
      • 1.4.4. Систем сборки и тестирования ПО
    • 1.5. Заключение
  • Глава 2. Сбор, хранение и обработка данных о процессах разработки программного обеспечения
    • 2.1. Распространенные способы предоставления данных
    • 2.2. Сравнительный анализ прикладных средств сбора и анализа процессов разработки ПО
    • 2.3. Сравнительный анализ промышленных средств сбора и анализа данных
    • 2.4. Заключение
  • Глава 3. Реализация системы сбора и анализа данных о процессах разработки программного обеспечения
    • 3.1. Требования к системе для сбора и анализа данных о процессах разработки программного обеспечения
      • 3.1.1. Функциональные требования
      • 3.1.2. Нефункциональные требования
    • 3.2. Предметно-ориентированные языки
      • 3.2.1. Использование и разработка предметно-ориентированных языков
      • 3.2.2. CodescopeDSL
      • 3.2.3. CodescopeScript
    • 3.3. Локальная среда выполнения CodescopeScript
    • 3.4. Клиент-серверное приложение для проведения исследований
      • 3.4.1. Алгоритм компиляции сценария
      • 3.4.2. Алгоритм исполнения сценария
      • 3.4.3. Исполнение Python кода
      • 3.4.4. Описание API сервиса
      • 3.4.5. Поставка сервиса и развертывание
      • 3.4.6. Применения сервиса как среды для исполнения кода
    • 3.5. Заключение
  • Глава 4. Использование системы при проведении исследований
    • 4.1. Конфигурация системы на базе Google Kubernetes Engine
    • 4.2. Рекомендация каналов в приложении для коллективной разработки <> на основе анализа артефактов разработки пользователей
      • 4.2.1. Сбор данных
      • 4.2.2. Анализ собранных данных
    • 4.3. Заключение
  • Заключение
  • Список литературы
  • Приложение А. Артефакты процесса разработки ПО
  • Приложение Б. Dockerfile для контейнеризации сервиса
  • Приложение В. OpenAPI спецификация сервиса

Usage statistics

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