1 Samodzielny Zakład Sieci Komputerowych dr inż. Marcin Kwapisz Lecture 7 – Gazing into the Crystal Ball and Reading Tea Leaves
2 Lecture 7.1 – Szacowanie nakładu pracy i harmonogramu Modele algorytmiczne COCOMO II Punkty funkcyjne Punkt przypadków-użycia Punkty obiektowe QIF-based estimates (Quantitative Influencing Factors) - IBM Rational SUMMIT Ascendant Szacowanie przez ekspertów Wideband Delphi Szacowanie na podstawie analogicznych projektów Najczęściej używane techniki szacowania
3 Lecture 7.2 – Dystrybucja wartości szacowanej 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 Dystrybucja w WBS Faza opracowania Zadanie 1 Podzadanie 1.1 Podzadanie 1.2 Zadanie 2 Podzadanie 2.1
4 Lecture 7.3 – Dystrybucja wartości szacowanych 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 Podzadanie 1.1 Podzadanie 1.2 Zadanie 2 Podzadanie 2.1 Dystrybucja w WBS
5 Lecture 7.3 – Iteracyjne szacowania Oceń Zaktualizuj plan Wykonaj Przegląd oszacowania Porównaj
6 Lecture 7.4 – Dokładność szacunku 0 4X X/4 Variance in Cost to Complete Estimate Na koniec każdej fazy powinno się zweryfikować i udoskonalić miary projektowe, kiedy wiedza o aktualnych nakładach pracy jest już dostępna Iteration I1Iteration E1Iteration E2Iteration C1Iteration C2Iteration C3Iteration T1 Elaboration Construction Transition Inception Over-estimated Under-estimated
7 Lecture 7.5 – COCOMO II http://sunset.usc.edu/research/COCOMOII/cocomo_main.html 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 COnstructive COst MOdel II
8 Lecture 7.6 – COCOMO II – Ocena nakładu pracy Osobo-miesiące BRAKProcent kodu porzuconego, z uwagi na zmienność wymagań ASLOCRozmiar zaadoptowanego kodu komponentów wyrażony w tysiącach linii kodu ATLiczba komponentów automatycznie przekonwertowanych ATPRODPoziom zautomatyzowania konwersji wyrażony w SLOC/osobomiesiąc Czynniki kosztowe Kod porzucony B Czynniki skalujące Re-engineering and Conversion PM nom
9 Lecture 7.7 – COCOMO II – Ocena nakładu pracy Nowe KSLOC Zaadaptowane KSLOC KNSLOCRozmiar wyrażony w tysiącach linii nowego kodu KASLOCRozmiar wyrażony w tysiącach linii zaadaptowanego kodu ATProcent komponentów automatycznie przystosowanych AAProcent nakładu pracy koniecznego do oceny i przyswojenia istniejącego komponentu SUProcent nakładu pracy koniecznego do zrozumienia jego działania DM/CMProcent nakładu pracy na projektowanie i modyfikacje kodu IMProcent nakładu pracy na integrację i testowanie
10 Lecture 7.8 – Rozmiar w liniach kodu (LOC) Design Modified Code Modified Integration/Test Modified Assessment & Assimilation Automatically translated Software Understanding
11 Lecture 7.9 – Czynniki skalujące Czynniki kosztowe Kod porzucony Re-engineering and Conversion PM nom PRECPrecedens (Precedentedness) FLEXElastyczność budowy oprogramowania (Development Flexibility) RESLArchitektura i przeciwdziałanie ryzyku (Architecture and Risk Resolution) TEAMSpójność zespołu (Team Cohesion) PMATDojrzałość procesu (Process Maturity)
12 Lecture 7.10 – Czynniki skalujące – SF 1 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 PREC – Precedentedness (Very Low, Low = 5 \ Nominal, High \ Very High, Extra High = 0)
13 Lecture 7.11 – Czynniki skalujące – SF 2 Konieczność zgodności oprogramowania z wcześniej ustalonymi wymaganiami Pełna \ Znaczna \ Podstawowa Konieczność zgodności oprogramowania ze specyfikacją zewnętrznych interfejsów Pełna \ Znaczna \ Podstawowa Premia za wcześniejsze ukończenie projektu Wysoka \ Średnia \ Niska FLEX – Development Flexibility (Very Low = 5 \ Low \ Nominal \ High \ Very High \ Extra High = 0)
14 Lecture 7.12 – Czynniki skalujące – SF 3 Risk Management Plan – identyfikuje wszystkie krytyczne elementy ryzyka, ustala kamienie milowe dla ich 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 \ Znaczący \ Duży \ Niewielki \ Mały \ Bardzo mały Liczba i wielkość elementów ryzyka > 10 krytycznych \ 5-10 krytycznych \ 2-4 krytycznych \ 1 krytycznych \ > 5 niekrytycznych \ < 5 niekrytycznych RESL – Architecture and Risk Resolution (Very Low = 5 \ Low \ Nominal \ High \ Very High \ Extra High = 0)
15 Lecture 7.13 – Czynniki skalujące – SF 4 Spójność celów udziałowców i kultury Mała \ Niewielka \ Podstawowa \ Znaczna \ Silna \ Pełna Możliwości i chęci dostosowywania się do celów innych udziałowców 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 TEAM – Team Cohesion (Very Low = 5 \ Low \ Nominal \ High \ Very High \ Extra High = 0)
16 Lecture 7.14 – Scale Factors – SF 5 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/ PMAT – Process Maturity (Very Low = 5 \ Low \ Nominal \ High \ Very High \ Extra High = 0)
17 Lecture 7.15 – Nakład pracy a czynniki skalujące
18 Lecture 7.16 – Czynniki kosztowe Czynniki kosztowe Kod porzucony B Czynniki skalujące Re-engineering and Conversion PM nom RCPXNiezawodność i złożoność produktu (Product Reliability and Complexity) RUSEWymagania ponownego wykorzystania komponentów (Required Reuse) PDIFOgraniczenia platformy (Platform Difficulty) PERSMożliwości kadrowe (Personnel Capability) PREXDoświadczenie kadry (Personnel Experience) FCILInfrastruktura (Facilities) SCEDHarmonogram (Schedule)
19 Lecture 7.17 – Czynniki kosztowe (1) Model wczesnego projektowania (7) Model po-projektowy (17) RCPXRELY, DATA, CPLX, DOCU RUSE PDIFTIME, STOR, PVOL PERSACAP, PCAP, PCON PREXAEXP, PEXP, LTEX FCILTOOL, SITE SCED Early Design and Post-Architecture Effort Multipliers
20 Lecture 7.18 – Czynniki kosztowe (2) Stopniowanie: Liczba stopni – 7 XLO \ VLO \ LO \ NO \ HI \ VHI \ XHI NO = 1 (poziom nominalny) EM 1 – RCPX– Product Reliability and Complexity EM 2 – RUSE – Required Reuse EM 3 – PDIF – Platform Difficulty EM 4 – PERS – Personnel Capability EM 5 – PREX – Personnel Experience EM 6 – FCIL – Facilities EM 7 – SCED – Schedule Model wczesnego projektowania
21 Lecture 7.19 – Effort Multipliers (3) Stopniowanie: Liczba stopni – 6 VLO \ LO \ NO \ HI \ VHI \ XHI NO = 1 (poziom nominalny) Model po-projektowy
22 Lecture 7.20 – Effort Multipliers (4) Product Reliability and Complexity (RCPX) – Product Factors EM 1 – RELY – Required Software Reliability (VLO – VHI) EM 2 – DATA – 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 – TIME – Execution Time Constraint (NO – XHI) EM 7 – STOR – Storage Constraint (NO – XHI) EM 8 – PVOL – Platform Volatility (LO – VHI) Model po-projektowy (Post–Architecture Model)
23 Lecture 7.21 – Effort Multipliers (5) 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) Model po-projektowy (Post–Architecture Model)
24 Lecture 7.22 – Effort Multipliers (6) EM 17 – SCED – Required Development Schedule – Project Factor Model po-projektowy (Post–Architecture Model) VLOLONOHIVHI SCED75%85%100%130%160%
25 Lecture 7.23 – COCOMO II – Schedule Estimation Czas budowy oprogramowania TDEVcalendar 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 PMestimated person-months excluding the SCED effort multiplier SCED%the compression / expansion percentage in the SCED effort multiplier