ВВЕДЕНИЕ 4
ГЛАВА 1 ПРОГРАММНЫЙ ПРОЕКТ И ОЦЕНКА ТРУДОЕМКОСТИ ЕГО РАЗРАБОТКИ 9
1.1 Основные понятия и данные, использующиеся в процессе оценки
трудоемкости разработки программного обеспечения 9
1.2 Планирование и оценка трудоемкости разработки программного
продукта 11
1.3 Модели разработки программного обеспечения 18
1.4 Анализ существующих моделей оценки трудоемкости разработки
программного обеспечения 29
1.5 Анализ существующих метрик, используемых в традиционных моделях
оценки трудоемкости разработки программного обеспечения 33
1.6 Анализ существующих методов оценки трудоемкости разработки
программного обеспечения 35
ГЛАВА 2 МОДЕЛИ И ИНСТРУМЕНТЫ ОЦЕНКИ ТРУДОЕМКОСТИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПРИ ИСПОЛЬЗОВАНИИ «SCRUMM-МЕТОДОЛОГИЙ 46
2.1 Scrum подход к планированию разработки будущего программного
продукта 46
2.2 Метрики для оценки трудоемкости разработки программного
обеспечения при использовании «SCRUM»-методологий 49
2.3 Параметры оценки трудоемкости разработки программного проекта ... 51
2.4 Модель оценки трудоемкости разработки 63
ГЛАВА 3 АПРОБАЦИЯ МЕТОДА ОЦЕНКИ ТРУДОЕМКОСТИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПРИ ИСПОЛЬЗОВАНИИ «SCRUM»-МЕТОДОЛОГИЙ 70
3.1 Разработка интеграции продукта «Оркестратор сетевых сервисов» компании ООО «НетКрэкер» с внешней системой Versa Director 70
3.2 Выделение входных параметров модели оценки трудоемкости и выбор их значений для реализации интеграции «Оркестратор сетевых сервисов» с
внешней системой Versa Director 73
3.3 Расчет трудоемкости разработки интеграции «Оркестратора сетевых
функций» с внешней системой Versa Director 78
3.4 Инструмент оценки трудоемкости разработки ПО при использовании методологии «Scrum» 81
ЗАКЛЮЧЕНИЕ 88
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 90
ПРИЛОЖЕНИЕ А 94
Почти в любом бизнес-процессе, люди, отвечающие за него, сталкиваются с задачами его технико-экономического обоснования. Такие же задачи возникают и перед участниками разработки крупных программных систем. Одним из критериев успешного проведения и сдачи ПП заказчику невозможно без точного и быстрого способа оценки времени ресурсов, требуемых для его разработки. Для этого требуются некоторые инструменты, способные получать качественные и предсказуемые во времени результаты по оценке трудоемкости разработки ПН На сегодняшний день не существует простых, точных и при этом универсальных методов оценки трудоемкости разработки ПП, которые бы смогли точно оценить размер ПП на этапах планирования работ. В связи с этим, на практике часто используются разнообразные периметрические подходы, содержащие в себе простые в использовании показатели, а также модели с более сложными показателями, которые отображают реальную картину.
Оценка стоимости ПП остается одной из важнейших и непростых задач. В связи с тем, что на текущий момент ПП выросли в своих размерах и сфера их применений также продолжает расти, необходимость в точной оценке разработки их стоимости также растет. Проблема оценки трудоемкости разработки ПО оставалась открытой порядка 10 лет, и только с начала 50х годов, разработчики программного обеспечения совместно со специалистами в смежных областях принялись за обсуждение и разработку первых методологий оценки трудозатрат разработки ПО. Первые модели оценки стоимости разработки ПО появились в технической литературе только спустя 30-40 лет. Тем не менее, проблема оценки стоимости программного обеспечения является не до конца решенной, оставаясь в зачаточном состоянии.
Последние 5-10 лет видна тенденция ухода от классической каскадной методологии разработки ПО к более гибким методологиям, которые предлагает «спиральная» модель разработки ПО. Существующие методы оценки трудозатрат на разработку ПО эффективно используются для разработки при классической методологии, однако появление новых подходов к разработке ПО привело к тому, что существующие модели оценки либо вовсе неприменимы, либо приводят к неточным оценкам трудозатрат разработки ПО. Одними из популярнейших на текущий момент в разработке ПО являются методология «Scrum», которая основана на совершенно иных концепциях и подходах к процессу разработки ПО, факторы которых нужно учитывать при разработке новой методологии разработки ПО:
- дробление разработчиков на небольшие команды, что благоприятно сказывается на хорошем уровне коммуникации между ними;
- короткие итерации разработки ПО и быстрая поставка новых релизов заказчику;
- ориентированность на частые изменения требований к ПО.
Для использования классических методологий оценки трудоёмкости разработки ПО требуется знать четкие требования к будущему продукту, которые определены на длительный период разработки ПО. Данный факт не дает применить эти методологии для оценки трудоемкости при использовании методологии разработки «Scrum», т.к. изменение требований к ПО - являются важнейшей концепцией всех Scrum подходов к его разработке. В связи с этим оценка трудозатрат на разработку ПО усложняется, но остается одной из важнейших задач.
Таким образом, разработка новых научно обоснованных методик и инструментов оценки трудоемкости ПП, основываясь на тенденции изменении подходов в разработке ПО, является актуальной научно-технической проблемой, имеющей существенное значение как для бизнеса, так и для экономики всей страны в целом.
Цель и задачи исследования. Целью диссертационной работы является рассмотрение существующих моделей оценки трудозатрат на разработку ПО, оценка возможности их применения для оценивания трудозатрат при разработке реальных программных ПО с применением <^сшт»-методологии.
Объектом исследования являются модели оценки трудозатрат на разработку ПО.
Предметом исследования является метод и инструмент оценки трудоемкости разработки НИ, который разрабатывается с применением «Scrumm-методологии.
Гипотезой исследования является предположение о возможности получения адекватной оценки трудозатрат на разработку ПО, которое разрабатывается с использованием «Scrum» методологии, на основе разработанной автором данного исследования нового метода оценки трудоемкости разработки ПО.
Для достижения цели исследования необходимо решить следующие задачи:
- Исследование методов оценки трудоемкости разработки НИ, а также возможность их применения для формирования предварительных требований к разработке ПП по одной из «Scrumm-методологии.
- Разработка метода оценки трудоемкости разработки ПП при
использовании «Scrumm-методологий.
- Проведение эксперимента для подтверждения возможности получения адекватной оценки трудозатрат на разработку ПО, которое разрабатывается с использованием «Scrum» методологии, на основе разработанной автором данного исследования нового метода оценки трудоемкости разработки ПО на реальных данных.
В работе применены аппарат логических операций, используются методы реляционной алгебры, а также присутствуют элементы математической логики.
Научная новизна исследования состоит в том, что в нем предложена модель оценки трудоемкости разработки ПО для модели разработки Scrum, которая набирает все большую популярность в последнее время.
В работе разработана и применена модель оценки общих трудозатрат на разработку КИС. В предложенной модели оценки трудоемкости разработки ПО используется новый подход в:
- В пересмотре общей технологии оценки трудозатрат на разработку КИС, которая на данный момент адаптируема к предметной области, постоянно меняющимся требованиям заказчика и позволяет работать с любым размером исходных данных на старте проекта.
- В использовании методов, которые могут моделировать использовании программной системы в предметной области, и обеспечивающих возможность предоставить оперативную оценку будущего функционала разрабатываемой КИС.
- Использована формальная реляционная модель, которая позволяет воспроизвести процесс разработки КИС, а также оценить ее характеристики.
- Использованы характеристики и дефекты плана проекта, которые позволяют формализовать проведение анализа разработки будущей КИС.
Практическая значимость работы состоит в разработке и использовании новой модели оценки трудозатрат на работку ПО, при использовании « Scrumm- методологий, способных осуществить снижении/увеличение необходимых затрат на любом этапе разработки КИС, сократить риски срыва сроков проекта, подключать разработчиков меньшей квалификации на более ранних этапах разработки КИС. Таким образом, полученные в диссертации результаты могут иметь конкретную прикладную направленность, связанную с повышением качества планирования процесса производства программных систем, с сокращением сроков создания КИС, а также оценки трудозатрат, которые придется приложить на разработку КИС, а в следствии и оценить стоимость такой разработки.
В введении обосновывается актуальность темы исследования, формулируется цель и задачи диссертационной работы, ее теоретико-методологическая база и научная новизна.
В первой главе («Программный проект и оценка трудоемкости его разработки») даются определения программного проекта, а также проводится классификация проектов по структуре, составу и их типу, с учетом продолжительности, сложности и масштаба проекта, определены основные признаки программного проекта. Также, в первой главе приведены особенности различных методик оценки стоимости программных проектов, применяемых в различных компаниях на сегодняшний день, занимающихся разработкой крупных ИС. В контексте этих особенностей рассматривается эффективность, и определяются наиболее эффективные методики оценивая.
Первая глава состоит из нескольких разделов, в которых освещены вопросы предметной области, определяются основные требования к методам оценивания и обосновывается необходимость применения новой модели, в которой учтен современный подход к разработке ПО.
Во второй главе даются теоретические основы диссертационного исследования, описывается различие метрик для оценки трудоемкости разработки ПО при использовании классических подходов к разработке и методологии Scrum, описывается предложенная модель для оценки трудоемкости при проектировании и разработки информационных систем.
В третьей, заключительной главе диссертационного исследования приведены результаты использования предлагаемой методики оценки трудоемкости разработки ПО в одном из программных проектов ИТ- предприятия ООО «НетКрэкер», а также производится сравнение прогнозируемых и реальных полученных данных.
Путем демонстрации условного применения разработанной методологии в четвертой главе, автором доказана эффективность использования разработанной модели и адекватность ее оценки.
В заключении исследования сформулированы основные теоретические и практические выводы, сделанные автором диссертационного исследования.
Работа изложена на 97 с. и включает 16 рисунков, 24 таблицы.
В связи с популяризацией Agile-подходов для разработки ПО на данный момент существует небольшое количество моделей оценки трудозатрат на разработку сложной КИС, в частности для методологии разработки Scrum. Оценку, которую можно получить при использовании этих инструментов, является одним из основных аргументов при ТЭО программных модулей и систем для разработчиков (исполнителей) КИО При этом, существующим моделям открыт потенциал для развития для повышения точности результата в текущих экономических реалиях мира. Автором работы была разработана новая модель оценки трудоемкости ПО при использовании Scrum-подходов при разработке КИС.
В результате работы автором достигнуты цели, поставленные во введении, а также решены следующие задачи:
- Исследование существующих моделей оценки трудоемкости разработки ПП, которые применялись для оценки трудоемкости при разработке по «водопадной» методологии и обоснована невозможность их применения для разработки по Scrum-методологиям.
- Определение набора характеристик, а также негативных факторов, которые позволяют формализовать методы анализа этих метрик, а также делают поправку на негативные факторы.
- Разработана модель, которая способна адекватно оценить трудоемкость разработки КИС для проектов, использующих Scrum-подходы, основываясь лишь на двух основных векторах, имеющихся на старте проекта или цикла разработки, и которую возможно применить для ТЭО проекта разработки КИС вне зависимости от специфики проекта и предметной области разработки.
- Проведение эксперимента для подтверждения возможности применения разработанной методики оценки трудоемкости на реальных данных.
В результате выполнения работы были рассмотрена, научно-обоснована и применена методология оценки общих трудозатрат разработки КИС на основе формализованной информации о историях пользователей, в которых учитываются все специфичные требования заказчика. Расчеты и эксперимент показывают, что предложенная методика допустима и позволяет достаточно легко получить адекватную оценку трудозатрат на весь будущий проект или же для определенного временного интервала.
1. Белладжио, Д. Разработка программного обеспечения. Управление изменениями. [Текст] / Белладжио Д., Миллиган Т. - М.: ДМК Пресс, 2016. - 384с.
2. Благодатских, В.А. Экономико-правовые основы рынка программного обеспечения. [Текст] / Благодатских В.А., Середа С.А., Поскакалов К.Ф. - М.: Финансы и статистика, 2007. - 240с.
3. Васильев, Р.Б. Управление развитием информационных систем. [Текст] / Васильев Р.Б., Калянов Г.Н., Левочкина Г.А. - М.: Горячая Линия - Телеком, 2009. - 378с.
4. Вендров, А.М. Практикум по проектированию программного обеспечения экономических информационных систем. [Текст] - М.: Финансы и статистика, 2006. - 192с.
5. Верещагина, Е.А. Корпоративные информационные системы. Учебно-методический комплекс. [Текст] - М.: Проспект, 2015. - 104с.
6. Вигерс, К. Разработка требований к программному обеспечению. [Текст] / Вигерс Карл, Битти Джой - М.: Русская Редакция, БХВ-Петербург, 2016. - 736с.
7. Волкова, В.Н. Теория информационных процессов и систем. Учебник и практикум. [Текст] - М.: Юрайт, 2016. - 504с.
8. Гагарин, А.Г. Оценка динамической полезности программного обеспечения. [Текст] / Гагарин А.Г., Рогачев А.Ф. - М.: LAP Lambert Academic Publishing, 2011. - 204с.
9. Гвоздева, В.А. Основы построения автоматизированных информационных систем. [Текст] / Гвоздева В.А., Лаврентьева И.Ю. - М.: Форум, Инфра-М, 2009. - 320с.
10. Гусятников, В.Н. Стандартизация и разработка программных систем. - [Текст] / Гусятников В.Н., Безруков А.И. М.: Финансы и статистика, Инфра-М,
2010. - 288с.
11. Голицына, О.Л. Программное обеспечение. - [Текст] / Голицына О.Л., Партыка Т.Л., М.: Форум, 2010. - 448с.
12. Дамодаран, А. Инвестиционная оценка. Инструменты и методы оценки любых активов. - [Текст] М.: Альпина Паблишер, 2016. - 1316с.
13. Долженко, А. Нечеткие модели оценки качества информационных систем. - М.: LAP Lambert Academic Publishing, 2011. - 300с.
14. Еникеев, А. Специализированные модели для разработки
информационных систем. - [Текст] / Еникеев А., Бендума Т. М.: LAP Lambert Academic Publishing, 2011. - 104с.
15. Жданов, С.А. Информационные системы. Учебник. [Текст] / Жданов С.А., Соболева М.Л., Алфимова А.С. - М.: Прометей, 2015. - 302с.
16. Затенко, C. Математические модели надежности программного обеспечения. [Текст] - М.: LAP Lambert Academic Publishing, 2011. - 152с.
17. Кон М, Agile: оценка и планирование проектов - [Текст] М.:Альпина Паблишер, 2018. - 245с.
18. Корнипаев, И. Требования для программного обеспечения. Рекомендации по сбору и документированию. [Текст] - М.: Книга по Требованию, 2013. - 118с.
19. Липаев, В.В. Технико-экономическое обоснование проектов сложных программных средств. [Текст] - М.: Синтег, 2004. - 284с.
20. Мартишин, С.А. Основы теории надежности информационных систем. Учебное пособие. [Текст] / Мартишин С.А., Симонов В.Л., Храпченко М.В. - М.: Форум, Инфра-М, 2013. - 256с.
21. Мишенин, А.И. Теория экономических информационных систем. - М.: Финансы и статистика [Текст], 2007. - 240с.
22. Моисеева, Т.В. Экономические и правовые основы рынка программного обеспечения. [Текст] / Моисеева Т.В., Полукаров Д.Ю. - М.: Солон-Пресс, 2008. - 224с.
23. Набатова, Д.С.. Математические и инструментальные методы поддержки принятия решений. Учебник и практикум. [Текст] - М.: Юрайт, 2015.- 292с.
24. Олейник, П.П. Корпоративные информационные системы. [Текст] - СПб.: Питер, 2012. - 176с.
25. Олейник, П.П. Основные стандарты корпоративных информационных систем. [Текст] - М.: LAP Lambert Academic Publishing, 2011. - 88с.
26. Олейник, П.П. Методика построения трехзвенных объектно-ориентированных приложений. [Текст] - М.: LAP Lambert Academic Publishing,
2011. - 204с.
27. Орлов, С.А. Технологии разработки программного обеспечения. [Текст] - СПб.: Питер, 2012. - 608с.
28. Рубин, К.С. Основы Scrum. Практическое руководство по гибкой разработке ПО. [Текст] - М.: Вильямс, 2016. - 544с.
29. Семенов, С.С. Методы принятия решений в задачах оценки качества и технического уровня сложных технических систем. [Текст] / Семенов С.С., Воронов Е.М., Полтавский А.В., Крянев А.В. - М.: Ленанд, 2016. - 520с.
30. Рудаков, А.В. Технология разработки программных продуктов. Практикум. [Текст] / Рудаков А.В., Федорова Г.Н. - М.: Академия, 2010. - 192с.
31. Федорова, Г.Н. Информационные системы. Учебник. [Текст] - М.: Academia, 2013. - 208с.
32. Черников, Б.В. Оценка качества программного обеспечения. [Текст] / Черников Б.В., Поклонов Б.Е.. - М.: Инфра-М, Форум, 2013. - 400
Электронные ресурсы
33. Кент, Б. Agile-манифест разработки программного обеспечения, 2001 [Электронный ресурс]: https://agilemanifesto.org/iso/ru/manifesto.html
Литература на иностранном языке
34. A. Abran, Software Project Esstimation. Willey-IEEE Computer Society Press, 2015.
35. M. Ali, Z. Shaikh, and E. Ali, “Estimation of Project Size Using User Stories,” in The International Conference on Recent Advances in Computer Systems, 2015.
36. E. Coelho and A. Basu, “Effort Estimation in Agile Software Development using Story Points,” Int. J. Appl. Inf. Syst., vol. 3, no. 7, pp. 7-10, 2012.
37. M. Usman and R. Britto, “Effort Estimation in Co-located and Globally Distributed Agile Software Development: A Comparative Study,” in 2016 Joint Conference of the International Workshop on Software Measurement and the International Conference on Software Process and Product Measurement (IWSM- MENSURA), 2016, pp. 219-224.
38. M. Usman, E. Mendes, F. Weidt, and R. Britto, “Effort estimation in agile software development: A Systematic Literature Review,” in Proceedings of the 10th International Conference on Predictive Models in Software Engineering - PROMISE ’14, 2014, pp. 82-91.
39. S.Ziauddin, T.Kamal and Z. Shahrukh, “An Effort Estimation Model for Agile Software Development”, Adv. Comput. Sci. its Appl., vol. 2, no. 1, pp. 314-324, 2012.