background image

Metody pomiaru i 
szacowania oprogramowania

Wprowadzenie do metodologii szacowania i 
pomiarów oprogramowania 
Przygotował: mgr inż. Rafał Mrówka

Wydział Elektrotechniki, Automatyki, Informatyki i 
Elektroniki
Katedra Automatyki

Kraków 30.05.2008

background image

Metoda punktów funkcyjnych

2

background image

Analiza punktów funkcyjnych – tło 
historyczne

Oryginalnie wprowadzona przez Allana 
Albrechta w 1970 roku
Wprowadza nową metrykę 
oprogramowania – punkty funkcyjne
Pierwsza publikacja metody – 1979, 
następnie 1983
 International Function Piont User Group 
IFPUG – 1986
Obecna wersja podręcznika – IFPUG 
Manual 4.1
 

3

background image

Cechy analizy punktów funkcyjnych

Podstawowy termin – użytkownik (definiuje 
wymagania, akceptuje testy)
Metoda bazuje na wymaganiach – abstrahuje od 
technologii
W zależności od technologii zmienia się tylko 
przelicznik FP -> koszty, czas, LOC, itd.
Analiza FP może być wykonywana na każdym 
etapie projektu
Metoda polega na dekompozycji i zliczaniu
Obejmuje także metody analizy i rozwiązywania 
problemów
Analiza FP wykorzystuje architekturę LOGICZNĄ 
systemu

4

background image

FPA – podstawowe pojęcia

System komputerowy traktujemy jako zbiór 
elementarnych procesów (logicznych, nie 
fizycznych) – odpowiada scenariuszowi 
testowemu (akceptacyjnemu)

Rozróżniamy dwa typy procesów 
podstawowych:

transportujące dane – przenoszą dane poprzez 
granicę systemu, wykorzystujące interfejsu 
zewnętrzne do komunikacji z otoczeniem
stacjonarne lub bezdanowe – realizujące logikę 
biznesową, wykorzystujące dane wewnętrzne

5

background image

Rzeczywiste zalety FPA

Metryka zrozumiała na nie-informatyków – 
efektywna komunikacja
Pozwala na zastosowanie metody na 
wcześniejszych etapach projektu
Ułatwia zarządzanie zakresem projektu – 
stanowi inwentaryzację funkcji systemu
Zakłada możliwość dostosowania 
współczynników kosztowych do danej 
organizacji

6

background image

Kiedy nie stosować FPA

Do wyznaczenia kosztów utrzymania 
systemu
Identyfikacji i rozwiązania problemu 
technicznego lub wdrożeniowego
W przypadku braku lub małej 
wiarygodności danych o wydajności 
zespołu projektowego
Jeżeli ilość dostępnych informacji pozwala 
na zastosowania bardziej dokładnych 
metod estymacji

7

background image

Rodzaje analiz punktów funkcyjnych

Implementacyjne punkty funkcyjne – 
punkty funkcyjne obliczane w czasie 
trwania projektu i budowy systemu
Punkty funkcyjne rozszerzeń – punkty 
funkcyjne rozbudowy działającego, 
produkcyjnego systemu
Punkty funkcyjne aplikacji – punkty 
funkcyjne przeliczone dla gotowej aplikacji 
(base line), stosowane w celu wyznaczenia 
wydajności, skali porównawczej, itd.

8

background image

Produktywność w FPA

Produktywność jest kluczowym elementem 
metody punktów funkcyjnych
Z teorii ekonomi wiemy, że:

produktywność = 

wartość wyjściowa/wartość wejściowa

W przypadku oprogramowania, 
przyjmujemy:

produktywność = jednostka wielkości / 

koszt wytworzenia jednostki

Dla FPA miarą produktywności jest FP/md

9

background image

Proces estymacji w FPA

Określenie typu obliczanych punktów funkcyjnych
Zdefiniowanie granicy analizowanego systemu
Identyfikacja oraz kategoryzacja typów funkcji 
transakcyjnych – wyznaczenie nieważonej liczby 
punktów funkcyjnych (unadjusted function points 
UPS)
Identyfikacja oraz kategoryzacja typów funkcji 
operujących na danych – wyznaczenie nieważonej 
liczby punktów funkcyjnych
Wyznaczenie wartości współczynnika wagi VAF
Obliczenie wartości ważonej liczby punktów 
funkcyjnych z wykorzystaniem GSC – general 
system characteristics

