Модель раннего этапа проектирования
Модель раннего этапа проектирования используется в период, когда стабилизируются требования и определяется базисная программная архитектура.
Основное уравнение этой модели имеет следующий вид:
ЗАТРАТЫ = А х РАЗМЕРв х Ме + ЗАТРАТЫаuto[чел.-мес],
где:
q масштабный коэффициент А = 2,5;
q показатель В отражает нелинейную зависимость затрат от размера проекта (размер системы РАЗМЕР выражается в тысячах LOC);
q множитель поправки Мe зависит от 7 формирователей затрат, характеризующих продукт, процесс и персонал;
q слагаемое 3ATPATЫauto отражает затраты на автоматически генерируемый программный код.
Значение показателя степени В изменяется в диапазоне 1,01... 1,26, зависит от пяти масштабных факторов Wi и вычисляется по формуле
.
Общая характеристика масштабных факторов приведена в табл. 2.19, а табл. 2.20 позволяет определить оценки этих факторов. Оценки принимают 6 значений: от очень низкой (5) до сверхвысокой (0).
Таблица 2.19.Характеристика масштабных факторов
Масштабный фактор (Wi) | Пояснение |
Предсказуемость PREC | Отражает предыдущий опыт организации в реализации проектов этого типа. Очень низкий означает отсутствие опыта. Сверхвысокий означает, что организация полностью знакома с этой прикладной областью |
Гибкость разработки FLEX Разрешение архитектуры /риска RESL Связность группы TEAM Зрелость процесса РМАТ | Отражает степень гибкости процесса разработки. Очень низкий означает, что используется заданный процесс. Сверхвысокий означает, что клиент установил только общие цели Отражает степень выполняемого анализа риска. Очень низкий означает малый анализ. Сверхвысокий означает полный и сквозной анализ риска Отражает, насколько хорошо разработчики группы знают друг друга и насколько удачно они совместно работают. Очень низкий означает очень трудные взаимодействия. Сверхвысокий, означает интегрированную группу, без проблем взаимодействия Означает зрелость процесса в организации. Вычисление этого фактора может выполняться по вопроснику СММ |
В качестве иллюстрации рассмотрим компанию, которая берет проект в малознакомой проблемной области. Положим, что заказчик не определил используемый процесс разработки и не допускает выделения времени на всесторонний анализ риска. Для реализации этой программной системы нужно создать новую группу разработчиков. Компания имеет возможности, соответствующие 2-му уровню зрелости согласно модели СММ. Возможны следующие значения масштабных факторов:
q предсказуемость. Это новый проект для компании — значение Низкий (4);
q гибкость разработки. Заказчик требует некоторого согласования — значение Очень высокий (1);
q разрешение архитектуры/риска. Не выполняется анализ риска, как следствие, малое разрешение риска — значение Очень низкий (5);
q связность группы. Новая группа, нет информации — значение Номинальный (3);
q зрелость процесса. Имеет место некоторое управление процессом — значение Номинальный (3).
Таблица 2.20.Оценка масштабных факторов
Масштабный фактор (Wi) | Очень низкий 5 | Низкий 4 |
PRЕС | Полностью непредсказуемый проект | Главным образом, в значительной степени непредсказуемый |
FLEX | Точный, строгий процесс разработки | Редкое расслабление в работе |
RESL | Малое разрешение риска (20%) | Некоторое (40%) |
TEAM | Очень трудное взаимодействие | Достаточно трудное взаимодействие |
PREC | Полностью непредсказуемый проект | В значительной степени непредсказуемый |
РМАТ | Взвешенное среднее значение от количества ответов «Yes» на вопросник СММ Maturity |
Сумма этих значений равна 16, поэтому конечное значение степени В= 1,17. Вернемся к обсуждению основного уравнения модели раннего этапа проектирования. Множитель поправки Мe зависит от набора формирователей затрат, перечисленных в табл. 2.21.
Для каждого формирователя затрат определяется оценка (по 6-балльной шкале), где 1 соответствует очень низкому значению, а 6 — сверхвысокому значению. На основе оценки для каждого формирователя по таблице Боэма определяется множитель затрат EMi Перемножение всех множителей затрат формирует множитель поправки:
.
Слагаемое 3ATPATbIauto используется, если некоторый процент программного кода генерируется автоматически. Поскольку производительность такой работы значительно выше, чем при ручной разработке кода, требуемые затраты вычисляются отдельно, по следующей формуле:
ЗАТРАТЫаuto = (КALOC x (AT /100)) / ATPROD,
где:
q KALOC — количество строк автоматически генерируемого кода (в тысячах строк);
q AT — процент автоматически генерируемого кода (от всего кода системы);
q ATPROD — производительность автоматической генерации кода.
Сомножитель AT в этой формуле позволяет учесть затраты на организацию взаимодействия автоматически генерируемого кода с оставшейся частью системы.
Далее затраты на автоматическую генерацию добавляются к затратам, вычисленным для кода, разработанного вручную.
Номинальный 3 | Высокий 2 | Очень высокий 1 | Сверхвысокий 0 |
Отчасти | Большей частью | В значительной | Полностью знакомый |
непредсказуемый | знакомый | степени знакомый | |
Некоторое расслабление в работе | Большей частью согласованный процесс | Некоторое согласование процесса | Заказчик определил только общие цели |
Частое (60%) | Большей частью (75%) | Почти всегда (90%) | Полное (100%) |
Среднее | Главным образом | Высокая | Безукоризненное |
взаимодействие | кооперативность | кооперативность | взаимодействие |
Отчасти непредсказуемый | Большей частью знакомый | В значительной степени знакомый | Полностью знакомый |
Взвешенное среднее значение от количества ответов «Yes» на вопросник СММ Maturity |
Таблица 2.21. Формирователи затрат для раннего этапа проектирования