background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

Pomiar funkcjonalności 

Pomiar funkcjonalności 

oprogramowania

oprogramowania

KRZYSZTOF WYRZYKOWSKI

KRZYSZTOF WYRZYKOWSKI

S3131

S3131

Gr.522

Gr.522

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

Wstęp

Wstęp

W 1979 roku Alan Albrecht opracował metodę 
punktów funkcyjnych ( P F ). Opracowana przez 
Albrechta metoda  jest od roku 1984 rozwijana 
przez międzynarodową grupę użytkowników 
metody punktów funkcyjnych ( IFPUG ). Ideą tej 
metody jest określenie rozmiaru funkcjonalnego 
oprogramowania, z punktu widzenia 
użytkownika, niezależnie od technologii użytej 
do jego wykonania.   

 Podstawowe terminy :

FPA – Function Point Analisys

IFPUG – International Function Point Users 

Group

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

Co nieco o IFPUG

Co nieco o IFPUG

IFPUG jest organizacją ,która 

IFPUG jest organizacją ,która 

aktywnie przyczynia się do 

aktywnie przyczynia się do 

usprawniania metody FPA. 

usprawniania metody FPA. 

Propagowana, oraz aktywnie 

Propagowana, oraz aktywnie 

rozwijana znajduje zastosowanie na 

rozwijana znajduje zastosowanie na 

całym świecie. IFPUG zajmuje się 

całym świecie. IFPUG zajmuje się 

obecnie głównie opracowywaniem 

obecnie głównie opracowywaniem 

oraz publikacją nowych podręczników 

oraz publikacją nowych podręczników 

z kolejnymi wersjami FPA.

z kolejnymi wersjami FPA.

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

Obecnie metoda FPA jest najbardziej 

Obecnie metoda FPA jest najbardziej 

popularną metodą służącą do określania 

popularną metodą służącą do określania 

rozmiaru oprogramowania. Poza nią 

rozmiaru oprogramowania. Poza nią 

można wymienić także:

można wymienić także:

1.

1.

MkII FPA- Mark II FPA, nad której 

MkII FPA- Mark II FPA, nad której 

rozwojem czuwa United Kingdom 

rozwojem czuwa United Kingdom 

Software Association

Software Association

2.

2.

FPP – Full Functional Point, pod 

FPP – Full Functional Point, pod 

patronatem Common Software 

patronatem Common Software 

Measurment International Consorcium 

Measurment International Consorcium 

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

Co nieco o procesie…

Co nieco o procesie…

   

   

Metoda FPA służy do szacowania 

Metoda FPA służy do szacowania 

funkcjonalności oprogramowania zarówno 

funkcjonalności oprogramowania zarówno 

w przypadku nowych jak i gotowych 

w przypadku nowych jak i gotowych 

projektów (modernizacja). Poprawnie 

projektów (modernizacja). Poprawnie 

stosowany proces FPA składa się z sześciu 

stosowany proces FPA składa się z sześciu 

kroków.

kroków.

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

 

 

Zdefiniowanie typu procesu liczenia punktów 

Zdefiniowanie typu procesu liczenia punktów 

funkcyjnych.

funkcyjnych.

Identyfikacja zakresu analizy i granic aplikacji.

Identyfikacja zakresu analizy i granic aplikacji.

Wyliczenie punktów funkcyjnych dla danych.

Wyliczenie punktów funkcyjnych dla danych.

Wyliczenie punktów funkcyjnych dla transakcji.

Wyliczenie punktów funkcyjnych dla transakcji.

Obliczenie współczynnika dopasowania wartości

Obliczenie współczynnika dopasowania wartości

Wyliczenie końcowej wartości punktów 

Wyliczenie końcowej wartości punktów 

funkcyjnych

funkcyjnych

Analiza punktów funkcyjnych

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

1.Typy zliczania punktów

1.Typy zliczania punktów

1) Dla nowych projektów, kiedy wszelkich 

ocen dokonuje się na podstawie wymagań 
funkcjonalnych przedstawionych przez 
końcowego użytkownika oraz wymagań co 
do konwersji danych.

