Upload
doanthuan
View
228
Download
3
Embed Size (px)
Citation preview
Mirosław Ochodek
Inżynieria oprogramowania 2
Szacowanie pracochłonności i budżetu projektu
Piotr Miklosik
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ść
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
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ść
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
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
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
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ń
• 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
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
• 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
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
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 – 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 – 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
WBS – Elementy struktury
Poziom #1
Poziom #0 Cel
Czynność Czynność
Czynność – fragment pracy do wykonania na
wysokim poziomieabstrakcji
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
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?
– 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?
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)
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
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