Введение 3
Глава 1 Анализ современного состояния вопроса выбора методологий разработки программного обеспечения 7
1.1 Основные принципы и понятия разработки программного обеспечения 7
1.2 Существующие подходы к разработке программного обеспечения 9
Выводы по главе 28
Глава 2 Существующий инструментарий выбора методологии разработки ПО 29
2.1 Предпосылки использования методологий разработки ПО 29
2.2 Концептуальное описание модели выбора методологии разработки программного обеспечения 34
Выводы по главе 39
Глава 3 Практическое применение модели выбора методологии разработки программного обеспечения 40
3.1 Выделение параметров модели выбора и их значений 40
3.2 Создание модели профилей методологий разработки ПО на диаграмме параметров проектов 45
3.3 Создание модели профиля проекта на диаграмме параметров проектов 52
3.4 Создание модели выбора методологии разработки программного обеспечения 56
Выводы по главе 60
Заключение 62
Список литературы 64
Современное состояние проблемы
Исследования подходов разработки программного обеспечения (ПО) являются важной и актуальной частью исследований в области программной инженерии. Повсеместное внедрение информационных технологий способствует появлению большого внимания к исследованию наиболее эффективных методов разработки ПО. На данный момент существует большое количество научных работ, посвященных изучению особенностей методик разработки ПО и сравнению их между собой. Так, например, исследования Ильясовой Ф.С. «Современные методологии разработки программного обеспечения» [7] и Аникеева Д.А «Обзор методологий разработки программного обеспечения» [1] посвящены детальному изучению популярных методик разработки: каскадной модели, спиральной модели, компонентно-ориентированной модели, RUP (рациональный унифицированный процесс), MSF (Майкрософт фреймворк-решения), XP (экстремальное программирование), OpenUP (итеративно-инкрементальный метод разработки ПО), FDD (особенности управляемого процесса), Scrum (фреймворк гибкой разработки ПО).
Особенно остро стоит проблема выбора той или иной методики разработки ПО в зависимости от особенностей решаемых задач и требований организаций, в следствие чего огромное количество трудов посвящено этой тематике. В работе Бурбело С.М. [3] «Выбор гибких методов разработки программного обеспечения» и в исследованиях других авторов на эту же тему, например, таких, как Карпов Д.В. [9], Тюнина А.И. [22], Борцов М.Ю.[2], Лим С.А. [10], Сербская О.В. [19], Восканян Л.С. [4] акцентируется внимание на изучение особенностей использования гибких методик разработки программного обеспечения и обоснования их преимуществ. Эти исследования теоретически доказывают превосходство гибких методов, но не имеют за собой достаточно убедительного практического обоснования. Проблематика анализа и выбора наиболее подходящих методов рассматривается в таких работах, как «Анализ процесса выбора технологии проектирования, методологии и среды разрабатывания программного обеспечения» Говорущенко Т.О [5], «Анализ современных методологий разработки сложных программных проектов» Свиридова А. С. [20], «Сравнительный анализ методологий разработки программного обеспечения» Геркушенко Г. Г. [21]. В этих трудах предпринимается попытка создания некоторой модели выбора того или иного метода в зависимости от имеющихся условий. Кроме этого стоит отметить работы Михайлова А. А. [13], а также статью «Современные технологии производства и перспективные модели разработки программного обеспечения» Плотникова А.Н. [17] отличающиеся детальным изучением отдельно взятых методик.
Часто исследователи сужают работы до какой-то конкретной сферы или задачи, так, например, в статье «Проблема выбора методологии разработки информационной системы вуза» Петровой А.Н. [ 16] рассматривается ситуация отбора методики для внедрения ИС в высшее учебное заведение Многие работы посвящены использованию тех или иных методик в бизнесе: так, исследование под названием «Применение методологии Scrum в передовых компаниях» Восканян Л.С.[4] изучает существующие практики применения методологии Scrum, изучает ее плюсы и минусы. Аналогичное исследование проводится в работе «Проблемы адаптации scrum-инструментов в российской практике управления ит- проектами» Евсеева Л.В.[6].
Многие работы посвящены усовершенствованию и дополнению уже имеющихся методик с целью повышения их эффективности на практике. Примером такой работы служит статья «Применение имитационного моделирования в управлении проектами по разработке программного обеспечения с гибкими методологиями» Сачек Е.А.[18], аналогичная работа, связанная с повышением качества разработки на основе анализа проектных рисков, опубликована Овчинниковым С.А.[14]. В другой работе, «Инновационные методологии перепроектирования «унаследованных» программных систем» Матвиенко Д.М.[11], приводится описание опыта команды разработчиков, решающей задачу внедрения механизмов тест-ориентированной разработки (Test-Driven Development) в существующий проект, первоначально не адаптированный к использованию ТОО-инструментария.
Таким образом, можно резюмировать, что к сфере разработки программного обеспечения проявляется большой научный интерес, множество специалистов пишут исследовательские работы в данном направлении, но остается большое количество открытых вопросов в отношении методов разработки ПО, что обуславливает пространство для дальнейшей работы.
Сегодня можно констатировать наличие огромного количества различных методов, описываемых различными принципами и требованиями. Такое количество различных способов разработки является результатом исследования специалистов с целью создать максимально эффективный метод под ту или иную задачу. Из-за этого встречается большое количество различных методов «симбиозов», объединяющих как плюсы, так и минусы нескольких методик в одной.
Это является большой проблемой для предприятий, стремящихся иметь статус высокотехнологичных и инновационных. В деятельности таких предприятий большую роль играют новые качественные технологии и научные исследования. Задачи, решаемые высокотехнологичным предприятиями, могут быть совершенно разными, это касается и процесса разработки программного обеспечения: здесь задача может стоять как в внедрении какого-то специализированного приложения для работы конкретного сотрудника, так и в развертывании сложной корпоративной системы, имеющей большое количество различных интегрированных приложений. Одной универсальной методики разработки ПО под все эти случаи не существует, выбор же из огромного множества какой- то конкретной, отвечающей представленным требованиям, очень серьезная и затратная задача.
Это обуславливает актуальность проводимого исследования, направленного на изучение и сравнение наиболее часто используемых методов проектирования ПО и создание рекомендационной модели выбора методологий в зависимости от требований для различных задач.
Цель работы: выявить модель выбора методологии разработки программного обеспечения в зависимости от исходных условий и требований к проектной деятельности.
Гипотеза исследования: если существует ряд отличающихся друг от друга методологий разработки программного обеспечения, то должна существовать возможность сформулировать алгоритм выбора какой-то определенной из них. Например, модель, основанная на экспертных оценках и моделях минимизации риска.
Задачи исследования:
1. Проанализировать существующие методики разработки IT-проектов;
2. Определить критерии оценки методик разработки программного обеспечения при постановке той или иной задачи;
3. Разработать модель выбора методики в зависимости от установленных ограничений;
4. Проанализировать и получить оценку состоятельности модели для рассматриваемого ряда задач по установленным критериям;
Объект исследования: система методологий и подходов по разработке программного обеспечения.
Предмет исследования: методологии разработки IT-проектов в деятельности высокотехнологичных предприятий.
Научная новизна. Научная новизна в исследовании заключается в разработке модели выбора и создании методических рекомендаций по совершенствованию анализа подходов к разработке программного обеспечения в высокотехнологичных предприятиях.
Теоретическая значимость. Теоретическая значимость работы заключается в рассмотрение фундаментальных и методологических основ разработки программного обеспечения.
Практическая значимость. Практическая значимость исследования заключается в возможности использования разработанной модели и рекомендаций для совершенствования проектной деятельности в высокотехнологичных компаниях с широким набором IT-проектов, например, в структурах компании «Газпром нефть».
Структура выпускной квалификационной работы. Магистерская работа состоит из ведения, трех глав, заключения, списка использованной литературы.
Во введении обоснована актуальность темы, определены цель, задачи, объект, предмет, информационная база, теоретическая и методологическая основа, раскрыта научная новизна, теоретическая и практическая значимость работы.
В первой главе «Анализ современного состояния вопроса выбора методологий разработки программного обеспечения» определяется понятийный аппарат предметной области, после чего проводится подробный обзор и анализ некоторых популярных методологий разработки программного обеспечения, их преимуществ и критериев использования
Во второй главе «Существующий инструментарий выбора методологии разработки ПО» исследуются предпосылки использования методологий разработки, рассматривается концепция Кеневин, позволяющая определить критерии оценки проектов по разработке программного обеспечения и классифицировать их. Предлагается и теоретически описывается модель, позволяющая анализировать сопоставимость той или иной методологии с различными проектами
В третьей главе «Практическое применение модели выбора методологии разработки программного обеспечения» приводится результат практического применения разработанной модели в качестве инструмента поддержки принятия решения руководителя проекта в компании Клевер Солюшнс. Проводится анализ результатов применения модели и дана оценка ее состоятельности и применимости в реальной проектной деятельности
В заключении сформулированы основные выводы и предложения, полученные в результате проведенного магистерского исследования.
На защиту выносится сформулированная модель выбора методологии разработки программного обеспечения.
Предложенная в данной работе модель позволяет структурировать и формализовать процесс выбора методологии разработки программного обеспечения.
В ходе апробации модели было выявлено:
1. Состоятельность модели. Модель позволяет формализовать процесс выбора методологии для проекта, сделать его прозрачным и понятным каждому члену команды;
2. Модель позволяет провести объективный и обоснованный анализ сопоставимости методологий разработки и проектов разных типов, который будет включать мнения экспертов как со стороны заказчика, так со стороны исполнителя;
3. Модель позволяет значительно снизить риск принятия неверного решения выбора методологии разработки и связанные с этим риски. Теперь решения руководителей проектов компании могут основываться не только на интуиции и личном опыте, но и на формализованной модели, полученной при помощи совместного анализа проектной команды, что подразумевает коллективную ответственность за выбор той или иной методологии;
4. Модель зарекомендовала себя как инструмент для наглядной демонстрации и защиты выбора методологии разработки перед вышестоящим начальством и заказчиками. Пошаговый алгоритм построения модели позволяет детально рассматривать процесс формирования решения по использованию той или иной методологии, он прост в усвоении и понятен даже неподготовленному специалисту.
В работе проводится анализ специализированной и научной литературы, посвященной исследованиям методологий разработки программного обеспечения.
Определяется понятийный аппарат предметной области, после чего проводится подробный обзор и анализ некоторых популярных методологий разработки программного обеспечения, их преимуществ и критериев использования.
Исследуются предпосылки использования методологий разработки, рассматривается концепция Кеневин, позволяющая определить критерии оценки проектов по разработке программного обеспечения и классифицировать их. Предлагается и теоретически описывается модель, позволяющая анализировать сопоставимость той или иной методологии с различными проектами.
Приводится результат практического применения разработанной модели в качестве инструмента поддержки принятия решения руководителя проекта в компании Клевер Солюшнс. Проводится анализ результатов применения модели и дана оценка ее состоятельности и применимости в реальной проектной деятельности.
Научная новизна исследования заключается в систематизации имеющихся знаний в области методологий разработки программного обеспечения и выявлении новаторской модели, позволяющей формализовать и структурировать процесс выбора методологий разработки.
Практическая значимость работы обуславливается возможностью применения модели как инструмента поддержки принятия решения с целью повышения качества и эффективности процесса принятия решения в компаниях, занимающихся разработкой программного обеспечения.
Перспективы дальнейшего развития модели заключаются в возможности создания автоматизированного инструмента визуализации модели, а также в исследовании количественной или стоимостной оценки выбора той или иной методологии.
1. Аникеев Д.А., Пешкова К.Е., Гарченко Е.В., Сарапулова Т.В. Обзор методологий разработки программного обеспечения // СОВРЕМЕННЫЕ ТЕНДЕНЦИИ РАЗВИТИЯ НАУКИ И ПРОИЗВОДСТВА. - 2016. - С. 264-266.
2. Борцов М. Ю., Молочников М. А. Гибкий подход к разработке и внедрению информационных систем предприятия // Известия Санкт-Петербургского государственного электротехнического университета ЛЭТИ. - 2005. - №. 11. - С. 42-48.
3. Бурбело С.М., Стародуб О.С., Богданова М.С. Выбор Гибких Методов Разработки Программного Обеспечения // В1сник Хмельницького Нацюнального Ушверситету. Техшчш Науки. 2013. № 4 (203). C. 139-143.
4. Восканян Л.С., Искандарян Д.С. Применение методологии Scrum в передовых компаниях // BI-ТЕХНОЛОГИИ В ОПТИМИЗАЦИИ БИЗНЕС-ПРОЦЕССОВ. Материалы Международной научно-практической очно-заочной конференции. Российско-Армянский (Славянский) университет, Уральский государственный экономический университет. - 2014. C. 31-35.
5. Говорущенко Т.О., Малярчук Р.А. Анализ Процесса Выбора Технологии Проектирования, Методологии И Среды Разрабатывания Программного Обеспечения // В1сник Хмельницького Нацюнального Ушверситету. Техшчш Науки. 2014. № 6 (219). C. 186-195.ДЖЕЛДУБАЕВ Р.С. Применение современных методологий разработки программного обеспечения в учебном проекте / Р.С. ДЖЕЛДУБАЕВ, Ю.П. МОСКАЛЕВА // ПРОБЛЕМЫ СОВРЕМЕННОГО ПЕДАГОГИЧЕСКОГО ОБРАЗОВАНИЯ. - 2015. - № 48-4. - С. 33-44.
6. Евсеев Л. В. ПРОБЛЕМЫ АДАПТАЦИИ SCRUM-ИНСТРУМЕНТОВ В РОССИЙСКОЙ ПРАКТИКЕ УПРАВЛЕНИЯ ИТ-ПРОЕКТАМИ //Экономическое развитие России: тенденции, перспективы. - 2015. - С. 213-215.
7. Ильясова Ф. С., Клеблеев Ш. А. Современные методологии разработки программного обеспечения //Инновационные направления в научной и образовательной деятельности. - 2015. - С. 76-78.
8. Кауров А.А., Кривцов А.Н. Имитационное моделирование при оценке проектной деятельности предприятия // ПЕРСПЕКТИВЫ РАЗВИТИЯ НАУКИ В СОВРЕМЕННОМ МИРЕ. Сборник статей по материалам V международной научно-практической конференции : В 3 частях. - 2018. C. 71-76.
9. Карпов Д. В. Гибкая методология разработки программного обеспечения //Вестник Нижегородского университета им. НИ Лобачевского. - 2011. - №. 3-2.
10. Лим С.А. Исследование эффективности работы скрама при работе с малыми проектами // Новые Информационные Технологии В Автоматизированных Системах. 2015. № 18. C. 476-478.
11. Матвиенко Д.Н. Инновационные методологии перепроектирования «унаследованных» программных систем // Омский Научный Вестник. 2009. № 3 (83). C. 249-251.
12. Мерзлякова А.П. Высокотехнологичное предприятие как субъект инновационно-креативной деятельности // В сборнике «Проблемы развития инновационно-креативной экономики». — 2011 — с. 225-233.
13. Михайлов А. А., Базуева С. А. АНАЛИЗ СТРУКТУРНО-ПАРАМЕТРИЧЕСКОЙ ИНТЕГРАЦИИ АЛГОРИТМОВ //ТЕХНОЛОГИИ РАЗРАБОТКИ ИНФОРМАЦИОННЫХ СИСТЕМ ТРИС-2016. - 2016. - С. 128-133.
14. Овчинников С. А. Управление проектом по разработке программного обеспечения с целью повышения качества на основе анализа проектных рисков //Известия Волгоградского государственного технического университета. - 2013. - Т. 16. - №. 8 (111).
15. Павленко Е. П., Криворотенко И. А., Айвазов В. А. Выбор методологии разработки программного обеспечения для страховой компании. - 2014.
...