Inżynieria oprogramowania 2 Szacowanie...

163
Mirosław Ochodek [email protected] Inżynieria oprogramowania 2 Szacowanie pracochłonności i budżetu projektu Piotr Miklosik [email protected]

Transcript of Inżynieria oprogramowania 2 Szacowanie...

Mirosław Ochodek

[email protected]

Inżynieria oprogramowania 2

Szacowanie pracochłonności i budżetu projektu

Piotr Miklosik

[email protected]

Cel wykładu

• Jakie są podejścia do szacowania pracochłonności i kosztów?

• Przegląd wybranych metod

2

Plan wykładu

• Wprowadzanie

• Rozmiar oprogramowania – punkty funkcyjne

• Szacowanie pracochłonności– Miary dokładności szacowania pracochłonności

– Przegląd metod szacowania pracochłonności• Przez analogię

• Eksperckie

• Algorytmiczne

• Harmonogram i budżet

Plan wykładu

• Wprowadzanie

• Rozmiar oprogramowania – punkty funkcyjne

• Szacowanie pracochłonności– Miary dokładności szacowania pracochłonności

– Przegląd metod szacowania pracochłonności• Przez analogię

• Eksperckie

• Algorytmiczne

• Harmonogram i budżet

Dlaczego szacujemy pracochłonność?

Czy powinniśmy

podpisać kontrakt?Ile to będzie kosztowało?

Jak stworzyć harmonogram

60-80% projektów przekracza budżet

i harmonogram

K. Moløkken and M. Jørgensen. A review of software surveys on software effort estimation. In Empirical

Software Engineering, 2003. ISESE 2003. Proceedings. 2003 International Symposium on, pages 223–230.

Skutki błędnej estymacji pracochłonności

• przeszacowanie– utrata kontraktu

– prawo Parkinsona

– Syndrom studenta

• niedoszacowanie– przekroczenie budżetu i terminu

– niska jakość

Dlaczego szacujemy pracochłonność?

Planowanie w wydaniu Jasia Fasoli

Czy chodzi o estymację?

• Cel

• Zobowiązanie

• Estymacja

8

Dobra estymata pracochłonności

Czego mogę oczekiwać od

metod szacowania?

9

Dobra estymata pracochłonności?

Dobre oszacowanie to takie które wspieraczynności związane z zarządzanie projektem

takie jak planowanie i negocjacja zasobów projektu, zarządzanie zmianą i ryzykiem, itd..

Wybór metody szacowania

• Model finansowania projektu

• Dziedzina oraz rodzaj produktów

• Różne etapy szacowania

• Różny poziom samoświadomości organizacji

Wybór metody szacowania

• Model finansowania projektu

• Dziedzina oraz rodzaj produktów

• Różne etapy szacowania

• Różny poziom samoświadomości organizacji

Trójkąty równowagi w projekcie

“Everybody wants things good, wants them fast, and wants them cheap.

Everyone knows you can actually achieve any two of the three”

[John Boddie].

You need to decide which two do you want?

Trójkąty równowagi w projekcie

Jakość

Funkcjonalność Zasoby

Optymalizacjazakresu

Trójkąty równowagi w projekcie

Optymalizacjazasobów

Pracochłonność

Ludzie Czas trwania

Produktywność

Jakość

Funkcjonalność

Optymalizacjazakresu

Trójkąty równowagi w projekcie

Klient

Jakość

Funkcjonalność

Optymalizacjazakresu

Pracochłonność

Produktywność

Ludzie Czas trwania

Optymalizacjazasobów

Stały zakres

Trójkąty równowagi w projekcie

Stały zakresJakość

Funkcjonalność

Klient

Optymalizacjazakresu

Pracochłonność

Produktywność

Ludzie Czas trwania

Optymalizacjazasobów

Trójkąty równowagi w projekcie

Klient

Funkcjonalność

JakośćOptymalizacja

zakresu

Pracochłonność

Produktywność

Ludzie Czas trwania

Optymalizacjazasobów

Stały zakresPytanie: Jaki będzie koszt wytworzenia

systemu?

Trójkąty równowagi w projekcie

Klient

Jakość

Funkcjonalność

Optymalizacjazakresu

Pracochłonność

Produktywność

Ludzie Czas trwania

Optymalizacjazasobów

Stała cena

Optymalizacjazasobów

Trójkąty równowagi w projekcie

Klient

Jakość

Funkcjonalność

Optymalizacjazakresu

Pracochłonność

Produktywność

Ludzie Czas trwania

Stała cena

Optymalizacjazasobów

Trójkąty równowagi w projekcie

Klient

Stała cenaJakość

Funkcjonalność

Optymalizacjazakresu

Pracochłonność

Produktywność

Ludzie Czas trwania

