Оценка усилий по разработке программного обеспечения
В разработке программного обеспечения оценка усилий — это процесс прогнозирования наиболее реалистичного объема усилий (выраженного в человеко-часах или деньгах), необходимых для разработки или поддержки программного обеспечения, на основе неполных, неопределенных и зашумленных входных данных. усилий Оценки могут использоваться в качестве входных данных для планов проекта, планов итераций, бюджетов, инвестиционного анализа, процессов ценообразования и раундов торгов. [1] [2]
Состояние практики [ править ]
Опубликованные обзоры практики оценки показывают, что экспертная оценка является доминирующей стратегией при оценке усилий по разработке программного обеспечения. [3]
Как правило, оценки усилий слишком оптимистичны, и существует сильная чрезмерная уверенность в их точности. Средний перерасход усилий составляет около 30% и не уменьшается с течением времени. Обзор исследований ошибок оценки усилий см. [4] Однако измерение ошибки оценки проблематично, см. Оценка точности оценок .Сильная чрезмерная уверенность в точности оценок усилий иллюстрируется тем фактом, что в среднем, если специалист по программному обеспечению на 90% уверен или «почти уверен» в том, что фактические усилия будут включены в минимально-максимальный интервал, наблюдаемая частота включения реальное усилие составляет всего 60-70%. [5]
В настоящее время термин «оценка усилий» используется для обозначения различных понятий, таких как наиболее вероятное использование усилий (модальное значение), усилия, соответствующие 50% вероятности непревышения (медиана), запланированные усилия, запланированные усилия. или усилия, затраченные на то, чтобы предложить клиенту предложение или цену. Считается, что это неудачно, поскольку могут возникнуть проблемы со связью, а также потому, что концепции служат разным целям. [6] [7]
История [ править ]
Исследователи и практики программного обеспечения решают проблемы оценки усилий в проектах разработки программного обеспечения, по крайней мере, с 1960-х годов; см., например, работу Фарра [8] [9] и Нельсон. [10]
Большая часть исследований была сосредоточена на построении формальных моделей оценки усилий по разработке программного обеспечения. Ранние модели обычно основывались на регрессионном анализе или математически выводятся из теорий из других областей. С тех пор было оценено большое количество подходов к построению моделей, таких как подходы, основанные на рассуждениях на основе прецедентов классификации и , деревьях регрессии , симуляции , нейронных сетях , байесовской статистике , лексическом анализе спецификаций требований, генетическом программировании , линейном программировании , экономическом производстве. модели, мягкие вычисления , моделирование нечеткой логики , статистическая загрузка и комбинации двух или более из этих моделей. Пожалуй, наиболее распространенными методами оценки сегодня являются модели параметрической оценки COCOMO , SEER-SEM и SLIM. Они основаны на оценочных исследованиях, проведенных в 1970-х и 1980-х годах, и с тех пор обновляются новыми калибровочными данными, причем последней крупной версией стал COCOMO II в 2000 году. Подходы к оценке основаны на мерах размера, основанных на функциональности, например: функциональные точки также основаны на исследованиях, проведенных в 1970-х и 1980-х годах, но перекалиброваны с использованием измененных показателей размера и других подходов к подсчету, таких как точки вариантов использования . [11] или объектные точки и КОСМИЧЕСКИЕ функциональные точки в 1990-х годах.
к оценке Подходы
Существует много способов классификации подходов к оценке, см., например. [12] [13] Категории верхнего уровня следующие:
- Экспертная оценка: этап количественной оценки, т. е. этап, на котором оценка производится на основе оценочных процессов. [14]
- Формальная модель оценки: Этап количественной оценки основан на механических процессах, например, использовании формулы, полученной на основе исторических данных.
- Оценка на основе комбинирования. Этап количественной оценки основан на субъективном и механическом сочетании оценок из разных источников.
Ниже приведены примеры подходов к оценке в каждой категории.
Подход к оценке | Категория | Примеры поддержки внедрения оценочного подхода |
---|---|---|
аналогии Оценка на основе | Формальная модель оценки | ANGEL, Взвешенные микрофункциональные точки |
Оценка на основе WBS (снизу вверх) | Экспертная оценка | Программное обеспечение для управления проектами , шаблоны мероприятий для конкретной компании |
Параметрические модели | Формальная модель оценки | COCOMO , SLIM , SEER-SEM , TruePlanning для программного обеспечения |
Модели оценки на основе размера [15] | Формальная модель оценки | Анализ функциональных точек , [16] вариантов использования Анализ , Точки вариантов использования , SSU (Единица размера программного обеспечения), Оценка на основе баллов истории в гибкой разработке программного обеспечения , Очки объектов |
Групповая оценка | Экспертная оценка | Планирование покера , Широкополосный Delphi |
Механическая комбинация | Оценка на основе комбинаций | на основе аналогии и структуры разбивки работ. Среднее значение оценки усилий [17] |
Судебная комбинация | Оценка на основе комбинаций | Экспертное заключение, основанное на оценках параметрической модели и групповой оценки. |
Выбор оценке к подходов
Данные о различиях в точности оценки различных подходов и моделей оценки позволяют предположить, что не существует «лучшего подхода» и что относительная точность одного подхода или модели по сравнению с другой сильно зависит от контекста.. [18] Это означает, что разные организации получают выгоду от разных подходов к оценке. Выводы [19] которые могут способствовать выбору подхода к оценке на основе ожидаемой точности подхода, включают:
- Экспертная оценка в среднем не менее точна, чем оценка усилий на основе модели. В частности, ситуации с нестабильными взаимоотношениями и информацией высокой важности, не включенной в модель, могут предполагать использование экспертной оценки. Это предполагает, конечно, наличие экспертов с соответствующим опытом.
- Формальные модели оценки, не адаптированные к контексту конкретной организации, могут быть очень неточными. Следовательно, использование собственных исторических данных имеет решающее значение, если нельзя быть уверенным, что основные взаимосвязи модели оценки (например, параметры формулы) основаны на аналогичных контекстах проекта.
- Формальные модели оценки могут быть особенно полезны в ситуациях, когда модель адаптирована к контексту организации (либо за счет использования собственных исторических данных, либо за счет использования аналогичных проектов и контекстов), и вполне вероятно, что оценки экспертов будут подвержены сильной степени принятия желаемого за действительное.
Наиболее достоверный вывод во многих областях прогнозирования заключается в том, что сочетание оценок из независимых источников, предпочтительно с применением разных подходов, в среднем повышает точность оценок. [19] [20] [21]
Важно осознавать ограничения каждого традиционного подхода к измерению продуктивности разработки программного обеспечения. [22]
Кроме того, в процессе выбора следует учитывать другие факторы, такие как простота понимания и передачи результатов подхода, простота использования подхода и стоимость внедрения подхода.
Оценка точности оценок [ править ]
Наиболее распространенной мерой средней точности оценки является MMRE (средняя величина относительной ошибки), где MRE каждой оценки определяется как:
- МРЭ = | (фактические усилия) - (расчетные усилия) | / (фактическое усилие)
Эта мера подверглась критике [23] [24] [25] и есть несколько альтернативных мер, таких как более симметричные меры, [26] Средневзвешенное значение квартилей относительных ошибок (WMQ) [27] и среднее отклонение от оценки (MVFE). [28]
MRE ненадежен, если отдельные элементы искажены. PRED(25) является предпочтительным показателем точности оценки. PRED(25) измеряет процент прогнозируемых значений, находящихся в пределах 25 процентов от фактического значения.
Высокая ошибка оценки не может автоматически интерпретироваться как показатель низкой способности к оценке. Альтернативные, конкурирующие или дополняющие причины включают низкую стоимость контроля над проектом, высокую сложность разработки и более широкий функционал, чем первоначально предполагалось. Включена структура для улучшения использования и интерпретации измерений ошибок оценки. [29]
Психологические проблемы [ править ]
Существует множество психологических факторов, потенциально объясняющих сильную тенденцию к чрезмерно оптимистичным оценкам усилий. Эти факторы важно учитывать даже при использовании формальных моделей оценки, поскольку большая часть входных данных в эти модели основана на суждениях. Факторами, которые оказались важными, являются принятие желаемого за действительное , привязка , ошибка планирования и когнитивный диссонанс . [30]
- Легко оценить то, что известно.
- Трудно оценить то, что известно как неизвестное. (известные неизвестные)
- Очень сложно оценить то, что неизвестно, как неизвестное. (неизвестные неизвестные)
Юмор [ править ]
Хроническая недооценка усилий по разработке привела к появлению и популярности многочисленных юмористических поговорок, таких как ироническое название задачи как « небольшого вопроса программирования » (когда, вероятно, потребуются большие усилия) и цитирование законов о недооценке:
Первые 90 процентов кода занимают первые 90 процентов времени разработки. На оставшиеся 10 процентов кода приходится остальные 90 процентов времени разработки. [31]
— Том Каргилл, Bell Labs
Закон Хофштадтера: Это всегда занимает больше времени, чем вы ожидаете, даже если принять во внимание закон Хофштадтера.
То, что один программист может сделать за один месяц, два программиста могут сделать за два месяца.
Сравнение программного обеспечения разработки оценки для
Программное обеспечение | График сметы | Смета стоимости | Модели затрат | Вход | Формат вывода отчета | Поддерживаемые языки программирования | Платформы | Расходы | Лицензия |
---|---|---|---|---|---|---|---|---|---|
АФКАА РЕВИК [33] | Да | Да | РЕВИК | KLOC , масштабные коэффициенты, факторы затрат | собственный, Текст | Любой | ПРИНАДЛЕЖАЩИЙ | Бесплатно | Собственный / Бесплатно для публичного распространения |
Поиск программного обеспечения | Да | Да | ИЗВИНИ | SLOC , Функциональные точки , варианты использования, снизу вверх, объект, особенности | проприетарное, Excel, Microsoft Project, IBM Rational, Oracle Crystal Ball | Любой | Windows, любой ( через Интернет ) | Коммерческий | Собственный |
СТРОЙНЫЙ [34] | Да | Да | СТРОЙНЫЙ | Размер ( SLOC , функциональные точки , варианты использования и т. д.), ограничения (размер, продолжительность, усилия, персонал), коэффициенты масштабирования, исторические проекты, исторические тенденции | проприетарный, Excel, Microsoft Project, Microsoft PowerPoint, IBM Rational, текст, HTML | Любой | Windows, любой ( через Интернет ) [35] | Коммерческий | Собственный |
TruePlanning [36] | Да | Да | ЦЕНА | Компоненты, структуры, действия, факторы затрат, процессы, размер функционального программного обеспечения (исходные строки кода (SLOC), функциональные точки, точки преобразования вариантов использования (UCCP), точки прогнозируемых объектов (POP) и т. д.) | Эксель, CAD | Любой | Окна | Коммерческий | Собственный |
См. также [ править ]
Ссылки [ править ]
- ^ «Что мы делаем и чего не знаем об оценке усилий по разработке программного обеспечения» .
- ^ «Руководство по смете и оценке затрат GAO-09-3SP: Передовые методы разработки и управления затратами на капитальные программы» (PDF) . Счетная палата правительства США. 2009.
- ^ Йоргенсен, М. (2004). «Обзор исследований по экспертной оценке усилий по разработке программного обеспечения» . Журнал систем и программного обеспечения . 70 (1–2): 37–60. дои : 10.1016/S0164-1212(02)00156-5 .
- ^ Молоккен, К. Йоргенсен, М. (2003). «Обзор обзоров программного обеспечения по оценке усилий по программному обеспечению». 2003 Международный симпозиум по эмпирической разработке программного обеспечения, 2003. ISESE 2003. Труды . стр. 223–230. дои : 10.1109/ISESE.2003.1237981 . ISBN 978-0-7695-2002-5 . S2CID 15471986 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Йоргенсен, М. Тейген, К. Х. Рибу, К. (2004). «Лучше быть уверенным, чем безопасным? Чрезмерная уверенность в интервалах прогнозирования усилий по разработке программного обеспечения, основанных на суждениях». Журнал систем и программного обеспечения . 70 (1–2): 79–93. дои : 10.1016/S0164-1212(02)00160-7 .
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Эдвардс, Дж. С. Мурс (1994). «Конфликт между использованием инструментов оценки и планирования в управлении информационными системами». Европейский журнал информационных систем . 3 (2): 139–147. дои : 10.1057/ejis.1994.14 . S2CID 62582672 .
- ^ Гудвин, П. (1998). Улучшение субъективного прогнозирования продаж: роль лабораторных исследований. Прогнозирование с суждением. Г. Райт и П. Гудвин. Нью-Йорк, Джон Уайли и сыновья: 91–112. Привет
- ^ Фарр, Л. Нанус, Б. «Факторы, влияющие на стоимость компьютерного программирования, том I» (PDF) . Архивировано из оригинала (PDF) 21 февраля 2017 г.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Фарр, Л. Нанус, Б. «Факторы, влияющие на стоимость компьютерного программирования, том II» (PDF) . Архивировано из оригинала (PDF) 28 июля 2018 года.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Нельсон, Э.А. (1966). Справочник менеджмента по оценке затрат на компьютерное программирование. AD-A648750, Systems Development Corp.
- ^ Анда, Б. Ангелвик, Э. Рибу, К. (2002). «Совершенствование методов оценки путем применения моделей вариантов использования». Улучшение процесса разработки программного обеспечения, ориентированного на продукт . Конспекты лекций по информатике. Том. 2559. стр. 383–397. CiteSeerX 10.1.1.546.112 . дои : 10.1007/3-540-36209-6_32 . ISBN 978-3-540-00234-5 .
{{cite book}}
: CS1 maint: multiple names: authors list (link) ISBN 9783540002345 , 9783540362098 . - ^ Бриан, Л. К. и Вечорек, И. (2002). «Оценка ресурсов в программной инженерии». Энциклопедия программной инженерии . Джей Джей Марсинак. Нью-Йорк, Джон Уайли и сыновья: 1160–1196.
- ^ Йоргенсен, М. Шепперд, М. «Систематический обзор исследований по оценке затрат на разработку программного обеспечения» .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ «Услуги по индивидуальной разработке программного обеспечения – Разработка индивидуальных приложений – Oxagile» .
- ^ Хилл Питер (ISBSG) - Рабочая тетрадь по оценке 2 - опубликована Международной группой стандартов сравнительного анализа программного обеспечения ISBSG - Ресурсный центр по оценке и сравнительному анализу. Архивировано 29 августа 2008 г. в Wayback Machine.
- ^ Моррис Пэм - Обзор общих показателей анализа функциональных точек - Ресурсный центр функциональных точек
- ^ Шриниваса Гопал и Минакши Д'Суза. 2012. Повышение точности оценки за счет использования рассуждений на основе прецедентов и комбинированного подхода к оценке. В материалах 5-й Индийской конференции по разработке программного обеспечения (ISEC '12). ACM, Нью-Йорк, США, 75–78. дои : 10.1145/2134254.2134267
- ^ Шепперд, М. Кадода, Г. (2001). «Сравнение методов программного прогнозирования с использованием моделирования» . Транзакции IEEE по разработке программного обеспечения . 27 (11): 1014–1022. дои : 10.1109/32.965341 .
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ↑ Перейти обратно: Перейти обратно: а б Йоргенсен, М. «Оценка усилий по разработке программного обеспечения: данные экспертных суждений и формальных моделей» .
- ^ Винклер, Р.Л. (1989). «Объединение прогнозов: философские основы и некоторые текущие проблемы менеджера». Международный журнал прогнозирования . 5 (4): 605–609. дои : 10.1016/0169-2070(89)90018-6 .
- ^ Блаттберг, Р. К. Хох, С. Дж. (1990). «Модели баз данных и управленческая интуиция: 50% модель + 50% менеджер». Наука управления . 36 (8): 887–899. дои : 10.1287/mnsc.36.8.887 . JSTOR 2632364 .
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ БлюОптима (29 октября 2019 г.). «Определение надежных, объективных показателей разработки программного обеспечения» .
- ^ Шепперд, М. Картрайт, М. Кадода, Г. (2000). «О создании систем прогнозирования для инженеров-программистов». Эмпирическая программная инженерия . 5 (3): 175–182. дои : 10.1023/А:1026582314146 . S2CID 1293988 .
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Китченхэм, Б. , Пикард, Л.М., МакДонелл, С.Г. Шепперд. «Какую точность на самом деле измеряет статистика» .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Фосс Т., Стенсруд Э., Китченхем Б. , Миртвейт И. (2003). «Имитационное исследование критерия оценки модели MMRE» . Транзакции IEEE по разработке программного обеспечения . 29 (11): 985–995. CiteSeerX 10.1.1.101.5792 . дои : 10.1109/TSE.2003.1245300 .
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Миядзаки, Ю. Теракадо, М. Одзаки, К. Нодзаки, Х. (1994). «Надежная регрессия для разработки моделей оценки программного обеспечения» . Журнал систем и программного обеспечения . 27 : 3–16. дои : 10.1016/0164-1212(94)90110-4 .
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Ло, Б. Гао, X. «Оценка моделей оценки стоимости программного обеспечения: критерии точности, последовательности и регрессии» .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Хьюз, Р.Т. Канлифф, А. Янг-Мартос, Ф. (1998). «Оценка методов построения моделей разработки программного обеспечения для применения в телекоммуникационной среде реального времени» . Труды IEE — Программное обеспечение . 145 : 29. дои : 10.1049/ip-sen:19983370 .
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Гримстад, С. Йоргенсен, М. (2006). «Схема анализа точности оценки стоимости программного обеспечения» .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Йоргенсен, М. Гримстад, С. (2008). «Как избежать влияния нерелевантной и вводящей в заблуждение информации при оценке усилий по разработке программного обеспечения» . Программное обеспечение IEEE : 78–83.
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Бентли, Джон (1985). «Перлы программирования» (платно) . Коммуникации АКМ . 28 (9): 896–901. дои : 10.1145/4284.315122 . ISSN 0001-0782 . S2CID 5832776 .
- ^ Гёдель, Эшер, Бах: Вечная золотая коса . 20-летие изд., 1999, с. 152. ISBN 0-465-02656-7 .
- ^ Руководство AFCAA Revic 9.2, мемориальный сайт Ревика
- ^ «Обзор SLIM Suite» . Qsm.com . Проверено 27 августа 2019 г.
- ^ «СЛИМ-ВебСервисы» . Qsm.com . Проверено 27 августа 2019 г.
- ^ TruePlanning Integrated Cost Models Сайт PRICE Systems. Архивировано 5 ноября 2015 г. на Wayback Machine.