Сравнительный анализ методов оценки стоимости проектов по разработке программного обеспечения

СРАВНИТЕЛЬНЫЙ АНАЛИЗ МЕТОДОВ ОЦЕНКИ СТОИМОСТИ ПРОЕКТОВ ПО РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

И.В. Медведкова, аспирант А.А. Иванов, магистр

Национальный исследовательский ядерный университет «МИФИ»

DOI: 10.24411/2500-1000-2019-11266

Аннотация. Эффективная оценка проектов разработки программного обеспечения является одним из наиболее сложных и важных мероприятий в разработке программного обеспечения. Оценки имеет важное значение при планировании и контроле проекта. В настоящей статье представлен обзор методов оценки стоимости программного обеспечения и сравнительный анализ между тремя методами оценки. В статье содержатся рекомендации в отношении эффективности методов.

Ключевые слова: проект разработки программного обеспечения, методы оценки трудоемкости, экспертные оценки, параметрические оценки, COCOMO, CoBRA.

Оценка стоимости проектов разработки программного обеспечения имеет важное значение для их успешности. Практика показывает, что большинство проектов завершаются не в срок или превышением бюджета [1].

Одной из причин неверных оценок проектов разработки программного обеспечения является недостаток знаний в области методов оценки стоимости. Произвольный отбор и использование методов и инструментов оценки зачастую приводит к неверным результатам, в то время как основные причины остаются неясными. Обдуманные решения относительно применения конкретного метода оценки и его грамотное использование требуют понимания принципов оценки стоимости.

Институт управления проектами (PMI) определяет цель оценивания как получение приближенного значения (оценки) объема ресурсов, необходимых для осуществления проектной деятельности и для достижения результатов, имеющих определенные функциональные и нефункциональные характеристики [2].

Поскольку трудоемкость является основным источником затрат в разработке программного обеспечения, в данной работе понятие оценки трудоемкости равносильно понятию оценки стоимости.

В настоящее время существует несколько различных классификаций мето-

дов оценки стоимости программного обеспечения, однако наиболее распространённой является следующая [3, 4]:

- Модельные (на основе данных) параметрические и непараметрические, такие как COCOMO, SLIM, SEEM-SER, CART;

- Оценки на основе аналогов;

- Экспертные методы, такие как Wideband Delphi, Planning Game, метод анализа иерархий;

- Гибридные, такие как Expert COCOMO, WebMO, BBN, методы на основе нейронных сетей.

Оценка на основе данных относится к методам, которые оценивают стоимость с помощью количественного анализа исторических данных проектов. В ходе оценки исследуются связи между данными проектами и их характеристиками на основе данных измерений, собранных из завершенных проектов. Обнаруженные связи затем проецируются на новый проект для оценки стоимости.

К методам оценки на основе данных относятся методы на основе моделей. Методы на основе моделей, такие как статистическая регрессия, используют данные для построения модели стоимости с параметрами, которые могут быть (по крайней мере частично) заданы априори (в параметрических методах) или получены с помощью машинного обучения (в непараметрических методах). После обучения специ-

альными методами одной или нескольких моделей строится модель оценки.

В отличие от методов оценки на основе модели, методы на основе аналогии используют данные завершенных проектов при оценке новых проектов. При оценке нового проекта (целевой проект) с использованием метода происходит поиск наиболее близких ему проектов (аналогов). Найденные проекты и их фактическая стоимость используются в качестве исходных данных для оценки стоимости целевого проекта. Примером метода на основе аналогов является метод рассуждений на основе прецедентов CBR, который относится к методам машинного обучения. В методе CBR для определения аналогов используются метрики расстояния, вычисленные по характеристикам проекта.

Методы на основе моделей используют количественные данные проекта для построения модели с параметрами стоимости, требуются различные подходы для определения параметров модели в зависимости от типа базовой модели. Существует два основных метода моделирования на основе данных - параметрический и непараметрический.

Параметрический метод требует априорного задания параметров модели оценки. Например, методы статистической регрессии требуют спецификации функциональной формы модели и предполагают, что ошибки оценки имеют параметрическое распределение.

Непараметрические методы отличаются от параметрических тем, что структура модели не задана априори, а определяется из количественных данных проекта. Другими словами, непараметрические методы оценки получают оценку независимо от конкретной функциональной формы. Число и характер параметров в этих методах может изменяться.

Модель Б. Боэма COCOMO (Constructive Cost Model), созданная в результате работ в компании TRW, была опубликована вместе с данными в книге «Software Engineering Economics» в 1981 году [5]. В модели COCOMO-I атрибуты проекта оценивались с использованием значений: «очень низкий», «низкий», «номиналь-

ный», «высокий», «очень высокий». Эти атрибуты представляют собой коэффициенты трудоемкости, которые изменяют оценку атрибута на некоторое число. В COCOMO-I все атрибуты (кроме KLOC) линейно влияют на трудоемкость.

После выпуска COCOMO-I Боэм организовал консорциум промышленных организаций, использующий данную модель. Консорциум собрал данные 161 проекта, включая проекты коммерческих, аэрокосмических, государственных и некоммерческих организаций. На основе анализа данных этих проектов Боэм добавил в модель новые атрибуты, называемые факторами масштаба, которые оказывают экспоненциальное влияние на трудоемкость. Используя эти данные, Боэм и его коллеги разработали параметры, которые отображают дескрипторы проекта в конкретные значения, используемые в модели COCOMO-II.