10

background image

Typy funkcji transakcyjnych

11

Punkty funkcyjne deweloperskie – 
obliczane w przypadku budowy nowego 
systemu informatycznego
Punkty funkcyjne rozszerzenia – 
wykorzystywane w przypadku szacowania 
rozszerzeń istniejącego systemu
Punkty funkcyjne aplikacji – obliczane dla 
gotowych systemów np. dla celów 
porównawczych

background image

Elementy logiczne modelu systemu - 
dane

Zewnętrzne dane wejściowe (EI) – 
ekrany, formularze, okna dialogowe lub 
sygnały sterujące, za pomocą których 
użytkownika lub program zewnętrzny 
zarządza danymi programu
Zewnętrzne dane wyjściowe (EO) – 
ekrany, raporty, wykresy lub sygnały 
sterujące, które program generuje w celu 
ich wykorzystania przez użytkownika lub 
program zewnętrzny

background image

Elementy logiczne modelu systemu - 
kwerendy

Kwerendy zewnętrzne (EQ) – 
kombinacje danych wejściowych oraz 
wyjściowych, które generowane są 
natychmiastowo na podstawie zadanych 
atrybutów. 

Określenie pochodzi z terminologii baz 
danych – odpowiada wyszukiwaniu danych 
na podstawie jednego klucza. Obecnie 
kwerendy określa się jako dane pobierane z 
bazy danych w wyniku jednego zapytania.   

background image

Elementy logiczne modelu systemu - 
pliki

Wewnętrzne pliki logiczne (ILF) – duże 
grupy logiczne danych użytkownika lub 
informacji sterujących, kontrolowane 
całkowicie przez program. Plik logiczny 
może składać się z jednego pliku płaskiego 
lub pojedynczej tabeli relacyjnej baz 
danych
Zewnętrzne pliki interfejsu (EIF)  - pliki 
kontrolowane przez inne programy, które 
są wykorzystywane przez analizowany 
system

background image

Elementy zliczane

FPA definiuje trzy elementy zliczane w 
poszczególnych logicznych modułach 
systemu:

RET (Record Element Type) – 
identyfikowalna przez użytkownika podgrupa 
danych w wewnętrznym pliku logicznym lub 
zewnętrznym pliku interfejsu (ILF, EIF)
FTR (File Type Referenced) – typ pliku w 
transakcji: ILF lub EIF)
DET (Data Element Type) – unikalny, 
nierekurencyjne pole edycyjne. DET zawiera 
dane dynamiczne

background image

Powiązanie modułów i elementów

Komponent

RET

FTR

DET

EI

EO

EQ

EIF

ILF

background image

Przykłady elementów

Transakcyjne DET:

EI: pola wejściowe, komunikaty błędów, 
obliczone wartości, przyciski
EO: pola na raportach, obliczone wartości, 
komunikaty błędów, tytuły kolumn czytanych 
z ILF
EQ: wejścia filtru wyszukiwarki, klikniecie 
myszy, dane wyświetlane w wyniku 
zapytania 

RET – bazuje na relacji rodzic – dziecko 
(jeden do wielu) i dotyczy plików danych 
(EIF, ILF)

background image

DET jako elementy GUI

Definicja „element danych 
rozpoznawanych przez użytkownika, nie 
rekurencyjny”
Elementy DET w GUI:

Radio buttons
Check boxes
Command buttons
Wykres lub grafika (także ikona)
Dzwięki (ciąg)
Fotografie
Komunikaty (błędy, notyfikacje, itd.)

background image

Klasyfikacja EI (złożoności)

RET

DEF

1-4

5-15

>15

<2

Niska(3)

Niska(3)

Średnia(4)

2

Niska(3)

Średnia(4)

Wysoka(6)

>2

Średnia(4)

Wysoka(6)

Wysoka(6)

background image

Przykład EI

background image

Klasyfikacja EO (złożoności)

FTR

DEF

1-5

6-19

>19

<2

Niska(4)

Niska(4)

Średnia(5)

2-3

Niska(4)

Średnia(5)

Wysoka(7)

>3

Średnia(5)

Wysoka(7)

Wysoka(7)

background image

Przykład EO – 10 x DET

background image

Klasyfikacja EQ (złożoności)

FTR

DEF

1-5