Pytanie: Czy i w jakim stopniu będę w stanie rozwiązać mój problem?

?

Wybór metody szacowania

• Model finansowania projektu

• Dziedzina oraz rodzaj produktów

• Różne etapy szacowania

• Różny poziom samoświadomości organizacji

Dziedzina i rodzaj produktów

• Software

– Standardowe

– Półstandardowe

– Innowacyjne

• Hardware

• Mieszane

Wybór metody szacowania

• Model finansowania projektu

• Dziedzina oraz rodzaj produktów

• Różne etapy szacowania

• Różny poziom samoświadomości organizacji

Szacowanie na różnych etapach

Planowanie projektu Planowanie wydania

Zadanie

Zadanie

Zadanie

Krótka perspektywa czasowa (stała)

Niezależne zadania o podobnej złożoności

Miara „Velocity”

~Stały zespół

Szacowanie na różnych etapach

Planowanie projektu

Produkt

Produkt

Planowanie wydania

Zadanie

Zadanie

Zadanie

Szacowanie na różnych etapach

Planowanie projektu Planowanie wydania

Produkt niedokreślony

Produkt

Produkt

Ryzyka, zmiany…

Pytanie o wykonalność

Agile - Scrum, XP, …

Planowanie projektu Planowanie wydania

Produkt

Produkt

Zadanie

Zadanie

Zadanie

Stożek niepewności B. Boehma

Barry Boehm et al. Cost Models for Future Software Life Cycle Processes: COCOMO

Stożek niepewności B. Boehma

Barry Boehm et al. Cost Models for Future Software Life Cycle Processes: COCOMO

Wybór metody szacowania

• Model finansowania projektu

• Dziedzina oraz rodzaj produktów

• Różne etapy szacowania

• Różny poziom samoświadomości organizacji

Proces szacowania kosztów

Jak wygląda typowy proces szacowania

kosztów?

32

Systematyczne podejście do planowania

Szacowanie

rozmiaru

Szacowanie pracochłonności

Szacowaniebudżetu

i harmonogramu

Plan wykładu

• Wprowadzanie

• Rozmiar oprogramowania – punkty funkcyjne

• Szacowanie pracochłonności– Miary dokładności szacowania pracochłonności

– Przegląd metod szacowania pracochłonności• Przez analogię

• Eksperckie

• Algorytmiczne

• Harmonogram i budżet

Rozmiar oprogramowania

Miary kodu

Miaryfunkcjonalności

35

Allan Albrecht

• 1984 Function Points

Wejście

Wyjście

Zapytania

Plikiwewnętrzne

Pliki zewnętrzne

36

Allan Albrecht

• 1984 Function Points

Wejście

Wyjście

Zapytania

Plikiwewnętrzne

Pliki zewnętrzne

Niska, średnia, wysoka

+14 czynnikówtechnicznych

+/- 35%

37

IFPUG

• International Function Point User Group

– Założona w 1986 roku

– Counting Practices Committee

– Counting Practices Manual (4.3.1)

– Certyfikacja

– ISO/IEC 20926:2009

http://www.ifpug.org/

38

IFPUG FPA 4.3.1

1. Gather the available documentation

2. Determine counting scope and boundary and identify functional user requirements

3. Measure data functions

4. Measure transactional functions

5. Calculate functional size

6. Document and report

39

IFPUG FPA 4.3.1

1. Gather the available documentation

2. Determine counting scope and boundary and identify functional user requirements

3. Measure data functions

4. Measure transactional functions

5. Calculate functional size

6. Document and report

40

Przykład: menadżer zadań

• Celem pomiaru jest:

– Dokonanie pomiaru rozmiaru funkcjonalnego tworzonej aplikacji do delegowania zadań.

– Development project FP count – jest to nowo tworzona aplikacja.

41

Przykład: menadżer zadań

• Zakres pomiaru:

– Wymagania zdefiniowane dla pierwszego przyrostu tworzonego systemu:

• dodawanie zadań,

• wyświetlanie zadań

• wyświetlanie liczby zadań dla osoby

• przypisywanie osób do zadań

42

Przykład: menadżer zadań

• Granica systemu

– Zarządzanie zadaniami należy do menadżera zadań, natomiast osobami zarządza książka kontaktów

43

IFPUG FPA 4.3.1

1. Gather the available documentation

2. Determine counting scope and boundary and identify functional user requirements

3. Measure data functions

4. Measure transactional functions

5. Calculate functional size

6. Document and report

44

IFPUG FPA 4.3.1

3. Measure data functions

45

Przykład: menadżer zadań

• Pliki logiczne

– zadanie + lokalizacje (lokalizacja bez zadania nie ma znaczenia z punktu widzenia użytkownika)

– osoby

46

Przykład: menadżer zadań

• Internal Logical File (ILF)

• czy?

