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


Применение подходов автоматизации в процессе поставок программного обеспечения

Работа №35133

Тип работы

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

Предмет

информационные системы

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

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


Введение 4
1. Определение задачи исследования 10
1.1. Обзор существующих решений 11
2. Анализ процесса поставок программного обеспечения на примере Банка
России 17
2.1. Текущая методология процесса поставки программного обеспечения в Банке России 17
2.2. Недостатки текущей методологии 19
2.3. Предлагаемые улучшения 20
2.4. Спецификация к информационной системе автоматизации процессов поставки программного обеспечения 22
3. Решение поставленных задач 25
3.1. Обзор и анализ существующих методологий и моделей разработки 25
3.2. Требования к процессу ведения проектов 27
3.2.1. Формат хранения исходного кода и вспомогательных программных ресурсов на стороне разработчика 27
3.2.2. Структура репозитория приложений, библиотек, вспомогательных файлов 27
3.2.3. Модель ветвления в репозитории 29
3.2.4. Общие требования к версионированию 30
3.3. Реализация прототипа информационной системы “Автоматизации
процессов поставки программного обеспечения” 31
3.3.1. Структура проекта 31
3.3.2. Модели 32
3.3.3. Работа с данными 32
3.3.4. Визуальные компоненты 32
3.3.5. Механизмы информационной безопасности 33
3.3.6. Инсталляция и настройка 33
4. Полученные результаты 34
Заключение 36
Глоссарий 37
Список литературы 38
Приложение 41
А Диаграмма жизненного цикла релизов 41
Б Статистика по дефектам релизов в Банке России за 2017-2018 год 42
В Проблемы влияющие на поставку ПО 43
Г Описание комплекта поставки (пример) 46
Д Методология расчёта трудоемкости 47
Е Протокол предварительных испытаний информационной системы “Автоматизации процессов поставки программного обеспечения.” 49
Ж Структура файла changelogjson 56
З Диаграмма классов программного обеспечения 57


