background image

Funkcyjny pomiar 

oprogramowania

Funkcyjny pomiar 

oprogramowania

Katarzyna Nowakowska

Mateusz Górnisiewicz

Budowa i Integracja 

Systemów Informacyjnych

Mariusz Trzaska

background image

slide 2

O czym będziemy mówić?

O czym będziemy mówić?

• Ogólnie o metrykach
• Miary oprogramowania
• Techniki estymacji
• Model COCOMO
• Metoda Punktów Funkcyjnych
• Metoda Punktów Przypadków 

Użycia

background image

slide 3

Metryki

Metryki

• Miary

– Wymiarowanie informacji (np. wielkość, jakość oprogramowania, …))

• Po co mierzyć?

– Umożliwia porównywanie
– Pozwala na szacowanie kosztów, czasu, niezbędnych zasobów
– Ułatwia kontrolę nad projektem („nie da się kontrolować niemierzalnego”)

background image

slide 4

Co można mierzyć?

Co można mierzyć?

• Procesy

– Czas, nakład pracy

• Produkty

– Rozmiar, modularność

• Zasoby

– Cena, ilość

background image

slide 5

Metryki Oprogramowania

Metryki Oprogramowania

• Mogą wskazywać:

– Rozmiar projektu

• KLOC (tysiąc linii kodu)
• Punkty Funkcyjne (Function Points – FP)

– Jakość oprogramowania

• prawidłowość
• możliwość powtórnego użycia
• użyteczność
• niezawodność

background image

slide 6

Synteza metryk

Synteza metryk

• Metryki mogą być:

– „Surowymi” wskaźnikami (np. KLOC)
– Wskaźnikami wywiedzionymi (syntetycznymi)

• Średni czas pomiędzy błędami
• Koszt

background image

slide 7

Miary jakości produktu

Miary jakości produktu

• Poprawność

– Błędy/moduł

• Z punktu widzenia programisty
• Może być mierzone przed ukończeniem produktu
• Niektóre moduły mogą być priorytetowe 

background image

slide 8

Miary jakości produktu

Miary jakości produktu

• Użyteczność

– Średni czas wykonywania zadania

• Miara względnie obiektywna, zależna jednak od zdolności użytkowników

– Punktowa ocena łatwości używania

• Dobra miara satysfakcji użytkownika, jednak bardzo subiektywna

background image

slide 9

Miary jakości produktu

Miary jakości produktu

• Łatwość wprowadzania zmian

– Średni czas naprawy błędu

• Miara dość obiektywna, zależna jednak od zdolności programistów

– Złożoność cyklometryczna

• Szacuje łatwość zmiany produktu jeszcze przed pojawieniem się konieczności wprowadzenia zmian

- Wypadkowa wielu różnych czynników 
(np. jakości dokumentacji)

background image

slide 10

Miary ponownej używalności

Miary ponownej używalności

• Ilość użytych niezmienionych modułów

– Łatwo mierzalne
– Nie ukazuje jednak łatwości modyfikacji (np. potrzeby jedynie drobnej zmiany do powtórnego użycia modułu)

• Stosunek ilości nowych do wszystkich linii kodu

– Niska wartość oznacza łatwość ponownego użycia
– Miara daje fałszywe rezultaty, gdy produkt używa całości starego i dużych ilości nowego kodu

background image

slide 11

Miara modularności

Miara modularności

• Średnia wielkość modułu wyrażona w ilości linii kodu

– Niska wartość zwykle oznacza wysoką modularność
– Silnie zależne od typu aplikacji, jako że niekiedy właściwe mogą być obszerne moduły o niskim stopniu złożoności.

background image

slide 12

Miara wielkości - KLOC

Miara wielkości - KLOC

• Tysiące linii kodu

– Łatwe do zmierzenia

• W mierzeniu produktywności

– Nie wiadomo, czy dana linia jest wolna od błędu
– Wydajniejsi programiści mogą potrzebować mniejszej liczby linii

• W mierzeniu rozmiaru projektu

– Zależne od użytego języka programowania

background image

slide 13

Szacowanie ilości linii kodu

Szacowanie ilości linii kodu

• Strukturalna dekompozycja projektu – podział na moduły
• Programista przedstawia trzy liczby:

– Pesymistyczna szacowana ilość linii
– Średnia szacowana ilość linii
– Optymistyczna szacowana ilość linii
– Można użyć współczynnika wagi opartego na jakości poprzednich estymacji

