Тип работы:
Предмет:
Язык работы:


РАЗРАБОТКА СИСТЕМЫ АВТОМАТИЗИРОВАННОЙ ОБРАБОТКИ РЕПОЗИТОРИЕВ ПРОГРАММНЫХ ПРОДУКТОВ ДЛЯ ЗАДАЧ СТАТИСТИЧЕСКОГО АНАЛИЗА МЕТРИК ИСХОДНОГО КОДА И ДАННЫХ СИСТЕМЫ КОНТРОЛЯ ВЕРСИЙ

Работа №85534

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы33
Год сдачи2016
Стоимость4750 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
72
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 3
ГЛАВА 1 ОБЗОР И АНАЛИЗ СУЩЕСТВУЮЩИХ РЕШЕНИЙ 6
1.1 Обзор существующих решений 6
1.2 Недостатки существующих решений 9
1.3 Выбор формы разрабатываемого программного продукта 10
ГЛАВА 2 ПРОЕКТИРОВАНИЕ СИСТЕМЫ 14
2.1 Общая структура фреймворка 14
2.2 Обоснование выбора структуры фреймворка 16
ГЛАВА 3 РЕАЛИЗАЦИЯ СИСТЕМЫ 19
3.1 Модуль Analysis 19
3.2 Модуль Repo 24
3.3 Модуль Statistic 25
3.4 Модуль Report 27
ЗАКЛЮЧЕНИЕ 30
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Системы контроля версий (VCS от англ. Version Control System) на данный момент являются одним из основных инструментов разработки программного обеспечения. Подобную популярность обеспечивает удобство совместной работы над одним проектом командой разработчиков, достигаемое благодаря возможности контролировать внесение изменений в исходный код продукта.
В процессе проектной деятельности внутри VCS накапливаются следующие данные:
1. Внесённые изменения за всё время существования репозитория
2. Авторы изменений
3. Даты изменений
4. Сообщения прикрепляемые к изменениям
5. Версии содержимого репозитория
Эти данные полезны в процессе текущей разработки программного обеспечения, позволяют пронаблюдать последние изменения и задачи которые данные изменения решают, а так же вернуться к стабильной версии в случае непредвиденных обстоятельств.
Со временем объём накопленных в процессе работы данных становится достаточно большим. И сбор статистики на основании этих данных может помочь в решении некоторых задач, например:
1. Количественное и качественное оценивание разработчиков работающих над программным продуктом
2. Использование в процессе инспекции кода
3. Сбор данных для последующего использования в различных системах машинного обучения
4. Создание истории проекта, наблюдение за динамикой его развития, для отслеживания закономерностей.
Но стандартные инструменты VCS не позволяют в полной мере получать статистику по репозиториям, поэтому приходится прибегать к сторонним решениям.
Целью данной работы является создание системы автоматизированной обработки репозиториев программных продуктов для задач статистического анализа метрик исходного кода и данных системы контроля версий.
Задачи решаемые в данной работе:
1. Подробный анализ существующих решений и наработок в данной области для выявления высокоуровневых требований к разрабатываемой системе, а так же устранения недостатков предшественников в процессе проектирования.
2. Проектирование информационной системы
3. Разработка и описание деталей реализации информационной
системы
Целью системы является обработка репозиториев программных продуктов для задач статистического анализа метрик исходного кода и данных системы контроля версий.
Задачи решаемые разрабатываемой системой:
1. Получение, объединение и систематизация данных предоставляемых VCS, а так же метрик исходного кода программного продукта для различных версий хранимых в VCS.
2. Проведение анализа данных для получения необходимой статистики
3. Предоставление отчётов на основании полученных данных, а так же возможность вывода этих данных для дальнейшей работы с ними.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате выполнения выпускной квалификационной работы была разработана система автоматизированной обработки репозиториев программных продуктов для задач статистического анализа метрик исходного кода и данных системы контроля версий.
Система представляет из себя микро-фреймворк, позволяющий получить данные VCS в удобной форме, производить обработку и анализ этих данных и формировать отчёт либо вывести данные в популярных форматах.
Фреймворк кроссплатформенный и работает на всех платформах для которых существует интерпретатор Python.
В процессе выполнения были решены все поставленные задачи а именно:
1. Произведён анализ существующих решений и наработок в данной области.
2. Произведена разработка архитектуры фреймворка
3. Произведена реализация всех частей фреймворка.
На данный момент фреймворк может быть найден в репозитории на GitHub [23]
В дальнейшем планируется публикация фреймворка в PyPI - the Python Package Index [24].



[1] A. Mockus, R. T. Fielding, and J. Herbsleb, “A case study of open source software development: The Apache server.” 2000 г.
[2] G. Robles, S. Koch, and J. M. Gonzalez-Barahona, “Remote analysis ' and measurement of libre software systems by means of the CVSAnalY tool.” 2004 г.
[3] G. Robles, J. M. Gonzalez-Barahona, R. A. Ghosh, and J. Carlos, ' “GlueTheos: Automating the retrieval and analysis of data from publicly available software repositories.” 2004 г.
[4] StatSVN - Repository Statistics [Электронный ресурс] / URL:
http://statsvn.org
[5] StatCVS - Repository Statistics [Электронный ресурс] / URL:
http://statcvs.sourceforge.net
[6] Gitinspector - statistical analysis tool for git repositories [Электронный ресурс] / URL: https:// github.com/ejwa/ gitinspector
[7] GitStats - git history statistics generator URL: http://gitstats.sourceforge.net
[8] Википедия : свободная энциклопедия. SaaS [Электронный ресурс] / URL: https://ru.wikipedia.org/wiki/SaaS
[9] Data Frame R Tutorial [Электронный ресурс] / URL: http://www.r-tutor.com/r-introduction/data-frame
[10] DataFrame - pandas 0.18.1 documentation [Электронный ресурс] / URL: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html
[11] Git - Git Objects [Электронный ресурс] / URL: https:// git- scm. com/book/ en/ v2/Git-Internals-Git-Obj ects
[12] Официальный веб-сайт Python [Электронный ресурс] / URL: https://www.python.org
[13] Официальный веб-сайт YAML [Электронный ресурс] / URL: http://yaml.org
[14] Официальный веб-сайт PyYAML [Электронный ресурс] / URL: http://pyyaml.org
[15] GitPython Documentation - GitPython 2.0.3 documentation [Электронный ресурс] / URL: https://gitpython.readthedocs.io/en/stable
[16] PEP 343 - The “with” Statement [Электронный ресурс] / URL: https://www.python.org/dev/peps/pep-0343
[17] Scott Chacon - ProGit 2002 стр. 47-52
[18] Data Structures - Python 3.5.1 Documentation [Электронный ресурс] / URL: https://docs.python.org/3.5/tutorial/datastructures.html#dictionaries
[19] Википедия : свободная энциклопедия [en]. Hash Join [Электронный ресурс] / URL: https://en.wikipedia.org/wiki/Hash join
[20] operator - Standart operators as functions - Python 3.5.1 Documentation [Электронный ресурс] / URL: https://docs.python.org/3.5/library/operator.html
[21] matplotlib: python plotting - Matplotlib 1.5.1 documentation [Электронный ресурс] / URL: http://matplotlib.org
[22] Welcome to Jinja2 - Jinja2 documentation [Электронный ресурс] / URL: http://jinja.pocoo.org/docs/dev
[23] Repollino - repositories analyzing framework [Электронный ресурс] / URL: https://github.com/zkksch/repollino
[24] PyPI - the Python Package Index [Электронный ресурс] / URL: https://pypi.python.org/pypi


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