Punkty funkcyjne
To takie proste
•Wejścia użytkownika: obiekty wejściowe wpływających na
dane w systemie
•Wyjścia użytkownika: obiekty wyjściowe związane z danymi
w systemie
•Zbiory danych wewnętrzne: liczba wewnętrznych plików
roboczych.
•Zbiory danych zewnętrzne: liczba plików zewnętrznych
zapełnianych przez produkt programowy
•Zapytania zewnętrzne: interfejsy z otoczeniem programu
Analiza Punktów Funkcyjnych
Metoda analizy punktów funkcyjnych (FPA), opracowana przez
Albrechta w latach 1979-1983 bada pewien zestaw wartości.
Łączy ona własności metody, badającej rozmiar projektu
programu z możliwościami metody badającej produkt
programowy.
Liczbę nie skorygowanych punktów funkcyjnych wylicza się na
podstawie formuły korzystając z następujących danych:
Schemat aplikacji
3. Czarnecka-Chrobot Beata „Metoda
punktów funkcyjnych – bieżące standardy”
Schemat obliczania PF
• występowanie urządzeń
komunikacyjnych
• rozproszenie przetwarzania
• długość czasu oczekiwania
na odpowiedź systemu
• stopień obciążenia sprzętu
istniejącego
• częstotliwość wykonywania
dużych transakcji
• wprowadzanie danych w
trybie bezpośrednim
• wydajność użytkownika
końcowego
• aktualizacja danych w
trybie bezpośrednim
• złożoność przetwarzania
danych
• możliwość ponownego
użycia programów w innych
zastosowaniach
• łatwość instalacji
• łatwość obsługi systemu
• rozproszenie terytorialne
• łatwość wprowadzania
zmian - pielęgnowania
systemu
Korekcja Punktów
Funkcyjnych
VAF
k
k
k
1
14
VAF
k
k
k
1
14
FP
VAF UFP
( ,
,
)
065 001
FP
VAF UFP
( ,
,
)
065 001
kompleksowy współczynnik
korygujący
Punkty funkcyjne (FPs):
FP
UFP
( , .... , )
065 135
FP
UFP
( , .... , )
065 135
0
5
4
3
2
1
Wpływ
czynnika
Bez
wpływu
Bardzo
silny wpływ
Skorygowane Punkty
Funkcyjne
Kolejność obliczeń Punktów
Funkcyjnych
Identyfikacja systemu
Obliczenie współczynnika korygującego
Wyznaczenie ilości zbiorów danych i ich
złożoności
Wyznaczenie ilości i złożoności elementów
funkcjonalnych (we, wy, zapytania)
Realizacja obliczeń
Weryfikacja
Raport, zebranie recenzujące
Aplikacje a Punkty
Funkcyjne
1 FP 125 instrukcji w C
10 FPs - typowy mały program tworzony samodzielnie
przez klienta (1 m-c)
100 FPs - większość popularnych aplikacji; wartość
typowa dla aplikacji tworzonych przez klienta
samodzielnie (6 m-cy)
1,000 FPs - komercyjne aplikacje w MS Windows, małe
aplikacje klient-serwer (10 osób, ponad 12 m-cy)
10,000 FPs - systemy (100 osób, ponad 18 m-cy)
100,000 FPs - MS Windows’95, MVS, systemy militarne
Punkty Funkcyjne a
pracochłonność
Wykorzystanie punktów
funkcyjnych
Ocena złożoności realizacji systemów
Audyt projektów
Wybór systemów informatycznych funkcjonujących w
przedsiębiorstwie do reinżynierii (wg. koszt utrzymania/FPs)
Szacowanie liczby testów
Ocena jakości pracy i wydajności zespołów ludzkich
Ocena stopnia zmian, wprowadzanych przez użytkownika na
poszczególnych etapach budowy systemu informatycznego
Prognozowanie kosztów pielęgnacji
i rozwoju systemów
Porównanie i ocena różnych ofert dostawców oprogramowania
pod kątem merytorycznym i kosztowym
Punkty Funkcyjne a języki
baz danych
wg. Software Productivity Research
Typ języka lub
konkretny język
Access
ANSI SQL
CLARION
CA Clipper
dBase III
dBase IV
DELPHI
FOXPRO 2.5
INFORMIX
MAGIC
ORACLE
Oracle Developer 2000
PROGRESS v.4
SYBASE
Poziom języka
wg. SPR
8.5
25.0
5.5
17.0
8.0
9.0
11.0
9.5
8.0
15.0
8.0
14.0
9.0
8.0
Efektywność
LOC/FP
38
13
58
19
40
36
29
34
40
21
40
23
36
40
wg. Software Productivity Research
Poziom języka
wg. SPR
1 - 3
4 - 8
9 - 15
16 - 23
24 - 55
>55
Średnia produktywność
FPs/osobomiesiąc
5 - 10
10 - 20
16 - 23
15 - 30
30 - 50
40 - 100
Punkty Funkcyjne a
wydajność zespołu
Mocne strony stosowania FPA wg. Capers
Jones’a :
• FPA jest stosowana bez względu na używany
język programowania.
• FPA jest stosowana do szacowania całych
systemów
informatycznych
lub
tylko
ich
poszczególnych modułów.
• FPA jest stosowana do szacowania nowego
softwaru jak i w przypadku modernizacji już
pracującego.
• Wiele narzędzi programistycznych szacujących
koszty i inne wskaźniki związane z realizacją
projektów informatycznych bazuje na FPA.
Główne wady FPA to:
• Gwarancję osiągnięcia poprawnych rezultatów dają
certyfikowani specjaliści FPA.
• Poprawne wyliczenie punktów funkcyjnych wymaga
również dużo czasu, a co za tym idzie jest dość
kosztowne.
• Automatyzacja procesu obliczenia punktów funkcyjnych
może być obciążona nieznaną dokładnością, jak na razie
nie jest stosowana.
• Rezultaty obliczeń FPA w wypadku systemów o rozmiarze
mniejszym niż 15 punktów funkcyjnych mogą być
niereprezentatywne.
• Brak powiązań (konwersji) pomiędzy standardem IFPUG i
różnymi wersjami FPA, które powstały na bazie
standardu, jednak rozwijają się w różny sposób i w
różnych kierunkach.
FPA - Zdefiniowanie typu procesu
liczenia punktów funkcyjnych – krok 1
• Pierwszy dla nowo powstających projektów,
kiedy wszelkie oceny dokonuje się na
podstawie
wymagań
funkcjonalnych
przedstawionych
przez
końcowego
użytkownika oraz wymagań co do konwersji
danych.
• Drugi
dotyczy
przypadku
modyfikacji
istniejącej aplikacji, polegającej na zmianie
funkcjonalności, tzn. usunięcie niektórych
funkcji, zmiana lub dodanie nowych.
• Trzeci to pomiar istniejącej, pracującej
aplikacji.
FPA - Identyfikacja zakresu analizy oraz
określenie granic aplikacji – krok 2
• Wyznaczona granica wynika głównie z punktu
widzenia i potrzeb użytkownika, tzn. użytkownik
powinien zdefiniować zakres aplikacji, jej
biznesową i użytkową funkcjonalność.
• Granice pomiędzy współpracującymi aplikacjami
winny wynikać z ich funkcjonalności a nie z
uwarunkowań technologicznych.
• Ustanowiona początkowo granica aplikacji jest
niezależna od zakresu analizy, za wyjątkiem takich
zmian funkcjonalności, których dodanie lub
usunięcie spowoduje odpowiednio rozszerzenie lub
redukcję granicy aplikacji.
FPA - Wyliczenie liczby
nieskorygowanych punktów
funkcyjnych dla wszystkich ILF i EIF –
krok 3
• Na etapie tym należy zidentyfikować wszystkie
logiczne zbiory danych aplikacji (ILF ang. internal
logical files oraz EIF ang. external logical files)
oraz oszacować ich kompletność. Następnie
wyliczyć
liczbę
nieskorygowanych
punktów
funkcyjnych dla wszystkich ILF i EIF.
• Po zidentyfikowaniu wszystkich ILF i EIF dla
każdego z nich należy wyznaczyć wszystkie tzw.
RET’y (ang. record element type) i DET’y (ang.
data element type) , których liczba decyduje o
ilości nieskorygowanych punktów funkcyjnych.
ILFy (ang. Internal Logical File) to logiczne zbiory
danych, wymaganych, określonych przez użytkownika
lub danych kontrolnych utrzymywanych i działających w
granicach aplikacji. ILF najczęściej odpowiada encji w
drugiej lub trzeciej postaci normalnej lub nazwie
nadanej grupie powiązanych logicznie danych na
diagramach przepływów. Poprzez dane kontrolne
rozumie się dane niezbędne do sterowania procesami
aplikacji.
EIF (ang. External Interface File), czyli zewnętrzny zbiór
danych, to grupy logicznie powiązanych danych,
określone przez użytkownika lub dane kontrolne
odnoszące się do wymiarowanej aplikacji, ale
przechowywane w granicach innej aplikacji.
Do wyznaczania EIFów stosuje się następujące zasady:
1. dane lub informacje kontrolne, tworzące logiczną grupę
danych i jednoznacznie identyfikowalne przez użytkownika,
2. grupa danych, która przekracza granice wymiarowanej
aplikacji,
3. grupa danych, która nie jest utrzymywana w granicach
mierzonej aplikacji,
4. grupa danych, która jest ILFem w innej aplikacji.
FPA - krok 3 – Wyznaczenie DET’ów i
RET’ów
RET (a record element type) to podgrupa danych w ILF lub EIF,
określona przez użytkownika, może być opcjonalna lub obowiązkowa.
Reguły wyznaczania RET:
Licz jako RET każdą podgrupę danych ILF’a lub EIF’a.
Jeśli nie można wydzielić żadnych podgrup należy każdy ILF i EIF policzyć jako jeden RET.
DET (a data element type) to unikalne, określone przez użytkownika, nie
powtarzające się pole.
Reguły obliczania DET:
Jako DET należy liczyć każde unikalne, zidentyfikowane przez użytkownika pole, będące elementem
ILF’a lub EIF’a.
Jeśli dwie aplikacje korzystają z tych samych ILF lub EIF ale odwołują się inaczej do podgrup danych,
to liczbę DET należy liczyć stosownie do każdej aplikacji. Na przykład: jedna aplikacja wykorzystuje
następującą grupę danych adresowych: kod pocztowy, miasto, ulica, nr domu, telefon, natomiast
druga aplikacja odnosi się do tych danych jako do bloku, bez rozróżnienia poszczególnych pól. W
pierwszym przypadku przypiszemy odpowiedniemu ILF - 5 DET, w drugim 1 DET.
Każda grupa danych, która umożliwia relację z innym ILF lub EIF musi zostać policzony jako jeden
DET.
FPA – krok 3 - Na podstawie wyznaczonej liczby RET i DET dla
każdego ILF i EIF szacuje się poziom funkcjonalnej
kompletności zgodnie z poniższymi:
Liczba
DET
RET
1-19
20-50
51 i więcej niż 51
1
niski
niski
średni
2-5
niski
średni
wysoki
6 i więcej niż 6
średni
wysoki
wysoki
FPA- krok 3 -Przypisanie odpowiedniej liczbę
nieskorygowanych punktów funkcyjnych zgodnie z
poniższymi zasadami, dla ILF i EIF:
Poziomu
złożoności
funkcjonalnej
Liczba
nieskorygowanyc
h punktów
funkcyjnych dla
ILF
Liczba
nieskorygowanyc
h punktów
funkcyjnych dla
EIF
niski
7
5
średni
10
7
wysoki
15
10
FPA - Wyliczenie liczby nieskorygowanych
punktów funkcyjnych dla wszystkich funkcji
tranzakcyjnych - krok 4
Identyfikacja funkcji transakcyjnych:
• EI (external inputs) – to proces elementarny,
któremu poddawane są dane lub dane kontrolne
przychodzące spoza granic aplikacji.
• EO (external outputs) – to proces elementarny,
który wysyła dane lub dane kontrolne poza
granice aplikacji.
• EQ (external query) – to proces elementarny,
który wysyła dane lub dane kontrolne poza
granice aplikacji.
Każdy proces elementarny musi być jednoznacznie
sklasyfikowany i może być liczony tylko raz.
FPA - krok 4
Identyfikacja EI,EO,EQ – określenie typów funkcjonalnych
procesów elementarnych.
Funkcja
:
Transakcyjny typ funkcyjny:
EI
EO
EQ
Zmiana
zachowania
systemu.
główn
y
możliwy
niedozwolo
ny
Modyfikacja
jednego
lub więcej ILF
główn
y
możliwy
niedozwolo
ny
Prezentacja informacji
użytkownikowi
możliw
y
główny
główny
FPA - krok 4 – określenie DET’ów i FTR’ów
• Przypisanie funkcji transakcyjnej odpowiedniej
ilości punktów funkcyjnych zależy od ilości
przypisanych funkcji FTR oraz DET.
FTR (ang. File Type Refeneced) to ILF czytany
lub modyfikowany przez funkcję transakcyjną lub
EIF, z którego czytane są dane. Każdy
modyfikowany lub czytany ILF lub czytany EIF jest
liczony jako 1 FTR. Jeden plik danych może być
liczony tylko raz.
FPA - krok 4 – poziom funkcjonalnej
kompletności dla EI w zależności od liczby FTR
i DET:
Liczba DET
FTR
1-4
5-15
16 i
więcej
niż 16
0-1
Niski
Niski
Średni
2
Niski
Średni Wysok
i
3 i więcej
niż 3
Średn
i
Wysoki Wysok
i
FPA - krok 4 – poziom funkcjonalnej
kompletności dla EO i EQ w zależności od
liczby FTR i DET:
Liczba DET
FTR
1-5
6-19
20 i
więcej
niż 20
0-1
Niski
Niski
Średni
2-3
Niski
Średni Wysok
i
4 i więcej
niż 4
Średn
i
Wysoki Wysok
i
FPA - Wyliczenie liczby nieskorygowanych
punktów funkcyjnych dla wszystkich funkcji
transakcyjnych dla EI, EQ i EO - krok 4
Poziomu
złożoności
funkcjonalnej
Liczba
nieskorygowanych
punktów
funkcyjnych dla EI
i EQ
Liczba
nieskorygowanych
punktów
funkcyjnych dla
EO
niski
3
4
średni
4
5
wysoki
6
7
FPA - Obliczenie współczynnika dopasowania
wartości VAF (ang. the value adjustment
factor) – krok 5.
• Oszacuj każdą z 14 charakterystyk,
wynik należy umieścić na skali o
zakresie od 0 do 5, co odpowiada
określeniu tzw. stopnia wływu DI (ang.
the degree of influence).
• Oblicz całkowity stopień wpływu TDI
(ang. the total degree of influence)
dodając otrzymane w punkcie 1 wyniki.
• Oblicz VAF wstawiając TDI do równania:
• VAF=(TDI*0.01)+0.65
Komunikacja
Charakterystyka określa wykorzystanie przez aplikację różnych
protokołów komunikacyjnych.
0
Aplikacja jest czysto wsadowa albo działa na jednym
komputerze.
1
Aplikacja jest wsadowa, ale wykorzystuje zdalne
wprowadzanie danych lub zdalne drukowanie.
2
Aplikacja jest wsadowa, ale wykorzystuje zdalne
wprowadzanie danych i zdalne drukowanie.
3
Aplikacja posiada „front-end” do przetwarzania wsadowego
oraz wprowadzania danych „on-line”.
4
Aplikacja jest więcej niż „front-endem” i wykorzystuje tylko
jeden protokół komunikacyjny.
5
Aplikacja jest więcej niż „front-endem” i wykorzystuje wiele
protokołów komunikacyjnych.
Przetwarzanie rozproszone
Charakterystyka określa w jakim stopniu następuje wymiana danych pomiędzy komponentami systemu.
0
Aplikacja jest monolityczna.
1
Aplikacja przygotowuje dane dla przetwarzania przez użytkownika w innych komponentach systemu,
np. bazie danych albo arkuszu kalkulacyjnym.
2
Dane są przygotowywane do transferu, a następnie przesyłane pod kontrolą aplikacji do innego
systemu (nie dla użytkownika końcowego).
3
Występuje przetwarzanie rozproszone „on-line” jednokierunkowe.
4
Występuje przetwarzanie rozproszone „on-line” dwukierunkowe.
5
Funkcje przetwarzania dynamicznie wykorzystują najodpowiedniejsze rozproszone komponenty
systemu.
Wydajność
Charakterystyka określa wpływ czasu odpowiedzi systemu i przepustowości na proces tworzenia aplikacji.
0 Nie ma specjalnych wymagań odnośnie wydajności.
1
Wymagania odnośnie wydajności zostały postawione, lecz nie były potrzebne dodatkowe działania w
trakcie tworzenia aplikacji.
2
Czas odpowiedzi i przepustowość są krytyczne jedynie w godzinach szczytu. Nieprzekraczalny termin
zakończenia przetwarzania przypada na następny dzień roboczy.
3
Czas odpowiedzi i przepustowość są krytyczne w codziennych godzinach pracy. Projekt musi jednak
wziąć pod uwagę uwarunkowane czasowo interfejsy.
4
Dodatkowo wymagania wydajnościowe użytkownika są dostatecznie wysokie, by spowodować
konieczność wykonania analizy wydajności systemu w fazie projektowej.
5
Dodatkowo proces tworzenia aplikacji wymaga użycia specjalnych narzędzi do projektowania i
implementacji systemu o dużej wydajności.
Specjalne wymagania odnośnie konfiguracji
Charakterystyka określa wpływ ograniczeń dotyczących zasobów sprzętowych na tworzenie aplikacji.
0 Nie ma jawnych lub niejawnych ograniczeń odnośnie konfiguracji.
1
Istnieją ograniczenia operacyjne, lecz są mniej restrykcyjne niż dla typowych aplikacji. Spełnienie
wymagań nie wymaga dodatkowych działań.
2 Aplikacja wymaga uwzględnienia czynników czasowych lub dotyczących bezpieczeństwa.
3 Istnieją specyficzne lub nadzwyczajne wymagania odnośnie procesora dla części aplikacji.
4 Wymagane są specjalne ograniczenia dla aplikacji działającej na głównym procesorze.
5 Dodatkowo istnieją dodatkowe ograniczenia dla aplikacji w rozproszonych komponentach.
Tempo transakcji
Określa wpływ tempa transakcji biznesowych na tworzenie aplikacji.
0 Nie przewiduje się spiętrzenia liczby transakcji.
1
Przewiduje się spiętrzenie liczby transakcji występujące okresowo.
2 Przewiduje się spiętrzenie tygodniowe.
3 Przewiduje się spiętrzenie dzienne.
4
Wysokie tempo transakcji jest jednym z wymagań. Niezbędna jest analiza wydajnościowa w fazie
projektowania.
5
Jak wyżej i dodatkowo niezbędne są narzędzia do analizy wydajności w fazie projektowania, produkcji i/lub
instalacji.
Wprowadzanie danych „on-line”
Określa wpływ ilości interaktywnych transakcji wprowadzania danych na tworzenie
aplikacji.
0 Wszystkie transakcje są przetwarzane wsadowo.
1 1%-7% transakcji odbywa się w trybie interaktywnego wprowadzania danych.
2 8%-15% transakcji odbywa się w trybie interaktywnego wprowadzania danych.
3 16%-23% transakcji odbywa się w trybie interaktywnego wprowadzania danych.
4 24%-30% transakcji odbywa się w trybie interaktywnego wprowadzania danych.
5
Ponad 30% transakcji odbywa się w trybie interaktywnego wprowadzania
danych.
Specjalne ułatwienia dla Użytkownika
Określa wpływ czynników ludzkich i wymagań dotyczących wygody użytkownika na tworzenie aplikacji. Pod uwagę bierze się:
a.
Ułatwienia nawigacji
b.
Menu
c.
Pomoc i dokumentację on-line
d.
Przewijanie ekranu
e.
Zdalne drukowanie (obsługa drukarki sieciowej)
f.
Klawisze skrótu
g.
Wywoływanie przetwarzania wsadowego z transakcji on-line
h.
Wybieranie pól danych przez ustawianie kursora (niesekwencyjne wprowadzanie danych)
i.
Duże użycie wideo, podświetlania, kolorów itp.
j.
Drukowanie elektronicznej dokumentacji użytkownika
k.
Mysz
l.
Wyskakujące okna
m.
Optymalizacja liczby otwartych okien
n.
Wspomaganie dwu języków (liczyć jako 4)
o.
Wspomaganie wielu języków (liczyć jako 6)
p.
Automatyczne przenoszenie kursora
Stopień wpływu
0
Żadna z powyższych cech.
1
1 do 3 cech.
2
4 do 5 cech.
3
6 lub więcej, nie ma jednak specyficznych wymagań co do ułatwień.
4
Jak wyżej oraz podane są wymagania odnośnie interfejsu użytkownika, wymuszające projektowanie
pod tym kątem.
5
Jak wyżej i ponadto potrzebne są specjalne narzędzia oraz procesy, które pokażą, że osiągnięto cel.
Modyfikacje „on-line”
Określa wpływ modyfikacji wewnętrznych zbiorów danych na tworzenie aplikacji.
0
Brak.
1
Aktualizacja „on-line” jest dokonywana dla jednego do trzech zbiorów. Obszar aktualizacji nie jest duży, a odtworzenie
poprzedniego stanu jest łatwe.
2
Aktualizacja „on-line” jest dokonywana dla czterech lub więcej zbiorów. Obszar aktualizacji nie jest duży, a odtworzenie
poprzedniego stanu jest łatwe.
3
Aplikacja umożliwia aktualizację „on-line” wszystkich podstawowych zbiorów.
4
Dodatkowo niezbędne jest zabezpieczenie przed utratą danych, które musi być specjalnie zaprojektowane i
oprogramowane w systemie.
5
Dodatkowo duże i rozległe aktualizacje powodują, że w projekcie aplikacji rozważa się koszty odtwarzania stanu
poprzedniego po skasowanej aktualizacji. Niezbędny jest proces odtwarzania w pełni zautomatyzowany i wymagający
minimalnej inwencji operatora.
Złożone przetwarzanie
Określa wpływ logiki przetwarzania na tworzenie aplikacji. Rozważane są:
a.
Specjalne procedury bezpieczeństwa.
b.
Złożone logiczne przetwarzanie.
c.
Złożone przetwarzanie matematyczne.
d.
Rozbudowana obsługa wyjątków, związana z ponownym przetwarzaniem niekompletnych transakcji.
e.
Złożone przetwarzanie do obsługi wielu wariantów wejścia/wyjścia (np. multimedia, niezależność od urządzeń wejściowych).
Stopień wpływu
0
Żaden element złożoności nie występuje.
1
Jeden z wymienionych.
2
Dwa z wymienionych.
3
Trzy z wymienionych.
4
Cztery z wymienionych.
5
Wszystkie wymienione elementy.
Wielokrotne wykorzystywanie
Określa w jakim stopniu aplikacja została zaprojektowana i oprogramowana w celu ponownego użycia jej
fragmentów w innym oprogramowaniu.
0
Kod nie jest przeznaczony do wielokrotnego użycia.
1
Wielokrotnie wykorzystywany kod jest częścią aplikacji.
2
Mniej niż 10% aplikacji jest zbudowane z kodu wielokrotnego użycia.
3
10% lub więcej aplikacji jest zbudowane z kodu wielokrotnego użycia.
4
Aplikacja została specjalnie zaprojektowana jako aplikacja wielokrotnego użycia i dokonuje się jej
dostosowania dla każdego indywidualnego klienta.
5
Jak powyżej, dostosowania może dokonać użytkownik poprzez parametryzację.
Łatwość instalacji
Określa czy i w jakim stopniu konwersja z poprzedniego środowiska wpływa na tworzenie aplikacji.
0
Nie ma żadnych wymagań użytkownika i nie są konieczne żadne ułatwienia instalacyjne.
1
Użytkownik nie stawiał wymagań odnośnie łatwości instalacji, jednakże procedura instalacyjna jest
potrzebna.
2
Wymagania odnośnie instalacji zostały przedstawione i w związku z tym powstały odpowiednie
procedury instalacyjne wraz z dokumentacją, testami i podręcznikiem. Wpływ tych procedur na
projekt aplikacji nie jest istotny.
3
Wymagania odnośnie instalacji zostały przedstawione i w związku z tym powstały odpowiednie
procedury instalacyjne wraz z dokumentacją, testami i podręcznikiem. Wpływ tych procedur na
projekt aplikacji jest znaczący.
4
Jak wyżej dla punktu 2 i ponadto dostarcza się automatyczne narzędzia instalacyjne wraz z
testami.
5
Jak wyżej dla punktu 3 i ponadto dostarcza się automatyczne narzędzia instalacyjne wraz z
testami.
Łatwość operowania
Określa wpływ na tworzenie aplikacji takich aspektów jak kopie zapasowe, odtwarzanie systemu.
0 Nie ma wymagań oprócz standardowego backupu.
1
-
4
Jedna lub kilka następujących cech zostały zaimplementowane w aplikacji. Wybieramy wszystkie
zaimplementowane. Każda cecha to jeden punkt (chyba, że zaznaczono inaczej):
Sprawny i szybki rozruch aplikacji, backup i odtwarzanie po awarii są implementowane, ale wymagają
interwencji administratora (operatora).
Sprawny i szybki rozruch aplikacji, backup i odtwarzanie po awarii są implementowane i nie
wymagają interwencji administratora (liczyć jako 2).
Aplikacja minimalizuje konieczność zastosowania taśm, dysków itp.
Aplikacja minimalizuje konieczność użycia papieru.
5
Aplikacja została zaprojektowana do pracy bez specjalnego nadzoru operatora. Istnieją procedury
automatycznego odtwarzania po awarii.
Wiele miejsc przetwarzania
Określa, w jakim stopniu aplikacja została zaprojektowana do działania na wielu stanowiskach.
0
Wymagania użytkownika nie zawierają informacji o konieczności instalacji więcej niż jednego
stanowiska aplikacji.
1
Uwzględniono w projekcie potrzebę instalacji w wielu miejscach, jednakże wszystkich instalacji
dokonuje się na identycznym sprzęcie i środowisku operacyjnym.
2
Uwzględniono w projekcie potrzebę instalacji w wielu miejscach, jednakże wszystkich instalacji
dokonuje się na podobnym sprzęcie i podobnym środowisku operacyjnym.
3
Uwzględniono w projekcie potrzebę instalacji w wielu miejscach, aplikacja jest zaprojektowana do
działania na różnym sprzęcie i/lub różnych środowiskach operacyjnych.
4
Aplikacja jest taka jak opisano dla 1 lub 2 i ponadto opracowana jest specjalna dokumentacja
instalacyjna oraz dostarcza się z aplikacją testy sprawdzające poprawność instalacji w wielu miejscach.
5
Aplikacja jest taka jak opisano dla 3 i ponadto opracowana jest specjalna dokumentacja instalacyjna
oraz dostarcza się z aplikacją testy sprawdzające poprawność instalacji w wielu miejscach.
Ułatwienia dla zmienności i elastyczności
Określa możliwość łatwej modyfikacji logiki przetwarzania lub struktury danych aplikacji. Pod uwagę
brane są następujące elementy:
a.
Elastyczne zapytania i raporty umożliwiają użytkownikowi tworzenie prostych kwerend (np.
możliwość użycia operatora i/lub do pojedynczego wewnętrznego zbioru logicznego).
b.
Elastyczne zapytania i raporty umożliwiają użytkownikowi tworzenie kwerend o średniej złożoności
(np. możliwość użycia operatora i/lub w zapytaniach kierowanych do kilku wewnętrznych plików
logicznych) (liczone jako 2).
c.
Elastyczne zapytania i raporty umożliwiają użytkownikowi tworzenie kwerend o dużej złożoności
(np. możliwość użycia kombinacji operatorów i/lub w zapytaniach kierowanych do jednego lub kilku
wewnętrznych zbiorów logicznych) (liczone jako 3).
d.
Biznesowe informacje sterujące są przechowywane w tabelach dostępnych użytkownikowi.
Użytkownik może zmieniać te parametry, jednakże zmiany wpływają na działanie systemu od
następnego dnia.
e.
Biznesowe informacje sterujące są przechowywane w tabelach dostępnych użytkownikowi.
Użytkownik może zmieniać te parametry, efekt tych zmian nastąpi dynamicznie natychmiast po ich
wprowadzeniu. (liczone jako 2)
Stopień wpływu
0
Aplikacja nie posiada żadnej z wymienionych charakterystyk.
1
Jedna z wymienionych.
2
Dwie z wymienionych.
3
Trzy z wymienionych.
4
Cztery z wymienionych.
5
Wszystkie.
Dla aplikacji nowotworzonej, końcowa ilość
punktów funkcyjnych wyliczana jest z następującej
zależności:
PF = (UFP + CFP) x VAF,
gdzie:
- UFP (ang. Unadjusted Function Point) –
nieuzgodniona liczba punktów funkcyjnych dla
funkcjonalności dostępnej dla użytkownika
końcowego po instalacji,
- CFP (ang. Conversion Function Point) –
nieuzgodniona liczba punktów funkcyjnych
wynikająca z konwersji danych.
FPA - Wyliczenie końcowej wartości punktów
funkcyjnych – krok 6.
FPA - Wyliczenie końcowej wartości punktów
funkcyjnych – krok 6.
W przypadku modyfikacji funkcjonalności aplikacji
rozmiar aplikacji w punktach funkcyjnych można
uzyskać stosując poniższy wzór:
PF = {(ADD+CHGA+CFP) x VAF2} + DEL x VAF1
gdzie:
• ADD – nieuzgodniona liczba punktów funkcyjnych
dla funkcji, które są dodawane,
• CHGA – nieuzgodniona liczba punktów funkcyjnych
dla funkcji, które są modyfikowane,
• DEL – nieuzgodniona liczba punktów funkcyjnych
dla funkcji, które są usuwane,
• VAF1 i VAF2 – to współczynniki VAF liczone
odpowiednio przed i po modyfikacji aplikacji.
FPA - Wyliczenie końcowej wartości punktów
funkcyjnych – krok 6.
Dla działającej aplikacji należy użyć
poniższej formuły w celu obliczenia
końcowej ilości punktów funkcyjnych:
PF=AD*VAF
gdzie:
• AD - nieuzgodniona liczba punktów
funkcyjnych funkcjonalności
dostępnej dla użytkownika
końcowego
Złote reguły Capers Jonesa
Liczba punktów funkcyjnych:
• Podniesiona do potęgi 1,15 jest zgrubnym
oszacowaniem liczby stron dokumentacji
wytworzonej w projekcie.
• Podniesiona do potęgi 1,2 jest zgrubnym
oszacowaniem liczby przypadków testowych.
• Podniesiona do potęgi 0,4 jest zgrubnym
oszacowaniem czasochłonności prac projektowych
w miesiącach.
• Podzielona przez 150 jest zgrubnym oszacowaniem
liczby osób potrzebnych w projekcie.
Punkty funkcyjne a nowe
technologie
• Aplikacje typu klient-serwer
• Aplikacje WWW
Rys. 1 Granice aplikacji typu klient-serwer.
KLIENT
SERWER
Rys. 2 Zasady liczenia punktów funkcyjnych dla
aplikacji klient-serwer
Nie liczymy
KLIENT
SERWER
EI
EI
EO lub EQ
W zakresie określenia granic aplikacji
WWW:
• Należy określić właściciela strony WWW .
• Zawsze należy znaleźć i określić biznesowy punkt
widzenia użytkownika, dla którego przeznaczona
jest aplikacja.
• Do granic aplikacji nie można wliczać własności
przeglądarek i wyszukiwarek.
• Należy
rozważyć
zakres
strony
i
jej
funkcjonalności dla takiej samej aplikacji.
• Wiele stron zawiera wiele linków do innych miejsc
w sieci.
• Po ustanowieniu zakresu i granic aplikacji, należy
starać się już ich nie zmieniać.
Szacowanie pracochłonności.
Wzory stworzone na podstawie
danych zebranych przy stosowaniu metody FPA w dużych
organizacjach w ostatnich latach.
Publikacja Capers Jones’a: Programming Languages Table
podaje osobne wzory dla fazy analizy, programowania i testowania.
W fazie analizy związek pomiędzy rozmiarem funkcjonalnym a
nakładami pracy w roboczogodzinach określony jest wzorem
(R – rozmiar funkcjonalny w PF):
W
A
= 4,0342 x (R)
0,9903
[rh] Np.4,0342 x (21)
0,9903
[rh] = 82.25 [rh]
W fazie programowania związek pomiędzy rozmiarem
funkcjonalnym a nakładami pracy w roboczogodzinach określony jest
wzorem:
W
P
= 12,313 x (R)
1,015
[rh] Np. 12,313 x (21)
1,015
[rh] = 270 [rh]
W fazie testowania związek pomiędzy rozmiarem funkcjonalnym a
nakładami pracy w roboczogodzinach określony jest wzorem:
W
T
= 5,2124 x (R)
1,024
[rh] Np. 5,2124 x (21)
1,024
[rh] = 118 [rh]