Затраты на разработку программного обеспечения ИС по модели COCOMO
В настоящее время для оценки стоимости разработки программного обеспечения ИС применяются более современные подходы на основе модели конструктивных затрат Constructive COst Model (COCOMO – модель издержек разработки). Это алгоритмическая модель оценки стоимости разработки программного обеспечения, разработанная Барри Боэмом (Barry Boehm). Модель была впервые опубликована в 1981 году в книге Барри Боэма "Экономика разработки программного обеспечения".
Модель использует формулу регрессии с параметрами, определенными из данных, собранных по ряду проектов (базируется на результатах исследования 63 проектов аэрокосмической компании TRW).
В 1997 году была разработана модель COCOMO II и опубликована в 2000 году в книге "Оценка стоимости разработки ПО с COCOMO II". Модель COCOMO II является доработанной и подходящей для оценивания современных проектов разработки ПО, обеспечивает более полную поддержку современных процессов разработки ПО.
Режимы модели СОСОМО
В модели СОСОМО используются три режима, с помощью которых классифицируется сложность системы, размер программного продукта, сложность среды разработки (таблица 3.4).
Органический режим. Органический режим обычно предполагает решение отдельных вычислительных задач, когда работает небольшая команда по разработке проекта, требуются небольшие нововведения, имеются нестрогие ограничения и конечные сроки, а среда разработки является стабильной.
Сблокированный режим (полуразделенный). Сблокированный режим характеризуется прикладными системами, небольшой командой по разработке проекта среднего размера, требуются некоторые инновации, умеренные ограничения и конечные сроки, а среда разработки характеризуется относительной нестабильностью.
Внедренный режим (встроенный). Внедренный режим характеризуется режимами реального времени, например, системами контроля воздушного движения, диспетчерскими системами, военными системами. Другие характеристики: большая команда разработчиков проекта, большой объем требуемых инноваций, жесткие ограничения и сроки сдачи. Среда разработки в этом случае состоит из многих сложных интерфейсов, включая те из них, которые поставляются заказчикам вместе с аппаратным обеспечением.
Таблица 3.4 - Характеристики режимов СОСОМО
Уровни модели СОСОМО
Выделяется три уровня детализации характеристик проекта по разработке ПО, что обеспечивает последовательное повышение степени точности в оценке стоимости проекта на каждом последующем уровне.
Базовый уровень. На этом уровне для определения необходимых трудозатрат и графика разработки используются лишь значение размера программного кода и сведения о текущем режиме. Он пригоден при выполнении быстрых и приближенных оценок при выполнении небольших и средних по объему проектов.
Промежуточный уровень. На этом уровне применяются сведения о размере программного кода, режиме, а также 15 дополнительных переменных с целью более точного определения необходимых трудозатрат. Дополнительные переменные называются "драйверами затрат" и имеют отношение к атрибутам продукта, персонала, компьютера и проекта, которые могут являться результатом более ли менее значительных трудозатрат. Произведение драйверов затрат называется корректировочным множителем среды EAF (Environmental adjustment factor).
Ниже приводятся 15 атрибутов, которым ставятся в соответствие дополнительные переменные (драйверы затрат), используемые для оценки стоимости разработки ПО:
Атрибуты продукта
1. Требуемая надежность ПО
2. Размер БД приложения
3. Сложность продукта
Атрибуты аппаратного обеспечения
4. Ограничения быстродействия при выполнении программы
5. Ограничения памяти
6. Неустойчивость окружения виртуальной машины
7. Требуемое время восстановления
Атрибуты персонала
8. Аналитические способности
9. Опыт разработки
10. Способности к разработке ПО
11. Опыт использования виртуальных машин
12. Опыт разработки на языках программирования
Атрибуты проекта
13. Применение методов разработки ПО
14. Использование инструментария разработки ПО
15. Требования соблюдения графика разработки
Детализированный уровень. Этот уровень надстраивается на промежуточный уровень СОСОМО путем внедрения дополнительных множителей трудозатрат, чувствительных к фазе, и трехуровневой иерархии программных продуктов. Промежуточный уровень может быть настроен по фазе и по уровню разработки продукта с целью достижения детализированного уровня. В качестве примера множителей трудозатрат, чувствительных к фазе, можно рассматривать ограничения по памяти, которые могут применяться при попытках оценивания фаз кодирования или тестирования проекта. Множители, чувствительные к фазе, обычно используются специализированными организациями и требуют применения автоматизированных инструментов.
Ниже приводятся формулы для определения показателей проекта на разных уровнях модели COCOMO.
Базовый уровень.
Базовые уравнения COCOMO:
где KLOC – размер исходного кода программы в тысячах строк.
Коэффициенты a, b, c и d приведены в таблице 3.4.
Таблица 3.4 - Коэффициенты модели COCOMO Базового уровня
Коэффициенты а, b, с, d могут определяться с помощью процедуры построения кривой по точкам (регрессионный анализ), причем данные проекта сравниваются с помощью уравнения. Этот метод может применяться для описания многих программных проектов. Ниже приводятся формулы расчета трудозатрат с использованием рекомендуемых значений коэффициентов.
Базовые формулы оценки трудоемкости для трех режимов модели СОСОМОпредставляютсяследующим образом:
Трудоемкость для органического режима:
Трудоемкость для сблокированного режима:
Трудоемкость для внедренного режима:
В случае использования различных режимов проекты одинакового масштаба требуют различных трудозатрат.