Параметрические модели COCOMO обеспечивают количественную связь между размером системы и проекта, характеристиками разработчиков, трудоемкостью разработки и поддержки системы.

Метод оценки стоимости CoBRA (Cost Estimation, Benchmarking, and Risk Assessment) представляет собой модельный параметрический метод, который позволяет создавать собственные модели. Данный метод был разработан институтом Fraunhofer IESE [6] в 1998 году для оценки стоимости программного обеспечения и использует наиболее важные ограничения. Метод позволяет комбинировать неполные данные измерений с экспертными оценками для построения графической модели трудоемкости. Метод CoBRA представляет собой метод оценки, состоящий из нескольких многокомпонентных моделей -стоимости и производительности. Они создаются с использованием соответственно причинного моделирования и статистической регрессии.

Низкие требование к данным измерений, возможность использовать мнения экспертов, и простая теоретическая основа делают данный метод особенно привлекательным в разработке программного обеспечения.

Основная идея метода CoBRA состоит в моделировании трудоемкости разработки программного обеспечения с использованием двух элементов - номинальной трудоемкости и накладных расходов.

Номинальная трудоемкость - это инженерные и управленческие усилия, затраченные на разработку программного продукта определенного размера в контексте номинального проекта. Номинальный проект - гипотетический «идеальный» проект в определенной среде организации (или бизнес-единицы).

Метод Wideband Delphi основан на методе Дельфи, разработанном в Rand Corporation в конце 1940-х годов, в котором эксперты в небольшой группе делали индивидуальные оценки и приходили к окончательной оценке с учетом обратной связи.

По данным приведенной таблицы можно утверждать, что каждый из методов имеет преимущества и недостатки. Следовательно, их следует использовать с конфигурацией под нужды конкретного проекта.

Для получения наиболее точной оценки может использоваться комбинация методов, исходя из целей оценки стоимости. Гибридные методы, такие как CoBRA, как правило, являются наиболее подходящими для оценки проектов разработки программного обеспечения, но и они требуют конфигурации под проект разработки.

Оценка разработки программного обеспечения является одной из самых трудных задач управления проектами. Трудность заключается в прогнозировании таких па-

Впоследствии было замечено, что обратная связь в стандартном методе Дельфи не обеспечивает достаточной полосы пропускания необходимой для калибровки оценок информации между участниками. Критика метода привела к разработке его модификации под названием Wideband Delphi, которая была популяризована Бо-эмом.

Сотрудники The Process Group Мари Сакри и Нил Поттер расширили процедуру до следующих семи шагов: планирование; набор группы экспертов; встречное совещание; индивидуальная подготовка; процедура оценки; сбор оценок; анализ результатов.

В таблице 1 приведены сравнительные характеристики методов COCOMO, CoBRA и Wideband Delphi.

раметров, как трудоемкость, затраты и продолжительности на начальных этапах жизненного цикла проекта. Зачастую ограниченная информация о факторах влияния, возможных рисках, давление со стороны управления или заказчика могут приводить к неточным и зачастую чрезмерно оптимистичным оценками.

В настоящее время существует множество методов оценки стоимости и все из них имеют свои преимущества и недостатки. Следовательно, выбор метода зависит от конкретной ситуации. Контекст оценивания включает в себя многие аспекты, такие как тип и область программного обеспечения, размер проекта, стадия проекта, методология разработки и так далее.

Таблица 1. Сравнительные характеристики методов

СОСОМО-11 СоБКЛ Wideband Delphi

Участие экспертов Требуется только для калибровки параметров 2-3 Множество экспертов

Сложность Сложность в калибровке Простая теоретическая модель Интуитивен и прост

Робастность Не подходит для неполных данных Механизм обработки несогласованных данных Оценки экспертов могут быть смещены

Данные Не требуются исторические данные Исторические данных около 10 проектов Не требуются исторические данные

Учет неопределенности Нет, использует детерминированные значения Входные параметры в форме распределения вероятности Интервальные оценки экспертов

Поддержка Подробная документация, поддержка программных средств Подробная документации, мало программных средств Подробная документация, не требует специальных программных средств

Библиографический список

1. Cerpa N., Verner J.M. Why did your project fail? // Communications of the ACM. 2009. Vol. 52, №12. P. 130-134.

2. Project Management Institute. A Guide to the Project Management Body of Knowledge (PMBOK Guide). Newtown Square, Pa: Project Management Institute, 2017.

3. Trendowicz A., Jeffery R. Software Project Effort Estimation: Foundations and Best Practice Guidelines for Success. - Springer Publishing Company, Incorporated, 2014.

4. Briand L.C., Wieczorek I. Resource estimation in software engineering. In: Encyclopedia of Software Engineering. - John Wiley & Sons, Inc, 2002.

5. Boehm B. W. Software engineering economics. - Prentice-Hall, 1981.

6. Trendowicz A. Software Cost Estimation, Benchmarking, and Risk Assessment: The Software Decision-Makers' Guide to Predictable Software Development. - Springer Publishing Company, 2012.

COMPARATIVE ANALYSIS OF METHODS OF SOFTWARE PROJECTS

COST ESTIMATION

I.V. Medvedkova, postgraduate A.A. Ivanov, graduate student National research nuclear university MEPhI

Abstract. Effective software project estimation is one of the most challenging and important activities in software development. Estimates are essential in project planning and control. The present paper provides an overview of software cost estimation methods and the comparative analysis between the three estimation methods. The paper includes recommendations on the performance of the estimation models.

Keywords: software project, methods of effort estimation, expert estimation, parametric estimation, COCOMO, CoBRA.