Перечень условных обозначений, символов, единиц, сокращений и терминов 4
Введение 6
Глава 1 8
1.1 Исследование предметной области 8
1.2 Постановка требований 9
1.3 Обзор программных систем существующих на рынке 10
Глава 2 12
2.1 Проектирование архитектуры 12
2.2 Формат отчета об изменениях 13
2.3 Протокол связи 14
2.4 Формат сообщений 15
2.5 Организация работы 15
2.6 Выбор технологий 16
Глава 3. Реализация серверной части 18
3.1 Организация проекта 18
3.2 Использование Gradle 18
3.3 Communication 19
3.3 Router 20
3.4 Внедрение зависимостей 22
3.6 Controller 23
3.7 Migrate 24
Глава 4. Разработка клиентской части 31
4.1 Общее 31
4.2 Electron 31
4.3 Scala.js 32
4.4 Sbt 32
4.5 Модули 33
Заключение 36
Список использованных литературных источников 37
Приложение А 38
Приложение Б
В современно процессе разработки программного обеспечения достаточно часто используются уже готовые сторонние программные компоненты с целью снижения трудоемкости, стоимости и длительности непосредственной разработки. При этом разработка используемых программных компонентов также не прекращается, что ведет к появлению новых версий библиотек.
Можно выделить следующие причины необходимости миграции на новые версии используемых библиотек:
• Новые версии содержат исправления существующих ошибок в работе программного компонента.
• Упрощение API для работы с библиотекой.
• Более длительный срок поддержки со стороны разработчиком
компонента.
• Появление нового функционала в программном компоненте.
• Увеличение количества поддерживаемых устройств в новой версии библиотеки.
Исходя из выше написанных причин следует, что поддержка актуальности версий программных компонентов является обязательным условием для написания качественного программного обеспечения. Однако, изменения внешнего API в новых версиях программных компонент приводят к усложнению процесса миграции. Появляется проблема совместимости существующей кодовой базы и новой версии программного компонента. Для решения данной проблемы необходимо произвести рефакторинг существующего исходного кода. Главным недостатком данного решения является сложность и трудоемкость процесса рефакторинга, что ведет к увеличению затрачиваемых человеко-часов на разработку проекта.
Актуальность и практическая значимость дипломной работы заключается в том, что автоматизация процесса миграции позволила бы использовать рабочее время разработчиков более эффективно за счет уменьшения затрачиваемого времени на рефакторинг кодовой базы.
Целью дипломной работы является разработка прототипа инструмента позволяющего максимально автоматизировать и упростить процесс рефакторинга кодовой базы для поддержания актуальности версий программных компонент.
Объектом исследования в данной работе является система автоматизации обновления версий используемых программных компонент. Для разработки программного средства необходимо решить следующие задачи:
• Провести анализ предметной области.
• Анализ аналогов программных систем, выполняющих схожие задачи.
• Разработать архитектуру программного обеспечения.
• Разработать необходимые структуры данных, а также реализовать алгоритмы программного средства.
• Разработать удобный пользовательский интерфейс для работы с программным средством.
• Тестирование разработанного программного обеспечения
Для выполнения поставленной цели необходимо выполнить следующие этапа работы:
• Исследовать процесс обновления версии используемого компонента
• Составить список требований к разрабатываемому программному средству
• Разработать архитектуру системы под описанные требования
• Выбрать необходимые технологии и средства для решения поставленных целей
• Организовать рабочий процесс для решения поставленных задач.
Теоретической и методологической основой является способы создания программного обеспечения описанного в книгах Р. Мартина “Чистый код”, Макконнелла С. “Совершенный код”.
В данной работе был произведен анализ процесса обновления версий программных компонентов. Результатом данного анализа является описание автоматизированного процесса обновления версий программных компонентов позволяющий решить основные проблемы рассматриваемого процесса.
Анализ программных продуктов присутствующих на рынке и обладающих частично или полностью требуемым функционалом показал, что существующие решения не удовлетворяют всем выдвинутым требованиям. Благодаря анализу стало ясно, что разработка системы автоматизации обновления версий позволит не только более эффективно использовать рабочее время разработчиков, но и уменьшит влияние человеческого фактора при проведении рефакторинга кодовой базы.
Выбранные средства реализации выдвигаемых требований позволяют не только успешно разрабатывать систему, но и поддерживать ее в дальнейшем.
Выбранная архитектура позволяет успешно достигать поставленных целей.
Результатом данной выпускной квалификационной работы является прототип системы автоматизации обновления версий программных компонентов.
Возможности системы и решенные задачи:
• Произведен анализ предметной области.
• Система является кроссплатформенной и может быть запущена на любой операционной системе.
• Использование единого формата отчета об изменениях версий позволяющего расширять систему.
• Применение системы позволяет автоматизировать процесс обновления версий программных компонентов.
1. Макконнелл С. Совершенный код. Мастер-класс / Пер. с англ. — М. : Издательско-торговый дом «Русская Редакция» ; СПб.: Питер, 2005. — 896 с.
2. Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс. Паттерны проектирования. — СПб.: Питер, 2011. — 656 с.
3. Брюс Эккель Философия Java. 4 изд. СПб.: Питер, 2016. — 1168 с.
4. Building a desktop application with Electron [Электронный ресурс]
https://medium.com/developers-writing/building-a-desktop-application-with-electron-204203eeb658
5. Кей Хостманн SCALA для нетерпеливых. — Москва: ДМК Пресс, 2015. — 408 с.
6. Босуэлл Д., Фаучер Т. Читаемый код, или Программирование как искусство. — ОПб.: Питер, 2012. — 208 c.
7. Мартин Фаулер, Кент Бек, Джон Брант, Уильям Апдайк, Дон Робертс, Эрих Гамма Рефакторинг. Улучшение существующего кода. - СПб: Символ-Плюс, 2008. - 432 с.