Оценка стоимости разработки ПО
Реферат, 10 Января 2013, автор: пользователь скрыл имя
Описание работы
При планировании программного проекта надо оценить людские ресурсы (в человеко-месяцах), продолжительность (в календарных датах), стоимость (в тысячах рублей). Обычно исходят из опыта прошлых разработок. Если новый проект похож на предыдущий, вполне вероятно, что потребуются примерно такие же ресурсы.
Файлы: 1 файл
Оценка стоимости_раздатка.doc
— 146.50 Кб (Скачать файл)Оценка стоимости разработки ПО
При планировании программного проекта надо оценить людские ресурсы (в человеко-месяцах), продолжительность (в календарных датах), стоимость (в тысячах рублей). Обычно исходят из опыта прошлых разработок. Если новый проект похож на предыдущий, вполне вероятно, что потребуются примерно такие же ресурсы.
Размерно-ориентированные метрики
Размерно-ориентированные
метрики прямо измеряют программный
продукт и процесс его
Таблица 1- Исходные данные для расчета LOC-метрик | ||||||
Проект |
Затраты, чел.-мес |
Стоимость, тыс. руб |
KLOC, тыс.LOC |
Прогр. док-ты, страниц |
Ошибки |
Люди |
ааа01 bbb02 сссОЗ |
24 62 43 |
168 440 314 |
12,1 27,2 20,2 |
365 1224 1050 |
29 86 64 |
3 5 6 |
Таблица содержит данные о ранее выполненных проектах.
На основе таблицы
вычисляются размерно-
Достоинства
размерно-ориентированных
1) широко распространены;
2) просты и легко вычисляются.
Недостатки
размерно-ориентированных
1) зависимы от языка программирования;
2) требуют исходных данных, которые трудно получить на начальной стадии проекта;
3) не приспособлены
к непроцедурным языкам
Функционально-ориентированные метрики
Функционально-ориентированные
метрики косвенно измеряют программный
продукт и процесс его
Используется 5 информационных характеристик:
- Количество внешних вводов. Внешний ввод - элементарный процесс, перемещающий данные из внешней среды в приложение. Подсчитываются все вводы пользователя, по которым поступают разные прикладные данные. Вводы должны быть отделены от запросов, которые подсчитываются отдельно.
- Количество внешних выводов. Внешний вывод - элементарный процесс, перемещающий данные, вычисленные в приложении, во внешнюю среду. Подсчитываются все выводы, по которым к пользователю поступают результаты, вычисленные программным приложением. В этом контексте выводы означают отчеты, экраны, распечатки, сообщения об ошибках. Индивидуальные единицы данных внутри отчета отдельно не подсчитываются.
- Количество внешних запросов. Внешний запрос - элементарный процесс, работающий как с вводимыми, так и с выводимыми данными. Его результат - данные, возвращаемые из внутренних логических файлов и внешних интерфейсных файлов. Под запросом понимается диалоговый ввод, который приводит к немедленному программному ответу в форме диалогового вывода. При этом диалоговый ввод в приложении не сохраняется, а диалоговый вывод не требует выполнения вычислений. Подсчитываются все запросы - каждый учитывается отдельно.
- Количество внутренних логических файлов. Внутренний логический файл - распознаваемая пользователем группа логически связанных данных, которая размещена внутри приложения и обслуживается через внешние вводы. Подсчитываются все логические файлы (то есть логические группы данных, которые могут быть частью базы данных или отдельным файлом).
- Количество внешних интерфейсных файлов. Внешний интерфейсный файл - распознаваемая пользователем группа логически связанных данных, которая размещена внутри другого приложения и поддерживается им. Внешний файл данного приложения является внутренним логическим файлом в другом приложении. Подсчитываются все логические файлы из других приложений, на которые ссылается данное приложение.
Каждой из выявленных характеристик ставится в соответствие сложность. Для этого характеристике назначается низкий, средний или высокий ранг, а затем формируется числовая оценка ранга. Для транзакций ранжирование основано на количестве ссылок на файлы и количестве типов элементов данных. Для файлов ранжирование основано на количестве типов элементов-записей и типов элементов данных, входящих в файл.
Тип элемента-записи - подгруппа элементов данных, распознаваемая пользователем в пределах файла.
Тип элемента данных - уникальное не рекурсивное (неповторяемое) поле, распознаваемое пользователем.
Данные для определения ранга и оценки сложности транзакций и файлов приведены в таблицах 2-6.
Таблица 2 - Ранг и оценка сложности внешних вводов | |||
Ссылки на файлы |
Элементы данных
| ||
1-4 |
5-15 |
>15 | |
0-1 2 >2 |
Низкий Низкий Средний |
Низкий Средний Высокий |
Средний Высокий Высокий |
Таблица 3 - Ранг и оценка сложности внешних выводов
Ссылки на файлы |
Элементы данных
| ||
1-4 |
5-19 |
>19 | |
0-1 2-3 >3 |
Низкий Низкий Средний |
Низкий Средний Высокий |
Средний Высокий Высокий |
Таблица 3 - Ранг и оценка сложности внешних запросов | |||
Ссылки на файлы |
Элементы данных
| ||
1-4 |
5-19 |
>19 | |
0-1 2 -3 >3 |
Низкий Низкий Средний |
Низкий Средний Высокий |
Средний Высокий Высокий |
Таблица 4 - Ранг и оценка сложности внутренних логических файлов | |||
Типы элементов-записей |
Элементы данных
| ||
1-19 |
20-50 |
>50 | |
1 2-5 >5 |
Низкий Низкий Средний |
Низкий Средний Высокий |
Средний Высокий Высокий |
Таблица 5 - Ранг и оценка сложности внешних интерфейсных файлов | |||
Типы элементов-записей |
Элементы данных
| ||
1-19 |
20-50 |
>50 | |
1 2-5 >5 |
Низкий Низкий Средний |
Низкий Средний Высокий |
Средний Высокий Высокий |
Отметим, что если во внешнем запросе ссылка на файл используется как на этапе ввода, так и на этапе вывода, она учитывается только один раз. Такое же правило распространяется и на элемент данных (однократный учет).
После сбора всей необходимой информации приступают к расчету метрики - количества функциональных указателей FP (Function Points). Автором этой метрики является А. Албрехт (1979).
Исходные данные для расчета сводятся в таблице 6
Таблица 6 - Исходные данные для расчета FP-метрик | ||||
Имя характеристики |
Ранг, сложность, количество
| |||
Низкий |
Средний |
Высокий |
Итого | |
Внешние вводы Внешние выводы Внешние запросы Внутренние логические файлы Внешние интерфейсные файлы |
_ ● 3= _ _ ● 4= _ _ ● 3= _ _ ● 7= _ _ ● 5= _ |
_ ● 4=_ _ ● 5=_ _ ● 4=_ _ ● 10=_ _ ● 7=_ |
_ ● 6= _ _ ● 7= _ _ ● 6= _ _ ● 15= _ _ ● 10= _ |
= _ = _ = _ = _ = _ |
Общее количество |
= _ | |||
В таблицу заносится количественное значение характеристики каждого вида (по всем уровням сложности). Места подстановки значений отмечены чертой (черта играет роль метки-заполнителя). Количественные значения характеристик умножаются на числовые оценки сложности. Полученные в каждой строке значения суммируются, давая полное значение для данной характеристики. Эти полные значения затем суммируются по вертикали, формируя общее количество.
Количество функциональных указателей вычисляется по формуле
В этой формуле коэффициенты Fi оценивают системные параметры приложения. Каждый коэффициент может принимать следующие значения: 0 - нет влияния, 1 - случайное, 2 - небольшое, 3 - среднее, 4 - важное, 5 - основное. Оцениваемые параметры приведены в таблице 7.
Таблица 7 - Определение системных параметров приложения | ||
№ |
Системный параметр |
Описание |
1 |
Передачи данных |
Сколько средств связи требуется для передачи или обмена информацией с приложением или системой? |
2 |
Распределенная обработка данных |
Как обрабатываются распределенные данные и функции обработки? |
3 |
Производительность |
Нуждается ли пользователь в фиксации времени ответа или производительности? |
4 |
Распространенность используемой конфигурации |
Насколько распространена текущая аппаратная платформа, на которой будет выполняться приложение? |
5 |
Скорость транзакций |
Как часто выполняются транзакции? (каждый день, каждую неделю, каждый месяц) |
6 |
Оперативный ввод данных |
Какой процент информации надо вводить в режиме онлайн? |
7 |
Эффективность работы конечного пользователя |
Приложение проектировалось для обеспечения эффективной работы конечного пользователя? |
8 |
Оперативное обновление |
Как много внутренних файлов обновляется в онлайновой транзакции? |
9 |
Сложность обработки |
Выполняет ли приложение интенсивную логическую или математическую обработку? |
10 |
Повторная используемость |
Приложение разрабатывалось для удовлетворения требований одного или многих пользователей? |
11 |
Легкость инсталляции |
Насколько трудны преобразование и инсталляция приложения? |
12 |
Легкость эксплуатации |
Насколько эффективны и/или автоматизированы процедуры запуска, резервирования и восстановления? |
13 |
Разнообразные условия размещения |
Была ли спроектирована, разработана и поддержана возможность инсталляции приложения в разных местах для различных организаций? |
14 |
Простота изменений |
Была ли спроектирована, разработана и поддержана в приложении простота изменений? |
После вычисления FP на его основе формируются метрики производительности, качества и т.д.:
Достоинства функционально-ориентированных метрик:
- Не зависят от языка программирования.
- Легко вычисляются на любой стадии проекта.
Недостаток
функционально-ориентированных
результаты основаны на субъективных данных, используются не прямые, а косвенные измерения.
FP-оценки легко пересчитать в LOC-оценки. Как показано в таблице 8, результаты пересчета зависят от используемого языка программирования.
Таблица 8 - Пересчет FP-оценок в LOC-оценки | |
Язык программирования |
Количество операторов на один FP |
Ассемблер С Паскаль C++ Java Visual Basic Visual C++ Delphi Smalltalk Perl |
320 128 90 64 53 32 34 29 22 21 |
Выполнение оценки проекта на основе LOC- и FP-метрик
Цель этой деятельности - сформировать предварительные оценки, которые позволят:
- предъявить заказчику корректные требования по стоимости и затратам на разработку программного продукта;
- составить план программного проекта.
При выполнении оценки возможны два варианта использования LOC- и FP-данных:
- в качестве оценочных переменных, определяющих размер каждого элемента продукта;
- в качестве метрик, собранных за прошлые проекты и входящих в метрический базис фирмы.
Выполняются следующие действия.
- Область назначения проектируемого продукта разбивается па ряд функций, каждую из которых можно оценить индивидуально:
f1,f2,…fn
- Для каждой функции fi1; планировщик формирует лучшую , худшую и вероятную оценку . Используются опытные данные (из метрического базиса) или интуиция. Диапазон значения оценок соответствует степени предусмотренной неопределенности.
- Для каждой функции/, в соответствии с -распределением вычисляется ожидаемое значение LOC- (или FP-) оценки: