Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Оценка трудоемкости разработки программного обеспечения. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
09.08.2026
Размер:
457 Кб
Скачать

Для оценки количества RET и DET основным источником информации в логическом файле могут служить, например, словарь данных (Data Dictionary), составленный в ходе моделирования информационной системы с использованием диаграмм потоков данных,логическаяструктурабазданных,полученнаяприпострое- ниимоделейсущность–связь,логическаяструктурафайловилибаз данных,поддерживаемыхдругимиПСиописаннаявсоответствующей документации (для EIF), и т. п.

ВцеломзадачаоценкиколичестваRETвметодефункциональных точек одна из самых сложных и результат ее решения зависит от точки зрения оценивающего.

ВыделениеиподсчетколичестваDETвлогическомфайлеможно связать с процедурой поддержки этого файла, осуществляемой с помощьютранзакционнойфункциивнешнеговвода(EI).Очевидно, что все типы полей данных, используемые во внешних вводах (EI), поддерживающих данный логический файл, и составляют его набор DET.

Для транзакционных функций (EI, EO и EQ) сложность определяется и ранжируется с помощью количества типов использу-

емых файлов (File Types Referenced, FTR), т. е. количества ILF и EIF,участвующихвтранзакционномпроцессе,атакжеколичества типовэлементовданныхDET(отличныхдруготдругаполейзаписей),добавляемых,модифицируемых,стираемыхилисоздаваемых в выходных данных.

Уровни сложности для внешних входов (EI) в зависимости от числа FTR и DET представлены в табл. 9, а уровни сложности для внешних выходов (EO) – в табл. 10.

 

 

 

 

Таблица 9

 

Уровни сложности для внешних входов

 

 

 

 

 

 

Количество

 

Количество DET

 

FTR

1–4

5–15

 

16 и более

0–1

Низкий

Низкий

 

Средний

2

Низкий

Средний

 

Высокий

3 и более

Средний

Высокий

 

Высокий

61

 

 

 

 

Таблица 10

 

Уровни сложности для внешних выходов

 

 

 

 

 

 

Количество

 

Количество DET

 

FTR

1–5

6–19

 

20 и более

0–1

Низкий

Низкий

 

Средний

2–3

Низкий

Средний

 

Высокий

4 и более

Средний

Высокий

 

Высокий

Уровни сложности для внешних запросов (EQ) определяются

сиспользованием следующего алгоритма:

1)входвнешнегозапросарассматриваетсяаналогичновнешнему входу (EI, см. табл. 9);

2)выход внешнего запроса рассматривается аналогично внешнему выходу (EO, см. табл. 10);

3)в качестве результата используется наибольшее значение из полученных в п. 1 и 2.

Весовыекоэффициентыуровнейсложностидляразличныххарактеристик функциональности ПС представлены в табл. 11.

Идентификация и оценка функциональности транзакций (EI, EO, EQ). Напомним, что элементарные процессы, в которых данные пересекают границу ПС снаружи внутрь, называются внешнимивводами(EI).Дляопределениявнешнихвводовважными источниками информации являются форматы экранов и диалогов ввода, а также любые другие формы ввода данных в ПС.Например,всистемахреальноговремениивстраиваемых системах необходимо учитывать вводы из других приложений или с внешних устройств, органов управления, датчиков и т. п. Приэтомтакиевводыдолжныобновлятьвнутренниелогические файлы ПС.

Элементарные процессы, в которых данные пересекают границу ПС изнутри наружу, называются внешними выводами (EO). Для определения внешних выводов важными источниками информации являются форматы экранов и диалогов вывода, формы отчетовиуведомляющихсообщений,атакжелюбыедругиеформы вывода данных в ПС. Например, в системах реального времени и

62

встраиваемыхсистемахнеобходимоучитыватьвыводынавнешние устройства,органыуправления,исполнительныемеханизмыит.п. При этом такие выводы должны сопровождаться процессами генерированиявыводимыхданныхилиуправляющейинформацией, вычислениями и т. п.

Элементарныепроцессы,вкоторыхданныепересекаютграницу ПСвобесторонывходедиалога,называютсявнешнимизапросами EQ. Для определения внешних запросов важными источниками информацииявляютсяформатыэкрановидиалоговввода-вывода, атакжелюбыедругиеформыввода-выводаданныхвПС,осуществ- ляемые в диалоговом режиме. Например, в системах реального времени и встраиваемых системах необходимо учитывать выводы на внешние устройства, органы управления, исполнительные механизмы и т. п. фиксированных данных в ответ на введенный запрос.ГлавнымотличиемвнешнихзапросовEQотвнешнихвводов EI и внешних выводов EO является то, что введенные в ПС с их помощью данные не записываются во внутренние логические файлы, а выводимая ими информация не является результатом какого-либо вычислительного процесса, а просто выбирается без всякой обработки из внутренних логических или внешних интерфейсных файлов.