background image

slide 14

Szacowanie ilości linii kodu

Szacowanie ilości linii kodu

• W =Faktyczny KLOC / szacowany KLOC
• Przykład: W=200/80 = 2.5
• W przyszłych projektach

– KLOC = W x szacowany KLOC
– Szacowany KLOC = 100
– Ostatecznie KLOC szacowany = 100 x 2.5 = 250

background image

slide 15

Punkty obiektowe

Punkty obiektowe

• Zliczenie liczby

– ekranów
– raportów
– Komponentów języków 3. generacji (3GL)

• Dla każdego używa się następujących czynników wagowych:
• Typ obiektu

prosty

 średni skomplikowany

• Ekran 1

2

    3

• Raport

2

5

    8

• Komponent 3GL

     10

background image

slide 16

Techniki estymacji

Techniki estymacji

• Na podstawie objętości specyfikacji
• Na podstawie projektu systemu
• Powyższe metody silnie zależne od stylu zapisu specyfikacji i projektu systemu

background image

slide 17

Inne techniki estymacji

Inne techniki estymacji

• Estymacja bottom-up i top-down 
• Opinia ekspercka
• Estymacja przez analogię
• Modele kosztorysowe

background image

slide 18

COCOMO

(Constructive Cost Model – 

Strukturalny Model Kosztu)

COCOMO

(Constructive Cost Model – 

Strukturalny Model Kosztu)

• Model podstawowy

– Niewielka wiedza n/t projektu

• Model pośredni

– Po określeniu wymagań

• Model zaawansowany

– Po ukończeniu produktu

background image

slide 19

COCOMO

COCOMO

Podstawowy wzór:
E = aS

b

F

– E = nakład w osobomiesiącach
– S = objętość wyrażona w tysiącach linii kodu źródłowego (KDSI)
– F = Czynnik korygujący (=1 in basic model)

Klasa

a

b

Łatwy

2.4 1.05

Niełatwy 3.6 1.20
Trudny

3.0 1.12

background image

slide 20

COCOMO

COCOMO

Proponowana wielkość zespołu (w osobomiesiącach): 

    Przedsięwzięcie łatwe: Czas [miesiące] = 2,5*Nakład^0,32
    Przedsięwzięcie niełatwe: Czas [miesiące] = 2,5*Nakład^0,35
    Przedsięwzięcie trudne: Czas [miesiące] = 2,5* Nakład^0,38

 

Czynniki modyfikujące:    

1.

wymagania wobec niezawodności systemu, 

2.

rozmiar bazy danych w stosunku do rozmiaru kodu, 

3.

złoźoność systemu: złoźoność struktur danych, złoźoność algorytmów, komunikacja z innymi systemami, stosowanie obliczeń równoległych, 

4.

wymagania co do wydajności systemu, 

5.

ograniczenia pamięci, 

6.

zmienność sprzętu i oprogramowania systemowego tworzącego środowisko pracy systemu. 

background image

slide 21

COCOMO

COCOMO

• Hierarchia

– Poziom prosty – rozmiar kodu źródłowego
– Poziom pośredni – rozmiar kodu źródłowego oraz inne czynniki (subiektywna ocena dostępnych zasobów, skomplikowania produktu i .t. p.)
– Poziom zaawansowany – poziom pośredni, wraz z analizą wpływu czynników na poszczególne fazy projektu

background image

slide 22

Punkty Funkcyjne (FP)

Punkty Funkcyjne (FP)

• Próba zmierzenia funkcjonalności dostarczanej przez oprogramowanie
• W przypadku produktywności

– Mierzą funkcjonalność efektu końcowego – zamiast wejściowej ilości linii kodu
– Wielu programistów może pracować na ten sam Punkt Funkcyjny
– Złożona metoda pomiaru

background image

slide 23

Szacowanie przez Punkty 

Funkcyjne

Szacowanie przez Punkty 

Funkcyjne

 x Czynnik Wagowy

Wejścia 

użytkownika

3

4

6

Wyjścia

użytkownika

4

5

7

Zapytania

zewnętrzne

3

4

6

Zbiory danych

wewnętrznych

7

10

15

Zbiory danych

zewnętrznych

5

7

10

Prosty

Średni

Złożony

Suma

background image

slide 24

Szacowanie przez Punkty 

Funkcyjne

