Основные положения метода функциональных точек 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основные положения метода функциональных точек



Метод функциональных точек был впервые предложен в 1983 г. Аланом Альбрехтом (Allan Albrecht) и на данный момент является основной технологией для оценки функционального размера как уже готовых, так и находящихся на стадии проектирования ПС.

Функциональные точки являются мерой функциональности, т.е. полезности ПС с позиции пользователя. Общая функциональность определяется и измеряется путем:

· анализа логических групп данных, которые используются и поддерживаются ПС и характеризуют, по сути, функциональность данных;

· анализа вводимой и выводимой пользователем информации, т.е. функциональности совершаемых транзакций.

Таким образом, общая функциональность является суммой двух составляющих, как это показано на рис. 4.1:

Функциональность = Функциональность Данных + Функциональность Транзакций

Рис. 4.1. Функциональность ПС

 

Измерение функциональности необходимо начинать с определения границ ПС.

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

· Внутренний логический файл (ILF - Internal Logical File)– логически связанная группа данных, определяемая пользователем и находящаяся внутри границ ПС, как показано на рис. 4.2 а);

· Внешний интерфейсный файл (EIF - External Interface File) – логически связанная группа данных, обеспечивающая ПС информацией, но лежащая за его пределами и поддерживаемая другим ПС, как показано на рис. 4.2 б).

а) внутренние логические файлы; б) внешние интерфейсные файлы

Рис. 4.2. Функциональность данных ПС:

 

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

· Внешний ввод (EI - External Input) – процесс ввода данных и управляющей информации в ПС, как показано на рис. 4.3 а). Управляющая информация необходима для правильной обработки данных. Данные, поступающие на вход ПС, используются для поддержания внутреннего логического файла. Обычно, процессы вида EI используются для добавления, изменения или удаления информации;

· Внешний вывод (EO - External Output) – процесс, генерирующий данные или управляющую информацию, которые поступают на выход ПС, как показано на рис. 4.3 б). Обычно процесс вида EO представляет собой формирование различных экранов, отчетов, сообщений;

· Внешний запрос (EQ - External Inquiry) – диалоговый ввод, который приводит к немедленному ответу ПС в форме диалогового вывода, как показано на рис. 4.3 в). При этом диалоговый ввод в самом ПС не сохраняется, а диалоговый вывод не требует выполнения вычислений. В этом заключается главное отличие EQ от EI и EO.

Каждой из выявленных характеристик функциональности ПС (EI, EO, EQ, ILF, или EIF) ставится в соответствие низкий, средний или высокий уровень сложности, а затем присваивается некоторая числовая оценка.

а) внешний ввод; б) внешний вывод; в) внешний запрос

Рис. 4.3. Функциональность транзакций ПС:

 

Для внешних и внутренних файлов (ILF и EIF) сложность определяется и ранжируется при помощи количества типов элементов записей (RET - Record Element Types) и количества типов элементов данных (DET – Data Element Types), входящих в соответствующие логические группы данных. При этом под количеством RET понимается количество различных форматов записей, используемых в данном файле, а под количеством DET - количество различных полей в записях.

Уровни сложности для внутренних и внешних файлов (ILF и EIF) в зависимости от количества RET и DET приведены в табл. 4.1.

Таблица 4.1 Уровни сложности для внутренних и внешних файлов (ILF и EIF)

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

Таблица 4.2 Уровни сложности для внешних входов (EI)

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

Таблица 4.3 Уровни сложности для внешних выходов (EO)

Уровни сложности для внешних запросов (EQ) определяются с использованием следующего простого алгоритма:

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

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

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

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

Таблица 4.4. Весовые коэффициенты уровней сложности

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

UFPC - ненормированное количество функциональных точек;

LEI - количество внешних входов низкого уровня сложности;

AEI - количество внешних входов среднего уровня сложности,

HEI - количество внешних входов высокою уровня сложности,

LEO - количество внешних выходов низкого уровня сложности;

AEO - количество внешних выходов среднего уровня сложности,

HEO - количество внешних выходов высокого уровня сложности,

LILF - количество внутренних логических файлов низкого уровня сложности,

AILF - количество внутренних логических файлов среднего уровня сложности;

HILF - количество внутренних логических файлов высокого уровня сложности,

LEIF - количество внешних интерфейсных файлов низкого уровня сложности,

AEIF - количество внешних интерфейсных файлов среднего уровня сложности,

HEIF - количество внешних интерфейсных файлов высокого уровня сложности;

LEQ - количество внешних запросов низкого уровня сложности,

AEQ - количество внешних запросов среднего уровня сложности,

HEQ - количество внешних запросов высокого уровня сложности.

 

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

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

Таблица 4.5 Основные характеристики системы (GSC)

Каждая из приведенных в табл. 4.5. характеристик системы оценивается экспертным способом числом от 0 (если она не присутствует или не имеет значения для данного ПС) до 5 (если она имеет очень сильное влияние на данное ПС). Значения всех 14 характеристик суммируются для получения итоговой степени влияния (TDI - Total Degree of Influence). Нормирующий фактор (VAF) рассчитывается по формуле

. (4.2)

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

. (4.3)

В дальнейшем нормированное количество функциональных точек может быть использовано для получения оценки количества строк исходного кода (SLOC – Source Lines o Code) в ПС при помощи бэкфайер-метода или метода обратного запуска (Backfire Method).

Бэкфайер-метод основан на использовании так называемого «языкового множителя», который представляет собой среднее количество строк исходного кода конкретного алгоритмического языка, приходящееся на одну нормированную функциональную точку. Кейперс Джонс (Capers Jones) – эксперт по метрикам ПО, глава фирмы Software Productivity Research, статистическими методами определил значения «языковых множителей» для основных языков программирования, которые приведены в табл. 4.6. Таким образом, если язык реализации выбран, то можно оценить количество строк исходного кода разрабатываемого ПС путем умножения нормированного количества функциональных точек на соответствующий языковой множитель

, (4.4)

где LM - языковой множитель языка программирования.

Таблица 4.6 Значение языкового множителя для метода обратного запуска

Язык программирования Языковой множитель
Ada 83  
Ada9X  
Algol  
ANSICobol85  
APL  
Assembly -Basic  
Assembly -Macro  
Basic - Compiled  
Basic - Interpreted  
С  
C++  
CMS2  
Database  
First generation  
Forth  
Fortran 77  
Generators  
Jovial  
Lisp 64
Modula 2  
Pascal  
PL/1  
Prolog  
Quick Basic  
Screen painters  
Smalltalk  
Spreadsheets  
SQL  
Visual Basic (v3)  
Visual Basic (v4) Visual  
Basic (v5)  

 



Поделиться:


Последнее изменение этой страницы: 2017-02-09; просмотров: 793; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.81.166 (0.014 с.)