Модели и инструменты оценки трудоемкости разработки программного обеспечения корпоративных информационных систем
|
ВВЕДЕНИЕ 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
ГЛАВА 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 таблицы.
Оценка стоимости ПП остается одной из важнейших и непростых задач. В связи с тем, что на текущий момент ПП выросли в своих размерах и сфера их применений также продолжает расти, необходимость в точной оценке разработки их стоимости также растет. Проблема оценки трудоемкости разработки ПО оставалась открытой порядка 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-подходы, основываясь лишь на двух основных векторах, имеющихся на старте проекта или цикла разработки, и которую возможно применить для ТЭО проекта разработки КИС вне зависимости от специфики проекта и предметной области разработки.
- Проведение эксперимента для подтверждения возможности применения разработанной методики оценки трудоемкости на реальных данных.
В результате выполнения работы были рассмотрена, научно-обоснована и применена методология оценки общих трудозатрат разработки КИС на основе формализованной информации о историях пользователей, в которых учитываются все специфичные требования заказчика. Расчеты и эксперимент показывают, что предложенная методика допустима и позволяет достаточно легко получить адекватную оценку трудозатрат на весь будущий проект или же для определенного временного интервала.
В результате работы автором достигнуты цели, поставленные во введении, а также решены следующие задачи:
- Исследование существующих моделей оценки трудоемкости разработки ПП, которые применялись для оценки трудоемкости при разработке по «водопадной» методологии и обоснована невозможность их применения для разработки по Scrum-методологиям.
- Определение набора характеристик, а также негативных факторов, которые позволяют формализовать методы анализа этих метрик, а также делают поправку на негативные факторы.
- Разработана модель, которая способна адекватно оценить трудоемкость разработки КИС для проектов, использующих Scrum-подходы, основываясь лишь на двух основных векторах, имеющихся на старте проекта или цикла разработки, и которую возможно применить для ТЭО проекта разработки КИС вне зависимости от специфики проекта и предметной области разработки.
- Проведение эксперимента для подтверждения возможности применения разработанной методики оценки трудоемкости на реальных данных.
В результате выполнения работы были рассмотрена, научно-обоснована и применена методология оценки общих трудозатрат разработки КИС на основе формализованной информации о историях пользователей, в которых учитываются все специфичные требования заказчика. Расчеты и эксперимент показывают, что предложенная методика допустима и позволяет достаточно легко получить адекватную оценку трудозатрат на весь будущий проект или же для определенного временного интервала.



