A. Työmäärän ja resurssien arviointi

Samankaltaiset tiedostot
Ohjelmistotuotanto, k

arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi

Projektityö

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Työmäärän arviointi. Vaihtoehtoja. Sami Kollanus TJTA330 Ohjelmistotuotanto

Työmäärän arviointi. Vaihtoehtoja. Arviointiprosessi. Sami Kollanus TJTA330 Ohjelmistotuotanto

Harjoitus 1: Projektin aikataulu- ja resurssisuunnittelu

Helsingin yliopisto Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti. Esimerkkituoteperhe. Projektisuunnitelma

Projektityö. Projektityö. Projekti. Ohjelmistotuotanto, syksy 1998 Projekti

CoMa - Projektisuunnitelma

Yhteenveto. Menettelytavat

IPMA C-sertifiointivalmennus

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

Projektin aikataulutus

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

ENNAKKOTEHTÄVÄ 2017: Maisterivaiheen haku, tuotantotalous

Ohjelmistotuotanto, projektinhallinta Kevät 2005

Ohjelmistoprojektien hallinta Tuloksen arvo menetelmä ja toimintoverkkotekniikka

Mikä sitten on kallista? Milloin raha on viisaasti käytetty? Miten kallis määritellään toimintopistelaskennan näkökulmasta?

Tilastollinen testaus. Vilkkumaa / Kuusinen 1

Tik Ohjelmistoprojektien Hallinta. Luento 4 Työmäärien arviointi

Projektinhallinnan merkitys

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Ohjelmistotuotantoprojekti

HELIA 1 (11) Outi Virkki Tiedonhallinta

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Johdatus verkkoteoriaan luento Netspace

Ohjelmiston toteutussuunnitelma

Projektisuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

3. Projektinhallinta. Miksi ohjelmistoprojektin hallinta on erilaista?

PlanMan Project projektihallintaohjelmisto

Väliestimointi (jatkoa) Heliövaara 1

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistojen suunnittelu

Joukkoliikenteen asiakastyytyväisyystutkimus, mittausjakso 1:2011

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

Test-Driven Development

Joukkoliikenteen asiakastyytyväisyystutkimus, mittausjakso 3:2011

Projektisuunnitelma. Dogma

Algoritmit 1. Luento 1 Ti Timo Männikkö

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

ELM GROUP 04. Teemu Laakso Henrik Talarmo

MS Project 2016 perusteet projektiarkkitehdeille ja -insinööreille ver Hannu Hirsi 2018

Projektinhallinta: kustannusarvio

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Harjoitus 9: Excel - Tilastollinen analyysi

Rinnakkaistietokoneet luento S

Syötetään tehtävät ja kestot - Task Name ja Duration kentät - puurakenteen saamiseksi käytetään vihreitä nuolia (ylävalikossa) Indent, Outdent

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

Vaihtoehtoja. Työmäärän arviointi. Arviointiprosessi. Ohjelmiston koon arviointi

806109P TILASTOTIETEEN PERUSMENETELMÄT I Hanna Heikkinen Esimerkkejä estimoinnista ja merkitsevyystestauksesta, syksy (1 α) = 99 1 α = 0.

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistojen koon mittaaminen eri tyyppisissä kehityshankkeissa

Projektisuunnitelma Ilmoitusten profiloija ilpo ryhmä

Gumenius Sebastian, Miettinen Mika Moottoripyörän käynnistysalusta

1 Kannat ja kannanvaihto

Joukkoliikenteen asiakastyytyväisyystutkimus, mittausjakso 1:2012

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena

Projektisuunnitelma Nero-ryhmä

Ohjelmistotekniikka - Luento 6

Maha Eurosystem jarrulaskentaohjelman asennusohje versio

Projektin suunnittelu 71A00300

Ohjelmoinnin perusteet, syksy 2006

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Harjoitustyö Case - HelpDesk

LASTEN VAATIVA LÄÄKINNÄLLINEN PUHETERAPIAKUNTOUTUS: VALTAKUNNALLINEN SELVITYS

Koodaamme uutta todellisuutta FM Maarit Savolainen

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

TYÖNTEKIJÄN ELÄKELAIN (TYEL) 182 :N MUKAINEN TYÖTTÖMYYSVAKUUTUSRAHASTON MAKSU VUODELTA

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Test-Driven Development

Malliratkaisut Demot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

KADA (Drupal 7) migraatio uuteen (versioon) webiin

Talous- ja velkaneuvonta: Asiakasrekisteri. Tarjousten vertailu. Tiivistelmä

Yhdeksän mittaria ohjelmistotuotannon. seuraamiseen. tsoft. Vesa Tenhunen Joensuun yliopisto, TKT:n laitos

Kivireki Projektisuunnitelma

Toimintopisteet. Toimintopisteiden laskenta 1

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Ohjelmointi 1 / syksy /20: IDE

Harjoitus 2 ( )

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

Ylläpito. Ylläpidon lajeja

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Ohjelmistotuotanto, projektinhallinta Syksy Miksi ohjelmistoprojektin hallinta on erilaista? 3. Projektinhallinta

Aki Taanila YHDEN SELITTÄJÄN REGRESSIO

Paikkatiedon kypsyysmalli, case Espoo ja Turku. Aalto-yliopisto Insinööritieteiden korkeakoulu

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Tik Ohjelmistoprojektien Hallinta

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Harjoitus 2 ( )

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Kontrollipolkujen määrä

Mat Tilastollisen analyysin perusteet, kevät 2007

Algoritmit 1. Luento 3 Ti Timo Männikkö

Ohjelmistotuotanto, s /27/2003

Tehtävä 1: Veroprosentti

Harjoitus 2: Projektin etenemisen seuranta ja päätöksenteko

Transkriptio:

Ohjelmistotuotanto Ohjelmistoprojekti - Työmäärän arviointi ja aikataulutus 1 A. Työmäärän ja resurssien arviointi Projektisuunnitelmassa projektin tehtävät aikataulutetaan ja niiden suorittamiseen varataan resursseja Tällöin on tiedettävä, paljonko resursseja (yleensä: henkilöitä) työhön pitää varata ja kuinka kauan työ kestää Jos tiedetään työn määrä ja resurssien kyvykkyys, voidaan laskea projektin kesto Harri Laine, Jukka Paakki 2 Harri Laine, Helsingin yliopisto 1

Työmäärän ja resurssien arviointi Tee arvio niin myöhään kuin mahdollista mitä enemmän on tietoa sitä helpompi on arvioida jonkinlainen arvio tarvitaan kuitenkin ennen projektinkäynnistystä Käytä hyväksi historiatietoja samankaltaisista projekteista (samassa organisaatiossa) Tee työn ositus suoraviivaisesti ja tavalla, jota tukevaa historia-aineistoa on saatavissa Käytä yhtä tai useampaa kokemusperäistä arviointimallia Harri Laine, Jukka Paakki 3 Työmäärän ja resurssien arviointi Arviointiperusteet tuoteperustainen arviointi työmäärä arvioidaan tuotteen ominaisuuksien pohjalta tuotantoperustainenarviointi työmäärä arvioidaan tuottamisprosessiin kuuluvien tehtävien pohjalta Useita arvioita optimistinen (o), pessimistinen (p), todennäköinen(t) painotettu keskiarvo, esim. (p+o+4t)/6 Harri Laine, Jukka Paakki 4 Harri Laine, Helsingin yliopisto 2

1. Tuoteperustainen arviointi Tuotteen ominaisuudet Ohjelmakoodin määrä (LOC, lines of code) koodin määräkin on ennuste koodin määrä on ohjelmiston sisäinen ominaisuus eri ohjelmoijat tuottavat samasta asiasta kovin erilaisen määrän koodia helpommin johdettavissa kuin työmäärä historia-aineistot ja esimerkit auttavat Toiminnallisuuden ja tietosisällön määrä ja laatu toiminnallisuuden ja tietosisällön yksiköt? perustuvat ulkoisiin ominaisuuksiin analysoijat voivat päätyä merkittävästi erilaisiin mittalukuihin Harri Laine, Jukka Paakki 5 1.1. Koodiriviperustainen arviointi Edellyttää toimintopohjaista ositusta hyvin tarkalle tasolle vietynä pieniä komponentteja, jotka pystytään arvioimaan On helppo mitata valmiista komponentista Yksikön keskimääräinen tuottavuus LOC/htkk (rivejä/henkilötyökuukausi) on selvitettävissä historia-aineistosta Rivien määrä kieliriippuvaista, samoin kuin tuottavuuskin Soveltuu huonosti deklaratiivisiin 4G-kieliin Harri Laine, Jukka Paakki 6 Harri Laine, Helsingin yliopisto 3

Koodiriviperustainen arviointi Erilaisia rivimääriin perustuvia ohjelmistomittareita: löydettyjen virheiden määrä / 1000 riviä koodia (KLOC) käytössä havaittujen ohjelmistovirheiden määrä / KLOC kustannukset / (K)LOC dokumenttisivujen määrä / KLOC LOC / henkilötyökuukausi Harri Laine, Jukka Paakki 7 Koodiriviperustainen arviointi Olkoon LOC/htkk = 625 (kun kaikki ohjelmiston tuottamiseen tehty työ mukana) ja kustannukset/loc = 10 Olkoon ohjelmiston kokoarvio 30000 riviä Tällöin suoraviivaisesti: työmäärä = 30000/625 = 48 htkk jos aikaa on käytettävissä vuosi, tarvitaan optimaalisella työnjaolla 4 henkilöä kustannukset = 10*30000 = 300.000 Harri Laine, Jukka Paakki 8 Harri Laine, Helsingin yliopisto 4

1.2. Toiminnallisuusperustainen arviointi Toimintopistemenetelmä (Function Points, FP) Järjestelmän ulkoiset ominaisuudet kerryttävät toimintopisteitä syötteiden lukumäärä tulosteiden lukumäärä kyselyjen lukumäärä tiedostojen lukumäärä ulkoisten liittymien lukumäärä Nämä luokitellaan yksinkertaisiksi, normaaleiksi tai vaikeiksi Harri Laine, Jukka Paakki 9 Toimintopisteiden laskenta - peruspisteet yksinkertaisia *k normaaleja. *k vaikeita *k pisteet syötteitä *3+ *4+ *6+ tulosteita *4+ *5+ *7+ kyselyjä *3+ *4+ *6+ tiedostoja *7+ *10+ *15+ liittymiä *5+ *7+ *10 FP: Σ N lukumäärät kerrotaan perässä olevalla kertoimella ja tulot lasketaan yhteen Harri Laine, Jukka Paakki 10 Harri Laine, Helsingin yliopisto 5

Toimintopisteiden laskenta kaava Kompleksisuuskertoimilla voidaan vielä säätää hieman tulosta FP = N*(0.65+0.01*S(F i )) N : nominaalipisteet ed. kalvon taulukon mukaisena painotettuna summana F i (i=1..14) : kompleksisuustekijä, arvot 0-5 0 = Ei koskaan (No influence) 1 = Harvoin (Incidental) 2 = Toisinaan (Moderate) 3 = Keskimääräisesti (Average) 4 = Merkittävästi (Significant) 5 = Oleellisesti (Essential) Harri Laine, Jukka Paakki 11 Toimintopisteiden laskenta kompleksisuustekijät F i 1. Onko järjestelmä vikasietoinen? Tarvitaanko luotettavaa tietojen varmistus- ja palautusmenettelyä? 2. Tarvitaanko tietoliikenneominaisuuksia? 3. Onko hajautettua prosessinhallintaa? 4. Onko suorituskyky kriittinen elementti? 5. Käytetäänkö järjestelmää olemassaolevassa raskaassa käytössä olevassa koneympäristössä? 6. Tarvitaanko interaktiivista tietojen syöttöä? 7. Täytyykö interaktiivinen tietojen syöttö synkronoida usealle näytölle tai operaatiolle? 8. Päivitetäänkö tiedostoja interaktiivisesti? Harri Laine, Jukka Paakki 12 Harri Laine, Helsingin yliopisto 6

Toimintopisteiden laskenta kompleksisuustekijät F i 9. Ovatko syötteet, tulosteet, tiedostot tai kyselyt monimutkaisia? 10. Onko ohjelman toiminta monimutkaista? 11. Onko koodi tarkoitettu uudelleenkäytettäväksi? 12. Ovatko ohjelmiston muunnokset ja asennus mukana suunnitelmassa? 13. Onko ohjelmisto suunniteltu toimivaksi useina asennuksina eri organisaatioissa? 14. Onko sovellus suunniteltava käyttäjäystävälliseksi? Harri Laine, Jukka Paakki 13 Toimintopisteiden käyttö Toimintopistemääriä käytetään rivimäärien tapaan, eli sillä saadaan esim. seuraavia mittareita: testauksessa löydetyt virheet/ FP käyttöönoton jälkeen löydetyt virheet / FP kustannukset / FP dokumenttisivut / FP FP / henkilötyökuukausi jne. Toimintopistemallista onuseita muunnelmia lisätekijöitä (algoritmit), muunnettuja kertoimia Harri Laine, Jukka Paakki 14 Harri Laine, Helsingin yliopisto 7

Toimintopisteiden käyttö FP-mallin hyviä puolia: riippumaton ohjelmointikielestä perustuu dataan (ei koodiin), eli on helpommin arvioitavissa projektin alkuvaiheissa kaavoilla empiirinen (kokemusperäinen) pohja FP-mallin huonoja puolia: subjektiivinen; eri osioiden vaikeusaste (kompleksisuustekijä) riippuu tulkitsijasta mittarilla ei ole konkreettista ja intuitiivista merkitystä kutenloc:lla (rivien lukumäärä); FP on pelkkä numero Harri Laine, Jukka Paakki 15 Toimintopisteiden suhde ohjelmariveihin LOC:n ja FP:n välinen suhde riippuu käytetystä ohjelmointikielestä. Karkeasti on voitu johtaa seuraavanlaiset suhteet: Assembler 320 LOC/FP C 128 LOC/FP Cobol 105 LOC/FP Fortran 105 LOC/FP Pascal 90 LOC/FP Ada95 53 LOC/FP Oliokielet 20-60 LOC/FP (C++: 64) Visual Basic 32 LOC/FP SQL 12 LOC/FP Taulukkolaskimet 15 LOC/FP Graafiset kielet (ikonit) 4 LOC/FP Ylläoleva taulukko antaa arviot kielten ilmaisuvoimalle Harri Laine, Jukka Paakki 16 Harri Laine, Helsingin yliopisto 8

2. Tuotantoperustainen arviointi Ositetaan työtehtävät prosessimallin mukaisesti Esim: määrittely,suunnittelu, toteutus Osuuksien suhteesta tutkimustietoa Edellyttää organisaation projektit kattavaa historiatietoa Samanlaisuuden ongelma onko tehtävä samanlainen kuin aiemmassa projektissa X? Harri Laine, Jukka Paakki 17 3. Empiiriset arviointimallit Tyypillinen laskentakaava: työmäärä E = A+B*(koko) C koko on yleensä rivimäärä (KLOC) tai toimintopistemäärä (FP) A,B ja C ovat kokeellisesti aiempia projekteja tutkimalla saatuja kertoimia työmäärä E ilmaistaan useimmiten henkilötyökuukausina (htkk) Harri Laine, Jukka Paakki 18 Harri Laine, Helsingin yliopisto 9