6-19

>19

<2

Niska(3)

Niska(3)

Średnia(4)

2-3

Niska(3)

Średnia(4)

Wysoka(6)

>3

Średnia(4)

Wysoka(6)

Wysoka(6)

background image

Przykład EQ

background image

Klasyfikacja ILF (złożoności)

RET

DEF

1-19

20-50

>50

1

Niska(7)

Niska(7)

Średnia(10)

2-5

Niska(7)

Średnia(10)

Wysoka(15)

>5

Średnia(10)

Wysoka(15)

Wysoka(15)

background image

Przykład RET

Dwa ILF, dwa RET

Jeden ILF, dwa RET

background image

Klasyfikacja EIF (złożoności)

RET

DEF

1-19

20-50

>50

1

Niska(5)

Niska(5)

Średnia(7)

2-5

Niska(5)

Średnia(7)

Wysoka(10)

>5

Średnia(7)

Wysoka(10)

Wysoka(10)

background image

Współczynnik modyfikujący VAF

Wyrażenie określa współczynnik 
modyfikacji:

C

i

 – wartości wynikające z charakterystyki 

systemu

background image

Współczynniki C

i

Lp.

Nawa

Opis

1

Komunikacja

Ile ośrodków należy połączyć w celu 

wymiany danych

2

Przetwarzanie 

rozproszone

Ile danych rozproszonych i funkcji 

należy przetwarzać

3

Wydajność

Czy użytkownik wymaga maksymalnych 

czasów odpowiedzi?

4

Obciążenie 

środowiska

Jak bardzo wykorzystane jest obecne 

środowisko sprzętowe

5

Ilość transakcji

Jak często transakcje są przetwarzane 

dziennie, tygodniowo, miesięcznie?

6

Dane on-line

Jaki procent danych jest 

wprowadzanych on-line

7

Ergonomia

Czy aplikacja została zaprojektowana z 

uwzględnieniem wydajności 

użytkownika?

background image

Współczynniki C

i

 cd.

 

Lp.

Nawa

Opis

8

Aktualizacja on-line

Ile ILF jest aktualizowanych w 

transakcji?

9

Złożone obliczenia

Czy aplikacja przeprowadza złożone 

obliczenia?

10

Ponowne 

wykorzystanie

Czy aplikacja została zaprojektowana 

do ponownego użycia?

11

Łatwość instalacji

Jak trudna jest instalacja?

12

Łatwość użycia

Jak łatwa jest procedura uruchomienia, 

backupu oraz odzyskania?

13

Ilość lokalizacji

Cz aplikacja ma być instalowana w 

wielu lokalizacjach?

14

Zmienność

Czy aplikacja została zaprojektowana z 

uwzględnieniem łatwości wprowadzania 

zmian?

background image

Obliczanie UFP

Moduł

Złożoność

Niska

Średnia

Wysoka

Suma

EI

_x3=_

_x4=_

_x6=_

EO

_x4=_

_x5=_

_x7=_

EQ

_x3=_

_x4=_

_x6=_

ILF

_x7=_

_x10=_

_x15=_

ELF

_x5=_

_x7=_

_x10=_

Całkowita wartość nieskorygowanych FP

background image

Deweloperskie punkty funkcyjne

Dla nowych projektów ilość skorygowanych 
punktów funkcyjnych wyznaczamy jako:

FP = (UFP + CFP)*VAF

CFP – liczba skorygowanych punktów 
funkcyjnych dla aplikacji konwertującej

background image

Punkty funkcyjne aplikacji

Dla gotowych aplikacji ilość skorygowanych 
punktów funkcyjnych wyznaczamy jako:

FP = UFP*VAF

background image

Punkty funkcyjne rozszerzeń

Dla rozszerzeń istniejących aplikacji ilość 
skorygowanych punktów funkcyjnych 
wyznaczamy jako:

FP = (UFP+CHGA+CFA)*VAFA + (DEL*VAFB)

CHGA – liczba nieskorygowanych punktów funkcyjnych 
dla zmodyfikowanych metod
CFP – liczba punktów funkcyjnych dla aplikacji 
konwertującej
 VAFA – współczynnik VAF dla aplikacji po zmianie
DEL – nieskorygowane punkty funkcyjne dla 
skasowanych funkcji
VAFB – współczynnik VAF przed zmianą


Document Outline