• External Interface File (EIF)

47

Przykład: menadżer zadań

• Data Element Type (DET)– Nazwa

– Nazwa lokalizacji

– Termin

– Opis

– Imię i nazwisko

– Adres e-mail

– Telefon

– Adres

48

Przykład: menadżer zadań

• Data Element Type (DET)– Nazwa

– Nazwa lokalizacji

– Termin

– Opis

– Imię i nazwisko

– Adres e-mail

– Telefon

– Adres

49

3xDET

2xDET

4xDET

+1xDET+1xDET

Przykład: menadżer zadań

• Data Element Type (DET)– Nazwa

– Nazwa lokalizacji

– Termin

– Opis

– Imię i nazwisko

– Adres e-mail

– Telefon

– Adres

50

6xDET

5xDET

Przykład: menadżer zadań

• Record Element Type

– podgrupa DET’ów, która jest rozpoznawalna przez użytkownika.

51

2xRET

1xRET

Przykład: menadżer zadań

• ILF – ?

• EIF – ?

52

2xRET

1xRETEIF/ILF

6xDET

5xDET

Przykład: menadżer zadań

• ILF – Low (7)

• EIF – Low (5)

53

2xRET

1xRETEIF/ILF

6xDET

5xDET

IFPUG FPA 4.3.1

1. Gather the available documentation

2. Determine counting scope and boundary and identify functional user requirements

3. Measure data functions

4. Measure transactional functions

5. Calculate functional size

6. Document and report

54

IFPUG FPA 4.3.1

4. Measure transactional functions

55

• External Input

– Dokonuje modyfikacji danych w ILF

IFPUG FPA 4.3.1

Faktura

Dodaj fakturę

56

• External Inquiry

– Dane na zewnątrz bez przetwarzania

IFPUG FPA 4.3.1

Faktura

Pobierz fakturę

57

• External Output

– Dane na zewnątrz z przetwarzaniem

IFPUG FPA 4.3.1

Faktura Wyświetl łącznąwartość produktów na

fakturach w tym miesiącu

58

Przykład: menadżer zadań

• Elementarne procesy:

– dodawanie zadań,

– wyświetlanie zadań

– wyświetlanie liczby zadań dla osoby

– przypisywanie osób do zadań

59

EI | EQ | EO

EI | EQ | EO

EI | EQ | EO

EI | EQ | EO

Przykład: menadżer zadań

• Elementarne procesy:

– dodawanie zadań,

– wyświetlanie zadań

– wyświetlanie liczby zadań dla osoby

– przypisywanie osób do zadań

60

EI | EQ | EO

EI | EQ | EO

EI | EQ | EO

EI | EQ | EO

Przykład: menadżer zadań

• Liczba DET’ów:

– dodawanie zadań – 8x DET,

– wyświetlanie zadań – 12x DET,

– wyświetlanie liczby zadań dla osoby – 2x DET,

– przypisywanie osób do zadań – 3x DET,

62

Przykład: menadżer zadań

• Liczba plików logicznych:

– dodawanie zadań – 1x ILF,

– wyświetlanie zadań – 1x ILF + 1x EIF,

– wyświetlanie liczby zadań dla osoby – 1x ILF + 1x EIF,

– przypisywanie osób do zadań – 1x ILF + 1x EIF,

63

IFPUG FPA 4.3.1

4. Measure transactional functions

Niska, średnia, wysoka

EI

EO/EQ

64

Przykład: menadżer zadań

• Złożoność / rozmiar funkcjonalny:

– dodawanie zadań – low / 3,

– wyświetlanie zadań – average / 4,

– wyświetlanie liczby zadań dla osoby – low / 4,

– przypisywanie osób do zadań – low / 3,

65

IFPUG FPA 4.3.1

1. Gather the available documentation

2. Determine counting scope and boundary and identify functional user requirements

3. Measure data functions

4. Measure transactional functions

5. Calculate functional size

6. Document and report

66

Przykład: menadżer zadań

• Rozmiar funkcjonalny:

67

DFP = 7 + 5 + 3 + 4 + 4 + 3 = 26

Funkcje danych Funkcje transakcyjne

Plan wykładu

• Wprowadzanie

• Rozmiar oprogramowania – punkty funkcyjne

• Szacowanie pracochłonności– Miary dokładności szacowania pracochłonności

– Przegląd metod szacowania pracochłonności• Przez analogię

• Eksperckie

• Algorytmiczne

• Harmonogram i budżet

Dokładność a precyzja

Lepsze oszacowanie liczby Pi?

• 3,143323223214141

• 3,14

69

Dokładność

Precyzja

Mean Magnitude of Relative Error

Miary oceny dokładności szacowania

MMRE

Miary oceny dokładności szacowania

Pred

Prediction Quality