Empiiriset arviointimallit Rivimääräpohjaisia malleja: E = 5,2*(KLOC) 0,91 (Waiston-Felix) E = 5,5+0,73*(KLOC) 1,16 (Bailey-Basili) E = 3,2*(KLOC) 1,05 (Boehm simple) E = 5,288*(KLOC) 1,047 (Doty Model, KLOC > 9) Toimintopistepohjaisia malleja: E = -13,39+0,0545*FP E = 60,62*7,728*10-8 *FP 3 E = 585,7+15,12*FP (Albrecht-Gaffney) (Kemerer) (Matson-Barnett-Mellichamp, E = työtunteja) Harri Laine, Jukka Paakki 19 Arviointimallit - esimerkki 30000 rivin ohjelmaan työpanos? Waiston-Felix 114 htkk => 263 LOC/htkk Bailey-Basili 43 htkk => 697 LOC/htkk Boehm 113 htkk Doty Model 183 htkk => 163 LOC/htkk Huom! Suurehko vaihtelu syynä erilainen määrä erilaisia taustalla olevia empiirisiä projekteja kaavan vakiot A,B ja C on säädettävä organisaation oman projektihistorian mukaisiksi Harri Laine, Jukka Paakki 20 Harri Laine, Helsingin yliopisto 10

3.1. COCOMO-malli COnstructive COst MOdel http://sunset.usc.edu/research/cocomoii/ Tunnetuimpia arviointimalleja (Boehm 1981 ja 1996) Uusin versio, COCOMO II, sisältää useita erilaisia ja eri projektivaiheisiin soveltuvia malleja, mm. oliopisteisiin perustuvan alustavan (karkean) arvioinnin kaavan. Kuitenkin perinteistä COCOMOa ovat ohjelmarivien määrään perustuvat kaavat. Harri Laine, Jukka Paakki 21 COCOMO II COCOMO II:n yleinen työmääräkaava: E = 2.94 * AF * KLOC B AF : sovituskerroin, joka saadaan laskemalla mallista riippuen 7-17 sovitustekijän (adjustment factor) tulo Eksponentti B määräytyy kaavalla B = 0.91 + 0.01*Σ i=1..5 S i missä S i :t ovat skaalaustekijöitä (scale factor) saaden kukin arvon 0-5, eli B on välillä 0.91 1.16 Kerrointa (2.94) säädetään kulloisenkin projektitietokannan mukaan; sillä on COCOMO II:n eri versioissa ollut myös arvot 2.45 ja 2.5 (ainakin) Harri Laine, Jukka Paakki 22 Harri Laine, Helsingin yliopisto 11

COCOMO II: Skaalaustekijät S i Projektiryhmän kokemusta ja ongelman vaikeutta kuvaavia yleisiä tekijöitä: 1. Ongelman tunnettuus (täysin uusi 5 tuttu juttu 0) 2. Tavoitteiden joustavuus (tiukat tavoitteet 5 yleiset tavoitteet 0) 3. Ongelmallisuus (ratkaisemattomia arkkitehtuuriongelmia / riskejä) (paljon 5 vähän 0) 4. Tiimiysaste (hankala yhteistyö 5 saumaton yhteistyö 0) 5. Prosessin laatu CMM-tason mukaan käänteisenä (epäkypsä prosessi 5 kypsä hyvin hallittu prosessi 0) Harri Laine, Jukka Paakki 23 COCOMO II: Sovitustekijöitä AF Projektikohtaisia työmäärään vaikuttavia tekijöitä (sovitus- eli kustannustekijöitä ) mm. henkilöstön kyvykkyys, tuotteen luotettavuusvaatimukset, uudelleenkäyttöaste, aikataulun tiukkuus, henkilöstön kokemus, työkalujen käyttöaste, aikataulun tiukkuus, tuotteen mutkikkuus Vaihteluväli 0.70 1.60, normaali = 1 Kaava varsin herkkä sovitustekijäkertoimien virhearvioille Harri Laine, Jukka Paakki 24 Harri Laine, Helsingin yliopisto 12