В современных условиях IT бизнес характеризуется 2 вехами:
Во-первых, заказчики хотят получить максимум из уже заказанного и эксплуатируемого ПО. Платить за уже реализованные функции повторно - никто не хочет. Поэтому, уже внедренное ПО развивается и сопровождается максимально долго. Сменить разработчика так же становится проблематичным, так как с ростом объема кода и сложности автоматизируемых функций передать компетенции другой команде разработки трудно. С наработкой опыта, текущая команда превращается в экспертов не только в предметной области, но и в понимании потребностей заказчика. Это приводит к тому, что заказчик хочет максимально долго развивать уже разработанное программное обеспечение и договора на его сопровождение продлеваются десятилетиями [17].
Во-вторых, современные методологии разработки предусматривают итерационный процесс развития продукта. Это позволяет быстро удовлетворить часть потребностей заказчика и продолжать делать это весь срок контракта. Так же изменение законодательства или выявление скрытых ошибок требует сопровождения системы весь срок ее эксплуатации. Это приводит к тому, что договорные отношения заключаются на долгий срок и в течении всего этого срока исполнитель поставляет модификации к системе. Данные модификации по своей сути являются новыми версиями продукта[26].
Согласно спиральной методологии разработки программного обеспечения [23] последней фазой процесса разработки программного обеспечения является внедрение готового программного обеспечения или очередной его итерации в промышленную эксплуатацию. Артефактом данного процесса является релиз. Схема описания процесса и его жизненного цикла приведена в приложении A. В работе мы будем использовать следующие определение релиза:
Релиз —это выпуск окончательной версии программы, готового для использования продукта. В релизе обычно собирают все версии и обновления, и выпускают конечный продукт со всеми исправлениями, который не нужно обновлять, так как он является последней актуальной версией программного обеспечения. При итеративном процессе разработки, релиз выпускается в конце каждой итерации. В случае если программное обеспечение уже внедрено в эксплуатацию, релиз в
виде пакетов модификаций(патчей) рассылается по клиентам и внедряется в программный продукт [14].
Релиз — набор аппаратного обеспечения, программного обеспечения, документации, процессов или других компонентов, которые необходимы для внедрения одного или нескольких согласованных изменений в услугах.Содержание каждого релиза управляться, тестируется и развертывается как отдельная сущность^].
Применение данных модификаций несет следующие риски [28] для промышленной эксплуатации системы:
• Некорректно реализован новый функционал;
• Внесена ошибка в действующий функционал;
• Система перестает справляться с нагрузкой.
Таким образом новый продукт должен быть наполнен только требуемыми функциями, проверен и его риски должны быть минимизированы.
Процесс управления выпуском готового к эксплуатации продукта называется управлением релизами. Цель процесса управления релизами является консолидация, структурирование и оптимизация всех изменений или обновлений, а также снижение риска при переводе сервиса на новый качественный уровень. Для достижения поставленной цели, в области разработки программного обеспечения используется процесс управления выпусками — “Release Management’’[4].
Поскольку программные системы, процессы разработки программного обеспечения и ресурсы становятся более распределенными, они неизменно становятся более специализированными и сложными. При использовании современных методологий, программные продукты находятся в непрерывном цикле разработки, тестирования и выпуска, такие системы требуют выделенных отдельных ролей для контроля за интеграцией и потоком разработки, тестирования, развертывания и поддержки. Ранее данные функции ложились на разработчиков, тестировщиков и менеджеров проекта, но в связи с внедрением территориально распределенных команд, передачей части функций на аутсорсинг все чаще для процесса формирования релиза стали выделять отдельную роль. Данную роль принято называть «Релиз-менеджер» — “Release Engineer”[12].
«Релиз-менеджер» отвечает за операции по выпуску продукта. Основная цель «релиз-менеджера» - обеспечение выпуска готового продукта. Он координирует выпуск продукта со специалистами по эксплуатации, создает план выпуска продукта и сертифицирует подготовленные к выпуску версии для поставки или развертывания[4].
В качестве направления нашего исследования мы выбрали проблемы, влияющие на выпуска готового продукта в промышленную эксплуатацию и выявляемые на этапе подготовки релиза.
Данное направление выбрано нами в качестве предмета для исследования, по следующим причинам:
Теоретической:
Внедрение — одна из фаз жизненного цикла программного обеспечения. В каких-то моделях оно относится к стадии развертывания и сопровождения, в других — разработки и тестирования.Дисциплина управления релизами является относительно новой для программной инженерии и еще не получила широкого раскрытия в литературе и учебных планах.
Во многих методологиях данной роли вообще нет, а ее функции распределены между ProjectManager, ProductOwner, TeamLeader. Но при промышленной разработке без нее не обойтись, так как управление релизами позволяет связать процесс разработки с процессами управления качеством и поддержки пользователей.
По мнению автора, в рамках существующих учебных программ тема управления релизами затрагивается вскользь в дисциплинах «Жизненный цикл программного обеспечения» и «Основы управления проектами». Рассчитываем, что работа позволит не только продолжить исследования в части применения подходов автоматизации в процессе поставок программного обеспечения, но и сформирует материал для дальнейшего расширения учебных программ по специальности.
Автор данной работы уже несколько лет работает релиз - менеджером. Заняв данную должность, использовал существующие в организации практики. Но по мере накопления статистики по проблемам и нештатным ситуациям, стало понятно, что процесс необходимо модернизировать.
Для решения стоящих практических проблем будет изучен текущий процесс поставок, принятый в организации, сформирован список проблем организации, рассмотрены наши предложения по их устранению или снижению рисков по ним, в процессе формирования релизов. Для этого изучим существующий опыт и методологий.
Работа раскрывает особенности управления выпусками программного обеспечения, базируясь не только на теоретических источниках, но и накопленном опыте автора и научного руководителя, в данной области.
Основной упор в работе будет сделан на автоматизацию процесса. Это вызвано следующими факторами:
• Компактность структуры;
Процесс управления поставками программного обеспечения, в силу своих особенностей, не может быть децентрализован или распределен по большому количеству персонала. Он связан с принятием стратегических решений и их оформлением. Для этого вся полнота информации должна быть сосредоточена у одного - двух сотрудников. Так же, данная роль воспринимается в IT-компаниях, как административно - вспомогательная и её штатная численность, обычно, мала.
• Большой объем информации;
Для принятие решения о составе релиза, конфигурации, дате внедрения и существующих ограничениях требуется доступ к большому объему информации, поступающему от различных источников.
• Процесс принятия решений на данный момент невозможно полностью автоматизировать или переложить на искусственный интеллект, так как кроме технических событий, таких как оценка качества, прохождение тестового покрытия или соответствие план-графику поставок, релиз-менеджеру приходится сталкивается и с нормативно-договорными факторами, субъективно оценивать риски и взвешивать улучшения и ухудшения в работе с системой, после установки релиза. В настоящее время, во многих компаниях управление выпуском программного обеспечения остается творческим процессом. Данной парадигмы мы продолжим придерживаться. Но постараемся обеспечить полный доступ и контроль за информацией, в рамках автоматизированного подхода;
• Готовых программных решений, для управления релизами не много. Данный функционал лишь частично представлен в различных системах управления разработкой. Выполненная нами разработка позволит получить прототип востребованного специализированного сервисного программного продукта, с малым количеством конкурентов;
• Полученные результаты возможно апробировать на базе организации - партнера Казанского (Поволжского) федерального университета - Центрального Банка Российской Федерации (Банка России). Что позволит подтвердить или опровергнуть эффективность выполненной работы.
Таким образом, целью исследования является:
• Оптимизация работ, выполняемых в рамках процесса поставок программного обеспечения, в целях снижения трудозатрат и улучшения качества выпускаемого программного обеспечения;
• Создание прототипа системы, позволяющей применить автоматизированные подходы к работам, выполняемым в рамках процесса поставки программного обеспечения, для снижения их трудозатрат и улучшения качества результатов процесса.
Областью исследований является методология подготовка и формирование готового программного обеспечения для поставки заказчику и возможности автоматизации данного процесса путем разработки специального программного обеспечения. Данное программное обеспечение представляет собой информационную автоматизированную систему, целью которой является оказание помощи релиз - менеджерам и другим участникам данного процесса в формировании поставок программного обеспечения.
Предметом исследования являются процедуры и методологии процесса поставки программного обеспечения.
В исследовании использовались следующие методы: информационный поиск, интеллектуальный анализ данных, поиск знаний в базах данных, рассуждение на основе прецедентов, имитационное моделирование, прототипирование, экспериментальный, ситуационный анализ, и когнитивное моделирование.
В рамках данного исследования автором изучены труды отечественных и иностранных исследователей в области управления релизами и их решений. Книги:
• Майкла Нейгарда - “Release it! Проектирование и дизайн ПО для тех, кому не всё равно” [28];
• Chaminda Chandrasekara - “Beginning Build and Release Management with TFS 2017 and VSTS” [2];
• Джеза Хамбл и Девида Фарлей - “Непрерывная поставка” [6];
• Перевод материалов библиотеки “ITIL v.3” от компании YeSSoft [25];
• Dave Howard - “IT release management” [4].
Статьи:
• Evolution of thinking models in automatic incident processing systems [11];
• Thinking lifecycle as an implementation of machine understanding in software maintenance automation domain [10];
• Модель мышления и понимания в автоматической обработке запросов пользователя [9];
• Thinking-Understanding approach in IT maintenance domain automation [27];
• Управление процессом разработки программного обеспечения на основе статистического имитационного моделирования[31].
Диссертации:
• Тощев А. С. - “Интеллектуальная система повышения эффективности ИТ- службы предприятия” [30].
Задачи исследования: провести анализ предметной области, сформировать гипотезу, создать прототип для проверки гипотез, выполнить проверку гипотез, проанализировать результаты.


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

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

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