e - estimation error levelk - number of projects with error (MRE) <= en - number of projects considered

Plan wykładu

• Wprowadzanie

• Rozmiar oprogramowania – punkty funkcyjne

• Szacowanie pracochłonności– Miary dokładności i rodzaje rezultatów

– Przegląd metod szacowania pracochłonności• Przez analogię

• Eksperckie

• Algorytmiczne

• Harmonogram i budżet

Klasyfikacja metod szacowania

Metodyszacowania

Analogia Eksperckie Algorytmiczne

Parametryczne Nieparametryczne

Hybrydowe

Klasyfikacja metod szacowania

Metodyszacowania

Analogia Eksperckie Algorytmiczne

Parametryczne Nieparametryczne

Hybrydowe

Analogia

Pracochłonność Kontekst

? Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie

Nowy projekt:

Baza historyczna:

Pracochłonność Rozmiar Kontekst

1000 [h] 30 FP Sklep internetowy. Java, Servlets, JSP. programistyczne: Wysokie

600 [h] 20 FP Prosty CMS. PHP. Umiejętnościprogramistyczne: Wysokie

1300 [h] 30 FP Sklep internetowy. PHP. programistyczne: Średnie

Analogia

Pracochłonność Kontekst

1300 [h] Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie

Nowy projekt:

Baza historyczna:

Pracochłonność Rozmiar Kontekst

1000 [h] 30 FP Sklep internetowy. Java, Servlets, JSP. programistyczne: Wysokie

600 [h] 20 FP Prosty CMS. PHP. Umiejętnościprogramistyczne: Wysokie

1300 [h] 30 FP Sklep internetowy. PHP. programistyczne: Średnie

Analogia

Pracochłonność Kontekst

Średnia 1092 ±72 (95%)< 1020 ; 1164 >

Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie

Nowy projekt:

Pracochłonność projektów podobnych:

840, 920, 930, 1020, 1030, 1022, 1030, 1100, 1200, 1300, 1400, 1200, 1110, 1100, 1050, 1120, 1200

-2 -1 0 1 2

90

0100

01

100

12

00

130

01

40

0

Normal Q-Q Plot

Theoretical Quantiles

Sam

ple

Quan

tile

s

Średnia jako estymator

Analogia

Pracochłonność Rozmiar Kontekst

1000 [h] 30 FP Sklep internetowy. Java, Servlets, JSP. programistyczne: Wysokie

600 [h] 20 FP Prosty CMS. PHP. Umiejętnościprogramistyczne: Wysokie

1300 [h] 30 FP Sklep internetowy. PHP. programistyczne: Średnie

Pracochłonność Kontekst

Min = 1066 [h]Max = 1386 [h]

Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie

Nowy projekt:

Baza historyczna:

Analogia

Pracochłonność Kontekst

? Sklep internetowy. Python, Django. Umiejętności programistyczne: Średnie

Nowy projekt:

Pracochłonność projektów podobnych:

840, 920, 930, 1020, 1030, 1022, 1030, 1100, 1200, 1300, 1400, 1200, 1110, 1100, 1050, 1120, 1200

Analogia

600 800 1000 1200 1400 1600

0.0

0.2

0.4

0.6

0.8

1.0

cdf

pracochłonność [h]

pra

wdo

po

do

bień

stw

o

n:17 m:0

Jest 80% szans, że

pracochłonność nie

będzie większa niż 1200h

Analogia

600 800 1000 1200 1400 1600

0.0

0.2

0.4

0.6

0.8

1.0

cdf

pracochłonność [h]

pra

wdo

po

do

bień

stw

o

n:10000 m:0

Klasyfikacja metod szacowania

Metodyszacowania

Analogia Eksperckie Algorytmiczne

Parametryczne Nieparametryczne

Hybrydowe

Wideband Delphi

Moderator

Eksperci

Wideband Delphi

Moderator

Eksperci

Przygotowanie indywidualne

Wideband Delphi

Moderator

Eksperci

Dyskusja

Wideband Delphi

Moderator

Eksperci

Anonimowa ocena

ekspertów

Wideband delphi – karta oceny

Ekspert: Jan Kowalski

Data: 05.07.2006

Projekt: Internet e-shop system

300 600 900 1200 1500 LOC

- Estymacja- Twoja estymacja- Średnia estymacja

Twoja estymacja: ..................... LOC

Uzasadnienie....................................................

1400

Będzie problem z technologiami

Wideband Delphi

Moderator

Eksperci

Moderator opracowuje

wyniki z kart oceny

Wideband delphi – karta oceny

Ekspert: Jan Kowalski

Data: 05.07.2006

Projekt: Internet e-shop system

300 600 900 1200 1500 LOC

- Estymacja- Twoja estymacja- Średnia estymacja

Twoja estymacja: ..................... LOC