COCOMO II: Sovitustekijöitä AF Eniten työmäärään vaikuttavat tekijät: ohjelmistosuunnittelijoiden kyvykkyys : maksimi / minimi = 2.24 (eli huonoja suunnittelijoita käyttävä projekti kestää yli kaksi kertaa niin kauan kuin vastaava projekti huippusuunnittelijoilla) tuotteen mutkikkuus : maksimi / minimi = 2.20 tuotteen luotettavuusvaatimukset : maksimi / minimi = 1.87 ohjelmoijien kyvykkyys : maksimi / minimi = 1.86 Harri Laine, Jukka Paakki 25 COCOMO II: Esimerkki 30000 riviä sovitustekijöiltään keskimääräistä, keskinkertaisella prosessilla tutusta ongelmasta ilman suuria riskejä ja keskimääräisellä tiimillä (kukin skaalaustekijä kaavan eksponentissa B olkoon 2 ja sovitustekijät kertoimessa AF keskimäärin 1) E = 2.94 * 1* 30 1.01 = 91 htkk (eli reilut 8 henkilötyövuotta) Harri Laine, Jukka Paakki 26 Harri Laine, Helsingin yliopisto 13

COCOMO II: Projektin kesto Projektin optimikestolle (kk) on COCOMOssa kaava (3.67 * E C ) * AFs/100, missä E = työmäärä laskettuna ilman sovitustekijää aikataulun tiukkuus AFs = sovitustekijän aikataulun tiukkuus vaikutus prosentteina (löysä aikataulu=75, realistinen/cocomo=100, tiukka aikataulu=160) C = 0.28 + 0.2*(B-1.01) Esimerkiksi edellinen 30000 rivin homma: 3.67 * 91 0.28 = 7,1 kk eli tarvittaisiin keskimäärin 13 henkeä??? Harri Laine, Jukka Paakki 27 3.2. Puttmanin ohjelmistoyhtälö Perustuu 4000 nykyaikaisen ohjelmistoprojektin mittauksiin: E = (LOC*(B 0,333 )/P) 3 *(1/t 4 ) E on vaadittavat henkilötyökuukaudet t onprojektin kesto kuukausina B on erityistaitokerroin" ( special skills factor"), joka käytännössä kasvaa sitä mukaa kun projektin koko kasvaa. Se tarkoittaa sellaisten tehtävien vaatimaa aikaa, jotka liittyvät testaukseen, laadunvalvontaan, ylläpitoon ja komponenttien integroimiseen. Pienille ohjelmille (KLOC = 5-15) B = 0.16.Isoille ohjelmille (KLOC > 70) B = 0.39. Harri Laine, Jukka Paakki 28 Harri Laine, Helsingin yliopisto 14

Puttmanin ohjelmistoyhtälö P on tuottavuuskerroin" joka vaihtelee tehtävän ohjelmiston laadun mukaan. Tyypillisiä arvoja: P=2000 upotetuille tosiaikajärjestelmille P=10000 teleliikenne- ja systeemiohjelmistoille P=12000 tieteellisille ohjelmistoille P=28000 informaatiojärjestelmä-tyyppisille ohjelmistoille Harri Laine, Jukka Paakki 29 Puttmanin ohjelmistoyhtälö Kaavasta voidaan ratkaista projektin minimikesto t min = 8.14*(LOC/P) 0.43 (t kuukautta, t > 6kk), ja työmäärä E = 180*B*t 3 (henkilötyökuukaudet, t vuotta) Esim. 30000 riviä tieteellistä ohjelmistoa: 8.14*(30000/12000) 0.43 = 12 kk 180*0.2 = 90 htkk minimikestolla (huom B=0.2 on approksimaatio väliltä 0.16-0.39) Harri Laine, Jukka Paakki 30 Harri Laine, Helsingin yliopisto 15

Empiirisistä arviointimalleista Kaikki mallit (vakiotekijät) pitää säätää kohteena olevaan ympäristöön. Tarvitaan historiatietoa. Ohjelmarivien määrä on kieliriippuva, mutta se voidaan johtaa esimerkiksi kieliriippumattomasta FP-arvosta. Kaavoissa oletetaan yleensä, että käytetään ns. 3. sukupolven ohjelmointikieltä (C-Pascal-Ada). (Vanhemmat) mallit olettavat, että käytetään vesiputousprosessia, jolloin ne eivät päde sellaisinaan nykyaikaisiin prosesseihin (XP!?) Harri Laine, Jukka Paakki 31 B. Projektiaikataulu Aikataulun suunnittelun lähtökohtana ovat laadittu työnositus ja tehtävien resurssitarpeet (työmäärä, muut) Työnosituksen yhteydessä on syytä selvittää tehtävien väliset riippuvuudet mikä tehtävä on ennen jotain toista tehtävää, esim. suunnittelu ennen toteutusta Tehtävän kesto riippuu sille varattavista resursseista ja työmäärästä resurssien tuplaaminen ei kuitenkaan välttämättä puolita kestoa (Brooks: The Mythical Man-Month) Harri Laine, Jukka Paakki 32 Harri Laine, Helsingin yliopisto 16

