ВКР: Подготовка программно-аппаратного решения для перевода предприятия на свободно распространяемое программное обеспечение
Описание
СОДЕРЖАНИЕ
Термины и определения 5
Список сокращений 8
Введение 9
1 Аналитическая часть 11
1.1 Анализ предметной области 11
1.2 Определение свободно-распространяемого программного обеспечения 12
1.2.1 Отличия свободно-распространяемого ПО от Свободного программного обеспечения 12
1.2.2 Отличия свободно-распространяемого ПО от условно-бесплатного программного обеспечения 12
1.2.3 Проблема именования бесплатного и свободно-распространяемого программного обеспечения 13
1.2.4 Веб-сайт как программное обеспечение 13
1.2.5 Веб-приложение как свободно-распространяемое программное обеспечение 13
1.3 Проблема Профессионального самоопределения молодежи...... 14
1.3.1 Статистические данные 14
1.3.2 Экономический аспект использования бесплатного ПО. Расходы при использовании традиционной методологии. 14
1.3.3 Обзор проблемы 15
1.3.4 Попытка решения проблемы с помощью Вузопоиска 15
1.3.5 Использование вузопоиска школой в качестве Свободно-распространяемого решения для профориентации 16
1.3.6 Основные компоненты профессиональной ориентации учеников школ 17
1.3.7 Проблема Профессионального самоопределения молодежи. Статистические данные 17
1.3.8 Обзор проблемы 18
1.3.9 Экономический аспект использования бесплатного ПО. Расходы при использовании традиционной методологии. 18
1.3.10 Способы решения проблемы и оптимизации задачи 19
1.3.11 Вузопоиск в качестве решения задачи 19
2 Проектная часть 21
2.1 Проектирование программного продукта 21
2.1.1 Цель разработки программного продукта 21
2.1.2 Управление проектом 21
2.1.3 Обоснование выбора инструментальных средств 22
2.1.4 Обзор серверной части приложения 23
2.1.5 Обзор клиентской части приложения 30
2.1.6 Архитектура клиентской части. Организация кода 50
2.1.7 Тестирование клиентской части 56
2.2 Непрерывная интеграция / Непрерывное развёртывание 57
2.2.1 Система контроля версий Git 57
2.2.2 Использование Git в разработке Вузопоиска 58
2.2.3 Docker как инструмент для контейнеризации и развёртывания приложений 59
2.2.4 Процесс контейнеризации 59
2.2.5 Создание контейнера для серверной части 59
2.2.6 Создание контейнеров 61
2.3 Экономическая эффективность проекта 63
2.4 Руководство пользователя 65
Заключение 66
Список источников 67
Приложение А 72
API — программный инструмент, с помощью которого одна компьютерная программа может взаимодействовать с другой программой [1].
Git – это бесплатная распределенная система управления версиями с открытым исходным кодом, предназначенная для быстрой и эффективной обработки любого проекта, от малого до очень большого. Он прост в освоении и имеет крошечные размеры при молниеносной производительности. Он превосходит такие инструменты SCM, как Subversion, CVS, Perforce и ClearCase, благодаря таким функциям, как дешевое локальное ветвление, удобные промежуточные области и множество рабочих процессов [24].
GitHub — веб-сервис для хостинга IT-проектов и их совместной разработки. веб-сервис основан на системе контроля версий Git и разработан на Ruby on Rails и Erlang компанией GitHub, Inc (ранее Logical Awesome).
Node.JS – среда выполнения jаvascript-приложений. Основан на движке V8, на котором также основано большинство мобильных и десктопных браузеров [24].
POST-запрос – REST-запрос на сервер, содержащий тело запроса (Request Body). Обычно используется для добавления каких-то данных на сервер [22][23].
REST — правила проектирования приложения для взаимодействия клиентской и серверной части программного комплекса. Является наиболее распространённой на данный момент архитектурой построения веб-приложений [2].
REST-эндпоинт – элемент серверного приложения, который принимает и обрабатывает запрос с определённого URL-адреса [2].
Ветка в Git (branch) — указатель на коммит с определенными изменениями [24].
Коммит в Git (commit) — основной объект разработки, в котором хранятся все изменения кода за итерацию. По сути, это список со всеми актуальными изменениями и ссылка на предыдущую версию коммита. У каждого коммита есть атрибуты: имя, дата создания, автор и комментарии к текущей версии [24].
Контроллер (Controller, MVC) – элемент паттерна MVC. Интерпретирует действия пользователя, оповещая модель о необходимости изменений [29][30].
Модель (Model, MVC) – элемент паттерна MVC. Предоставляет данные и реагирует на команды контроллера, изменяя своё состояние [29].
Непрерывная интеграция — это методология разработки и набор практик, при которых в код вносятся небольшие изменения с частыми коммитами. И поскольку большинство современных приложений разрабатываются с использованием различных платформ и инструментов, то появляется необходимость в механизме интеграции и тестировании вносимых изменений [20].
Непрерывная поставка — это автоматическое развертывание приложения в целевое окружение [20].
Представление (View, MVC) – элемент паттерна MVC. Отвечает за отображение данных модели пользователю, реагируя на изменения модели [29].
Программое обеспечение – это программа или множество программ, используемых для управления компьютером (ISO/IEC 26514:2008).
Ревью кода в Git (code review) — процесс обсуждения изменений кода после совместного создания коммита и перед окончательным слиянием. В ревью разработчики оставляют комментарии к строкам с измененным кодом, а в случае ошибок или упущенных моментов предлагают решения по улучшению кода [24].
Ререндер – изменение отображения чего-либо [23].
Свободное программное обеспечение (СПО, англ. free software, также software libre или libre software), свободный софт — программное обеспечение, в отношении которого права пользователя («свободы») на неограниченную установку, запуск, а также свободное использование, изучение, распространение и изменение (совершенствование) защищены юридически авторскими правами при помощи свободных лицензий.
Свободно-распространяемое ПО — это программное обеспечение, соглашение которого не требует материальных выплат правообладателю. СРПО обычно распространяется в бинарном виде, без исходных кодов и является проприетарным ПО.
Серверное приложение – часть программно-аппаратного комплекса, реализующее основную бизнес-логику и прямое взаимодействие с базой данных [3].
CI/CD – Continuous Integration / Continuous Delivery (Непрерывная Интеграция / Непрерывная поставка)
REST – Representational State Transfer (передача репрезентативного состояния)
SPA – Single Page Application (Одностраничное приложение)
ПК – персональный компьютер
Актуальность данной работы заключается в том, что в учебных заведениях программы профориентации имеют возможность быть цифровизированными и, следовате
Термины и определения 5
Список сокращений 8
Введение 9
1 Аналитическая часть 11
1.1 Анализ предметной области 11
1.2 Определение свободно-распространяемого программного обеспечения 12
1.2.1 Отличия свободно-распространяемого ПО от Свободного программного обеспечения 12
1.2.2 Отличия свободно-распространяемого ПО от условно-бесплатного программного обеспечения 12
1.2.3 Проблема именования бесплатного и свободно-распространяемого программного обеспечения 13
1.2.4 Веб-сайт как программное обеспечение 13
1.2.5 Веб-приложение как свободно-распространяемое программное обеспечение 13
1.3 Проблема Профессионального самоопределения молодежи...... 14
1.3.1 Статистические данные 14
1.3.2 Экономический аспект использования бесплатного ПО. Расходы при использовании традиционной методологии. 14
1.3.3 Обзор проблемы 15
1.3.4 Попытка решения проблемы с помощью Вузопоиска 15
1.3.5 Использование вузопоиска школой в качестве Свободно-распространяемого решения для профориентации 16
1.3.6 Основные компоненты профессиональной ориентации учеников школ 17
1.3.7 Проблема Профессионального самоопределения молодежи. Статистические данные 17
1.3.8 Обзор проблемы 18
1.3.9 Экономический аспект использования бесплатного ПО. Расходы при использовании традиционной методологии. 18
1.3.10 Способы решения проблемы и оптимизации задачи 19
1.3.11 Вузопоиск в качестве решения задачи 19
2 Проектная часть 21
2.1 Проектирование программного продукта 21
2.1.1 Цель разработки программного продукта 21
2.1.2 Управление проектом 21
2.1.3 Обоснование выбора инструментальных средств 22
2.1.4 Обзор серверной части приложения 23
2.1.5 Обзор клиентской части приложения 30
2.1.6 Архитектура клиентской части. Организация кода 50
2.1.7 Тестирование клиентской части 56
2.2 Непрерывная интеграция / Непрерывное развёртывание 57
2.2.1 Система контроля версий Git 57
2.2.2 Использование Git в разработке Вузопоиска 58
2.2.3 Docker как инструмент для контейнеризации и развёртывания приложений 59
2.2.4 Процесс контейнеризации 59
2.2.5 Создание контейнера для серверной части 59
2.2.6 Создание контейнеров 61
2.3 Экономическая эффективность проекта 63
2.4 Руководство пользователя 65
Заключение 66
Список источников 67
Приложение А 72
ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
Angular – Node.JS-фреймворк для построения одностраничных приложений (SPA). Является переработанной и улучшенной версией более старого фреймворка AngularJS [24].API — программный инструмент, с помощью которого одна компьютерная программа может взаимодействовать с другой программой [1].
Git – это бесплатная распределенная система управления версиями с открытым исходным кодом, предназначенная для быстрой и эффективной обработки любого проекта, от малого до очень большого. Он прост в освоении и имеет крошечные размеры при молниеносной производительности. Он превосходит такие инструменты SCM, как Subversion, CVS, Perforce и ClearCase, благодаря таким функциям, как дешевое локальное ветвление, удобные промежуточные области и множество рабочих процессов [24].
GitHub — веб-сервис для хостинга IT-проектов и их совместной разработки. веб-сервис основан на системе контроля версий Git и разработан на Ruby on Rails и Erlang компанией GitHub, Inc (ранее Logical Awesome).
Node.JS – среда выполнения jаvascript-приложений. Основан на движке V8, на котором также основано большинство мобильных и десктопных браузеров [24].
POST-запрос – REST-запрос на сервер, содержащий тело запроса (Request Body). Обычно используется для добавления каких-то данных на сервер [22][23].
REST — правила проектирования приложения для взаимодействия клиентской и серверной части программного комплекса. Является наиболее распространённой на данный момент архитектурой построения веб-приложений [2].
REST-эндпоинт – элемент серверного приложения, который принимает и обрабатывает запрос с определённого URL-адреса [2].
Ветка в Git (branch) — указатель на коммит с определенными изменениями [24].
Коммит в Git (commit) — основной объект разработки, в котором хранятся все изменения кода за итерацию. По сути, это список со всеми актуальными изменениями и ссылка на предыдущую версию коммита. У каждого коммита есть атрибуты: имя, дата создания, автор и комментарии к текущей версии [24].
Контроллер (Controller, MVC) – элемент паттерна MVC. Интерпретирует действия пользователя, оповещая модель о необходимости изменений [29][30].
Модель (Model, MVC) – элемент паттерна MVC. Предоставляет данные и реагирует на команды контроллера, изменяя своё состояние [29].
Непрерывная интеграция — это методология разработки и набор практик, при которых в код вносятся небольшие изменения с частыми коммитами. И поскольку большинство современных приложений разрабатываются с использованием различных платформ и инструментов, то появляется необходимость в механизме интеграции и тестировании вносимых изменений [20].
Непрерывная поставка — это автоматическое развертывание приложения в целевое окружение [20].
Представление (View, MVC) – элемент паттерна MVC. Отвечает за отображение данных модели пользователю, реагируя на изменения модели [29].
Программое обеспечение – это программа или множество программ, используемых для управления компьютером (ISO/IEC 26514:2008).
Ревью кода в Git (code review) — процесс обсуждения изменений кода после совместного создания коммита и перед окончательным слиянием. В ревью разработчики оставляют комментарии к строкам с измененным кодом, а в случае ошибок или упущенных моментов предлагают решения по улучшению кода [24].
Ререндер – изменение отображения чего-либо [23].
Свободное программное обеспечение (СПО, англ. free software, также software libre или libre software), свободный софт — программное обеспечение, в отношении которого права пользователя («свободы») на неограниченную установку, запуск, а также свободное использование, изучение, распространение и изменение (совершенствование) защищены юридически авторскими правами при помощи свободных лицензий.
Свободно-распространяемое ПО — это программное обеспечение, соглашение которого не требует материальных выплат правообладателю. СРПО обычно распространяется в бинарном виде, без исходных кодов и является проприетарным ПО.
Серверное приложение – часть программно-аппаратного комплекса, реализующее основную бизнес-логику и прямое взаимодействие с базой данных [3].
СПИСОК СОКРАЩЕНИЙ
API – Application Programming Interface (программный интерфейс приложения)CI/CD – Continuous Integration / Continuous Delivery (Непрерывная Интеграция / Непрерывная поставка)
REST – Representational State Transfer (передача репрезентативного состояния)
SPA – Single Page Application (Одностраничное приложение)
ПК – персональный компьютер
ВВЕДЕНИЕ
Цифровые технологии позволили человечеству вступить в новую эпоху, где практически всё можно цифровизировать, использовать удалённо, при этом сокращая затраты на использование ресурсов. Например, постепенный переход производств от обычного документооборота к электронному позволяет отметить положительный финансовый эффект от экономии на приобретение бумаги, распечатывание и отправку документов. В то же время, качество, количество и скорость услуг растёт, что ещё больше повышает экономическую эффективность производств.Актуальность данной работы заключается в том, что в учебных заведениях программы профориентации имеют возможность быть цифровизированными и, следовате
Характеристики ВКР
Учебное заведение
Семестр
Просмотров
1
Размер
8,82 Mb
Список файлов
Подготовка программно-аппаратного решения для перевода предприятия на свободно распространяемое программное обеспечение.docx
Комментарии
Нет комментариев
Стань первым, кто что-нибудь напишет!
МГУ им. Ломоносова
Tortuga