Втабл. 12 представлены элементы данных для EI, EO и EQ.

Вметоде функциональных точек они могут использоваться в различных видах транзакций, относящихся к ПС, с преобладанием графического пользовательского интерфейса (GUI), например

 

 

 

 

Таблица 11

 

Весовые коэффициенты уровней сложности

 

 

 

 

 

 

Показатель

 

Уровень

 

сложности

низкий

средний

 

высокий

ILF

7

10

 

15

EIF

5

7

 

10

EI

3

4

 

6

EO

4

5

 

7

EQ

3

4

 

6

63

винформационныхсистемах,атакжевсистемахреальноговремени и встраиваемых системах [6].

Когда внешние вводы, выводы и запросы определены, оцениваетсяколичествотиповихэлементовданных(DET)иколичество типов используемых файлов (FTR).

FTR позволяют отличать внешние вводы, выводы или запросы друготдруга.ЛюбойFTRдолженбытьлибовнутреннимлогическим

Таблица 12

Элементы данных для транзакций модели функциональных точек

 

Элементы данных ПС

Транзакция

 

Системы реального

Преобладание GUI

времени и встраиваемые

 

 

 

системы

Внешний

Полявводаданных,сообще-

Программные и аппарат-

ввод

нияобошибках,вычисляе-

ные элементы управле-

 

мыезначения,радио-

ния, показания датчиков,

 

кнопки,флажки,кнопки

радиосигналы, положе-

 

управления,вводыиздругих

ния переключателей

 

приложений,подтверждаю-

и т. п.

 

щиесообщенияит.п.

 

Внешний

Поля данных в отчетах,

Световые сигналы, звуко-

вывод

заголовки полей данных

вые сигналы, сигналы

 

отчетов из внутренних ло-

на исполнительные меха-

 

гических файлов, вычисля-

низмы, переключатели,

 

емые значения, сообщения

показания индицирую-

 

об ошибках, подтвержда-

щих элементов и т. п.

 

ющие и уведомляющие

 

 

сообщения и т. п.

 

Внешний

Вводимые элементы: поля,

Вводимые элементы: про-

запрос

используемые для поиска,

граммные и аппаратные

 

управляющие кнопки

элементы управления и

 

и т. п. Выводимые элемен-

т. п. Выводимые элемен-

 

ты: отображаемые

ты: световые сигналы,

 

на экране поля, изображе-

звуковые сигналы, по-

 

ния, звуки и т. п.

казания индицирующих

 

 

элементов и т. п.

64

файлом(ILF),либовнешниминтерфейснымфайлом(EIF).Каждый внутреннийлогическийфайл,связанныйсвнешнимвводом,выводом или запросом, а также каждый внешний интерфейсный файл, связанныйсвнутреннимлогическимфайломвходеэлементарного процессаподдержкивнутреннегологическогофайла,внешнеговыводаилизапроса,принимаетсязаодинFTR.Например,чтобыубедиться, что пользователь имеет соответствующий уровень доступа, внешний ввод обновляет внутренний логический файл, но в то же времяссылаетсянафайлбезопасности,являющийсяпоотношению крассматриваемомуПСвнешниминтерфейснымфайлом.Этокак раз тот случай, когда для данного внешнего ввода необходимо учитывать два FTR.

Некоторые группы элементов данных (DET) также позволяют отличатьвнешниевводы,выводыилизапросыдруготдруга.Таким образом, можно считать, что группа DET создает элементарный процесс, называемый EI, EO или EQ.

В современных ПС наибольшее распространение получил графический пользовательский интерфейс (GUI), поэтому рассмотрим более подробно правила подсчета DET именно при его использовании [6]:

Элемент данных

Правило подсчета

 

 

Поле ввода данных

Считается одним элементом данных

Группа

Так как при каждом вводе можно выбрать только

радиокнопок

однурадиокнопку,всягруппасчитаетсяоднимэле-

 

ментом данных

Группа флажков

Таккакприкаждомвводеможновыбратьнесколько

 

флажков,каждыйфлажоксчитаетсяоднимэлемен-

 

