Estimering av arbeids og tidsforbruk ved systemutvikling In
Estimering av arbeids- og tidsforbruk ved systemutvikling In 140 Forelesning Nr 18 b Sommerville kap 23
Mål n Forstå grunnleggende prinsipper og sammenhenger for kostnads- og prisestimering n Kjenne til tre måltall for vurdering av programvareproduktivitet n Innse at forskjellige beregningsmåter er nødvendige 2
Introduksjon n Prosjektlederen må anslå – Arbeidsmengde – Tidsforbruk – Totalkostnad Kostnadsestimering samtidig med prosjektplanlegging n Stadig oppdatering av anslag n Handling nødvendig ved betydelige avvik n 3
Kostnadsberegning og prissetting n Tre kostnadskomponenter – Maskin- og programvarekostnader – Reise og treningskostnader – Arbeidskostnader n Den siste er normalt den største n Overhead typisk 100% n Prissetting – Ikke det samme som kostnad – Mange faktorer spiller inn 4
Faktorer som påvirker prissetting n Markedsmuligheter n Usikkerhet i kostnadsestimatet n Kontraktsbetingelser n Usikker kravspesifikasjon n Finansiell styrke n Konkurransesituasjonen 5
Produktivitet Programvareprodukter er forskjellig n Vanskelig å sammenligne tidsforbruk n Estimering er nødvendig n To måltallstyper n – Størrelsesrelatert (linjer, sider, objektkode) – Funksjonalitetsrelatert (funksjons- eller objektpoeng) n Svært vanlig: Linjer kode per måned – Stammer fra korttiden – Tellingsmåter – Kan gi meningsløse resultater 6
Høy- og lavnivåspråk 7
Systemutvikling - tidsforbruk 8
Funksjonspoengtelling (Albrecth 1979) Språkuavhengig n Funksjonspoeng personmåned n Best egnet for databehandlingssystemer n Det tildeles poeng med ulik vekt (3 -15) for n – – Inn og utdata Brukeraksjoner Eksterne grensesnitt Filer som brukes UFC = Summen av antall elementer x vekt n Korreksjonsfaktorer for Distribuert, Gjenbruk, Ytelseskrav n Ikke objektivt mål n 9
Objektpoengtelling Egnet for 4. generasjonsspråk n Ingen sammenheng med objektorientering n Veid estimering av n – Antall skjermbilder (1 -3 op avh av kompleksitet) – Antall rapporter (2 -8 op avh av kompleksitet) – Antall 3. GL støttemoduler (10 op) Lettere å estimere enn funksjonspoeng. n Tillater tidlig estimering n 10
Funksjons- og objektpoeng n Tillater tidlig estimering n Kan også brukes for estimering av kodestørrelse = AVC x Sum av FP n AVC – Assembly 200 -300 LOC per FP – 4. GL 2 -40 LOC per FP 11
Faktorer som påvirker utviklerens produktivitet n Individuelle ferdigheter viktigst – En forskjell på 10 x – Små og store lag n Ellers – – – n Erfaring fra anvendelsesområdet Prosesskvaliteten Prosjektstørrelsen Støtte fra teknologi Arbeidsmiljø Varierer sterkt med hva som lages – 30 LOC/mnd – 900 LOC/mnd – 4 -50 OP/mnd 12
Problemer med kvantitetsmål n Hva med kodeforenkling n Hva med kodekvalitet n Bør ikke brukes i evaluering av personale n Bare veiledende n Krever omtanke 13
Estimeringsteknikker Ikke enkelt å estimere n Vanskelig å vurdere estimeringsnøyaktighet n Selvoppfyllende estimater n Prosjektledere og estimering n – Arbeidsmengde: Bra – Kodestørrelse: Svakere Bottom-up vs Top-Down n Store og små systemer n 14
Estimeringsteknikker n Algoritmisk kostnadsestimering n Ekspertvurdering n Estimering ved analogi n Parkinsons lov n "Pricing to win" 15
Estimeringsteknikker n Tidlige estimater n Usikkerhet ved endret teknologi – OO – C/S – COTS – Gjenbruk – CASE og programgeneratorer 16
Algoritmisk kostmodellering Systematisk n Arbeidsmengde = A x Størrelse. B x M n – – A konstant for organisasjon og produkttype Størrelse LOC B kompleksitetskorrigering (1 -1, 5) M avhenger av • Språk, Gjenbruk, Prosess. . . Kalibrering n Flere estimater Worst Case, Best Case. . . n 17
Usikkerhet ved estimatet 18
Alternative kostnader 19
Alternative kostnader 20
Prosjektvarighet og -bemanning Ingen enkel sammenheng n Ved flere deltakere: n – Mer kommunikasjon – Flere grensesnitt å definere n n n Nominell varighet: TDEV=3 x. PM(0, 33+0, 2*(B-1, 01)) NB! Antall medarbeidere er ikke med i formelen Kan akselereres Antall deltakere på prosjektet Rask oppbygging korrelerer med forsinkelser 21
Hovedpoeng n n n Produktivitet påvirkes av dyktighet, erfaring, prosess, størrelse, CASE og arbeidsmiljø Ulike metoder for kostnadsestimering Prissetting ofte for å få kontrakten – funksjonaliteten justeres til prisen stemmer Algoritmisk kostnadsmodellering bygger på egenskaper ved det ferdige produktet Algoritmiske kostnadsmodeller og veivalg Tidsforbruket er ikke direkte avhengig av antall deltakere – forsinkelser blir ofte verre ved å tildele flere personer. 22
- Slides: 22