Содержание к диссертации
Введение
1. Анализ подходов к планированию проектов разработки программного обеспечения 10
1.1. Определение понятия проекта 10
1.2. Анализ проблем планирования проектов 11
1.2.1. Определение цели проекта 11
1.2.2. Анализ проблемы планирования ресурсов проекта 12
1.3. Анализ основных подходов к ведению проектов 13
1.3.1. Треугольник взаимозависимостей частей проекта 13
1.3.2. Обзор подходов к ведению проекта на основе ограничений 15
1.4. Анализ основных подходов к планированию проектов 19
1.4.1. Сетевое планирование 20
1.4.2. Метод PERT 22
1.4.3. Метод Монте–Карло 24
1.4.5. Модель планирования проектов COCOMO/ COCOMO II 25
1.4.6. Необходимость создания метода планирования 26
1.5. Обзор и анализ систем ведения проекта 27
1.6. Выводы 34
2. Разработка структуры системы планирования проектов разработки программного обеспечения 36
2.1. Общая схема ведения проекта 36
2.2. Требования к системе 38
2.3. Структура системы 42
2.3.1. Основные модули системы 42
2.3.2. Модуль постановки задач 43
2.3.3. Модуль анализа задач 46
2.3.4. Модуль прогнозирования итераций проекта 49
2.4. Выводы 54
3. Построение математической модели процесса выполнения задач при разработке программного обеспечения 55
3.1. Команда разработки как система массового обслуживания 55
3.2. Основные элементы и характеристики системы 56
3.3. Расчет вероятностей выполнения задач 59
3.3.1. Состояния системы 59
3.3.2. Уравнения состояний системы 63
3.3.3. Функции вероятностей состояний системы 66
3.4. Расчет вероятностей выполнения плана задач на итерацию 69
3.5. Схема работы модуля прогнозирования результатов 72
3.6. Выводы 74
4. Прогнозирование выполнения задач проекта разработки программного обеспечения 76
4.1. Интерфейс системы планирования и прогнозирования проекта 76
4.2. Описание проекта 78
4.3. Составление списка задач по проекту 80
4.4. Составление плана задач 81
4.5. Составление плана проекта 83
4.5.1. Формирование плана итераций 83
4.5.2. Контроль хода выполнения проекта 85
4.5.3. Анализ прогноза и корректировка плана итераций 87
4.5.4 Выбор оптимальных параметров проекта 89
4.6. Сравнение предлагаемого способа с расчетом методом PERT .90
4.7. Использование системы 92
4.8. Выводы 94
Заключение 96
Список литературы 97
- Анализ проблемы планирования ресурсов проекта
- Основные модули системы
- Основные элементы и характеристики системы
- Анализ прогноза и корректировка плана итераций
Введение к работе
Актуальность темы диссертации. При разработке программного обеспечения большое значение имеет планирование проекта. Часто именно из-за ошибок в планировании программный продукт не выпускается в срок или не укладывается в выделенный бюджет. С одной стороны это связано со сложностью задачи планирования и учета особенностей продукта, заказчика, команды разработки, финансовых средств и т.д., с другой - с большой ролью человеческого фактора в вопросах планирования.
Существующие методики планирования проекта предлагают различные подходы к построению процесса разработки программного обеспечения («каскадный», итерационный, «гибкий»), разработаны программные средства для ведения проектов в рамках той или иной методики (MS Project, Primavera Project Planner, Spider Project и т.д.). Их главным недостатком является то, что ошибки в планировании могут быть учтены уже только после завершения проекта. Поскольку процесс разработки весьма динамичен, требования и набор задач могут часто меняться, ошибка в планировании может привести к значительной задержке времени окончания проекта и/или существенному перерасходу ресурсов. Существующие методы предварительной оценки составленного плана проекта (PERT, СОСОМО) требуют задания для еще неизвестного проекта большого количества характеристик и чаще всего дают недостаточно точные результаты.
С учетом этого актуальной является задача создания модели процесса разработки программного обеспечения и системы планирования процесса разработки, позволяющей до начала реализации проекта получать оценку вероятности успешного выполнения проекта за определенный срок.
Цель диссертационной работы. Целью диссертационной работы является создание математической модели процесса разработки программного обеспечения и системы планирования проектов на ее основе. Исходя из цели, в работе решаются следующие задачи:
анализ существующих моделей разработки программного обеспечения;
анализ подходов к планированию проектов разработки программного обеспечения;
анализ возможностей существующих программных продуктов ведения проектов;
разработка структуры системы планирования проектов;
создание математической модели процесса разработки программного обеспечения;
создание программной системы планирования проектов
разработки программного обеспечения на основе предложенной
модели; экспериментальная проверка результатов работы системы.
Предмет исследования. Предметом исследования в диссертационной работе являются процесс разработки программного обеспечения и его математическая модель.
Методы исследования. Методы исследования заимствованы из следующих областей:
математический анализ;
математическое моделирование;
численные методы;
теория вероятностей и математическая статистика;
теория массового обслуживания;
теория графов;
языки программирования;
базы данных.
Научная новизна. Научную новизну диссертационной работы составляют результаты, полученные в ходе решения поставленных задач:
способ ведения проектов разработки программного обеспечения с использованием вероятностной модели планирования;
структурная схема системы планирования проектов разработки программного обеспечения;
математическая модель процесса разработки программного обеспечения;
принципы прогнозирования хода выполнения проекта и определения требуемых параметров проекта разработки программного обеспечения.
Практическая ценность работы. Практическую ценность работы составляют следующие результаты:
система прогнозирования процесса выполнения проекта;
рекомендации по планированию проекта с предварительной проверкой на модели.
Положения, выносимые на защиту. На защиту выносятся следующие положения:
методика ведения проекта на основе вероятностной модели;
структурная схема программной системы планирования проектов разработки программного обеспечения;
математическая модель процесса разработки программного обеспечения;
принципы прогнозирования хода выполнения проектов и определения требуемых параметров.
Апробация результатов исследований. Основные результаты, полученные в ходе выполнения диссертационной работы, докладывались на международных молодёжных научных конференциях XXXV Гагаринские чтения (Москва, 2009 г.), XXXVI Гагаринские чтения (Москва, 2010 г.), XXXVII Гагаринские чтения (Москва, 2011 г.), XXXVIII Гагаринские чтения (Москва, 2012 г.), XXXIX Гагаринские чтения (Москва, 2013 г.), XII Международной конференции «Региональная информатика - 2008» (Санкт-Петербург, 2010 г.), X Международной научно-методической конференции «Информатика: проблемы, методология, технологии» (Воронеж, 2010 г.), XI Международной научно-методической конференции «Информатика: проблемы, методология, технологии» (Воронеж, 2011 г.), XII Международной научно-методической конференции «Информатика: проблемы, методология, технологии» (Воронеж, 2012 г.), XIII Международной научно-методической конференции «Информатика: проблемы, методология, технологии» (Воронеж, 2013 г.), а также докладывались и обсуждались на научных семинарах кафедры «Проектирование вычислительных комплексов» ФГБОУ ВПО «МАТИ - Российский государственный технологический университет имени К. Э. Циолковского».
Публикации. По теме диссертации опубликованы 13 печатных работ, в том числе 3 статьи, из них 3 статьи в журналах, входящих в Перечень ведущих изданий, рекомендованных ВАК.
Структура и объем работы. Работа состоит из введения, четырёх глав, заключения, списка литературы и четырёх приложений. Работа изложена на 101 странице и включает 28 рисунков, 5 таблиц, список литературы из 89 наименований, а также приложения на 3 страницах. Общий объём работы - 105 страниц.
Анализ проблемы планирования ресурсов проекта
Научную новизну диссертационной работы составляют результаты, полученные в ходе решения поставленных задач: способ ведения проектов разработки программного обеспечения с использованием вероятностной модели планирования; структурная схема системы планирования проектов разработки программного обеспечения; математическая модель процесса разработки программного обеспечения; принципы прогнозирования хода выполнения проекта и определения требуемых параметров проекта разработки программного обеспечения. Практическая ценность работы Практическую ценность работы составляют следующие результаты: система прогнозирования процесса выполнения проекта; способ планирования проекта с предварительной проверкой на модели. Положения, выносимые на защиту На защиту выносятся следующие положения: методика ведения проекта на основе вероятностной модели; структурная схема программной системы планирования проектов разработки программного обеспечения; математическая модель процесса разработки программного обеспечения; принципы прогнозирования хода выполнения проекта и определения требуемых параметров. Апробация результатов исследований
Основные результаты, полученные в ходе выполнения диссертационной работы, докладывались на международных молодёжных научных конференциях ХХХV Гагаринские чтения (Москва, 2009 г.), ХХХVI Гагаринские чтения (Москва, 2010 г.), ХХХVII Гагаринские чтения (Москва, 2011 г.) и ХХХVIII Гагаринские чтения (Москва, 2012 г.), XII Международной конференции «Региональная информатика - 2008» (Санкт-Петербург, 2010 г.), X Международной научно-методической конференции «Информатика: проблемы, методология, технологии» (Воронеж, 2010 г.), XI Международной научно-методической конференции «Информатика: проблемы, методология, технологии» (Воронеж, 2011 г.), XII Международной научно-методической конференции «Информатика: проблемы, методология, технологии» (Воронеж, 2012 г.), XIII Международной научно-методической конференции «Информатика: проблемы, методология, технологии» (Воронеж, 2013 г.), а также докладывались и обсуждались на научных семинарах кафедры «Проектирование вычислительных комплексов» МАТИ - РГТУ имени К.Э. Циолковского.
По теме диссертации опубликованы 13 печатных работ, в том числе 3 статьи, из них 3 статьи в журналах, входящих в Перечень ведущих изданий, рекомендованных ВАК. Структура и объем работы Работа состоит из введения, четырёх глав, заключения, списка литературы и четырёх приложений. Работа изложена на 103 страницах и включает 28 рисунков, 5 таблиц, список литературы из 89 наименований, а также приложение на 2 страницах. Общий объём работы - 105 страниц. Краткое содержание работы
В первой главе работы производится анализ существующих методик оценки срока выполнения проектов разработки программного обеспечения (ПО), подходов к разработке ПО, систем ведения и прогнозирования проектов, а также выявляются достоинства и недостатки этих систем.
Во второй главе анализируется типичная схема проекта или его отдельного этапа, а также возможности предварительного анализа сроков выполнения проектов. Формулируются требования и предлагается структура системы планирования проектов разработки программного обеспечения. Коллектив разработки предлагается рассматривать как систему массового обслуживания, на вход которой поступает очередь задач.
В третьей главе исследуется система массового обслуживания, определяются ее основные характеристики, строится граф состояний. Составляется и решается система уравнений Колмогорова для частных случаев небольших команд разработки, затем для общего случая коллективов, состоящих из N сотрудников. Для решения системы, состоящей из большого числа дифференциальных уравнений, применяется численный метод решения – метод Рунге–Кутты.
В четвертой главе описывается разработанный программный комплекс, реализующий эту модель, производится экспериментальная проверка предложенной схемы ведения проектов и математической модели на примере некоторых реальных проектов. Показываются основные возможности работы системы как в режиме составления прогноза проекта или этапа, так и в режиме отслеживания выполнения проекта.
Основные модули системы
Многие специалисты по разработке и внедрению систем управления проектами разделяют ПО на профессиональные и настольные (непрофессиональные). Профессиональные системы предоставляют более гибкие средства реализации функций планирования и контроля, но требуют больших затрат времени на подготовку и анализ данных и высокой квалификации пользователей. Второй тип пакетов предназначен для тех, для кого управление проектами не является основной деятельностью. От таких программ не требуются какие-либо специфические функции планирования или оптимизации расписаний. Для них более важным является простота использования и скорость получения результата.
В источниках встречаются и другие классификации средств управления проектами [14]. средства планирования и контроля за выполнения проектов; инструменты финансового планирования проектов; средства создания и управления виртуальным офисом проекта.
Одной систем ведения проектов является Open Plan Professional (рис. 1.4). Эта система выделяется мощными средствами ресурсного планирования, которые позволяют управлять различными видами ресурсов: людьми, оборудованием, материалами, финансами, учитывая их
взаимосвязи. В Open Plan предусмотрены специальные процедуры планирования и контроля затрат, среди которых особо стоит отметить средства анализа и построения отчетов по фактической выработке. Средства «запоминания» нескольких вариантов реализации проекта и ввода фактических данных по затратам на работу и отработке ресурсов позволяют проводить анализ расходов по проекту, как прогнозируемых, так и реальных. В Open Plan присутствует аналитический инструмент, базирующиеся на методе Монте–Карло, позволяющий определить возможные допуски в оценке срока завершения отдельных работ, целых этапов и всего проекта, при этом существенным ограничением является то, что необходимая для работы метода вероятностная оценка работ производится вручную.
Open Plan предоставляет множество средств, предназначенных для структуризации и визуализации модели проекта: иерархическая структура задач (WBS - Work Breakdown Structure), сетевая модель (PERT– диаграмма) и др.
В Open Plan есть возможность использования вероятностных оценок, полученных в результате анализа рисков проекта. Также поддерживается автоматическое распознавание критического пути проекта, по введенным данным о продолжительности задач и их оценкам. Основным преимуществом Open Plan является разветвленная система контроля над ресурсами и финансами. Поддерживаются множество видов отчетов по использованию различных видов ресурсов, а также обширные возможности финансов отчетности проектов[52].
Одним из самых распространенных программных продуктов, предназначенных для управления проектами, является Microsoft Project. На сегодняшний день последняя версия данной программы – MS Project 2010 представляет собой широкий набор программных инструментов для управления проектами, но, как отмечают многие пользователи MS Project, главным его достоинством помимо имеющихся функций является глубокая интеграция с другими средствами и продуктами Microsoft и стандартный интерфейс, привычный пользователям по другим программам из пакета MS Office.
Microsoft Project позволяет руководителям проектов управлять календарными планами и ресурсами, получать сведения о состоянии проекта и анализировать его выполнение. Применяемые визуальные средства планирования позволяют руководителям проектов быстро оценить влияние изменений, внесенных в задачи или ресурсы. Например, если задача отстает от календарного плана, MS Project показывает влияние этого изменения на другие задачи и на проект в целом. Такие визуальные представления данных проекта, как диаграмма Ганта, сетевой график и другие, позволяют правильно оценить зависимости задач и состояние проекта.
MS Project позиционируется как система для руководителей проектов, как для отслеживания задач, так и для контроля затрат и ресурсов и управления ими. Для анализа проектов в MS Project есть поддержка метода PERT[49].
Особый интерес представляет российская разработка - Spider Project (рис. 1.5) [48]. Разработчики Spider Project - пакета управления проектами, заявляют следующие w возможности стоимостного и ресурсного анализа проектов.
В целом, Sprider Project может быть рассмотрен как достойная альтернатива MS Project, с практически такими же, а местами и более широкими функциональными возможностями, уступая последнему в основном за счет взаимной интеграции с другими приложениями MS.
Основные элементы и характеристики системы
После прохождения этапа оценки и обработки на вход модуля создания очереди задач поступает размеченный по весам и упорядоченный по приоритетам граф задач проекта.
Данный модуль решает задачу рекурсивного обхода дерева в соответствии с приоритетами.
В начало очереди попадают задачи с более высоким базовым приоритетом, что обеспечивает их первоочередное выполнение. Внутри списка задач с одинаковым приоритетом осуществляется сортировка по приоритету источника задачи.
В результате формируется очередь задач по проекту с учетом всех приоритетов и взаимосвязей (рис. 2.7).
Еще одной функцией данного модуля является перестройка имеющейся очереди при поступлении новых задач, как со стороны заказчиков проекта, так и в результате тестирования промежуточных версия ПО. Перестройка очереди происходит по следующему правилу: находится последний элемент нужного приоритета, затем выполняется вставка в уже имеющуюся очередь, либо в начало очереди, если элементов с данным приоритетом в очереди не находилось ранее.
После создания очереди задач по проекту автоматически формируется соответствующая ей очередь единичных задач (рис. 2.8), то есть каждая задача заменяется на несколько единичных задач, эквивалентных ей по заданной источником сложности, т.е. задача сложности М распадается на М единичных задач, идущих подряд в очереди. Для каждой единичной задачи сохраняется информация о том, частью какой задачи она является.
Очередь единичных задач по проекту. При этом руководитель проекта может изменить сложность и порядок выполнения задач, скорректировав соответствующие приоритеты и характеристики сложности.
В результате на вход модуля прогнозирования результатов выполнения задач поступает большая, в сравнении с размером одного этапа выполнения проекта, очередь единичных задач. Далее в зависимости от типа проекта может быть определено: примерное количество итераций, необходимых для выполнения N задач, при фиксированных рамках проекта. Это количество оценивается как отношение N задач к среднему количеству, которое коллектив может выполнить за одну итерацию. примерное количество задач, которое необходимо выполнить за одну итерацию при фиксированном времени. Количество задач можно оценить как отношение количества задач к количеству допустимых итераций проекта.
При этом размер итерации в соответствии с выбранной идеологией ведения проекта обычно фиксируется для стандартизации процессов внутри итерации. Однако в общем случае встречаются итерации переменной длины, поэтому система позволяет учитывать и их, поскольку за основу взята задача единичного объема.
Модуль прогнозирования хода выполнения проекта В основу работы модуля прогнозирования хода выполнения проекта положена модель процесса выполнения задач по разработке ПО, в которой команда разработки рассматривается как система массового обслуживания.
Исходными данными для составления прогноза является очередь единичных задач, план итераций для единичных задач и характеристики команды разработки: интенсивность выполнения задач и количество специалистов. План итераций включает в себя время и размер каждой из итераций для поддержки работы с неравными итерациями.
На основе полученных исходных данных строится математическая модель процесса выполнения задач по разработке ПО, которая подробно описывается в 3 главе диссертационной работы.
Используя построенную модель, система составляет прогноз хода выполнения проекта в течение времени итерации и определяет вероятность успешного выполнения всех поставленных задач за этот срок.
Удовлетворительность прогноза определяется сравнением с пороговым значением вероятности успешного выполнения проекта, которое в системе задано по умолчанию и равно 0.9 (90%).
Модуль прогнозирования хода выполнения проекта может работать в двух режимах: прогнозирования и анализа. В случае работы в режиме прогнозирования система строит прогноз (рис. 2.9), который включает в себя набор единичных задач на итерацию и количество дней в соответствии с планом итераций, для решения каждого количества задач в каждый день итерации рассчитывается вероятность их выполнения, определяется вероятность выполнения всех поставленных задач за срок итерации и оценивается приемлемый ли результат прогноза с учетом порогового значения.
Анализ прогноза и корректировка плана итераций
В более сложных случаях для системы с большим количеством специалистов в команде, а также в случае большого количества задач на итерацию в общем случае для определения вероятностей нахождения системы в z–ом состоянии целесообразно использовать численный метод для решения системы уравнений Колмогорова. В диссертационной работе решение производится методом Рунге-Кутты в среде Maple 16.
После решения системы уравнений и определения вероятностей нахождения системы в заданный момент времени t в каждом из состояний, т.е. вероятностей решения командой нуля, одной, двух, трех, ..., N задач, необходимо определить вероятности выполнения не менее заданного количества задач в выбранный момент времени P/t) - именно это является результатом успешного завершения итерации или проекта. То есть Pt(t) = быть получены значения вероятностей для любого количества задач в любой момент времени и, соответственно определена вероятность выполнения в срок всех N задач, запланированных на итерацию. В случае неудовлетворительного прогноза, системой могут быть предложены оптимальное количество задач на итерацию для заданных параметров системы kopt и оптимальное количество дней для решения выбранного количества задач dopt.
Пороговое значение для определения приемлемости плана на итерацию по умолчанию равно 0.9. Если вероятность выполнения задач на итерацию в срок меньше этого значения, то может быть определено оптимальное количество задач, при котором вероятность успешного завершения итерации будет не меньше порогового значения. Ниже приводится код для вычисления этого параметра: for k from d by –1 to 1 do if Ps[k] .9 then print(k); print(Ps[k]); break end if end do; Также прогнозируется время, через которое будут с достаточной вероятностью (больше порогового значения) выполнены все запланированные на итерацию задачи: for k from 1 to d do if Ds[k] .9 then print(k); print(Ds[k]); break end if end do;
Пример построения модели СМО и расчетов ее характеристик подробнее описывается в п. Расчет вероятностей выполнения плана задач на итерацию Построение математической модели работы команды, выполняющей задачи по разработке программного обеспечения, и расчетов характеристик процесса выполнения задач такой командой могут быть рассмотрены на следующих исходных данных: 7V=3 специалиста в команде, k=6 задач на итерацию, d=3 дней в итерации, X =2 задачи/день.
Для определения вероятности выполнения k задач за время итерации d необходимо решить систему из k+1 дифференциального уравнения. В результате решения составленной системы уравнений методом Рунге– Кутты в среде Maple 16 получаем значения вероятностей нахождения системы в каждом из состояний, т.е. решения ровно заданного количества задач, в каждый из дней итерации, которые приводятся в табл. 3.1.
На практике часто необходимо решить все поставленные задачи, поэтому важным является получение прогноза, за какое время могут быть выполнены все поставленные задачи с удовлетворительной вероятностью. for k from 1 to 10 by 1 do: if Ds[k] .9 then: print(k); print(Ds[k]); break; end if: end do;
Таким образом, для данной команды разработки выполнение всех поставленных задач на итерацию возможно с вероятностью 79%, с достаточной вероятностью 91,8% возможно выполнение 4 задач за отведенное время итерации (3 дня) или выполнение всех поставленных задач за 4 дня с вероятностью 92.1%.