Uzasadnienie....................................................

1400

Będzie problem z technologiami

Wideband Delphi

Moderator

Eksperci

Eksperci otrzymują swoje

karty z powrotem

Wideband Delphi

Moderator

Eksperci

Następna runda albo:

Effort= (O + 4A + P) / 6

The Work Breakdown Structure - WBS

• Hierarchiczny pracy do wykonania – tu skończyłem!!!!

WBS – Elementy struktury

Poziom #0 Cel

Cel do osiągnięcia

WBS – Elementy struktury

Poziom #1

Poziom #0 Cel

Czynność Czynność

Czynność – fragment pracy do wykonania na

wysokim poziomieabstrakcji

WBS – Elementy struktury

Poziom #1

Poziom #0 Cel

Czynność

… …

Czynność

Dalsza dekompozycja

WBS – Elementy struktury

Level #m

Level #1

Poziom #0 Cel

Czynność

Zadanie#1

Zadanie#2

Czynność

Zadanie#n

Zadanie – najmniejszyfragment pracy (work

package)

WBS – Elementy struktury

Level #m

Level #1

Poziom #0 Cel

Czynność

Zadanie#1

Zadanie#2

Czynność

Zadanie#n

Czynność na poziomie N jest ukończona jeśli wszystkie

zdekomponowane czynności napoziomie N+1 są ukończone

Podejścia do budowy WBS

KAWA

ZIARNA

Wsyp Zmiel

FILIŻANKA

Umyj Rozgrzej

WODA

Ugotuj Wlej

Mieszaj

Rzeczowniki –reprezentują wynik

Czasowniki reprezentujączynności

Podejścia do budowy WBS

KAWA

ZIARNA

Kawawsypana

Zmielone

ziarna

FILIŻANKA

Filiżankaumyta

Filiżankarozgrzana

WODA

Wodazagotowana

Woda wlanado filiżanki

Kawazamieszana

Rzeczowniki –reprezentują wynik

Podejścia do budowy WBS

KAWA

ZIARNA

Kawawsypana

Zmielone

ziarna

FILIŻANKA

Filiżankaumyta

Filiżankarozgrzana

WODA

Wodazagotowana

Woda wlanado filiżanki

Kawazamieszana

Bottom-up – Burza mózgów

Top-down - Dekompozycja

Przykład

KAWA

ZIARNA

Kawawsypana

Zmielone

ziarna

FILIŻANKA

Filiżankaumyta

Filiżankarozgrzana

WODA

Wodazagotowana

Woda wlanado filiżanki

Kawazamieszana

1’ 2’ 2’ 15’ 3’ 1’

1’

Przykład

KAWA

ZIARNA

Kawawsypana

Zmielone

ziarna

FILIŻANKA

Filiżankaumyta

Filiżankarozgrzana

WODA

Wodazagotowana

Woda wlanado filiżanki

Kawazamieszana

1’ 2’ 2’ 15’ 3’ 1’

1’

3’ 17’ 4’

25’

Kryteria dobrze zdefiniowanej czynności / zadania

• Mierzalny status

• Zdefiniowane zdarzenia rozpoczęcia / zakończenia

• Zdefiniowany rezultat

• Oszacowany czas / koszt

• Akceptowalny czas wykonania

• Niezależność

103

Klasyfikacja metod szacowania

Metodyszacowania

Analogia Eksperckie Algorytmiczne

Parametryczne Nieparametryczne

Hybrydowe

Metoda COCOMO II

PMNS = A SizeE i=116 EMi

gdzie E = B + 0.01 i=15 SFi

Wartości A, B skalibrowane na podstawie 161 projektów:

A = 2.94

B = 0.91

Size w KSLOC

Dla przeciętnego projektu EMi = 1.

0 i=15 SFi 31.6

PMNS = 2.94 SizeE

gdzie 0.91 E 1.226 Barry W. Boehm

Wpływ czynników skali, SF, na pracochłonność

E= 1.226

E= 1

E= 0.91

Use Case Points (UCP)

Gustav Karner (1993)

Metoda punktów przypadków użycia

System informatyczny

C#C++

Java

Technical Complexity

Factors

UC1UC1

UC1

Przypadki użycia

Użytkownicy

Aktorzy

Environment Factors

2

1

3

45

Use Case Points (UCP)

Gustav Karner (1993)

Software System

C#C++

Java

Technical Complexity

Factors

UC1UC1

UC1

Use Cases

Users

Actors

Environment Factors

2

1

3

45

Złożonośćaktora

Aktorzy(UAW)

Klasyfikacja do klasy złożoności na podstawie typuinterfejsu służącego do komunikacji z systemem

1 punkt: Prosty - zdefiniowane API

2 punkt : Średni - TCP/IP lub tekst

3 punkt : Złożony - GUI