2) Dotyczy przypadku modyfikacji 

istniejącego oprogramowania, polegającej 
na zmianie funkcjonalności

3) Pomiar istniejącej, pracującej aplikacji

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

2.Identyfikacja zakresu 

2.Identyfikacja zakresu 

analizy

analizy

Zakres analizy określa funkcjonalność, która podlega 

oszacowaniu. Według IFPUG istnieją następujące 

zasady dotyczące wyznaczania granic programu:
1) Granica zależy głównie od punktu widzenia i 

potrzeb użytkownika. Użytkownik powinien określić 

zakres i funkcjonalność.
2) Granice pomiędzy współpracującymi aplikacjami 

powinny zależeć od ich funkcjonalności, nie od 

ograniczeń technologicznych.
3) Ustanowiona granica powinna być niezależna od 

zakresu analizy, z wyjątkiem takich niektórych zmian 

funkcjonalności, których dodanie lub usunięcie 

spowoduje zmianę granicy aplikacji.

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

3.Wyliczanie punktów 

3.Wyliczanie punktów 

funkcyjnych dla danych

funkcyjnych dla danych

Na tym etapie należy zidentyfikować wszystkie 

logiczne zbiory danych aplikacji (ILF i EIF) oraz 

oszacować ich kompletność. Następnie trzeba 

wyliczyć liczbę nieuzgodnionych punktów 

funkcyjnych dla wszystkich ILF i EIF.

ILF (an internal logical file) – grupa logicznie powiązanych 

danych, wymaganych, określonych przez użytkownika lub 

danych kontrolnych utrzymywanych i działających  w 

granicach danej aplikacji. Dane kontrolne to dane 

niezbędne do sterowania procesami aplikacji.
EIF (an external interface file) - określona przez 

użytkownika grupa logicznie powiązanych danych lub 

informacji kontrolnych odnoszących się do aplikacji, lecz 

utrzymywanych w granicach innej aplikacji.

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

3.1 Wyliczanie punktów 

3.1 Wyliczanie punktów 

funkcyjnych dla danych ( 2 ) 

funkcyjnych dla danych ( 2 ) 

Dla każdego ILF i EIF należy wyznaczyć liczbę 

elementów danych (DET) oraz liczbę elementów 

rekordów (RET).

RET (a record element type) – to podgrupa 

danych w ILF lub EIF określona przez użytkownika, 

może być opcjonalna lub obowiązkowa. 

DET (a data element type) – to unikalne, 

określone przez użytkownika, nie powtarzające 

się pole w ILF lub EIF. 

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

3.2 Reguły wyznaczania

3.2 Reguły wyznaczania

Reguły wyznaczania RET:

licz jako RET każdą podgrupę danych ILF lub EIF
jeśli nie można wydzielić podgrup należy każdy ILF i EIF 

policzyć jako jeden RET

Reguły obliczania DET:

jako DET należy liczyć każde unikalne, zidentyfikowane 

przez użytkownika pole, będące elementem ILF lub EIF
jeśli dwie aplikacje korzystają z tych samych wewnętrznych 

(ILF) lub zewnętrznych (EIF) logicznych zbiorów danych ale 

odwołują się inaczej do podgrup danych to liczbę DET 

należy liczyć stosownie do każdej aplikacji
każda grupa danych, która umożliwia relację z innym ILF lub 

EIF musi zostać policzona jako jeden DET

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

3.3 Złożoność ILF oraz EIF

3.3 Złożoność ILF oraz EIF

Po obliczeniu dokładnej liczby RET i 

DET określa się poziom  tzw. 
„funkcjonalnej kompletności” dla 
każdego ILF oraz EIF.

Do określenia służy tabela 

przedstawiona przez IFPUG.

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

3.4 Tabele kompletności

3.4 Tabele kompletności

1 – 19

1 – 19

20 – 50

20 – 50

 

 

>= 51

>= 51

1

1

Niski

Niski

Niski

Niski

Średni

Średni

2-5

2-5

Niski

Niski

Średni

Średni

Wysoki

Wysoki

>=6

>=6

Średni

Średni

Wysoki

