Transcript Lecture 7 – Gazing into the Crystal Ball and Reading Tea
Samodzielny Zakład Sieci Komputerowych
Lecture 7 – Gazing into the Crystal Ball and Reading Tea Leaves
dr inż. Marcin Kwapisz
Lecture 7.1 – Szacowanie nakładu pracy i harmonogramu
Najczęściej używane techniki szacowania
Modele algorytmiczne COCOMO II Punkty funkcyjne Punkt przypadków-użycia Punkty obiektowe QIF-based estimates (Quantitative Influencing Factors) SUMMIT Ascendant IBM Rational Szacowanie przez ekspertów Wideband Delphi Szacowanie na podstawie analogicznych projektów
Lecture 7.2 – Dystrybucja wartości szacowanej
Dystrybucja w WBS
Z góry na dół, czyli od ogółu do szczegółu (Top-down) Oszacowanie całego projektu (COCOMO II, Punkty funkcyjne) Dystrybucja wartości szacowanej na wszystkie elementy WBS Faza opracowania Zadanie 1 Zadanie 2 Podzadanie 1.1
Podzadanie 1.2
Podzadanie 2.1
Lecture 7.3
– Dystrybucja wartości szacowanych
Dystrybucja w WBS
Z dołu do góry, czyli od szczegółu do ogółu Szacowanie niskopoziomowych elementów WBS (QIF, Szacowanie ekspertów) Suma w rezultacie da końcowy szacunek dla całego projektu Faza opracowania Zadanie 1 Zadanie 2 Podzadanie 1.1
Podzadanie 1.2
Podzadanie 2.1
Lecture 7.3 – Iteracyjne szacowania
Oceń Zaktualizuj plan Porównaj Wykonaj Przegląd oszacowania
Lecture 7.4 – Dokładność szacunku
4X Iteration I1 Iteration E1 Iteration E2 Iteration C1 Iteration C2 Iteration C3 Iteration T1 0 Inception Elaboration Over-estimated Construction Under-estimated Transition X/4 Na koniec każdej fazy powinno się zweryfikować i udoskonalić miary projektowe, kiedy wiedza o aktualnych nakładach pracy jest już dostępna
Lecture 7.5 – COCOMO II
COnstructive COst MOdel II
http://sunset.usc.edu/research/COCOMOII/cocomo_main.html
Etap koncepcji Etap wczesnego projektowania (Early Design) Badanie różnych rozwiązań architektonicznych oprogramowania/systemów i pomysłów na ich wykonanie, Zgrubna ocena kosztów Zbiór 7 multiplikatywnych czynników kosztowych Etap po-projektowy (Post-Architecture) Rozwój i utrzymanie oprogramowania Dokładna ocena kosztów Zbiór 17 multiplikatywnych czynników kosztowych
Lecture 7.6 – COCOMO II – Ocena nakładu pracy
Osobo miesiące
PM
i
17 1
EM
i
A
1 Czynniki kosztowe
BRAK
100 Kod porzucony
Size
1 , 01 0 , 01
j
5 1
SF j
B
ASLOC
AT
100
ATPROD
Re-engineering and Conversion Czynniki skalujące
PM nom
BRAK ASLOC AT ATPROD
Procent kodu porzuconego, z uwagi na zmienność wymagań Rozmiar zaadoptowanego kodu komponentów wyrażony w tysiącach linii kodu Liczba komponentów automatycznie przekonwertowanych Poziom zautomatyzowania konwersji wyrażony w SLOC/osobomiesiąc
Lecture 7.7 – COCOMO II – Ocena nakładu pracy
Size
KNSLOC
KASLOC
100
AT
100
AA
SU
0 , 4
DM
0 , 3
CM
100 0 , 3
IM
Nowe KSLOC Zaadaptowane KSLOC
KNSLOC KASLOC AT AA SU DM/CM IM
Rozmiar wyrażony w tysiącach linii nowego kodu Rozmiar wyrażony w tysiącach linii zaadaptowanego kodu Procent komponentów automatycznie przystosowanych Procent nakładu pracy koniecznego do oceny i przyswojenia istniejącego komponentu Procent nakładu pracy koniecznego do zrozumienia jego działania Procent nakładu pracy na projektowanie i modyfikacje kodu Procent nakładu pracy na integrację i testowanie
Lecture 7.8 – Rozmiar w liniach kodu (LOC)
Code
Modified Design Modified
Automatically translated AT AA SU
Integration/Test Modified Assessment & Assimilation Software Understanding
KNSLOC KASLOC Size
Lecture 7.9 – Czynniki skalujące
PM
i
17 1
EM
i
A
1 Czynniki kosztowe
BRAK
100 Kod porzucony
Size
1 , 01 0 , 01
j
5 1
SF j
ASLOC
AT
100
ATPROD
Re-engineering and Conversion
PREC FLEX RESL TEAM PMAT
PM nom Precedens (Precedentedness) Elastyczność budowy oprogramowania (Development Flexibility) Architektura i przeciwdziałanie ryzyku (Architecture and Risk Resolution) Spójność zespołu (Team Cohesion) Dojrzałość procesu (Process Maturity)
Lecture 7.10 – Czynniki skalujące – SF
1
PREC – Precedentedness (Very Low, Low = 5 \ Nominal, High \ Very High, Extra High = 0) Organizacyjne zrozumienie celów produktu Ogólne \ Znaczne \ Całkowite Doświadczenie w pracy nad podobnymi systemami Umiarkowane \ Znaczne \ Extensive Równoległy rozwój budowy platformy sprzętowej i procedur operacyjnych Rozległe \ Umiarkowane \ Nieznaczne Need for innovative data processing architectures, algorithms Znaczne \ Nieznaczne \ Minimalne
Lecture 7.11
– Czynniki skalujące – SF
2
FLEX – Development Flexibility (Very Low = 5 \ Low \ Nominal \ High \ Very High \ Extra High = 0) Konieczność zgodności oprogramowania z wcześniej ustalonymi wymaganiami Pełna \ Znaczna \ Podstawowa Konieczność zgodności zewnętrznych interfejsów Pełna \ Znaczna \ Podstawowa oprogramowania ze specyfikacją Premia za wcześniejsze ukończenie projektu Wysoka \ Średnia \ Niska
Lecture 7.12 – Czynniki skalujące – SF
3
RESL – Architecture and Risk Resolution (Very Low = 5 \ Low \ Nominal \ High \ Very High \ Extra High = 0) Risk Management Plan kamienie milowe dla ich – identyfikuje wszystkie krytyczne elementy ryzyka, ustala rozwiązania poprzez PDR (Product Design Review).
Wcale \ Mało \ Trochę \ Ogólnie \ W większości \ W pełni Harmonogram, budżet i wewnętrzne kamienie milowe z PDR zgodne z Risk Management Plan Wcale \ Mało \ Trochę \ Ogólnie \ W większości \ W pełni Procent czasu poświęconego na ustalenie architektury na podstawie głównych celów produktu 5 \ 10 \ 17 \ 25 \ 33 \ 40 Procent najlepszych architektów dostępnych dla projektu 20 \ 40 \ 60 \ 80 \ 100 \ 120 Wsparcie narzędzi do rozwiązywania elementów ryzyka, tworzenia i weryfikacji specyfikacji architektonicznych Żadne \ Niewielkie \ Ograniczone \ Dobre \ Silne \ Pełne Poziom niepewności kluczowych czynników architektonicznych: cel, interfejs użytkownika, sprzęt, technologia, wydajność, COTS (commercial-off-the-shelf) Ogromny \ Liczba i Znaczący \ Duży \ Niewielki \ Mały \ Bardzo mały wielkość elementów ryzyka > 10 krytycznych \ 5-10 krytycznych \ 2-4 krytycznych \ 1 krytycznych \ > 5 niekrytycznych \ < 5 niekrytycznych
Lecture 7.13 – Czynniki skalujące – SF
4
TEAM – Team Cohesion (Very Low = 5 \ Low \ Nominal \ High \ Very High \ Extra High = 0) Spójność celów udziałowców i kultury Mała \ Niewielka \ Podstawowa \ Znaczna \ Silna \ Pełna Możliwości i udziałowców chęci dostosowywania się do celów innych Małe \ Niewielke \ Podstawowe \ Znaczne \ Silne \ Pełne Doświadczenie udziałowców w pracy zespołowej Żadne \ Małe \ Małe \ Podstawowe \ Znaczne \ Rozległe Budowa zespołu udziałowców celem osiągnięcia wspólnej wizji i zaangażowania Żadna \ Mała \ Mała \ Podstawowe \ Znaczna \ Rozległa
Lecture 7.14 – Scale Factors – SF
5
PMAT – Process Maturity (Very Low = 5 \ Low \ Nominal \ High \ Very High \ Extra High = 0)
CMMI
– Capability Maturity Model (Integration) Capability Maturity Model ® Integration (CMMI) is a process improvement approach that provides organizations with the essential elements of effective processes. It can be used to guide process improvement across a project, a division, or an entire organization. CMMI helps integrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes.
http://www.sei.cmu.edu/cmmi/
Lecture 7.15 – Nakład pracy a czynniki skalujące Osobomiesiące
350 300 250 200 150 100 50 0 1,01 1,06 1,11 1,16 1,21 1,26
Lecture 7.16 – Czynniki kosztowe
PM
i
17 1
EM
i
A
1
Czynniki kosztowe
BRAK
100 Kod porzucony
Size
1 , 01 0 , 01
j
5 1
SF j
B
ASLOC
AT
100
ATPROD
Re-engineering and Conversion Czynniki skalujące PM nom
RCPX RUSE PDIF PERS PREX FCIL SCED
Niezawodność i złożoność produktu (Product Reliability and Complexity) Wymagania ponownego wykorzystania komponentów (Required Reuse) Ograniczenia platformy (Platform Difficulty) Możliwości kadrowe (Personnel Capability) Doświadczenie kadry (Personnel Experience) Infrastruktura (Facilities) Harmonogram (Schedule)
Lecture 7.17 – Czynniki kosztowe (1)
Early Design and Post-Architecture Effort Multipliers
RCPX
Model wczesnego projektowania (7)
RUSE PDIF PERS PREX FCIL SCED
Model po-projektowy (17)
RELY, DATA, CPLX, DOCU RUSE TIME, STOR, PVOL ACAP, PCAP, PCON AEXP, PEXP, LTEX TOOL, SITE SCED
Lecture 7.18 – Czynniki kosztowe (2)
Model wczesnego projektowania
PM
adjusted
7
i
1
EM
i
PM
nom
Stopniowanie: Liczba stopni – 7 XLO \ VLO \ LO \ NO \ HI \ VHI \ XHI NO = 1 (poziom nominalny)
EM 1 EM 2 EM 3 EM 4 EM 5 EM 6 EM 7
– RCPX – Product Reliability and Complexity – RUSE – Required Reuse – PDIF – Platform Difficulty – PERS – Personnel Capability – PREX – Personnel Experience – FCIL – Facilities – SCED – Schedule
Lecture 7.19 – Effort Multipliers (3)
Model po-projektowy
PM
adjusted
7
i
1
EM
i
PM
nom
Stopniowanie: Liczba stopni – 6 VLO \ LO \ NO \ HI \ VHI \ XHI NO = 1 (poziom nominalny)
Lecture 7.20 – Effort Multipliers (4)
Model po-projektowy (Post –Architecture Model)
Product Reliability and Complexity (RCPX) – Product Factors
EM 1
–
EM 2
–
RELY DATA
– Required Software Reliability (VLO – VHI) – Database Size (LO – VHI)
EM 3
• –
CPLX
– Product Complexity (VLO – XHI) Control Op., Computational Op., Device-Dependant Op., Data Management Op., User Interface Management Op.
EM 4
–
DOCU
– Documentation match to life-cycle needs (VLO – VHI)
EM 5
–
RUSE
– Required Reuse (LO – XHI) – Product Factor Platform Difficulty (PDIF) – Platform Factors
EM 6
–
EM 7
–
TIME
– Execution Time Constraint (NO – XHI)
STOR
– Storage Constraint (NO – XHI)
EM 8
–
PVOL
– Platform Volatility (LO – VHI)
Lecture 7.21 – Effort Multipliers (5)
Model po-projektowy (Post –Architecture Model)
Personnel Capability (PERS) – Personnel Factors
EM 9
–
ACAP
– Analyst Capability (VLO – VHI)
EM 10
–
PCAP
– Programmer Capability (VLO – VHI)
EM 11
–
PCON
– Personnel Continuity (VLO – VHI) Personnel Experience (PREX) – Personnel Factors
EM 12
–
AEXP
– Application Experience (VLO – VHI)
EM 13
–
PEXP
– Platform Experience (VLO – VHI)
EM 14
–
LTEX
– Language and Tool Experience (VLO – VHI) Facilities (FCIL) – Project Factors
EM 15
–
TOOL
– Use of Software Tools (VLO – XHI)
EM 16
–
SITE
– Multi-site Development (VLO – XHI)
Lecture 7.22 – Effort Multipliers (6)
Model po-projektowy (Post –Architecture Model)
EM 17
–
SCED
– Required Development Schedule – Project Factor SCED
VLO
75%
LO
85%
NO
100%
HI
130%
VHI
160%
Lecture 7.23 – COCOMO II – Schedule Estimation
Czas budowy oprogramowania
TDEV
3 , 67 0 , 28 0 , 2
B
1 , 01
SCED
% 100
TDEV PM SCED%
calendar time in months from the determination of a product’s requirements baseline to the completion of an acceptance activity certifying that the product satisfies its requirements estimated person-months
excluding
the SCED effort multiplier the compression / expansion percentage in the SCED effort multiplier