Projektiaikataulu - tehtävien riippuvuudet Tehtävä Kesto (päiviä) Edeltäjät T1 8 T2 15 T3 15 T1 T4 10 T5 10 T2,T4 T6 5 T1,T2 T7 20 T1 T8 25 T4 T9 15 T3,T6 T10 15 T5,T7 T11 7 T9 T12 10 T11 T2 ja T4 suoritettava loppuun ennen T5:n aloittamista Harri Laine, Jukka Paakki 33 Projektiaikataulu Tehtäväverkko (activity/task network) esitetään tehtävien riippuvuudetgraafisesti voidaan määritellä etappeja (milestone) eli kohtia, joissa tarkistetaan, onko projekti aikataulussaan Kriittinen polku: tehtäväketju, jossa jonkin tehtävän myöhästyminen samalla myöhästyttää koko projektia kriittisiä polkuja voi olla useita määrättävissä tehtäväverkon perusteella Tehtäväverkon aikataulutus = tehtävien sitominen kalenteriin jätettävä pelivaraa yllättäviä myöhästymisiä varten myös projektin hallintaan jätettävä pelivaraa kriittisen polun ulkopuolella on aina pelivaraa Harri Laine, Jukka Paakki 34 Harri Laine, Helsingin yliopisto 17

Tehtäväverkko (tehtävät/kestot/riippuvuudet) kesto T1 (8) T3 (15) T9 (15) T6 (5) start T2 (15) T7 (20) T11 (7) T4 (10) T5 (10) T12 (10) edellisen taulukon riippuvuudet T8 (25) T10 (15) finish Harri Laine, Jukka Paakki 35 Tehtäväverkko (tehtävät/kestot/riippuvuudet) Tehtäväverkon avulla voidaan helposti laskea: aikaisin alkamisaika (= aika, jolloin kaikki aikaisemmat osavaiheet ovat päättyneet minimiajassa) aikaisin päättymisaika (aikaisin alkamisaika + tehtävän kestoaika) viimeisin alkamisaika (aika, jolloin tehtävän on viimeistään alettava, jotta projekti saadaan ajallaan päätökseen) viimeisin päättymisaika (viimeisin alkamisaika + tehtävän kestoaika) Harri Laine, Jukka Paakki 36 Harri Laine, Helsingin yliopisto 18

Aikaisin alkamisaika ja päättymisaika start 0..8 8..23 23..38 T1 (8) T3 (15) T9 (15) 15..20 0..15 T6 (5) 38..45 T2 (15) 8..28 T11 (7) T7 (20) 0..10 15..25 45..55 T4 (10) T5 (10) 28..43 T12 (10) T10 (15) 10..35 T8 (25) finish Harri Laine, Jukka Paakki 37 Viimeisin alkamisaika ja päättymisaika 0..8 8..23 23..38 T1 (8) T3 (15) T9 (15) 0..8 8..23 15..20 23..38 0..15 T6 (5) 38..45 start T2 (15) 8..28 18..23 T11 (7) 0..10 3..18 T7 (20) 15..25 38..45 20..40 45..55 T4 (10) T5 (10) 28..43 T12 (10) 20..30 30..40 T10 (15) 45..55 10..35 40..55 finish T8 (25) 30..55 Harri Laine, Jukka Paakki 38 Harri Laine, Helsingin yliopisto 19

