background image

Punkty funkcyjne

To takie proste

background image

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:

background image

Schemat aplikacji

3. Czarnecka-Chrobot Beata „Metoda 

punktów funkcyjnych – bieżące standardy”

background image

Schemat obliczania PF

background image
background image

• 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

background image
background image

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

background image

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

background image

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

background image

Punkty Funkcyjne a 

pracochłonność

background image

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

background image

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

background image

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

background image

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.

background image

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.

background image

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. 

background image

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.

background image

 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. 

background image

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.

background image

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.

 

background image

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

background image

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

background image

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.

 

background image

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

background image

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.

background image

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

background image

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

background image

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

background image

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

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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

background image

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.

background image

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.

background image

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.

background image

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

background image

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.

background image

Punkty funkcyjne a nowe 

technologie

 

• Aplikacje typu klient-serwer 
• Aplikacje WWW 

background image

 

Rys. 1 Granice aplikacji typu klient-serwer.  

KLIENT

SERWER

background image

Rys. 2 Zasady liczenia punktów funkcyjnych dla 
aplikacji klient-serwer  

Nie liczymy

KLIENT

SERWER

EI

EI

EO lub EQ

background image

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 

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

background image
background image
background image
background image
background image

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. 

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]

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]

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]


Document Outline