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
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
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.
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
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.
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
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
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.
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.
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.
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
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.
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
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
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
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.
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
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
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
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.
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
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
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.
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.
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