Kriittinen polku 0..8 8..23 23..38 T1 (8) T3 (15) T9 (15) 0..8 8..23 15..20 23..38 0..15 T6 (5) 38..45 start T2 (15) 8..28 18..23 T11 (7) 3..18 T7 (20) 0..10 15..25 38..45 20..40 45..55 T4 (10) T5 (10) 28..43 T12 (10) 20..30 30..40 T10 (15) 45..55 10..35 40..55 finish T8 (25) 30..55 Harri Laine, Jukka Paakki 39 Aikataulutus etappien avulla pelivara Huom! Viikonloput (2 pv) 0..8 +2 12.10.01 8..23 23..38 e1 T1 (8) T3 (15) T9 (15) 0..8 8..23 15..20 23..38 1.10.01 0..15 T6 (5) 38..45 start T2 (15) 8..28 18..23 T11 (7) 0..10 3..18 T7 (20) 15..25 38..45 20..40 45..55 T4 (10) T5 (10) 28..43 T12 (10) 20..30 30..40 T10 (15) 45..55 10..35 40..55 finish T8 (25) 30..55 Harri Laine, Jukka Paakki 40 Harri Laine, Helsingin yliopisto 20

Aikataulutus etappien avulla 0..8 +2 12.10.01 e1 8..23 23..38 T1 (8) T3 (15) T9 (15) 0..8 8..23 15..20 23..38 1.10.01 0..15 +5 26.10.01 T6 (5) 38..45 e2 start T2 (15) 8..28 18..23 T11 (7) 3..18 T7 (20) 0..10 15..25 38..45 20..40 45..55 T4 (10) T5 (10) 28..43 T12 (10) 20..30 30..40 T10 (15) 45..55 10..35 40..55 finish T8 (25) 30..55 Harri Laine, Jukka Paakki 41 Aikataulutus etappien avulla 0..8 +2 12.10.01 e1 T1 (8) T3 (15) T9 (15) 15..20 1.10.01 0..15 +5 26.10.01 T6 (5) e2 start T2 (15) 8..28 +5 T7 (20) 0..10 +10 26.10.01 15..25 T4 (10) e3 +5 T5 (10) e5 16.11.01 28..43 10..35 T8 (25) 8..23 +5 8.11.01 T10 (15) e4 23..38 e6 30.11.01 38..45 +2 T11 (7) e7 14.12.01 45..55 T12 (10) +4 11.01.02 finish Harri Laine, Jukka Paakki 42 Harri Laine, Helsingin yliopisto 21

Aikataulutus etappien avulla Esimerkkiprojektin kokonaiskesto siis 15 viikkoa = 105 päivää, joista työpäiviä 68 kriittiselle polullekin on siis jätetty pelivaraa 13 työpäivää aikataulu edellyttää projektin resurssointia siten, että tehtäviä voidaan tehdä rinnakkain GANTT-kaavio (GANTT chart) (janakaavio) esittää projektin aikataulun kalenterissa Harri Laine, Jukka Paakki 43 Gantt-kaavio 1.10 e1 12.10 26.10 8.11 16.11 30.11 e7 14.12 11.1 T1 T2 T4 T3 T7 T6 T5 T8 T9 T10 T11 T12 tarvitaan vähintään 3 henkilöä pelivaraa joulu, uusivuosi Harri Laine, Jukka Paakki 44 Harri Laine, Helsingin yliopisto 22

Projektin aikataulu Aikataulutusta laadittaessa otettava huomioon (henkilö)resurssit montako tehtävää voidaan tehdä rinnakkain henkilöstön henkilökohtaiset kalenterit kokoukset, matkat, lomat kuka osaa tehdä mitäkin tehtävää useamman projektin jakamat resurssit Harri Laine, Jukka Paakki 45 Projektin aikataulu 1.10 12.10 26.10 8.11 16.11 30.11 14.12 11.1 Mikko T1 T3 T8 oliopäivät T12 Leena T2 kokous T6 T5 loma T11 Tauno T4 T7 T9 T10 jokainen vain yhdessä tehtävässä kerrallaan, jokainen osaa kaikkea Harri Laine, Jukka Paakki 46 Harri Laine, Helsingin yliopisto 23