12 M aking process predictions Att avgöra prediktionsprecision av ett verktyg Vad är en uppskatning? Kostnadsuppskatning av projekt COCOMO Vad är en bra uppskatning? PPL och Predictor E = uppskattning (Estimate) A = faktiska värdet (Actual) RE = relative error = (A-E)/A 1 MRE = n i n = 1 A i Ei Ai PRED(0.25) = 0.47 47% av prediktioner fa ler inom 25% av de verkliga värden PRED(0.25) >= 0.75acceptabelteknik 2I1251/PV2Programvarumetrologi/Mått och modeler 1 3 Vad för processer? Uppskattning av kostnad och arbetsinsats för ett projekt Process övergripande process subprocess, t ex design en projekt en specifik process Estimering (uppskattning) Prediktion Expertbedömning. 2I1251/PV2Programvarumetrologi/Mått och modeler 2 4 1 2
Estimering och Prediktion Kostnadsuppskattning - varför så svårt? Estimering Tid för projektet Projekten olika domäner utvecklingsverktyg metoder personal Once-off'projekt Kravändringar Dålig förståelse av produktens storlek Knappt någon mätdata Politiska anledningar Man lär sig inte av tidigare fel i uppskattning 5 7 När behöver man uppskatta kostnad? Aktue la ansatser ti l kostnadsuppskattning Vid budgivning Projektplanering Projektuppföljning Vilka värden är fasta? Vad kan vi spela på? Kan projektet genomföras? Expertbedömning Dekomposition Analogi Gruppuppskattning Algoritmiska modeller 6 8 3 4
Gruppuppskattningar (Delphiteknik) 1. Ge specifikation och övrig information och data från liknande projekt till gruppen 2. Koordinator kallar till gruppmöte, expert frågar och diskuterar uppskattningar 3. Anonyma uppskattningar total projektarbetsinsats total arbetsinsats för utveckling övre och undre gräns och mest sannolika värde 4. En sammanfattning av individuella uppskattningar och medelvärde av gruppens uppskattningar cirkuleras 5. Diskussion 6. Reviderade uppskattningar tills medelvärde är OK (consensus) E = as b F COCOMO: arbetsinsats Parametrarna a och b a,b parametrar för utveckling, beroende på typ av programvara Typer organic (dataintensiva) semi-detached embedded (realtidssystem, del av ett HW baserat system) 9 11 COCOMO:arbetsinsats COCOMO: arbetsinsats Värden på a och b Basmodell Mellanmodell Avancerad modell E = as b F S Storlek (KDSI) Mode a b Organic 2.4 1.05 Semi-detached 3.0 1.12 Embedded 3.6 1.20 10 12 5 6
COCOMO: arbetsinsats: exempel: Telefonväxelsystem COCOMO:Cost drivers 5000 KDSI Inbyggt system E = 3.6 (5000) 1.2 = 10.000 pmån Produkt Tillförlitlighetskravet Databasstorlek Komplexitet Process Användning av modern programmeringsstil Användning av utvecklingsverktyg Resurs Datorer:exekveringstid, primärminnesstorlek Personal:analysförmåga, erfarenhet av applikationsområdet 13 15 COCOMO: arbetsinsats Parametern F COCOMO: projekttid E = as b F F är en parameter som beror på ett antal cost drivers F = 1 i basmodellen Arbetsinsats E D = ae b D tid i mån 3000 pmån, inbyggt system 2.5 (3000) 0.38 = 52 mån 14 16 7 8
COCOMO: projekttid Putnam's SLIM (US Army) Detta är ett optimalt värde på kalendertiden, alla försök att förändra den kommer enligt COCOMO-modellen att öka E storlek = CK 1/3 t d 4/3 C = teknologifaktor (14 komponenter) K = total arbetsinsats i personår (inkl underhåll) t d = tid till leverans (mätt i år) -10% tid -> +52% arbetsinsats 17 19 COCOMO 2.0 Storlek i objektpunkter i basmodellen Mellanmodell: FP Avancerad modell: som i original COCOMO, LOC http://sunset.usc.edu/research/cocomoii/ index.html Problem med existerande modeller Låg prediktionsprecision Modellstruktur storlek-arbetsinsats-förhållandet inte klart större projekt mindre produktiva än små enligt många modeller Tid - arbetsinsats Putnam: -tid -> +arbetsinsats Putnam: +tid -> -arbetsinsats Boehm: +-tid -> +arbetsinsats annan studie: -tid -> - arbetsinsats COCOMO cost drivers förbättrar inte korrektheten Cost drivers antas vara oberoende Cost driver gradering subjektiv 18 20 9 10
Prediktionsprocess Oberoende uppskattningsgrupp Empirical Observations Data Theory Relationship Key variables Actual results Models Models Models Predictions Projects Ansvarar för att mätdata sparas Kan uppskatta, och kalibrera, är konsistent mellan projekten Ser bättre när projekt avviker från genomsnittliga Trender och analyser över flera projekt Har tid tilldelad för uppgiften 21 23 Hur bör vi använda kostnadsmodeller? Lokala datadefinitioner en miljö: storlek och arbetsinsats skall vara definierade på samma sätt objektiva: 2 personer som mäter samma produkt bör komma fram till samma värde Kalibrering Försäkra att input till modellen är vad modellen föreskriver Använd data från gamla projekt Justera modellkoefficienterna Skräddarsy existerande cost drivers, uteslut irrelevanta, lägg till nya Omkalibrera periodiskt 22 Prediktionsstöd för projektledning och Predictor 24 11 12