том данных

Командная кнопка

Каждая командная кнопка, которая инициирует

 

транзакцию, считается одним элементом данных

Список

Данные списка получены в результате внешнего за-

 

просаимогутбытьэлементомданныхвнешнеговвода

Элемент графиче-

Изображение,сохраняющеесявовнутреннемлоги-

ского изображения

ческомфайлецеликом,считаетсяоднимэлементом

 

данных

65

 

Окончание

Элемент данных

Правило подсчета

 

 

Сообщение

Считаетсяоднимэлементомданныхсоответствую-

об ошибке

щейтранзакции,анеотдельнымвнешнимвыводом

 

или запросом

Подтверждающее

Считаетсяоднимэлементомданныхсоответствую-

сообщение

щейтранзакции,анеотдельнымвнешнимвыводом

 

или запросом

Уведомление

Так как уведомление использует данные из внут-

 

реннегологическогоиливнешнегоинтерфейсного

 

файлаипроизводитсяприопределенномсостоянии

 

ПС, то оно рассматривается как внешний вывод

Звуковой сигнал

Считается одним элементом данных соответству-

 

ющей транзакции

Подсчет ненормированного количества функциональных точек.

Общая формула для вычисления ненормированного количества функциональных точек (Unadjusted Function Point Count, UFPC)

UFPC = (3·LEI) + (4·AEI) + (6·HEI) + (4·LEO) +

+(5·AEO) +(7·HEO) + (7·LILF) + (10·AILF) +

+(15·HILF) + (5·LEIF) + (7·AEIF) + (10·HEIF) +

+(3·LEQ) + (4·AEQ) + (6·HEQ),

(1)

гдеUFPC–ненормированноеколичествофункциональныхточек; LEI – количество внешних входов низкого уровня сложности; AEI – количество внешних входов среднего уровня сложности; HEI – количество внешних входов высокого уровня сложности; LEO – количество внешних выходов низкого уровня сложности; AEO–количествовнешнихвыходовсреднегоуровнясложности; HEO–количествовнешнихвыходоввысокогоуровнясложности; LILF–количествовнутреннихлогическихфайловнизкогоуровня сложности; AILF – количество внутренних логических файлов среднего уровня сложности; HILF – количество внутренних логических файлов высокого уровня сложности; LEIF – количествовнешнихинтерфейсныхфайловнизкогоуровнясложности; AEIF – количество внешних интерфейсных файлов среднего

66

уровня сложности; HEIF – количество внешних интерфейсных файловвысокогоуровнясложности;LEQ–количествовнешних запросовнизкогоуровнясложности;AEQ–количествовнешних запросовсреднегоуровнясложности;HEQ–количествовнешних запросов высокого уровня сложности.

Рекурсивные поля ввода или вывода, т. е. поля, используемые одним и тем же способом многократно, считаются как один DET.

Еслиэлементуправления(команднаякнопка,например,«OK», «Next») инициирует какую-либо транзакцию, его считают одним DET. Если группа элементов управления выполняет одну и ту же функцию (транзакцию), то такую группу также учитывают как один DET.

Определение значения нормирующего фактора (VAF). Значение нормирующегофактора(VAF)определяютэкспертнымспособом, используя данные Приложения и формулы

TDI=DI;

(2)

VAF = (TDI·0,01) + 0,65.

(3)

Подсчетнормированногоколичествафункциональныхточек.Нор-

мированное количество функциональных точек определяют, используя формулу

AFP = UFP·VAF.

(4)

Следуетотметить,чтовомногихорганизацияхпроцедурунормированияколичествафункциональныхточексчитаютопциональной (необязательной).

Дляполученияокончательногорезультатаанализа,т.е.нормированного количества функциональных точек (Adjusted Function PointCount,AFP),необходимотакжеучестьрядобщихтребований к проекту, для чего полученное по формуле (1) ненормированное количество функциональных точек умножается на нормирующий фактор (Value Adjustment Factor, VAF).

Вметодефункциональныхточекнормирующийфакторопределяютвовремяанализаосновныххарактеристиксистемы(General System Characteristics, GSC), целью которого является учет

67

общесистемных требований, ограничивающих разработчиков в выборе решения и повышающих сложность разработки.

ЗначениефактораVAFзависитот14параметров,которыеопределяют системные характеристики продукта.

1.Обменданными(0–продуктпредставляетсобойавтономное приложение; 5 – продукт обменивается данными по более чем одному телекоммуникационному протоколу).