Use Case Points (UCP)

Gustav Karner (1993)

Aktorzy(UAW)

Klasyfikacja do klasy złożoności na podstawie typuinterfejsu służącego do komunikacji z systemem

Use Cases(UUCW)

Klasyfikacja do trzech klas złożoności na podstawieliczby transakcji

UUCP = UAW+UUCW

UC1

Złożonośćprzypadku użycia

Software System

C#C++

Java

Technical Complexity

Factors

UC1UC1

UC1

Use Cases

Users

Actors

Environment Factors

2

1

3

45

5 points : Prosty – do 3 transakcji

10 points : Średni – 4-7 transakcji

15 points : Złożony – ponad 7 transakcji

Interakcja

1. Autor wybiera opcję zgłoszenia artykułu.

2. System prosi o podanie danych artykułu.

Transakcje w przypadkach użycia

Ile transakcji?

112

Scenariusze alternatywne i rozszerzenia:

1.A.Authorchciałbyzgłosićzmienionąwersjęartykułu.1.A.1.Autorwybieraopcjęponownegozgłoszeniaswoichartykułów.1.A.2.SystemprezentujeartykułyzgłoszonedotychczasprzezAutora.1.A.3.Autorwybierajedenzartykułóworazopcjęjegoponownegozgłoszenia.1.A.4.Przejdźdokroku2.

UC1:Zgłoś artykuł

Poziom:UżytkownikaAktorgłówny:Autor

Scenariusz główny:

1.Autorwybieraopcjęzgłoszeniaartykułu.2.Systemprosiopodaniedanychartykułu.3.Autorpodajewymaganedanenatematartykułu.4.Systeminformujeopomyślnymzgłoszeniuartykułu.

Use Case Points (UCP)

Gustav Karner (1993)

Aktorzy(UAW)

Klasyfikacja do klasy złożoności na podstawie typuinterfejsu służącego do komunikacji z systemem

Use Cases(UUCW)

Klasyfikacja do trzech klas złożoności na podstawieliczby transakcji

Technical Complexity Factors (TCF)

13 czynników, których wpływ na projekt ocenianyjest w skali 0-5

EnvironmentalFactors (EF)

8 czynników, których wpływ na projekt oceniany jest w skali 0-5

Software System

C#C++

Java

Technical Complexity

Factors

UC1UC1

UC1

Use Cases

Users

Actors

Environment Factors

2

1

3

45

Czynniki techniczne (Technical Factors)

T1 System rozproszony 2

T2 Wydajność 2

T3 Wydajności z pkt użytkownika1

T4 Złożoność przetwarzania 1

T5 Reużywalność kodu 1

T6 Łatwość instalacji 0.5

T7 Łatwość użycia 0.5

T8 Przenośność 2

T9 Łatwość zmiany 1

T10 Współbieżność 1

T11 Bezpieczeństwo (security) 1

T12 Dostęp stron trzecich 1

T13 Wymagane spec. szkolenia 1

TFactor = ∑ ei Ti

ei = 0, 1, .., 5

Czynniki środowiska (Environment Factors)

F1 Znajomość metodyki 1.5

F2 Doświadczenie w aplikacji 0.5

F3 Doświadczenie w obiektowości 1

F4 Możliwości gł. analityka 0.5

F5 Motywacja 1

F6 Stabilne wymagania 2

F7 Pracownicy na część etatu -1

F8 Trudny język programowania -2

EFactor = ∑ ei Fi

ei = 0, 1, .., 5

Use Case Points (UCP)

Gustav Karner (1993)

Aktorzy(UAW)

Klasyfikacja do klasy złożoności na podstawie typuinterfejsu służącego do komunikacji z systemem

Use Cases(UUCW)

Klasyfikacja do trzech klas złożoności na podstawieliczby transakcji

Technical Complexity Factors (TCF)

13 czynników, których wpływ na projekt ocenianyjest w skali 0-5

EnvironmentalFactors (EF)

8 czynników, których wpływ na projekt oceniany jest w skali 0-5

UCP = (UAW+UUCW) x TCF x EF

Software System

C#C++

Java

Technical Complexity

Factors

UC1UC1

UC1

Use Cases

Users

Actors

Environment Factors

2

1

3

45

TCF= 0,6 + (0,01*TFactor) EF= 1,4 + (-0,03*EFactor)

Use Case Points (UCP)

Gustav Karner (1993)

Effort = UCP x PF

Productivity Factor(domyślnie 20 h/UCP, należy

skalibrować na podstawie danychhistorycznych) – typowo <10,30>

Model parametryczny

R² = 0,9277

0

500

1000

1500

2000

2500

3000

3500

4000

0 20 40 60 80 100 120 140

UCP a pracochłonność

Effort

Linear (Effort)

Regresja liniowa