Szacowanie przez Punkty 

Funkcyjne

• Dane wejściowe:

–     Wejścia użytkownika: obiekty wejściowe wpływających na dane w systemie. 
–     Wyjścia użytkownika: obiekty wyjściowe /wią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. 

background image

slide 25

Szacowanie przez Punkty 

Funkcyjne

Szacowanie przez Punkty 

Funkcyjne

FP = suma x (0.65 + 0.01

Ci)

•     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

Kompleksowy

Czynnik

Korygujący

background image

slide 26

Szacowanie przez Punkty 

Funkcyjne

Szacowanie przez Punkty 

Funkcyjne

• Szacowanie liczby linii kodu w aplikacji

– 1 FP = 125 instrukcji w C 

background image

slide 27

Użyteczność Punktów 

Funkcyjnych

Użyteczność Punktów 

Funkcyjnych

• Szacowanie czasu projektu

– czas = FP x czas na jeden FP

• Szacowanie ilość błędów

– Ilość błędów na jeden FP

• Umowy

– Mogą zawierać cenę za jeden FP
– Śledzenie postępu – ile FP zostało już spełnionych

background image

slide 28

Użyteczność Punktów 

Funkcyjnych

Użyteczność 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

slide 29

Metoda Punktów Przypadków 

Użycia – Use Case Points (UCP)

Metoda Punktów Przypadków 

Użycia – Use Case Points (UCP)

• Bazuje na diagramach Use Case
• Wymaga:

– Starannego modelowania aktorów
– Ostrożności w oznaczaniu powiązań 

między poszczególnymi przypadkami 
użycia

– Odpowiedniego poziomu 

szczegółowości modelu 

background image

slide 30

Metoda Punktów Przypadków 

Użycia

Metoda Punktów Przypadków 

Użycia

• Klasyfikacja aktorów

– Aktor prosty - zewnętrzny wobec analizowanego, komunikujący 

się przez jeden z interfejsów programistycznych (Waga – 1)

– Aktor średnio-złożony - system zewnętrzny, dostępny przez 

protokół z rodziny TCP/IP, HTTP lub podobny; również zbiory 

danych (Waga – 2)

– Aktor złożony - zazwyczaj użytkownik końcowy, komunikujący 

się z systemem poprzez interfejs graficzny lub stronę WWW 

(Waga – 3)

• Suma nieskorygowanych wag aktorów (UAW)

– Suma wszystkich aktorów, pomnożona przez współczynniki ich 

wag

background image

slide 31

Metoda Punktów Przypadków 

Użycia

Metoda Punktów Przypadków 

Użycia

• Klasyfikacja przypadków użycia

– Prosty przypadek użycia – do trzech transakcji (Waga – 5)

– Średnio-złożony przypadek użycia –  od czterech do siedmiu 

transakcji (Waga – 10)

– Złożony przypadek użycia –  więcej niż siedem transakcji 

(Waga – 15)

• Możliwa również poprzez zliczenie klas potrzebnych 

do obsługi przypadku

– Prosty przypadek użycia - nie więcej niż pięć klas (Waga – 5)

– Średnio-złożony przypadek użycia - od pięciu do dziesięciu klas 

(Waga – 10)

– Złożony przypadek użycia - powyżej dziesięciu klas (Waga – 

15)

• Suma nieskorygowanych wag przypadków użycia 

(UUCW)

– Suma wszystkich przypadków, pomnożona przez współczynniki 

ich wag

background image

slide 32

Metoda Punktów Przypadków 

Użycia

Metoda Punktów Przypadków 

Użycia

Modyfikacja przez czynniki techniczne

Technical Complexity Factor(TCF) = 0,6 + (0,01 * Wagowa suma 

powyższych

background image

slide 33

Metoda Punktów Przypadków 

Użycia

Metoda Punktów Przypadków 

Użycia

• Modyfikacja przez czynniki środowiskowe

Environmental Factor(EF) = 1,4 + (-0,33 * Wagowa suma 

powyższych

background image

slide 34

Metoda Punktów Przypadków 

Użycia

Metoda Punktów Przypadków 

Użycia

• Ostatecznie poszukiwany 

rezultat

UCP = UUCP * TCF * EF

• Przyjmuje się, że 1 UCP = 20 

osobogodzin pracy programisty

background image

slide 35

Zakończenie

Zakończenie

Pytania?
Wątpliwości?


Document Outline