Wysoki

Wysoki

Wysoki

RET

DET

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

3.5 Liczba PF

3.5 Liczba PF

Na podstawie wyznaczonego poziomu 

funkcjonalnej kompletności wyznacza 
się ilość punktów funkcyjnych, 
przypadających na każdy ILF i EIF, 
zgodnie z tabelą IFPUG

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

3.6 Tabela PF dla EIF i ILF

3.6 Tabela PF dla EIF i ILF

Niski

Niski

Średni

Średni

Wysoki

Wysoki

EIF

EIF

5

5

7

7

10

10

ILF

ILF

7

7

10

10

15

15

O wyniku decyduje suma punktów funkcyjnych przypadająca na każdy EIF oraz ILF

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

4. Wyliczanie PF dla transakcji 

4. Wyliczanie PF dla transakcji 

przetwarzających dane

przetwarzających dane

Podczas wyliczania PF określamy funkcje transakcyjne, czyli EI, EO, EQ oraz ich 

„kompletności” ,a następnie wyliczamy liczbę punktów funkcyjnych dla każdej z 

funkcji oddzielnie ( ponownie korzystamy z tabel IFPUG)

EI (external inputs) – to proces elementarny, któremu są poddawane dane lub dane 

kontrolne przychodzące spoza granic aplikacji. Podstawowym celem EI jest 

działanie na/z jednym lub więcej ILF zmieniając jego dane lub/i zachowanie 

systemu.

EO (external outputs) – to proces elementarny, który wysyła dane lub dane 

kontrolne poza granice aplikacji. Podstawowym celem EO jest prezentacja 
informacji użytkownikowi w procesie wyszukiwania tychże. Proces powinien 
zawierać przynajmniej formułę lub wzór matematyczny wyliczający wartość 
danych lub generować wyprowadzane dane. EO może również działać na/z 
jednym lub więcej ILF zmieniając jego dane lub/i zachowanie systemu.

EQ (external inquiry) - to proces elementarny, który wysyła dane lub dane kontrolne 

poza granice aplikacji. Podstawowym celem EQ jest prezentacja informacji 
użytkownikowi poprzez wyszukanie danych z ILF lub EIF, ale bez korzystania ze 
wzorów matematycznych oraz bez generowania danych. W trakcie działania EQ 
nie może nastąpić modyfikacja ILF i zmiana zachowania systemu.

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

4.2 Parametry FTR oraz DET

4.2 Parametry FTR oraz DET

Aby wyznaczyć poziom funkcjonalnej 

kompletności funkcji transakcyjnych 
trzeba wcześniej obliczyć wartość 
FTR i DET.

FTR (a file type referenced) to inaczej:
1) ILF czytany lub modyfikowany przez funkcję transakcyjną
2) EIF, z którego odczytujemy informacje

Reguły liczenia FTR są następujące:
1) Licz każdy modyfikowany ILF jako jeden FTR
2) Każdy czytany ILF i EIF licz jako jeden FTR
3) Każdy plik licz tylko raz

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

4.3 Złożoność EI, EO, EQ

4.3 Złożoność EI, EO, EQ

Na podstawie wyznaczonych liczb FTR i DET, 

wyznacza się poziom funkcjonalnej 
kompletności wg tabeli:

1 - 4

1 - 4

5 - 15

5 - 15

>=16

>=16

1 - 5

1 - 5

6 - 19

6 - 19

>=20

>=20

0 –1

0 –1

0 – 1

0 – 1

niski

niski

niski

niski

średni

średni

2

2

2 – 3

2 – 3

niski

niski

średni

średni

wysoki

wysoki

>=3

>=3

>=4

>=4

średni

średni

wysoki

wysoki

wysoki

wysoki

FTR

DET

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

4.4 Liczba punktów 

4.4 Liczba punktów 

funkcyjnych

funkcyjnych

Gdy znamy  już kompletność funkcji 
transakcyjnych, można wyznaczyć ilość PF

niski

niski

średni

średni

wysoki

wysoki

EI, EQ

EI, EQ

3

3

4

4

6

6

EO

EO

4

4

5

5