Klasyfikacja metod szacowania

Metodyszacowania

Analogia Eksperckie Algorytmiczne

Parametryczne Nieparametryczne

Hybrydowe

Plan wykładu

• Wprowadzanie

• Rozmiar oprogramowania – punkty funkcyjne

• Szacowanie pracochłonności– Miary dokładności szacowania pracochłonności

– Przegląd metod szacowania pracochłonności• Przez analogię

• Eksperckie

• Algorytmiczne

• Harmonogram i budżet

Harmonogramowanie

• Czas realizacji a pracochłonność

• Liczba wykonawców

• Zależności między zadaniami

Czas realizacji a pracochłonność

• Jaka byłaby pracochłonność (effort) i czasrealizacji (duration) zadania domowego:

– Napisz program obliczający silnię – n!

– Termin oddania 12 grudnia 2014

Czas realizacji: 1 tydzień Pracochłonność:

10 minut?

Czas realizacji a pracochłonność

• Czas realizacji i pracochłonność nie muszą byćtakie same!

Wysocki, R. K., & McGary, R. (2003). Effective project management: traditional, adaptive, extreme. Wiley.

Liczba wykonawców

• Czy czas realizacji zmniejszy się jak zwiększęliczbę wykonawców?

Liczba wykonawców

• Wynieść krzesło z pokoju

Liczba wykonawców

• Wynieść krzesło z pokoju

Liczba wykonawców

• Wynieść krzesło z pokoju

Liczba wykonawców

• Wynieść krzesło z pokoju

Liczba wykonawców

• Wynieść krzesło z pokoju

– Podwójmy zasoby!

Liczba wykonawców

• Wynieść krzesło z pokoju

– Podwójmy zasoby!

Liczba wykonawców

• Wynieść krzesło z pokoju

– Podwójmy zasoby!

Liczba wykonawców

• Wynieść krzesło z pokoju

– Podwójmy zasoby!

Liczba wykonawców

• Wynieść krzesło z pokoju

– Podwójmy zasoby!

Crashpoint!

Liczba wykonawców

• Czy czas realizacji zmniejszy się jak zwiększęliczbę wykonawców?

– Do pewnego momentu (zależy od zadania)

– Dodanie większej liczby osób - Crashpoint!

– Dodanie zbyt dużej liczby osób zwiększypracochłonność z uwagi na narzut na komunikację

Crashpoint!

Zależność między zadaniami

KAWA

ZIARNA

Kawawsypana

Zmielone

ziarna

FILIŻANKA

Filiżankaumyta

Filiżankarozgrzana

WODA

Wodazagotowana

Woda wlanado filiżanki

Kawazamieszana

1’ 2’ 2’ 15’ 3’ 1’

1’

3’ 17’ 4’

25’

Zależność między zadaniami

KAWA

ZIARNA

Kawawsypana

Zmielone

ziarna

FILIŻANKA

Filiżankaumyta

Filiżankarozgrzana

WODA

Wodazagotowana

Woda wlanado filiżanki

Kawazamieszana

1’ 2’ 2’ 15’ 3’ 1’

1’

3’ 17’ 4’

25’

Pracochłonność czy czas realizacji?

Jak stworzyć harmonogram?

Diagramy sieciowe i wykresy Gantta

Network diagram

Gantt chart

Precedence Diagramming Method

• Do tworzenia diagramów sieciowych

• Dwie wersje

– AOA – activity on the arrow (starsze)

– AON – activity on the node

PDM – activity node

• ES – earliest start

• EF – earliest finish

• LS – latest start

• LF – latest finish

• E – duration

• ID – id of task

• Slack (luz)

PDM

1. Stwórz sieć bazując na zależnościach

– Jedno wejście

– Jedno wyjście

Zależność między zadaniami

KAWA

ZIARNA

Kawawsypana

Zmielone

ziarna

FILIŻANKA

Filiżankaumyta

Filiżankarozgrzana

WODA

Wodazagotowana

Woda wlanado filiżanki

Kawazamieszana

1’ 2’ 2’ 15’ 3’ 1’

1’

3’ 17’ 4’

25’

Jaka zależność między zadaniami?

Zależność między zadaniami

• Kawa wsypana zależy od:– FILIŻANKA– Zmiel kawę

• Woda wlana do filiżanki zależy od:– Woda zagotowana– FILIŻANKA– Kawa wsypana

• Kawa zamieszana zależy od:– Woda wlana do filiżanki – Kawa wsypana (?)

144

PDM

Zmielona 2 Wsypana 1

Zagotowana 3 Wlana 1 Zamieszana 1

Umyta 2 Rozgrzana 15

KA

WA

WO

DA

FILI

ŻAN

KA

PDM

2. Stwórz wczesne uszeregowanie (forward pass)

