COnstructive COst MOdel (COCOMO – модель издержек разработки) – это алгоритмическая модель оценки стоимости разработки программного обеспечения, разработанная Барри Боэмом (Barry Boehm). Модель использует простую формулу регрессии с параметрами, определенными из данных, собранных по ряду проектов.
Базовый уровень рассчитывает трудоемкость и стоимости разработки как функцию от размера программы. Размер выражается в оценочных тысячах строк кода (KLOC - kilo lines of code).
COCOMO применим к трем классам проектов разработки ПО:
· Органический (Organic mode) – маленькие команды с хорошим опытом работы и не жесткими требованиями к разработке
· Полуразделенный вид (Intermediate/Semi-detached mode) – средние по размеру команды со смешанным опытом разработки и со смешанными требованиями (как жесткими, так и нет).
· Встроенный вид (Intered/Embedded mode) – разрабатываются с учетом множества жестких ограничений (по аппаратному, программному, операционному обеспечению и т.д.)
Вот базовые уравнения COCOMO:
Трудоемкость = ab(KLOC)bb [человеко-месяцев]
Срок разработки или длительность = cb(Трудоемкость)db [месяцев]
Число разработчиков = Трудоемкость/ Срок разработки [человек]
Базовый уровень COCOMO хорош для быстрой оценки стоимости разработки. Однако он не принимает во внимание различия в аппаратных ограничениях, качестве и опыте персонала, а также использованию современных техник и средств разработки и других факторов.
Средний уровень рассчитывает трудоемкость разработки как функцию от размера программы и множества «факторов стоимости», включающих субъективные оценки характеристик продукта, проекта, персонала и аппаратного обеспечения. Это расширение включает в себя множество из четырёх факторов, каждый из которых имеет несколько дочерних характеристик.
Характеристики продукта
· Требуемая надежность ПО
· Размер БД приложения
· Сложность продукта
Характеристики аппаратного обеспечения
· Ограничения быстродействия при выполнении программы
· Ограничения памяти
· Неустойчивость окружения виртуальной машины
· Требуемое время восстановления
Характеристики персонала
· Аналитические способности
· Способности к разработке ПО
· Опыт разработки
· Опыт использования виртуальных машин
· Опыт разработки на языках программирования
Характеристики проекта
· Использование инструментария разработки ПО
· Применение методов разработки ПО
· Требования соблюдения графика разработки
Каждому из этих 15 факторов ставится в соответствие рейтинг по шестибалльной шкале, начиная от «очень низкого» и до «экстра высокого» (по значению или важности фактора). Далее значения рейтинга заменяются множителями трудоемкости из нижеприведенной таблицы. Произведение всех множителей трудоемкости составляет Регулирующий фактор трудоемкости (РФТ). Обычно он принимает значения в диапазоне от 0.9 до 1.4.
Формула модели COCOMO для среднего уровня принимает вид E=ai(KLoC)(bi).РФТ
где E – трудоемкость разработки ПО в человеко-месяцах, KLoC – оценочный размер программы в тысячах строках исходного кода, и РФТ – регулирующий фактор, рассчитанный ранее. Коэффициенты ai и показатель степени bi представлены в следующей таблице.
Расчет времени разработки для среднего уровня COCOMO совпадает с расчетом для Базового уровня.
Детальный уровень включает в себя все характеристики среднего уровня с оценкой влияния данных характеристик на каждый этап процесса разработки ПО.
13. Документация ПО