7

7

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

5. Obliczenie współczynnika 

5. Obliczenie współczynnika 

dopasowania wartości VAF

dopasowania wartości VAF

VAF (the value adjustment factor) – 
jest oparty na 14  charakterystykach 
GSC, których zadaniem jest 
oszacowanie funkcjonalności liczonej 
aplikacji. 
GSC to kompedium zawierające zbiór 
pytań, które pozwalają na całkowite 
oszacowanie złożoności systemu, 
poprzez określenie pewnych cech.

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

5.1. W

5.1. W

spółczynnik 

spółczynnik 

dopasowania wartości

dopasowania wartości

Aby obliczyć współczynnik dopasowania 

wartości należy:
1) Oszacować każdą z 14 charakterystyk, 

wynik natomiast umieść na skali od 1 do 5, co 

odpowiada określeniu tzw. stopnia wpływu DI
2) Policzyć całkowity stopień wpływu TDI 

sumując i dodać do nich wynik z punktu 1.
3) Następnie policzyć VAF, korzystając z 

gotowego wzoru:

VAF = (TDI * 0,01) + 0,65

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

6.Obliczanie końcowej ilości 

6.Obliczanie końcowej ilości 

punktów funkcyjnych

punktów funkcyjnych

W zależności od typu zliczania punktów ( przyjętym 

w punkcie pierwszym) wyliczamy końcowe PF 

według trzech wzorów:

Projekt nowego systemu:

DFP = (UFP + CFP) * VAF

Modyfikacja systemu:

EFP = [(ADD + CHGA + CFP) * VAFA] + DEL * (VAFB)

Wymiarowanie istniejącego systemu:

Wymiarowanie istniejącego systemu:

AFP = AD * VAF

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

6.1 Zmienne

6.1 Zmienne

DFP (development project function point count) - całkowita liczba punktów 

funkcyjnych dla nowego projektu
UFP (unadjusted function point) – nieuzgodniona liczba punktów 

funkcyjnych dla funkcjonalności aplikacji, dostępnej dla użytkownika 

końcowego po instalacji
CFP (conversion function point) – nieuzgodniona liczba punktów 

funkcyjnych wynikająca z konwersji danych
EFP (enhancement project function point) – końcowa wartość punktów 

funkcyjnych w wypadku modyfikacji aplikacji.
ADD - nieuzgodniona liczba punktów funkcyjnych odzwierciedlająca te 

funkcje, które będą dodane w procesie modyfikacji.
CHGA - nieuzgodniona liczba punktów funkcyjnych liczona dla modyfikacji 

istniejących funkcji.
VAFA – współczynnik VAF liczony po modyfikacji.
DEL - nieuzgodniona liczba punktów funkcyjnych odzwierciedlająca te 

funkcje, które będą usunięte w procesie modyfikacji.
VAFB - współczynnik VAF liczony przed modyfikacji
AFP – końcowa wartość punktów funkcyjnych
AD - nieuzgodniona liczba punktów funkcyjnych wynikająca z 

funkcjonalności aplikacji, dostępnej dla użytkownika końcowego.

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

Zalety FPA

Zalety FPA

 Możliwość stosowana bez względu na sposób 

implementacji.

 Można stosować ją do szacowania całych 

systemów lub tylko poszczególnych modułów.

 Jest stosowana do szacowania nowego 

oprogramowania jak i modernizacji istniejącego

 Jest to metoda bardzo popularna, a więc wiele 

narzędzi programistycznych na FPA bazuje.

background image

FPA - The Function Point Analysis

FPA - The Function Point Analysis

Wady FPA

Wady FPA

-poprawne wyliczenie punktów   funkcyjnych 

wymaga dużo czasu, więc jest dość 

kosztowne
-nie jest stosowana automatyzacja FPA
-wyniki obliczeń dla systemów mniejszych 

niż 15 FP, mogą być niereprezentatywne
-brak powiązań między standardem IFPUG a 

innymi wersjami FPA
-FPA jest metodą zakładającą tzw „górny 

limit złożoności” – brak efektywności w 

systemach o dużych encjach


Document Outline