Title: Pomiar funkcjonalnosci oprogramowania
1Pomiar funkcjonalnosci oprogramowania
- KRZYSZTOF WYRZYKOWSKI
- S3131
- Gr.522
2Wstep
W 1979 roku Alan Albrecht opracowal metode
punktów funkcyjnych ( P F ). Opracowana przez
Albrechta metoda jest od roku 1984 rozwijana
przez miedzynarodowa grupe uzytkowników metody
punktów funkcyjnych ( IFPUG ). Idea tej metody
jest okreslenie rozmiaru funkcjonalnego
oprogramowania, z punktu widzenia uzytkownika,
niezaleznie od technologii uzytej do jego
wykonania.
Podstawowe terminy FPA Function Point
Analisys IFPUG International Function Point
Users Group
3Co nieco o IFPUG
- IFPUG jest organizacja ,która aktywnie przyczynia
sie do usprawniania metody FPA. Propagowana, oraz
aktywnie rozwijana znajduje zastosowanie na calym
swiecie. IFPUG zajmuje sie obecnie glównie
opracowywaniem oraz publikacja nowych
podreczników z kolejnymi wersjami FPA.
4- Obecnie metoda FPA jest najbardziej popularna
metoda sluzaca do okreslania rozmiaru
oprogramowania. Poza nia mozna wymienic takze - MkII FPA- Mark II FPA, nad której rozwojem czuwa
United Kingdom Software Association - FPP Full Functional Point, pod patronatem
Common Software Measurment International
Consorcium
5Co nieco o procesie
- Metoda FPA sluzy do szacowania funkcjonalnosci
oprogramowania zarówno w przypadku nowych jak i
gotowych projektów (modernizacja). Poprawnie
stosowany proces FPA sklada sie z szesciu kroków.
6Analiza punktów funkcyjnych
- Zdefiniowanie typu procesu liczenia punktów
funkcyjnych. - Identyfikacja zakresu analizy i granic aplikacji.
- Wyliczenie punktów funkcyjnych dla danych.
- Wyliczenie punktów funkcyjnych dla transakcji.
- Obliczenie wspólczynnika dopasowania wartosci
- Wyliczenie koncowej wartosci punktów funkcyjnych
71.Typy zliczania punktów
- Dla nowych projektów, kiedy wszelkich ocen
dokonuje sie na podstawie wymagan funkcjonalnych
przedstawionych przez koncowego uzytkownika oraz
wymagan co do konwersji danych. - Dotyczy przypadku modyfikacji istniejacego
oprogramowania, polegajacej na zmianie
funkcjonalnosci - Pomiar istniejacej, pracujacej aplikacji
82.Identyfikacja zakresu analizy
- Zakres analizy okresla funkcjonalnosc, która
podlega oszacowaniu. Wedlug IFPUG istnieja
nastepujace zasady dotyczace wyznaczania granic
programu - 1) Granica zalezy glównie od punktu widzenia i
potrzeb uzytkownika. Uzytkownik powinien okreslic
zakres i funkcjonalnosc. - 2) Granice pomiedzy wspólpracujacymi aplikacjami
powinny zalezec od ich funkcjonalnosci, nie od
ograniczen technologicznych. - 3) Ustanowiona granica powinna byc niezalezna od
zakresu analizy, z wyjatkiem takich niektórych
zmian funkcjonalnosci, których dodanie lub
usuniecie spowoduje zmiane granicy aplikacji.
93.Wyliczanie punktów funkcyjnych dla danych
- Na tym etapie nalezy zidentyfikowac wszystkie
logiczne zbiory danych aplikacji (ILF i EIF) oraz
oszacowac ich kompletnosc. Nastepnie trzeba
wyliczyc liczbe nieuzgodnionych punktów
funkcyjnych dla wszystkich ILF i EIF. - ILF (an internal logical file) grupa logicznie
powiazanych danych, wymaganych, okreslonych przez
uzytkownika lub danych kontrolnych utrzymywanych
i dzialajacych w granicach danej aplikacji. Dane
kontrolne to dane niezbedne do sterowania
procesami aplikacji. - EIF (an external interface file) - okreslona
przez uzytkownika grupa logicznie powiazanych
danych lub informacji kontrolnych odnoszacych sie
do aplikacji, lecz utrzymywanych w granicach
innej aplikacji.
103.1 Wyliczanie punktów funkcyjnych dla danych ( 2
)
- Dla kazdego ILF i EIF nalezy wyznaczyc liczbe
elementów danych (DET) oraz liczbe elementów
rekordów (RET). - RET (a record element type) to podgrupa danych
w ILF lub EIF okreslona przez uzytkownika, moze
byc opcjonalna lub obowiazkowa. - DET (a data element type) to unikalne,
okreslone przez uzytkownika, nie powtarzajace sie
pole w ILF lub EIF.
113.2 Reguly wyznaczania
- Reguly wyznaczania RET
- licz jako RET kazda podgrupe danych ILF lub EIF
- jesli nie mozna wydzielic podgrup nalezy kazdy
ILF i EIF policzyc jako jeden RET - Reguly obliczania DET
- jako DET nalezy liczyc kazde unikalne,
zidentyfikowane przez uzytkownika pole, bedace
elementem ILF lub EIF - jesli dwie aplikacje korzystaja z tych samych
wewnetrznych (ILF) lub zewnetrznych (EIF)
logicznych zbiorów danych ale odwoluja sie
inaczej do podgrup danych to liczbe DET nalezy
liczyc stosownie do kazdej aplikacji - kazda grupa danych, która umozliwia relacje z
innym ILF lub EIF musi zostac policzona jako
jeden DET
123.3 Zlozonosc ILF oraz EIF
- Po obliczeniu dokladnej liczby RET i DET okresla
sie poziom tzw. funkcjonalnej kompletnosci dla
kazdego ILF oraz EIF. - Do okreslenia sluzy tabela przedstawiona przez
IFPUG.
133.4 Tabele kompletnosci
1 19 20 50 gt 51
1 Niski Niski Sredni
2-5 Niski Sredni Wysoki
gt6 Sredni Wysoki Wysoki
RET
DET
143.5 Liczba PF
- Na podstawie wyznaczonego poziomu funkcjonalnej
kompletnosci wyznacza sie ilosc punktów
funkcyjnych, przypadajacych na kazdy ILF i EIF,
zgodnie z tabela IFPUG
153.6 Tabela PF dla EIF i ILF
Niski Sredni Wysoki
EIF 5 7 10
ILF 7 10 15
O wyniku decyduje suma punktów funkcyjnych
przypadajaca na kazdy EIF oraz ILF
164. Wyliczanie PF dla transakcji przetwarzajacych
dane
- Podczas wyliczania PF okreslamy funkcje
transakcyjne, czyli EI, EO, EQ oraz ich
kompletnosci ,a nastepnie wyliczamy liczbe
punktów funkcyjnych dla kazdej z funkcji
oddzielnie ( ponownie korzystamy z tabel IFPUG) - EI (external inputs) to proces elementarny,
któremu sa poddawane dane lub dane kontrolne
przychodzace spoza granic aplikacji. Podstawowym
celem EI jest dzialanie na/z jednym lub wiecej
ILF zmieniajac jego dane lub/i zachowanie
systemu. - EO (external outputs) to proces elementarny,
który wysyla dane lub dane kontrolne poza granice
aplikacji. Podstawowym celem EO jest prezentacja
informacji uzytkownikowi w procesie wyszukiwania
tychze. Proces powinien zawierac przynajmniej
formule lub wzór matematyczny wyliczajacy wartosc
danych lub generowac wyprowadzane dane. EO moze
równiez dzialac na/z jednym lub wiecej ILF
zmieniajac jego dane lub/i zachowanie systemu. - EQ (external inquiry) - to proces elementarny,
który wysyla dane lub dane kontrolne poza granice
aplikacji. Podstawowym celem EQ jest prezentacja
informacji uzytkownikowi poprzez wyszukanie
danych z ILF lub EIF, ale bez korzystania ze
wzorów matematycznych oraz bez generowania
danych. W trakcie dzialania EQ nie moze nastapic
modyfikacja ILF i zmiana zachowania systemu.
174.2 Parametry FTR oraz DET
- Aby wyznaczyc poziom funkcjonalnej kompletnosci
funkcji transakcyjnych trzeba wczesniej obliczyc
wartosc FTR i DET.
FTR (a file type referenced) to inaczej 1) ILF
czytany lub modyfikowany przez funkcje
transakcyjna 2) EIF, z którego odczytujemy
informacje Reguly liczenia FTR sa
nastepujace 1) Licz kazdy modyfikowany ILF jako
jeden FTR 2) Kazdy czytany ILF i EIF licz jako
jeden FTR 3) Kazdy plik licz tylko raz
184.3 Zlozonosc EI, EO, EQ
- Na podstawie wyznaczonych liczb FTR i DET,
wyznacza sie poziom funkcjonalnej kompletnosci wg
tabeli
1 - 4 5 - 15 gt16
1 - 5 6 - 19 gt20
0 1 0 1 niski niski sredni
2 2 3 niski sredni wysoki
gt3 gt4 sredni wysoki wysoki
DET
FTR
194.4 Liczba punktów funkcyjnych
- Gdy znamy juz kompletnosc funkcji
transakcyjnych, mozna wyznaczyc ilosc PF
niski sredni wysoki
EI, EQ 3 4 6
EO 4 5 7
205. Obliczenie wspólczynnika dopasowania wartosci
VAF
- VAF (the value adjustment factor) jest oparty
na 14 charakterystykach GSC, których zadaniem
jest oszacowanie funkcjonalnosci liczonej
aplikacji. - GSC to kompedium zawierajace zbiór pytan, które
pozwalaja na calkowite oszacowanie zlozonosci
systemu, poprzez okreslenie pewnych cech.
215.1. Wspólczynnik dopasowania wartosci
- Aby obliczyc wspólczynnik dopasowania wartosci
nalezy - 1) Oszacowac kazda z 14 charakterystyk, wynik
natomiast umiesc na skali od 1 do 5, co odpowiada
okresleniu tzw. stopnia wplywu DI - 2) Policzyc calkowity stopien wplywu TDI sumujac
i dodac do nich wynik z punktu 1. - 3) Nastepnie policzyc VAF, korzystajac z
gotowego wzoru - VAF (TDI 0,01) 0,65
226.Obliczanie koncowej ilosci punktów funkcyjnych
- W zaleznosci od typu zliczania punktów (
przyjetym w punkcie pierwszym) wyliczamy koncowe
PF wedlug trzech wzorów - Projekt nowego systemu
- DFP (UFP CFP) VAF
- Modyfikacja systemu
- EFP (ADD CHGA CFP) VAFA DEL (VAFB)
- Wymiarowanie istniejacego systemu
- AFP AD VAF
236.1 Zmienne
- DFP (development project function point count) -
calkowita liczba punktów funkcyjnych dla nowego
projektu - UFP (unadjusted function point) nieuzgodniona
liczba punktów funkcyjnych dla funkcjonalnosci
aplikacji, dostepnej dla uzytkownika koncowego po
instalacji - CFP (conversion function point) nieuzgodniona
liczba punktów funkcyjnych wynikajaca z konwersji
danych - EFP (enhancement project function point)
koncowa wartosc punktów funkcyjnych w wypadku
modyfikacji aplikacji. - ADD - nieuzgodniona liczba punktów funkcyjnych
odzwierciedlajaca te funkcje, które beda dodane w
procesie modyfikacji. - CHGA - nieuzgodniona liczba punktów funkcyjnych
liczona dla modyfikacji istniejacych funkcji. - VAFA wspólczynnik VAF liczony po modyfikacji.
- DEL - nieuzgodniona liczba punktów funkcyjnych
odzwierciedlajaca te funkcje, które beda usuniete
w procesie modyfikacji. - VAFB - wspólczynnik VAF liczony przed modyfikacji
- AFP koncowa wartosc punktów funkcyjnych
- AD - nieuzgodniona liczba punktów funkcyjnych
wynikajaca z funkcjonalnosci aplikacji, dostepnej
dla uzytkownika koncowego.
24Zalety FPA
- Mozliwosc stosowana bez wzgledu na sposób
implementacji. - Mozna stosowac ja do szacowania calych systemów
lub tylko poszczególnych modulów. - Jest stosowana do szacowania nowego
oprogramowania jak i modernizacji istniejacego - Jest to metoda bardzo popularna, a wiec wiele
narzedzi programistycznych na FPA bazuje.
25Wady FPA
- -poprawne wyliczenie punktów funkcyjnych
wymaga duzo czasu, wiec jest dosc kosztowne - -nie jest stosowana automatyzacja FPA
- -wyniki obliczen dla systemów mniejszych niz 15
FP, moga byc niereprezentatywne - -brak powiazan miedzy standardem IFPUG a innymi
wersjami FPA - -FPA jest metoda zakladajaca tzw górny limit
zlozonosci brak efektywnosci w systemach o
duzych encjach