– Pokazuje najwcześniejsze możliwe czasy kiedyzadanie może się rozpocząć i zakończyć

PDM

2. Stwórz wczesne uszeregowanie (forward pass)

– ES input = 1

– EFA = ESA + EA - 1

– ESc = max{EFA, EFB} + 1

A

c

B

PDM

Zmielona 2

? ?

Wsypana 1

Zagotowana 3 Wlana 1 Zamieszana 1

Umyta 2 Rozgrzana 15

KA

WA

WO

DA

FILI

ŻAN

KA

PDM

Zmielona 2

1 2

Wsypana 1

? ?

Zagotowana 3

1 3

Wlana 1 Zamieszana 1

Umyta 2

1 2

Rozgrzana 15

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

PDM

Zmielona 2

1 2

Wsypana 1

18 18

Zagotowana 3

1 3

Wlana 1

? ?

Zamieszana 1

Umyta 2

1 2

Rozgrzana 15

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

PDM

Zmielona 2

1 2

Wsypana 1

18 18

Zagotowana 3

1 3

Wlana 1

19 19

Zamieszana 1

20 20

Umyta 2

1 2

Rozgrzana 15

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

PDM

3. Stwórz późne uszeregowanie (backward pass)

– Pokazuje ostateczny czas rozpoczęcia izakończenia taki, który nie spowoduje opóźnieniaprojektu

PDM

3. Stwórz późne uszeregowanie (backward pass)

– LF output = EF output

– LSA = LFA – EA + 1

– LFA = min{LSB, LSC} – 1

A

c

B

PDM

Zmielona 2

1 2

Wsypana 1

18 18

Zagotowana 3

1 3

Wlana 1

19 19

Zamieszana 1

20 20

? ?

Umyta 2

1 2

Rozgrzana 15

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

PDM

Zmielona 2

1 2

Wsypana 1

18 18

Zagotowana 3

1 3

Wlana 1

19 19

Zamieszana 1

20 20

20 20

Umyta 2

1 2

Rozgrzana 15

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

PDM

Zmielona 2

1 2

Wsypana 1

18 18

? ?

Zagotowana 3

1 3

Wlana 1

19 19

19 19

Zamieszana 1

20 20

20 20

Umyta 2

1 2

Rozgrzana 15

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

PDM

Zmielona 2

1 2

Wsypana 1

18 18

18 18

Zagotowana 3

1 3

Wlana 1

19 19

19 19

Zamieszana 1

20 20

20 20

Umyta 2

1 2

Rozgrzana 15

3 17

? ?

KA

WA

WO

DA

FILI

ŻAN

KA

PDM

Zmielona 2

1 2

Wsypana 1

18 18

18 18

Zagotowana 3

1 3

16 18

Wlana 1

19 19

19 19

Zamieszana 1

20 20

20 20

Umyta 2

1 2

1 2

Rozgrzana 15

3 17

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

16 17

PDM

• Okno czasowe

1 17

1 17…

Zmielona 2

1 2

16 17

Zmielona

Zmielona

PDM

4. Ścieżka krytyczna (critical path)

– Jakiekolwiek opóźnienie zadań na ścieżcekrytycznej spowoduje opóźnienie projektu

PDM

4. Ścieżka krytyczna (critical path)

– Ścieżka z najdłuższym czasem wykonania

– Activity Slack Time (przepływ) – tolerowanawielkość opóźnienia startu lub zakończeniazadania, która nie spowoduje opóźnieniaprojektu

Slack (luz) = LF – EF

PDM

Zmielona 2

1 2

Wsypana 1

18 18

18 18

Zagotowana 3

1 3

16 18

Wlana 1

19 19

19 19

Zamieszana 1

20 20

20 20

Umyta 2

1 2

1 2

Rozgrzana 15

3 17

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

16 17

PDM

Zmielona 2

1 2

16 17

Wsypana 1

18 18

18 18

Zagotowana 3

1 3

16 18

Wlana 1

19 19

19 19

Zamieszana 1

20 20

20 20

Umyta 2

1 2

1 2

Rozgrzana 15

3 17

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

15 0

15 0 0

00

PDM

Zmielona 2

1 2

16 17

Wsypana 1

18 18

18 18

Zagotowana 3

1 3

16 18

Wlana 1

19 19

19 19

Zamieszana 1

20 20

20 20

Umyta 2

1 2

1 2

Rozgrzana 15

3 17

3 17

KA

WA

WO

DA

FILI

ŻAN

KA

15 0

15 0 0

00 Opóźnienie tych zadań opóźni projekt!

Koszt

• Wycena na podstawie rozmiaru

• Wycena na podstawie pracochłonności

• Wycena na podstawie czasu realizacji

– Odległość w czasie

– Konieczność utrzymania etatów

– Fazy realizacji projektu

165

Q&A time