Согласно командной модели Microsoft Solutions Framework основная цель релиз - менеджера - обеспечение выпуска готового продукта [1]. Для достижения этой цели он координирует выпуск продукта со специалистами по эксплуатации, создает план выпуска продукта и сертифицирует подготовленные к выпуску версии для поставки или развертывания.
Человек, назначенный на эту роль входит в группу “Администратор проекта”. На него возложены функции сопровождения проекта, ответственность за результат внедрения.
Его основной деятельностью является выпуск продукта и изменений к нему Для этого он исполняет план выпуска, формирует документацию по выпуску, может быть привлечен к развертыванию продукта.
В дипломной работе был рассмотрен процесс сопровождения формирования релиза, при использовании командой git - подобных репозиториев. В качестве методологии была выбрана методология Git - flow.
В рамках работы над проектом были решены поставленные задачи и достигнуты следующие результаты:
• произведен анализ текущего процесса формирования релиза поставки программного обеспечения, на примере Банка России;
• рассмотрена возможность построения процесса поставки программного обеспечения с использованием Git - flow методологии. Даны рекомендации по улучшению процесса;
• разработан прототип информационной системы автоматизации процесса формирования релиза поставки готового программного обеспечения, на основании рассмотренной методологии, с учетом приведенных в работе рекомендаций. Код доступен по ссылке http://gititis.kpfu.ru/KVPetrov/DipWork.git;
• выполнена оценка результатов работы путем их опытной эксплуатации.
Таким образом, разработанный прототип информационной системы “Автоматизации процессов поставки программного обеспечения” может служить основой для оценки предложенных в работе решений и создания полноценной системы автоматизации процессов поставки программного обеспечения в организациях, использующих Git - подобные репозитории.



