- •Введение
- •1. Измерения и оценки метрик в программотехнике
- •2. Оценка трудоемкости и стоимости разработки программного продукта на основе его размера
- •Определение параметров программного продукта на основе оценки числа строк кода для каждого функционального блока.
- •3. Определение параметров проекта на основе оценки трудоемкости выполнения отдельных работ (Метод оценки усилий)
- •Распределение усилий на выполнение отдельных работ при разработке каждого блока (в человеко-месяцах)
- •4. Использование эмпирических моделей для оценок программных продуктов.Ресурсная модель комост
- •Коэффициенты уравнений комост
- •5. Метод функциональных точек
- •6. Производительность труда в группе разработчиков
- •6.1А. Учет числа взаимосвязей между разработчиками в группе.
- •Задание 5. Определение производительности труда группы взаимодействующих исполнителей Методические указания к выполнению задания 5
- •6.1.B Связи каждого участника группы с остальными
- •Методические указания к выполнению задания 6
- •6.2. Применение модели Филиппа
- •6.3. Применение модели Путнема
- •Рекомендуемая литература
- •Список использованных сокращений
- •Содержание
Определение параметров программного продукта на основе оценки числа строк кода для каждого функционального блока.
Функция (блок) |
Опт. |
Наиб. вер. |
Песс. |
Средн значен. |
Руб./стр. |
Стр../ мес. |
Стоимость (рублей) |
Чел.-мес. |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
А |
1800 |
2400 |
2650 |
2340 |
14 |
315 |
32.760 |
7.4 |
В |
4100 |
5200 |
7400 |
5380 |
20 |
220 |
107.600 |
24.4 |
С |
4600 |
6900 |
8600 |
6800 |
20 |
220 |
136.000 |
30.9 |
D |
2950 |
3400 |
3600 |
3350 |
18 |
240 |
60.300 |
13.9 |
E |
4050 |
4900 |
6200 |
4950 |
22 |
200 |
108.900 |
24.7 |
F |
2000 |
2100 |
2450 |
2140 |
28 |
140 |
59.920 |
15.2 |
G |
6600 |
8500 |
9800 |
8400 |
18 |
300 |
151.200 |
28.0 |
Итог 33.360 |
656.680 144.5 |
В табл. 1 представлены 7 функциональных блоков. Для упрощения примера в ней отсутствует определение среднеквадратических отклонений и соответственно вычисление доверительных интервалов.
Как следует из табл. 1, три столбца (2-4) содержат экспертные оценки размеров функциональных блоков. На их основе (столбец 5) подсчитываются средние значения размеров блоков (в строках исходного кода). При выполнении задания расчеты должны быть дополнены вычислениями среднеквадратических значений каждой полученной оценки. В нижней строке таблицы представлен общий размер программного продукта.
На основе исторических данных (столбцы 6 и 7) о стоимости разработки одной строки (рублей на строку) и производительности труда (стррк/человеко-месяц) применительно к каждому функциональному блоку подсчитываются значения стоимости и трудоемкости разработки каждого блока (столбцы 8 и 9). Итоговые данные - общие стоимость и трудоемкость представлены в последней строке таблицы.
Можно отметить, что на основе полученных данных о проекте легко определить среднюю стоимость создания одной строки кода - 19.7 руб. и среднюю производительность работника - 231 строка за один человеко-месяц. Используя эти данные и значения границ доверительного интервала для размеров продукта, вычисляют диапазоны значений, в которых с вероятностью 0,997 можно предполагать будут находиться значения общей стоимости и трудоемкости разработки проекта.
3. Определение параметров проекта на основе оценки трудоемкости выполнения отдельных работ (Метод оценки усилий)
Общее описание метода
Метод оценки усилий, требующихся на разработку программного про-, дукта также использует экспертный подход, но применительно к оценке трудозатрат - усилиям на выполнение работ. Это наиболее общий метод для определения стоимости и трудоемкости разработки программного продукта. Как и в предыдущем методе, предварительно должны быть исследованы требования к программному изделию и определен состав основных функциональных блоков, т.е должна быть осуществлена предварительная функциональная декомпозиция будущей системы. Предполагается, что в процессе разработки каждого блока используется одна и та же последовательность работ, перечень которых соответствует фазам принятой модели жизненного цикла. Для каждой отдельной работы может быть осуществлена экспертная оценка ее трудоемкости, или оценка требуемых усилий (в человеко-месяцах, человеко-годах). В результате может быть определена трудоемкость разработки каждого блока, а также трудоемкость выполнения каждого вида работ. Если известна стоимость выполнения единицы работ (человеко-месяца) для каждого вида, то можно определить общую стоимость работ, связанных с системным анализом, системным проектированием, кодированием и тестированием программ и т.д., а также в целом - стоимость разработки всего проекта.
Очевидно, что для выполнения этой работы необходимы усредненные данные о стоимости каждого вида работ на основе информации по проектам подобного типа, выполненным ранее.
Задание 2. Определение параметров программного проекта на основе оценки трудоемкости выполнения отдельных работ для каждого функционального блока
Методические указания к выполнению задания 2
Для принятой модели жизненного цикла программного средства и для заданного требованиями пользователя программного продукта определить состав функциональных блоков, провести экспертную оценку трудоемкости (требуемых усилий) каждой работы для каждого из функциональных блоков. На основе этих данных и исторических данных о стоимости человеко-месяца при выполнении работы каждого вида оценить трудоемкость и стоимость разработки программного продукта в целом, а также трудоемкость и стоимость выполнения работ каждого вида и каждого функционального блока. Для каждой оценки определить границы доверительного интервала.
Последовательность выполнения задания
1. Как и в предыдущем случае, работа начинается с анализа требованийпользователя-заказчика, в результате чего следует осуществить функциональную декомпозицию программного продукта, т.е. определить состав его функциональных блоков.
Примечание. Задание может быть выдано преподавателем с перечнем функциональных блоков, а для каждого вида работ при разработке каждого блока могут быть указаны значения наиболее вероятных усилий (трудозатрат).
2. В соответствии с принятой последовательностью фаз жизненного цикла устанавйть последовательность инженерных задач - работ, которые должны быть выполнены для каждого блока. В качестве примера в табл. 2 для простоты представлены 4 вида работ: анализ и формирование требований к программному продукту, проектирование (архитектурное и детальное), кодирование, влючая тестирование и отладку, интеграция блоков и системное тестирование.
.3. Для каждого функционального блока провести экспертную оценку трудозатрат (в человеко-месяцах) на выполнение каждой инженерной работы (по графам 2 - 5). Для упрощения в таблице представлены средние значения усилий, однако при выполнении задания необходимо использовать, как и в предыдущем методе, экспертные оценки для максимального, минимального и наиболее вероятного значения трудозатрат и по ним вычислить среднее и среднеквадратическое значения.
На основании полученных средних значений трудозатрат по отдельным работа подсчитать оценки для средних трудозатрат по каждому блоку и доверительные интервалы этих оценок. Результат занести в соответствующуюстроку столбца 6. (В табл. 2 для простоты не приводятся значения среднеквадратических отклонений для каждого блока). Просуммировать трудозатраты по каждому из столбцов 2 -5 для получения значений итоговых затрат усилий по каждому виду работ и вычислить соответствующие им значения среднеквадратических отклонений.
Суммарные трудозатраты и доверительные интервалы по проекту в целом определить либо суммированием итоговых трудозатрат по отдельным блокам, либо по отдельным работам.
Стоимость разработки всего проекта складывается из итоговых стоимостей выполнения отдельных работ. Чтобы вычислить общую стоимость каждой отдельно взятой работы, нужно использовать нормативные данные о денежных средствах, затрачиваемых на один человеко-месяц этой работы (предпоследняя строка табл. 2). Очевидно, что при выполнении этих работ будут использоваться специалисты разной квалификации и соответственно с разной оплатой.
7.На заключительном этапе подсчитать общие финансовые затраты на разработку программного продукта и оценить границы доверительных интервалов как для стоимости так и для трудоемкости разработки.
Таблица 2