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
Metoda punktów funkcyjnych
2
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
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
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
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
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
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
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
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
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
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
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.
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
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
Powiązanie modułów i elementów
Komponent
RET
FTR
DET
EI
√
√
EO
√
√
EQ
√
√
EIF
√
√
ILF
√
√
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)
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.)
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)
Przykład EI
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)
Przykład EO – 10 x DET
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)
Przykład EQ
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)
Przykład RET
Dwa ILF, dwa RET
Jeden ILF, dwa RET
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)
Współczynnik modyfikujący VAF
Wyrażenie określa współczynnik
modyfikacji:
C
i
– wartości wynikające z charakterystyki
systemu
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?
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?
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
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
Punkty funkcyjne aplikacji
Dla gotowych aplikacji ilość skorygowanych
punktów funkcyjnych wyznaczamy jako:
FP = UFP*VAF
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ą