2.Распределенная обработка данных (0 – продукт не перемещает данные; 5 – распределенная обработка данных выполняется несколькими компонентами системы).

3.Производительность(0–пользовательскиетребованияпро- изводительности не установлены; 5 – время отклика ограничено для всех бизнес-операций, для удовлетворения требованиям необходимы специальные проектные решения и инструменты анализа).

4.Ограничения аппаратных ресурсов (0 – нет ограничений; 5 – продукт должен функционировать на определенном процессоре и не может быть распределен).

5.Транзакционная нагрузка (0 – транзакций немного и они распределены равномерно; 5 – число транзакций велико и неравномерно, требуются специальные решения и инструменты).

6.Интенсивность взаимодействия с пользователем (0 – все транзакции обрабатываются в пакетном режиме; 5 – более 30 % транзакций интерактивные).

7.Эргономика(эффективностьработыконечныхпользователей) (0–нетспециальныхтребований;5–требованияэффективности жесткие).

8.Интенсивностьизмененияданных(ILF)пользователями(0– не требуются; 5 – изменения интенсивные, жесткие требования восстановления).

9.Сложностьобработки(0–обработкаминимальная;5–специ- альные (или дополнительные) требования безопасности, логическая и математическая сложность, многопоточность).

10.Повторноеиспользование(0–нетребуется;5–продуктраз- рабатывается как стандартный многоразовый компонент).

68

11.Удобство инсталляции (0 – нет требований; 5 – установка

иобновление ПО производятся автоматически).

12.Удобствоадминистрирования(0–нетребуется;5–система автоматически восстанавливается).

13.Портируемость(0–продуктимееттолькооднуинсталляцию наединственномпроцессоре;5–системаявляетсяраспределенной

ипредполагается установка на различные аппаратные средства

иоперационные системы (ОС)).

14.Гибкость (0 – не требуется; 5 – гибкая система запросов и построение произвольных отчетов, модель данных изменяется пользователем в интерактивном режиме).

Четырнадцать системных параметров (Degree оf Influence, DI) оцениваются по шкале от 0 до 5 (см. Приложение).

Расчет суммарного эффекта 14 системных характеристик (Total DegreeоfInfluence,TDI)осуществляютпростымсуммированием(2).

Расчетзначенияфакторавыравниванияпроизводятпоформуле(3),аоценкуколичествафункциональныхточекдляпрограммного приложения – по формуле (4).

Размер разрабатываемого ПО рассчитывают по формуле

PP = ФТ·Кп/1000,

(5)

гдеРР–размерразрабатываемогоПО,тысячстрокусловногокода; ФТ – общее количество функциональных точек; Кп – коэффициент преобразования количества функциональных точек в строки условного кода.

Нормированноеколичествофункциональныхточекможетбыть использованодляпроведенияоценкиколичествастрокисходного кода (Source Lines of Code, SLOC) в ПС с помощью бэкфайер-ме-

тода, или метода обратного запуска (Backfire Method). Бэкфайер-метод основан на применении так называемого

языкового множителя, который представляет собой среднее количество строк исходного кода конкретного алгоритмического языка, приходящееся на одну нормированную функциональную точку. Кейперс Джонс – эксперт по метрикам ПО, глава фир-

мы «Software Productivity Research» – статистическими методами

69

определилзначенияязыковыхмножителейдлянекоторыхязыков программирования:

Язык программирования

Языковой множитель Кп

C

97

C++

50

C#

54

HTML

34

Java

53

JavaScript

47

Assembler

119

LISP

64

Visual Basic

42

SQL

21

Таким образом, если язык реализации выбран, то оценить количество строк исходного кода разрабатываемого ПС можно умножениемнормированногоколичествафункциональныхточек на соответствующий языковой множитель:

SLOC = AFP·Кп,

(6)

гдеКп –языковоймножительязыкапрограммирования,коэффи- циентпреобразованияколичествафункциональныхточеквстроки условного кода.

Трудоемкость определяют по формуле

OTp= A PPB П7

MT,

(7)

i=1

i

 

где ОТр – общая трудоемкость, чел.-мес; РР – размер разрабатываемого ПО, тысяч строк условного кода; МТi i-й коэффициент трудоемкости; А = 5,17; B = 0,94.

При определении трудозатрат на разработку ПО используют коэффициенты трудоемкости (табл. 13).

Общаяцельанализапометодуфункциональныхточек–подсчет ихнормированногоколичества.Этотпроцессвключаетвсебяпять шагов:

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]