Pomiar funkcjonalności Pomiar funkcjonalności
oprogramowania oprogramowania
KRZYSZTOF WYRZYKOWSKI KRZYSZTOF WYRZYKOWSKI
S3131 S3131
Gr.522
Gr.522
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
Co nieco o IFPUG Co nieco o IFPUG
IFPUG jest organizacją ,która aktywnie IFPUG jest organizacją ,która aktywnie przyczynia się do usprawniania metody przyczynia się do usprawniania metody
FPA. Propagowana, oraz aktywnie FPA. Propagowana, oraz aktywnie
rozwijana znajduje zastosowanie na całym rozwijana znajduje zastosowanie na całym
świecie. IFPUG zajmuje się obecnie świecie. IFPUG zajmuje się obecnie
głównie opracowywaniem oraz publikacją głównie opracowywaniem oraz publikacją
nowych podręczników z kolejnymi nowych podręczników z kolejnymi
wersjami FPA.
wersjami FPA.
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ą można rozmiaru oprogramowania. Poza nią można
wymienić także:
wymienić także:
1.1. MkII FPA- Mark II FPA, nad której rozwojem MkII FPA- Mark II FPA, nad której rozwojem czuwa United Kingdom Software Association czuwa United Kingdom Software Association 2.2. FPP – Full Functional Point, pod patronatem FPP – Full Functional Point, pod patronatem
Common Software Measurment International Common Software Measurment International
Consorcium Consorcium
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 w funkcjonalności oprogramowania zarówno w przypadku nowych jak i gotowych projektów przypadku nowych jak i gotowych projektów
(modernizacja). Poprawnie stosowany proces (modernizacja). Poprawnie stosowany proces
FPA składa się z sześciu kroków.
FPA składa się z sześciu kroków.
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
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
2.Identyfikacja zakresu analizy 2.Identyfikacja zakresu 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.
3.Wyliczanie punktów funkcyjnych 3.Wyliczanie punktów funkcyjnych
dla danych 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.
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.
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
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.
3.4 Tabele kompletności 3.4 Tabele kompletności
1 – 19
1 – 19 20 – 5020 – 50 >= 51>= 51 11 NiskiNiski NiskiNiski ŚredniŚredni 2-52-5 NiskiNiski ŚredniŚredni WysokiWysoki
>=6
>=6 ŚredniŚredni WysokiWysoki WysokiWysoki
DETRET
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
3.6 Tabela PF dla EIF i ILF 3.6 Tabela PF dla EIF i ILF
Niski
Niski ŚredniŚredni WysokiWysoki
EIFEIF 55 77 1010
ILFILF 77 1010 1515
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
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
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 - 155 - 15 >=16>=16 1 - 5
1 - 5 6 - 196 - 19 >=20>=20 0 –10 –1 0 – 10 – 1 niskiniski niskiniski średniśredni
22 2 – 32 – 3 niskiniski średniśredni wysokiwysoki
FTR DET
4.4 Liczba punktów funkcyjnych 4.4 Liczba punktów funkcyjnych
Gdy znamy już kompletność funkcji
transakcyjnych, można wyznaczyć ilość PF niski
niski średniśredni wysokiwysoki EI, EQ
EI, EQ 33 44 66
EOEO 44 55 77
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.
5.1. W
5.1. W spółczynnik dopasowania spółczynnik dopasowania wartości
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
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
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.
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.
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