1. Campbell D. Microsoft Solutions Framework version 3.0 Overview. — MicroSoft, США, 04.2018. — Microsoft Solutions Framework White Paper. Режим доступа: https://www.researchgate.net/publication/236735939 Microsoft Solutions Framework v3 Overview (Дата обращения: 08.05.2019).
2. Chandrasekara C. Beginning Build and Release Management with TFS 2017 and VSTS. — Apress, 2017.
3. Driessen V. A successful Git branching modeЦЭлектронный ресурс]. — 01.2010. — Режим доступа:https://nvie.com/posts/a-successful-git-branching- model/ (Дата обращения: 08.05.2019).
4. Howard D. IT Release Management. — Taylor & Francis Inc, 13.07.2011. — 344 с.
5. Jacques V PyGithub Documentation. — Release 1.43.5. — Режим доступа: https://pygithub.readthedocs.io/en/latest/introduction.html (Дата обращения:
08.05.2019) , 02.2019.
6. Jez Humble D. F. Continuous Delivery. — Addison Wesley, 01.07.2010. — 512 с.
7. Lebedyuk E. Git. Методологии разработки Gitlab. — InterSystems
Corporation, Boston, США, 04.2018. — Режим доступа:
https://habr.com/ru/company/intersystems/blog/354158/ (Дата обращения:
08.05.2019) .
8. The Qt Company. Докумкетация Qt 5. Model/View Programming. [Электронный ресурс]. — 05.2019. — Режим доступа:https://doc.qt.io/qt-5/model-view- programming.html (Дата обращения: 08.05.2019).
9. Toschev A. Модель мышления и понимания в автоматической обработке запросов пользователя (Thinking Model and Machine Understanding in Automated User Request Processing) // Труды. — 2014. — С. 425—427.
10. Toschev A., Talanov M. Thinking Lifecycle as an Implementation of Machine Understanding in Software Maintenance Automation Domain // Agent and Multi-Agent Systems: Technologies and Applications. — Springer International Publishing, 2015. — С. 301—310.
11. Toschev A., Talanov M., Distefano S. Evolution of Thinking Models in Automatic Incident Processing Systems // Agent and Multi-Agent Systems: Technology and Applications. — Springer, 2016. — С. 271—280.
12. Википедия. Release engineering [Электронный ресурс]. — 07.2018. — Режим доступа:https://en.wikipedia.org/wiki/Release engineering (Дата обращения: 08.05.2019).
13. Википедия. Покер планирования [Электронный ресурс]. — 07.2018. — Режим доступа:https://en.wikipedia.org/wiki/Покер планирования (Дата обращения: 08.05.2019).
14. Википедия. Релиз (программное обеспечение)[Электронный ресурс]. —
07.2018. —Режим доступа: https://ru.wikipedia.org/wiki/Релиз(программное обеспечение) (Дата обращения: 08.05.2019).
15. Википедия. RedMine [Электронный ресурс]. — 01.2019. — Режим доступа: https://ru.wikipedia.org/wiki/RedMine (Дата обращения: 08.05.2019).
16. Википедия. Team Foundation Server [Электронный ресурс]. — 01.2019. — Режим доступа: https://ru.wikipedia.org/wiki/Team Foundation Server (Дата обращения: 08.05.2019).
17. Википедия. Долгосрочная поддержка программного обеспечения. [Электронный ресурс]. — 01.2019. — Режим доступа:
https://ru.wikipedia.org/wiki/Долгосрочная поддерка програмного обеспечения (Дата обращения: 08.05.2019).
18. Википедия. Метаданные. [Электронный ресурс]. — 01.2019. — Режим доступа: https://ru.wikipedia.org/wiki/Метаданные (Дата обращения: 08.05.2019).
19. Высшая аттестационная комиссия РФ. Паспорт специальности 05.13.11 Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей[Электронный ресурс]. — Режим доступа: http://arhvak.minobrnauki.gov.ru/web/guest/316 (Дата обращения: 09.05.2019.
20. ГОСТ Р 27.002-2009 Надежность в технике. Термины и определения. — Национальный стандарт Российской Федерации, 2009. — ИС Консультант +.
21. ГОСТ Р 50922-2006. Защита информации. Основные термины и определения. — Национальный стандарт Российской Федерации, 2006. — ИС Консультант +.
22. ГОСТ Р ИСО 9000-2015 Системы менеджмента качества. Основные положения и словарь. — Национальный стандарт Российской Федерации, 2015. — ИС Консультант +.
23. ГОСТ Р ИСО/МЭК 12207-2010. Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств. — Национальный стандарт Российской Федерации, 2010. — ИС Консультант +.
24. Дронов П. Python 3 и PyQt 5. Разработка приложений //. Т 2 / под ред. Г. Добин. — Санкт-Петербург : БХВ-Петербург, 05.2016. — Гл. 30. Создание SDI- и MDI- приложений. С. 714.
25. Компания YeSSoft. Свободный ^ГЦЭлектронный ресурс]. — Режим доступа: http://www.wikiitil.ru/books/2017 Free ITIL.pdf (Дата обращения: 08.05.2019), 01.2017.
26. Кудинов И. Как мы уже 4 года выживаем в условиях двух релизов в день.[Электронный ресурс]. — 12.2016. — Режим досту- па:https://habr.com/ru/company/badoo/blog/317700/ (Дата обращения:
08.05.2019) .
27. Максим Таланов, Александр Тощев, Андрей Крехов, Айрат Хасьянов. Thinking-Understanding approach in IT maintenance domain automation // Global Journal on Technology: 3rd World Conference on Information Technology. Т. 3. — WCIT-2012, 2013. — С. 879, 894.
28. Нейгард М. Release it! Проектирование и дизайн ПО для тех, кому не всё равно. — ООО Издательство ”Питер”, 2016.
29. ’’Положение о платежной системе Банка России” (утв. Банком России
06.07.2017 N 595-П). — Зарегистрировано в Минюсте России 06.10.2017 N 48458, ред. от 29.10.2018.
30. Тощев А. С. Интеллектуальная система повышения эффективности ИТ- службы предприятия. : дис. ... канд. / Тощев Александр Сергеевич. — 420008, Казань, ул.Кремлевская, 35. : Институт математики и механики им. Лобачевского Казанского (Приволжского) федерального университета.,2017.
31. Третьяков Р., Димов Э. Управление процессом разработки программного обеспечения на основе статистического имитационного моделирования // Сборник трудов III международной конференции и молодежной школы. Самарский национальный исследовательский университет имени академика С.П. Королева. Т. 2. — Информационные технологии и нанотехнологии (ИТНТ-2017). Предприятие ’Новая техника” (Самара), 04.2017. — С. 1535.


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



Подобные работы


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