Opracowanie: Artur Tomaszewski 1. WPROWADZENIE... 1 2. KRÓTKA HISTORIA... 1 3. JAKO METODY PUNKTÓW FUNKCYJNYCH... 2 4. PI GŁÓWNYCH KOMPONENTÓW... 2 5. KLASYFIKACJA... 3 6. WSPÓŁCZYNNIK VAF (VALUE ADJUSTMENT FACTOR) I PUNKTY FUNKCYJNE... 5 7. PODSUMOWANIE... 6 8. PROBLEMY... 6 9. LITERATURA... 6 1. Wprowadzenie Ludzie rozwizujc problemy, dziel je na mniejsze, łatwiejsze do zrozumienia czci. Problemy, które w całoci wydaj si by skomplikowane, czsto okazuj si bardzo proste, jeeli podzielimy je na czci. Np. wyszukanie ksiki w bibliotece byłoby bardzo trudne, jeli nie byłyby one podzielone tematycznie, alfabetycznie lub w jakikolwiek inny sposób. Metoda punktów funkcyjnych (ang. Function Points Method) jest strukturaln metod klasyfikacji komponentów systemu. Jest to technika podziału systemów na mniejsze, łatwiejsze do zrozumienia i przeanalizowania, komponenty. W metodzie tej wystpuje pi głównych klas, charakteryzujcych systemy: zewntrzne wejcia (ang. External Inputs), zewntrzne wyjcia (ang. External Outputs), zewntrzne zapytania (ang. External Inquires), pliki wewntrzne (ang. Internal Logical Files) i pliki zewntrzne (ang. External Interface Files). Klasy te charakteryzuj funkcjonalno systemu. 2. Krótka historia Załoenia metody Punktów Funkcyjnych opublikował Allan J. Albrecht (IBM) w 1979. Była to próba przezwycienia problemów zwizanych z uyciem liczby linii kodu jako miary wielkoci oprogramowania i jednoczenie próba opracowania metody przewidzenia wysiłku zwizanego z produkcj oprogramowania.
3. Jako metody punktów funkcyjnych Metoda punktów funkcyjnych powinna by stosowana przez osoby dowiadczone. Jeli jednak analiza jest przeprowadzana przez osob, która nie wykorzystywała jej w przeszłoci, to rezultaty tej analizy powinny zosta sprawdzone przez kogo dowiadczonego w jej stosowaniu. Wane jest take, aby podczas pracy korzysta z najnowszej wersji dokumentacji metody [IFPUG]. Przy zliczaniu punktów funkcyjnych wykorzystywana jest take aktualna wersja dokumentacji analizowanego systemu. Bardzo przydatne s tutaj takie dane, jak np.: wygld poszczególnych ekranów aplikacji, lista interfejsów z innymi systemami, wykorzystywane struktury danych, itp. Analiza punktów funkcyjnych jest zadaniem, które powinno by włczone do ogólnego planu projektu. Jej wyniki mog by aktualizowane w celu lepszej estymacji wielkoci tworzonego oprogramowania. 4. Pi głównych komponentów Poniewa charakterystyczn cech wikszoci budowanych ostatnio systemów komputerowych jest komunikacja z innymi systemami, dlatego pierwsz czynnoci, jest okrelenie granicy analizowanego systemu. Granica ta (ustalana z punktu widzenia uytkownika) oddziela system od aplikacji zewntrznych. Kiedy omawiana granica zostanie okrelona, poszczególne komponenty systemu mog zosta sklasyfikowane. Aplikacja zewntrzna Projektowana aplikacja wejcie pliki zewntrzne pliki wewntrzne wyjcie zapytanie 4.1. Zewntrzne wejcia (ang. External Inputs) Zewntrzne wejcie (EI) to elementarny proces w którym dane przekraczaj granice systemu z zewntrz, do jego wntrza. Dane te mog pochodzi z ekranu bd z innej aplikacji (maj one wpływ na modyfikacj plików wewntrznych ILF). Dobrym ródłem informacji, pozwalajcym okreli EI s projekty ekranów i dialogów. 4.2. Zewntrzne wyjcia (ang. External Outputs) Zewntrzne wyjcie (EO) to elementarny proces w którym dane (wygenerowane przez system) przekraczaj granice systemu z jego wntrza, na zewntrz. Dane te tworz rónego rodzaju raporty lub s wyjciowymi plikami wysyłanymi do innych aplikacji. Te raporty lub pliki tworzone s z jednego lub wicej plików wewntrznych (ILF). Dobrym ródłem informacji, pozwalajcym okreli EO s projekty raportów i formaty plików wysyłanych na zewntrz aplikacji. 2
4.3. Zewntrzne zapytania (ang. External Inquires) Zewntrzne zapytania (EQ) to procesy które przetwarzaj dane wejciowe na wyjciowe. Zapytania nie mog modyfikowa plików wewntrznych (ILF), a ich wyniki nie zawieraj dostarczonych danych. Dobrym ródłem informacji, pozwalajcym okreli EQ s projekty ekranów i dialogów. 4.4. Pliki wewntrzne (ang. Internal Logical Files) Pliki wewntrzne (ILF) to, moliwa do zidentyfikowania przez uytkownika, grupa logicznie powizanych ze sob danych, umieszczonych całkowicie w granicach systemu. ILF s uzupełniane (modyfikowane) przez EO. Dobrym ródłem informacji, pozwalajcym okreli ILF s logiczne modele danych, czy opisy bazy danych. 4.5. Pliki zewntrzne (ang. External Interface Files) Pliki zewntrzne (EIF) to, moliwa do zidentyfikowania przez uytkownika, grupa logicznie powizanych ze sob danych, uywanych tylko do celów referencyjnych. Dane te umieszczone s całkowicie poza granicami systemu i s modyfikowane przez inne aplikacje. ródłem informacji o EIF moe by opis powiza systemu z innymi aplikacjami. 5. Klasyfikacja Jeeli wyrónione zostały wszystkie komponenty systemu, nastpnym krokiem jest klasyfikacja ich pod wzgldem wielkoci. Dla procesów EI, EO i EQ klasyfikacja ta dokonywana jest na podstawie liczby plików modyfikowanych lub plików do których nastpuj odwołania (FTR) i na podstawie elementów danych (DET). Dla plików wewntrznych i zewntrznych klasyfikacja dokonywana jest na podstawie analizy struktury rekordów (RET) i elementów danych (DET). Rekord jest rozpoznawaln przez uytkownika grup elementów danych wewntrz ILF lub EIF. Element danych jest rozpoznawalnym przez uytkownika, unikalnym polem. Celem lepszego wyjanienia tych poj wyobramy sobie informacje zawarte na płycie kompaktowej zawierajcej muzyk. Załómy, e płyta taka zawiera nastpujce informacje: etykiet, nazw wykonawcy, producenta, dat i utwory muzyczne. Dla kadego utworu pamitana jest jego nazwa i długo. W omawianym przykładzie mamy wic dwa rekordy (RET): informacje ogólne i dane utworów muzycznych. Informacje ogólne składaj si z 4 elementów danych DET (etykieta, nazwa wykonawcy, producent, data), a dane utworów z 2 elementów (nazwa i długo). W sumie mamy tu wic 2 rekordy i 6 elementów danych. Ponisze tabele s pomocne przy klasyfikacji poszczególnych komponentów systemu. W nawiasach podane zostały wartoci numeryczne które przyporzdkowane bd do danego komponentu i wykorzystane w póniejszych obliczeniach. Np. dla EI który odwołuje si lub modyfikuje 2 pliki (FTR) majce 7 elementów danych, bdzie przyporzdkowana warto 4. Zewntrzne wejcia EI Liczba plików FTR Liczba elementów danych 1-4 5-15 >15 <2 Low (2) Low (3) Average (4) 2 Low (2) Average (4) High (6) >2 Average (4) High (6) High (6) 3
Zewntrzne wyjcia EO Liczba plików FTR Liczba elementów danych 1-5 6-19 >19 <2 Low (4) Low (4) Average (5) 2 lub 3 Low (4) Average (5) High (7) >3 Average (5) High (7) High (7) W przypadku zapyta, pod uwag brane s zarówno dane wejciowe, jak i wyjciowe. Najwiksze wartoci wejcia i wyjcia słu wyznaczeniu wartoci jaka przyporzdkowana bdzie zewntrznemu zapytaniu. Np. jeeli strona wejciowa zapytania została sklasyfikowana jako Low, a strona wyjciowa jako Average, to całemu zapytaniu przyporzdkowana zostanie warto Average. Zewntrzne zapytanie EQ Zew. we. EI Zew. wy. EO Low Average High Low Low (3) Average (4) High (6) Average Average (4) Average (4) High (6) High High (6) High (6) High (6) W przypadku plików wewntrznych i zewntrznych pod uwag brane s liczby rekordów i elementów danych. Pliki wewntrzne ILF Liczba rekordów Liczba elementów danych 1-19 20-50 >50 1 Low (7) Low (7) Average (10) 2-5 Low (7) Average (10) High (15) >5 Average (10) High (15) High (15) Pliki zewntrzne EIF Liczba rekordów Liczba elementów danych 1-19 20-50 >50 1 Low (5) Low (5) Average (7) 2-5 Low (5) Average (7) High (10) >5 Average (7) High (10) High (10) Liczby komponentów danej wielkoci ( Low, Average lub High ) dla kadej z piciu klas komponentów wprowadzone s nastpnie do przedstawionej poniej tabeli. Kada z tych liczb jest przemnoona przez warto podan w tabeli. Wartoci w poszczególnych rzdach s sumowane, dziki czemu otrzymujemy całkowit warto dla kadej klasy komponentów. Wartoci te s sumowane (w pionie) i w rezultacie uzyskujemy warto UT (ang. Total Number of Unadjusted Function Points). 4
Wielko Typ Low Average High Zewntrzne wejcia EI _*3= *4= *6=_ Zewntrzne wyjcia EO _*4= *5= *7=_ Zewntrzne zapytania EQ _*3= *4= *6=_ Pliki wewntrzne ILF _*7= *10= *15=_ Pliki zewntrzne EIF _*5= *7= *10=_ UT Suma 6. Współczynnik VAF (Value Adjustment Factor) i punkty funkcyjne Współczynnik VAF (zwany te CM Complexity Multiplier) obliczany jest na podstawie 14 głównych charakterystyk, okrelajcych funkcjonalno projektowanego systemu. Kadej z charakterystyk przyporzdkowany został krótki opis pozwalajcy oszacowa wpływ danej charakterystyki na warto VAF. Wpływ ten okrela si wartoci naturaln od 0 (bez wpływu) do 5 (bardzo duy wpływ). l.p. Charakterystyka Opis 1. Data communications How many communication facilities are there to aid in the transfer or exchange of information with the application or system? 2. Distributed data processing How are distributed data and processing functions handled? 3. Performance Was response time or throughput required by the user? 4. Heavily used configuration How heavily used is the current hardware platform where the application will be executed? 5. Transaction rate How frequently are transactions executed daily, weekly, monthly, etc.? 6. On-Line data entry What percentage of the information is entered On-Line? 7. End-user efficiency Was the application designed for end-user efficiency? 8. On-Line update How many ILF s are updated by On-Line transaction? 9. Complex processing Does the application have extensive logical or mathematical processing? 10. Reusability Was the application developed to meet one or many user s needs? 11. Installation ease How difficult is conversion and installation? 12. Operational ease How effective and/or automated are start-up, back-up, and recovery procedures? Was the application specifically designed, 13. Multiple sites developed, and supported to be installed at multiple sites for multiple organizations? 14. Facilitate change Was the application specifically designed, developed, and supported to facilitate change? Ocena 1..5 Majc te dane współczynnik VAF obliczy mona z nastpujcego wzoru: VAF = 0.65 + 0.01* gdzie C i s ocenami poszczególnych charakterystyk. 14 C i i= 1 5
Ostateczny wynik analizy punktów funkcyjnych otrzymujemy przez pomnoenie współczynników VAF i UT. FP = VAF * UT W ten sposób otrzymalimy oszacowanie rozmiaru tworzonego systemu, wyraone w punktach funkcyjnych. Bardzo czsto istnieje jednak potrzeba przeliczenia tej wielkoci na liczb instrukcji kodu, jaki musi zosta napisany (LOC- Lines Of Code). Oczywicie liczba LOC zalena bdzie od jzyka programowania, jaki uyty zostanie do implementacji systemu. W tym celu zastosowa naley odpowiedni mnonik M. Ponisza tabela zawiera wartoci tego mnonika dla wybranych jzyków programowania. Jzyk Mnonik M Assembler 320 C 128 Cobol 105 Fortran 105 Pascal 90 Ada 70 Jzyki obiektowe 30 Liczb linii kodu mona wyznaczy z nastpujcego wzoru: 7. Podsumowanie LOC = FP * M Metoda punktów funkcyjnych moe zosta uyta w celu dokładnego oszacowania rozmiaru oprogramowania. Liczba punktów funkcyjnych policzona przez róne osoby, w rónym czasie jest taka sama (zakładajc rozsdny margines błdu). Metoda punktów funkcyjnych jest zrozumiała dla nietechnicznego uytkownika, co ułatwia porozumienie si i negocjacj ludzi tworzcych oprogramowanie z klientami i przyszłymi jego uytkownikami. 8. Problemy Gdy w systemie trzeba zaimplementowa bardzo skomplikowany algorytm, który nie wymaga duej liczby linii kodu, czas jego opracowania jest jednak bardzo długi. W takim przypadku punkty funkcyjne nie nios dostatecznej informacji. Jak oszacowa projekt interfejsu graficznego? 9. Literatura [IFPUG] Function Point Counting Practices Manual version 4.0, IFPUG, www.ifpug.org [Lon99a] David H. Longstreet, Fundamentals of Function Point Analysis, www.softwaremetrics.com [Lon99b] David H. Longstreet, Understanding RET s, www.softwaremetrics.com [Nawr99] Jerzy Nawrocki, Slajdy do wykładów z PSP, Pozna 1999 6