Оценка трудоемкости разработки программного обеспечения. Учебное пособие
.pdfспециалистовсчастичнойзанятостью,3–среднийуровеньвли- яния, 5 – все специалисты с частичной занятостью; для показателя F8 0 – простой язык программирования, 3 – язык программирования средней сложности, 5 – высокую сложность языка программирования.
Рассмотрим более подробно технические факторы F1–F8:
Значение |
Описание |
|
Фактор F1. Уровень знакомства с проектом |
0Знакомство с проектом отсутствует
1Проект знаком на 20 %
2Проект знаком на 40 %
3Проект знаком на 60 %
4 Проект знаком на 80 %
5Проект знаком на 100 %
Фактор F2. Опыт разработки приложений
0Опыт разработки приложений отсутствует
1Опыт разработки приложений может быть оценен в 20 %
2Опыт разработки приложений может быть оценен в 40 %
3Опыт разработки приложений может быть оценен в 60 % 4 Опыт разработки приложений может быть оценен в 80 %
5Экспертный уровень. Опыт разработки приложений может быть оценен в 100 %
Фактор F3. Опыт использования объектно-ориентированного подхода
0Опыт использования объектно-ориентированного подхода отсутствует
1Есть только теоретические знания в объектно-ориентиро- ванном подходе
22 года опыта использования объектно-ориентированного подхода
34 года опыта использования объектно-ориентированного подхода
410 лет опыта использования объектно-ориентированного подхода
515 лет опыта использования объектно-ориентированного подхода
51
Продолжение
Значение |
Описание |
Фактор F4. Наличие ведущего аналитика
0Нет ведущего аналитика в проекте
1Ведущий аналитик проекта имеет 3-летний опыт работы
впроектах для этой предметной области
2Ведущий аналитик проекта имеет 5-летний опыт работы
впроектах для этой предметной области
3Ведущий аналитик проекта имеет 8-летний опыт работы
впроектах для этой предметной области
4Ведущий аналитик проекта имеет 10-летний опыт работы в проектах для этой предметной области
5Ведущий аналитик проекта имеет 15-летний опыт работы в проектах для этой предметной области
Фактор F5. Мотивация
0Нет мотивации
1Низкаямотивация.Командаработаеттолькоподуправлением.Нетпроявленийинициативысосторонычленовкоманды
25%командыимеютвысокуюмотивациюипроявляютинициативу.Остальнаякомандаработаеттолькоподуправлением.Нет проявленийинициативысостороныэтойчастичленовкоманды
320%командыимеютвысокуюмотивациюипроявляютинициативу. Остальная команда работает только под управлением. Нет проявлений инициативы со стороны этой части членов команды
450%командыимеютвысокуюмотивациюипроявляютинициативу. Остальная команда работает только под управлением. Нет проявлений инициативы со стороны этой части членов команды
5100 % команды имеют высокую мотивацию и проявляют инициативу
Фактор F6. Стабильность требований
0Нетстабильноститребований.Каждоесовещаниесзаказчиком приводит к изменению 80 % требований
1Каждоесовещаниесзаказчикомприводиткизменению60% требований
2Каждоесовещаниесзаказчикомприводиткизменению40% требований
52
Окончание
Значение |
Описание |
3Каждоесовещаниесзаказчикомприводиткизменению20% требований
4Каждое совещание с заказчиком приводит к изменению 5 % требований
5Требования стабильны
Фактор F7. Частичная занятость
0Всечленыкомандыработаютнаусловияхполнойзанятости
110 % членов команды работают на условиях частичной занятости
230 % членов команды работают на условиях частичной занятости
350 % членов команды работают на условиях частичной занятости
480 % членов команды работают на условиях частичной занятости
5100 % членов команды работают на условиях частичной занятости
Фактор F8. Сложные языки программирования
0Длязнакомствасязыкомпрограммированиятребуетсяодна неделя
1Для знакомства с языком программирования требуется две недели
2Для знакомства с языком программирования требуется по крайней мере месяц
3Для знакомства с языком программирования требуется специальный тренинг
4Для знакомства с языком программирования требуется специальный тренинг и помощь в процессе выполнения проекта
5Сложность языка такова, что работать могут только специалисты, имеющие опыт использования этого языка
Значение EF вычисляется по формуле
EF =1,4+ |
|
0,03 |
8 |
(Bec |
F ) . |
|
|
|
|
∑ |
i |
i |
|
|
|
|
i=1 |
|
|
|
53
8.Окончательное значение UCP (Use Case Points). Вычисляется следующим образом: UCP = UUCP · TCF · EF.
9.Оценка трудоемкости проекта. В качестве начального значе-
нияпредлагаетсяиспользовать20чел.-чнаоднуUCP.Этозначение можетуточнятьсясучетомопытаразработчиков.Приведемпример уточнения.
Рассмотрим показатели F1–F8 и определим, сколько показателей F1–F6 имеют значение менее 3 и сколько показателей F7–F8 имеют значение более 3. Если общее количество равно 0, следует использовать15чел.-чнаоднуUCP,если1или2–20чел.-чнаодну UCP,если3или4–28чел.-чнаоднуUCP.Еслиобщееколичество равно5илиболее,следуетвнестиизменениявпроект,впротивном случае риск провала проекта слишком велик.
П р и м е р 12. Применение методики Use Case Points. Для проведения оценки трудоемкости разработки системы заказа билетов с помощью методики Use Case Points необходимо выполнить следующие действия.
1.Определение весовых показателей действующих лиц. В системе три основныхдействующихлица:клиент,оператор,администратор.Ониобщаютсяссистемойчерезграфическийинтерфейспользователя,поэтому относятся к сложному типу действующих лиц. Весовой коэффициент каждого из этих трех действующих лиц 3.
Системапродажибилетов–действующеелицо,взаимодействующеес системойчерезпрограммныйинтерфейс,т.е.действующеелицопростого типа с весовым коэффициентом 1.
2.Вычислениенеурегулированноговесовогопоказателядействующихлиц:
UAW = 3ˑ3 + 1 = 10.
3.Определение весовых показателей вариантов использования. Весовые показатели вычисляются для всех сценариев вариантов использования
(табл. 5).
|
|
Таблица 5 |
|
Весовые показатели вариантов использования |
|
|
|
|
|
|
|
Вариант использования |
Количество Use Case |
|
Вес |
транзакций |
|
||
|
|
|
|
Получение справочной информации |
7 |
|
10 |
Регистрация пользователя |
11 |
|
15 |
Заказ билета |
14 |
|
15 |
54
|
|
|
|
|
|
Окончание табл. 5 |
|||
|
|
|
|
|
|
|
|
|
|
Вариант использования |
|
Количество Use Case |
|
|
Вес |
||||
|
|
транзакций |
|
|
|||||
|
|
|
|
|
|
|
|||
Аутентификация |
|
|
|
11 |
|
|
|
15 |
|
Отмена заказа |
|
|
|
11 |
|
|
|
15 |
|
Мониторинг состояния заказа |
|
|
|
5 |
|
|
|
10 |
|
Оформление билета |
|
|
|
6 |
|
|
|
10 |
|
Учет проданных билетов |
|
|
|
6 |
|
|
|
10 |
|
Удаление клиента из «черного списка» |
|
|
|
4 |
|
|
|
10 |
|
Добавление нового пользователя |
|
|
|
9 |
|
|
|
15 |
|
Редактирование пользователя |
|
|
|
9 |
|
|
|
15 |
|
Удаление пользователя |
|
|
|
8 |
|
|
|
15 |
|
Получение отчетов |
|
|
|
9 |
|
|
|
15 |
|
И т о г о |
|
|
|
|
|
|
|
|
170 |
|
Показатель технической сложности TCF |
Таблица 6 |
|||||||
|
|
|
|
||||||
|
|
|
|
|
|
|
|
||
Показатель |
Технический фактор |
|
|
Вес |
Значение |
|
Весi·Тi |
||
Т1 |
Распределенность системы |
|
|
2,0 |
4 |
|
6,0 |
||
Т |
Высокая производительность (про- |
|
1,0 |
3 |
|
3,0 |
|||
2 |
пускная способность) |
|
|
|
|
|
|
|
|
T3 |
Ориентация на эффективность |
|
|
1,0 |
3 |
|
3,0 |
||
конечных пользователей |
|
|
|
||||||
Т4 |
Сложная обработка данных |
|
|
1,0 |
0 |
|
0 |
||
Т5 |
Повторное использование кода |
|
|
1,0 |
0 |
|
0 |
||
Т6 |
Простота установки |
|
|
0,5 |
0 |
|
0 |
||
Т7 |
Простота использования |
|
|
0,5 |
1 |
|
0,5 |
||
Т8 |
Переносимость |
|
|
2,0 |
1 |
|
2,0 |
||
Т9 |
Простота внесения изменений |
|
|
1,0 |
1 |
|
1,0 |
||
T10 |
Параллельная работа |
|
|
1,0 |
3 |
|
3,0 |
||
T11 |
Специальные требования к безопас- |
1,0 |
2 |
|
2,0 |
||||
|
ности |
|
|
|
|
|
|
|
|
T12 |
Непосредственный доступ к системе |
1,0 |
2 |
|
2,0 |
||||
|
со стороны внешних организаций |
|
|
|
|
|
|
||
T13 |
Специальныетребованиякобучению |
1,0 |
0 |
|
0,0 |
||||
|
пользователей |
|
|
|
|
|
|
|
|
И т о г о |
|
|
|
|
|
|
|
22,5 |
|
55
|
Показатель влияния условий разработки EF |
Таблица 7 |
||
|
|
|||
|
|
|
|
|
Показатель |
Фактор |
Вес |
Значение |
Весi · Fi |
F1 |
Знакомство с проектом |
1,5 |
2 |
3,0 |
F2 |
Опыт разработки приложений |
0,5 |
4 |
2,0 |
F3 |
Опыт использования объектно- |
1,0 |
3 |
3,0 |
|
ориентированного подхода |
|
|
|
F4 |
Наличие ведущего аналитика |
0,5 |
3 |
1,5 |
F5 |
Мотивация |
1,0 |
4 |
4,0 |
F6 |
Стабильность требований |
2,0 |
3 |
6,0 |
F7 |
Частичная занятость |
–1,0 |
0 |
0,0 |
F8 |
Сложныеязыкипрограммирования |
–1,0 |
0 |
0,0 |
И т о г о |
|
|
|
19,5 |
4.Определениенеурегулированныхвесовыхпоказателейвариантовисполь-
зования. В соответствии с табл. 5 UUCW = 170.
5.Определение неурегулированного общего показателя Total UUCP: Total UUCP = Total UAW + Total UUCW = 10 + 170 = 180.
6.Определениетехническойсложностипроекта.Всоответствиистабл.6
рассчитаем показатель технической сложности TCF:
TCF =0,6+ |
|
0,01 |
13 |
(Bec |
T ) |
=0,6+0,01 22,5=0,825. |
|
|
|
∑ |
i |
i |
|
|
|
|
|
|
i=1 |
|
|
|
|
7. Определение влияния условий разработки. В соответствии с табл. 7
рассчитаем показатель влияния условий разработки EF:
EF =1,4+ |
|
−0,03 |
8 |
(Bec F ) |
=0,815. |
|
|
|
|
∑ |
i i |
|
|
|
|
|
i=1 |
|
|
|
8.Расчет UCP: UCP = UUCP · TCF · EF = 180 · 0,825 · 0,815 = 121.
9.Оценкатрудоемкостипроекта.ТаккакколичествопоказателейF1– F6, имеющих значение менее 3, и показателей F7–F8, имеющих значение более3,равно0,примемпроизводительность15чел.-чнаоднуUCP.Тогда трудозатраты на проект составят 1815 ч.
10.Оценка срока выполнения проекта. Количество человеко-часов на выполнениепроектаравно1815.При40-часовойрабочейнеделеэточуть больше 45 недель, или 10,8 месяца.
56
2.2. Методика Function Points
Впервыеметодфункциональныхточекбылпредложенв1983г. Аланом Альбрехтом и на данный момент является основной технологиейоценкифункциональногоразмеракакужеготовых,так и находящихся на стадии проектирования программных систем
(ПС).
Функциональныеточки–мерафункциональности,т.е.полез- ностипрограммнойсистемыспозициипользователя.Общаяфункциональность определяется и измеряется в процессе анализа [6]:
–логическихгруппданных,которыеиспользуются,поддерживаются ПС и характеризуют по сути функциональность данных;
–вводимойивыводимойпользователеминформации,т.е.функциональности совершаемых транзакций.
Такимобразом,общаяфункциональностьявляетсясуммойдвух составляющих (рис. 9): Функциональность = Функциональность данных + Функциональность транзакций.
Прежде чем начать измерять функциональность, необходимо определить границы ПС.
ОпределениеграницПС. ГраницыПСмогутбытьустановлены на ранних этапах жизненного цикла продукта. Например, если ПС разрабатывается в рамках замещающего проекта, то его границы,очевидно,должныбытьподобны(авозможно,исовпадать) границам ранее существовавшего ПС. Если ПС принципиально новая, то, чтобы правильно определить ее границы, необходимо установить границы других ПС, работающих совместно с рассматриваемым.
Для приложений Internet/Intranet-границы определяются так же, как и для обычных ПС: границы формируются относительно непользовательскогоинтерфейсаилинесколькихэкранов,авсего приложения. Часто Internet/Intranet приложение разрабатывается
вкачестве замены или расширения существующего ПС. В этом случае,очевидно,некорректнорассматриватьInternet/Intranet-при- ложение как принципиально новое ПС.
В приложениях клиент–сервер границы должны формироваться и для клиента, и для сервера. Причина заключается в том,
57
Ввод
Вывод
Запрос
Пользователь
Программное средство
Запись |
Данные |
|
Чтение |
||
ЛогикаПС |
|
|
Запись |
Данные |
|
Чтение |
||
|
Рис. 9. Функциональность ПС
чтониклиент,нисерверневыполняютвотдельноститребования пользователя.Тоестьпоотдельностионинеявляютсязавершенным ПС.
Обычнофункциональностьданныхпредставляетсобойфайлы, таблицыбазданных,объектыидругиеединицыхраненияинформации.Прианализепометодуфункциональныхточекрассматриваются два вида групп данных.
1.Внутренний логический файл (Internal Logical File, ILF) –
логическисвязаннаягруппаданных,определяемаяпользователем
инаходящаяся внутри границ ПС (рис. 10, а).
2.Внешнийинтерфейсный файл(ExternalInterface File,EIF) –
логическисвязаннаягруппаданных,обеспечивающаяПСинформацией, но лежащая за его пределами и поддерживаемая другим ПС (рис. 10, б).
Транзакции – это элементарные процессы, т. е. наименьшие единицы активности, имеющие определенное значение дляпользователя,происходящиевнутриПСипорождаемыевходнойивыходнойинформацией.Прианализе,основанномнаметоде функциональных точек, выделяют три вида транзакций.
1.Внешний ввод (External Input, EI) – процесс ввода данных и управляющейинформациивПС(рис.11,а).Управляющаяинформациянеобходимадляобработкиданных.ПоступающиенавходПС
58
данные используются для поддержания внутреннего логического файла. Обычно процессы вида EI применяют для добавления, изменения или удаления информации.
2.Внешнийвывод(ExternalOutput,EO)–процесс,генерирую- щийданныеилиуправляющуюинформацию,которыепоступают на выход ПС (рис. 11, б). Обычно процесс вида EO представляет собой способ формирования экранов, отчетов, сообщений.
3.Внешний запрос (External Inquiry, EQ) – диалоговый ввод, которыйприводиткнемедленномуответуПСвформедиалогового вывода (рис. 11, в). Диалоговый ввод в самом ПС не сохраняется,
адиалоговый вывод не требует выполнения вычислений. В этом заключается главное отличие EQ от EI и EO.
КаждойизхарактеристикфункциональностиПС(EI,EO,EQ,ILF илиEIF)ставитсявсоответствиенизкий,среднийиливысокийуровеньсложности,азатемвыноситсяопределеннаячисловаяоценка.
Длявнешнихивнутреннихфайлов(ILFиEIF)сложностьопределяется и ранжируется с помощью количества типов элементов записей(RecordElementTypes,RET)иколичестватиповэлементов данных (Data Element Types, DET), входящих в соответствующие логические группы данных.
Уровнисложностидлявнутреннихивнешнихфайлов(ILFиEIF) в зависимости от количества RET и DET представлены в табл. 8.
а) |
|
б) |
|
|
ПС |
|
ILF |
Процесс |
|
|
EIF
ПС
Процесс
Рис. 10. Функциональность данных ПС: а – внутренние логические файлы; б – внешние интерфейсные файлы
59
а) |
|
б) |
|
в) |
ПС |
Данные |
ПС |
Данные |
ПС |
ILF |
EI |
|
EO |
ILF |
|
ILF |
|||
|
Управ- |
|
Управ- |
|
|
|
|
||
|
ляющая |
|
ляющая |
|
|
инфор- |
|
инфор- |
|
|
мация |
|
мация |
|
EQ
Входные
данные
Выходные данные
Рис. 11. Функциональность транзакций ПС: а – внешний ввод; б – внешний вывод; в – внешний запрос
|
|
|
Таблица 8 |
Уровни сложности для внутренних и внешних файлов |
|||
|
|
|
|
Количество |
|
Количество DET |
|
RET |
1–19 |
20–30 |
31 и более |
1 |
Низкий |
Низкий |
Средний |
2–5 |
Низкий |
Средний |
Высокий |
6 и более |
Средний |
Высокий |
Высокий |
Идентификацияиоценкафункциональностиданных(ILFиEIF).
Как отмечалось ранее, ILF и EIF являются логически связанными группами данных (файлами, таблицами баз данных и т. п.), определяемыми пользователем и необходимыми для работы ПС. Оба эти типа файлов могут использоваться ПС при генерации внешних выводов (EO), а также при обслуживании внешних запросов (EQ). Разница между ними состоит лишь в том, что ILF поддерживаются самим ПС с помощью внешних вводов (EI), а EIF – любым другим ПС.
Функциональность логических файлов (ILF и EIF) оценивается в результате подсчета количества типов элементов записей (RET) и количества типов элементов данных (DET), входящих в соответствующие логические группы данных. Под количеством RET обычно понимают количество логических подгрупп данных, выделяемыхвфайлесточкизренияпользователя,иликоличество используемых форматов записей, а под количеством DET – количество элементарных полей в этих записях.
60
