Ohjelmistotekniikka - Luento 6

Samankaltaiset tiedostot
Ohjelmistotekniikka - Luento 12 Jouni Lappalainen

Ohjelmistotekniikka - Luento 13 Jouni Lappalainen & Henrik Hedberg

PROJEKTINHALLINTA

Ohjelmistoprojektien hallinta Tuloksen arvo menetelmä ja toimintoverkkotekniikka

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

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

Projektityö

Projektin etenemisen seuranta ja tuloksen arvo laskenta

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ohjelmistotekniikka - Luento 2

Ohjelmistotuotanto, k

PROJEKTINHALLINTA

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

Harjoitustehtävät: Ohjelmistotekniikka syksy 2015 (harjoitustyöraportin deadline ) Harjoitus 1:

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

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

ITK130 Ohjelmistojen luonne

Yhteenveto. Menettelytavat

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Miten tehdä onnistunut projektisuunnitelma 10 vinkkiä

Harjoitustehtävät: Ohjelmistotekniikka syksy 2018 (harjoitustyöraportin deadline ) Harjoitus 1:

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

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI, ESA SALMIKANGAS

Tik Ohjelmistoprojektien Hallinta. Luento 6 Projektin ohjaus TKK

Käytännön kokemuksia projektien arvioinnista

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

Projektin suunnittelu

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

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

Harjoitustehtävät: Ohjelmistotekniikka kevät 2015 (harjoitustyöraportin deadline ) (Kalenteri-)Viikko 3:

Tutkittua tietoa. Tutkittua tietoa 1

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Estimointityökalut. Pekka Forselius, Senior Advisor Finnish Software Measurement Association FiSMA ry

Ohjelmistojen suunnittelu

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

7.4 Variability management

10 metriikkaa, joilla parannat johtamisen tasoa. Pekka Forselius, Senior Advisor, FiSMA ry Risto Nevalainen, Senior Advisor, FiSMA ry

Projektitoiminta JOTU JOTU2013/K.Systä 1

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

Millainen on onnistunut ICT-projekti?

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

Johdantoluento. Ohjelmien ylläpito

CT60A4600 Projektinhallinta. Luentorunko. Luento 1:Yleistä ja organisaatiot. Projektinhallinta Osa 1: yleistä. Kurssin tavoitteet

ITK130 Ohjelmistoprosessi

Testaaminen ohjelmiston kehitysprosessin aikana

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

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

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Tuotantotalouden 25 op sivuaine

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

812341A Olio-ohjelmointi, I Johdanto

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Siirtyminen ketterien menetelmien maailmaan! Maarit Laanti 24 October 2013!

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Projektinhallinta: kustannusarvio

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Tapahtuipa Testaajalle...

Testidatan generointi

PS-vaiheen edistymisraportti Kuopio

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

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

Jälkilaskennalla tehokkuutta projektitoimintaan. Matti Toivonen Necom Oy

ISO 9001:2015 JÄRJESTELMÄ- JA PROSESSIAUDITOIN- NIN KYSYMYKSIÄ

TERO TAPIOLA PROJEKTISALKUN KUSTANNUSSEURANNAN JA -ENNUSTEEN KEHITTA MINEN. Diplomityö

SYSTEEMITYÖ. Tärkeitä sanoja

Projektinhallinta TARJA NISKANEN LÄHTEENÄ MM. KEHITTÄJÄN KARTTAKIRJA

Onnistunut ohjelmistoprojekti

LAATURAPORTTI Iteraatio 1

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena

Software engineering

Orientaatio ICT-alaan. Projekti

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU

ITSM. Olli Saranen Senior Consultant Avoset Oy Oliko ennen kaikki paremmin kuin nykyään? Kivikaudelta nykyaikaan

CMM Capability Maturity Model. Software Engineering Institute (SEI) Perustettu vuonna 1984 Carnegie Mellon University

CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto Software Engineering Institute (SEI)

Uudelleenkäytön jako kahteen

7. Product-line architectures

Ohjelmistojen mallintaminen. Luento 11, 7.12.

MIKÄ ON TIIMI? Tiimi on pieni ryhmä ihmisiä, joilla on: Lisäksi tiimin jäsenet pitävät itseään yhteisvastuussa suorituksistaan.

Oleelliset vaikeudet OT:ssa 1/2

Henkilöstötuottavuuden johtaminen ja työelämän laadun merkitys organisaation tuottavuudessa Tauno Hepola

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi

Projektityö

T Projektikatselmus

PROJEKTINHALLINTA. Käyttäjälähtöinen suunnittelu

Knowledge Management (KM) eli. tiedon/tietämyksen hallinta

Projektin suunnittelu A71A00300

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Onnistunut ohjelmistoprojekti

Prosessien kehittäminen. Prosessien parantaminen. Eri mallien vertailua. Useita eri malleja. Mitä kehitetään?

Luku 6 Projektisuunnitteluvaihe

KOODAAKO PROJEKTIPÄÄLLIKKÖ?

Big Room -toiminta tutkimuksen näkökulmasta. Sari Koskelo, Vison Oy

Projektin suunnittelu A71A00300

Koulutuksen suhdannevaihtelut. Zeppeliinistä suihkukoneaikaan

Transkriptio:

Ohjelmistotekniikka - Luento 6 Luku 24: Projektin hallinnan käsitteet - ihmiset, tuote, prosessi ja projekti - W5HH periaate Luku 25: Prosessi- ja projektimetriikat - ohjelmiston mittaminen (LOC, FP, luokka) - laatumetriikat, DRE - viisi metriikkaa / Putnam & Myers Luku 26: Projektin koon arviointi (estimointi) ositustekniikat (LOC, FP, prosessi ja käyttötapausperustaiset) - empiiriset estimointimallit (COCOMO) olioprojektien koon arviointi Luku 27: Projektin aikataulun kiinnittäminen - työnositus (WBS) - aikataulutustekniikat ja ansaitun arvon arvio!1

24. Projektin hallinta Projektin hallinnassa on neljä tärkeää elementtiä (4 P s) Ihmiset (People) tärkein elementti onnistuneelle projektille Tuote (Product) rakennettava ohjelmisto Prosessi (Process) ohjelmistotuotannon tehtävät, jotka liittyvät työn tekemiseen Yksilöt & tiimi Tarkoitus & laajuus Prosessin parantaminen Metriikat Projekti (Project) kaikki työvaiheet, joilla haluttu tuote toteutetaan Kustannusten arviointi!2

Ihmiset Tiimin vetäjät MOI johtaminen /Weinberg 1986 Motivointi kyky rohkaista tekemään parhaansa Organisointi kyky muokata prosessi tehokkaaksi Ideat, innovaatiot kyky kannustaa tiimiä työskentelemään luovasti Projektipäällikkö johtaa kuten ongelman ratkaisussa pyrkii ymmärtämään ongelman toimii ideoiden koordinoijana laadusta ei tingitä - ei kompromisseja Ihmiset ovat tärkein resurssi palkkaa hyviä työtekijöitä rakenna tiimit oikein keskinkertaisesta materiaalista voi tulla huipputiimi pidä työntekijät työntekijät kehittyvät ajan myötä anna aikaa vaikeiden ongelmien ratkaisu vaatii aikaa 3

Organisationaaliset paradigmat Constantine 1993 Suljettu (closed) paradigma Satunnainen (random) paradigma Avoin (open) paradigma Synkroninen(synchronous) paradigma Satunnainen - innovatiivinen yksilö Synkroninen - yhtenäinen liittoutuminen ryhmän koheesio luontainen joustavuus Avoin -sopeutuvaa yhteistyötä Suljettu - perinteinen hierarkia

Organisationaaliset Suljettu (closed) paradigma paradigmat hierarkkinen organisaatio ja selvät roolit, esim. armeija, hallinto ei sovellu innovatiivisuutta vaativiin Satunnainen (random) paradigma painottaa yksilöllisiä aloitteita ja innovatiivisuutta Avoin (open) paradigma yhteistyötä painottava, korostaa kommunikointia ja konsensusta soveltuu vaikeiden ongelmien ratkaisuun, ei välttämättä tehokas Synkroninen (synchronous) paradigma ongelma ositetaan ja tiimin jäsenet toimivat suhteellisen itsenäisesti Constantine 1993!5

Ohjelmistotuotteen tarkoitus/laajuus (scope) Product scope Piirteet ja toiminnot, jotka määrittelevät tuotteen Konteksti. Miten rakennettava ohjelmisto sopii laajempaan järjestelmään, tuotteeseen tai liiketoimintaympäristöön? Informaatio. Mitä tietoja ohjelmisto tuottaa tulosteina käyttäjille ja mitä se vaatii syötteinä? Toiminta ja suorituskyky. Miten ohjelmisto käsittelee syötteet tulosteiksi? Onko toiminnalle asetettu suorituskykyvaatimuksia? Project scope: työ, joka tarvitaan tuotteen (valituilla piirteillä ja toiminnoilla) tekemiseen mitkä ovat projektin tavoitteet mitä riskeja ja vaikeuksia tunistetaan miten projekti tulisi organisoida!6

Milloin projekti on vaarassa? Projekti joutuu vaikeuksiin, kun... Ohjelmistosuunnittelijat eivät ymmärrä asiakkaan tarpeita Tuotteen tarkoitus on huonosti määritelty Muutokset on hallittu huonosti Valittu teknologia muuttuu Liiketoimintatarpeet muuttuvat (tai ovat huonosti määriteltyjä) Aikataulut ovat epärealistisia Käyttäjät vastustavat projektia Projektin tuki häviää (tai sitä ei ole koskaan saatu) Projektitiimistä puuttuu tarpellista osaamista Johto (ja ohjelmistoammattilaiset) ei hyödynnä parhaita käytäntöjä eikä oppimaa (best practices and lessons learned) John Reel 1999!7

Ohjelmistoprojektin johtamistyyli /Royce 2005 Johtaminen lähempänä taloustiedettä kuin ohjelmistotekniikkaa päivittäiset päätökset perustuvat kustannusvaihtoehtoihin, henkilöstöön, teknologiatrendeihin, markkinatilanteeseen, ajoitukseen Royce suosittelee ohjaus (steering) tyyppistä johtamista aktiivista johtamista usein tapahtuvaa kurssin korjausta Ohjaustyyppinen johtaminen perustuu iteratiiviseen kehitysprosessiin, kuten RUP johtamistyyliin, joka on tulosperustaista (ei aktiviteettiperustaista) toimiva ohjelma on ensisijainen tarkkuuden ja ymmärryksen yhteyteen täytyy muistaa, että projektin alkuvaiheessa ennusteet eivät ole tarkkoja kun ymmärrys kasvaa, tarkkuus paranee!8

Neljä mallia (pattern) ohjauksen onnistumiseksi Tarkoitusjohtaminen (scope management) ratkaisut kehittyvät käyttäjän määrittelyistä vaihtoehtoisiin ratkaisuihin lähdetään liikkeelle visiosta, kehitetään käyttötapaukset ja arviointikriteerit (tavoitteet esiteltäville julkaisuille) Prosessin kurinalaisuus kurinalaisuutta kaivataan, jos tiimit ovat hajautuneita, projekti on suuri, laaja sidosryhmä, laatuvaatimukset tiukkoja, projekti on loppuvaiheessa kurinalaisuus kasvaa projektin loppuvaiheessa parannetaan virheenkestoa, suorituskykyä Edistymisen rehellisyys terveet projektit näyttävät edistymisen ja poikkeamat Laadunvalvonta demojulkaisujen testaus tärkeää koko kehitysprosessin ajan!9

W 5 HH periaate / Boehm 1996 Kysymysten avulla voidaan johtaa projektin tarkoitus ja projektisuunnitelma Miksi (Why) järjestelmää kehitetään? Mitä (What) tehdään? Milloin (When) tehdään? Kuka/ketkä (Who) on/ovat vastuussa? Missä (Where) osallistujat toimivat? myös tiimin ulkopuoliset (käyttäjät, sidosryhmä) Kuinka (How) työ tehdään teknisesti ja hallinnollisesti? Kuinka (How much) paljon resursseja tarvitaan?!10

25. Prosessi- ja projektimetriikat prosessi prosessimetriikat mittaus projektimetriikat tuotemetriikat tuote Mitä käytetään perusmittareina? -kokoa (LOC, FP) -aikaa -työpanosta -tuottavuutta -luotettavuutta (virheiden määrää)!11

Ohjelmistoprosessin parantaminen (Software Process Improvement, SPI) Prosessimalli Suositukset prosessin parantamiseksi Parantamisen tavoitteet SPI Prosessimetriikat esim. - virheen poiston tehokkuus - löydettyjen virheiden määrä / kehitysvaihe!12

Virheen poiston tehokkuus (Defect Removal Efficiency, DRE) DRE = E /(E + D) E ennen loppukäyttäjälle toimitusta löydettyjen virheiden määrä D toimituksen jälkeen löydettyjen virheiden määrä.!13

Ohjeita prosessimetriikan käsittelylle/ Grady 1992 Käytä maalaisjärkeä ja organisaatiokohtaista herkkyyttä metriikkatiedon tulkinnassa. Kerro säännöllisesti mittaustuloksista henkilöille, jotka keräävät dataa. Älä käytä metriikoita yksilöiden arviointiin. Aseta tavoitteet ja kiinnitä metriikat yhteistyössä tiimien kanssa. Älä koskaan käytä metriikoita yksilöiden ja tiimien uhkailuun. Metriikkatieto, joka paljastaa ongelmia, ei ole negatiivista, sitä tulee käyttää prosessin parantamiseen.!14

Viisi metriikkaa / Putnam & Myers 2003 Koko tai työn määrä (tuote) Koodiriveinä, toimintopistearviona, käyttötapauksina Aika (projekti) Kuukausina, viikkoina Työpanos (projekti) Henkilötyökuukausina, henkilötyötunteina Tuottavuus tai tehokkuus (projekti, prosessi) Koko / käytetyt työkuukaudet Luotettavuus (virheet tai puutteellisuudet (defects)) (projekti, prosessi, tuote) Virheen vakavuus Virheiden kokonaismäärä, virheitä / KLOC!15

Miten metriikat liittyvät toisiinsa? Ihmiset, jotka tekevät työtä tietyllä tuottavuudella, saavat aikaan tietyn määrän tietyn laatutason toimintoja tai tuotteita (work product) käyttäen siihen tietyn työpanoksen tietyssä kalenteriajassa.!16

Metriikoiden yhteydet / Putnam & Myers 2003 Tavoite ( mantra ) Koko Aika Työpanos Tuottavuus (koko/työpanos) Luotettavuus Nopeammin (pyritään tekemään nopeammin) Paremmin (pyritään tekemään paremmin) Halvemmalla (pyritään tekemään halvemmalla)!17

Onnistuneessa projektissa viisi metriikkaa näkyvät seuraavasti 1. Projektiin osallistujat saavat jotain tehtyä... 2. sovelluksen vaatimalla laatutasolla... 3. suunnitellussa kalenteriajassa... 4. suunnitellulla työpanoksella... 5. kilpailukykyisellä tuottavuustasolla!18

Tyypillisiä projektimetriikoita Työpanos/aika tiettyä tehtävää kohden Löydettyjen virheiden määrä katselmointituntia kohden Aikataulutetut vs. todelliset etapit Muutosten määrä ja luonne Työpanoksen jakautuminen eri tehtäville!19

26. Projektin koon arviointi Projektin tarkoitus täytyy ymmärtää Tarvitaan yksityiskohtaista suunnittelua ja osittamista Historiallinen metriikkatieto on yleensä välttämätöntä ja aina erittäin tärkeää. Pitäisi käyttää kahta eri tekniikkaa, esim. LOC, FP Arvioinnin epävarmuus täytyy muistaa!20

Toiminnallinen ositus Tavoite ja laajuus (scope) Jäsennys tekstin perusteella toiminnallinen ositus!21

Esimerkkejä projektikustannusten arvioinneista (Pressman 2005) Kehitettävä ohjelmisto (yritys on aikaisemminkin tehnyt samankaltaisia ohjelmistoja): CAD (computer aided design) sovellus mekaanisten komponenttien piirtoon. Ohjelmisto käyttää syöttötietoina kaksi- ja kolmiulotteista geometrista dataa. Käyttäjän ja ohjelmiston vuorovaikutuksen suunnittelussa noudatetaan hyviä käyttöliittymäsuunnittelun periaatteita. Kaikki data ja käsittelyn aikana syntyvä tieto talletetaan tietokantaan. Sekä kaksi- että kolmiulotteisen datan käsittely ja tulostus eri muodoissa tehdään omissa moduuleissa. Ohjelmiston syöttö- ja tulostuslaitteistoina käytetään hiirtä, digitoijaa, kirjoitinta ja piirturia.!22

Esimerkki: LOC pohjainen arvio Funktio user interface and control facilities (UICF) two-dimensional geometric analysis (2DGA) three-dimensional geometric analysis (3DGA) database management (DBM) computer graphics display facilities (CGDF) peripheral control (PC) design analysis modules (DAM) Arvio LOC 2,300 5,300 6,800 3,350 4,950 2,100 8,400 arvio koodiriveistä 33,200 Keskimääräinen tuottavuus (perustuu historiatietoon) = 620 LOC/htkk. Työkustannukset 8000 euroa/kk, koodirivin kustannus noin 13 euroa Rivimääräarvion ja kustannusarvion pohjalta saadaan arvio projektikustannuksille: 431,000 euroa ja arvioitu työpanos 54 htkk.!23

Esimerkki: toimintopistepohjainen arvio 24 16 22 4 2 x x x x x 96 80 88 40 14 318 FP arvio = 318 * [0.65 + 0.01 * SUM (Fi)] = 318 * [0.65 + 0.01 * 52] = 318 * 1.17 = 372 Keskimääräinen tuottavuus (perustuu historiatietoon) = 6,5 FP/htkk. Työkustannukset 8000 euroa/kk, FP kustannus noin 1230 euroa FP-arvion ja kustannusarvion pohjalta saadaan arvio projektikustannuksille: 458,000 euroa ja arvioitu työpanos 57 htkk.!24

Rivimäärän ja toimintopisteen vertailu Programming LOC per Function point Language avg. median low high Ada 154-104 205 Assembler 337 315 91 694 C 162 109 33 704 C++ 66 53 29 178 COBOL 77 77 14 400 Java 63 53 77 - JavaScript 58 63 42 75 Perl 60 - - - PL/1 78 67 22 263 Powerbuilder 32 31 11 105 SAS 40 41 33 49 Smalltalk 26 19 10 55 SQL 40 37 7 110 Visual Basic 47 42 16 158 perustuvat QSM tuloksiin /www.qsm.com!25

Esimerkki: prosessipohjainen arvio Työkustannukset ovat 8,000 euroa / htkk Arvioidut projektin kustannukset 368,000 euroa Tarvittava työpanos arviolta 46 htkk.!26

Korjattu prosessipohjainen arvio + 1 htkk (esitutkimus) Analysis Design Code Test Total UICF 0.4 1.5 0.7 1.4 4 2DGA 0.75 3 1.25 2 7 3DGA 0.8 5 1.2 3 10 CGDF 0.8 4 1.2 2 8 DBM 0.4 3 0.6 1.75 5.75 PCF 0.5 1.5 0.75 1.5 4.25 DAM 1 6 3 5 15 Total 4.65 24 8.7 16.65 54 % effort 8.61 44.44 16.11 30.83 Työkustannukset ovat 8,000 euroa / htkk Arvioidut projektin kustannukset 440,000 euroa Tarvittava työpanos arviolta 55 htkk.!27

Esimerkki: käyttötapausperustainen arvio päätekijät LOC estimate = N * LOC avg + [(S a / S h - 1) + [(P a / P h - 1)] * LOC adjust keskimääräinen tuottavuus on 620 LOC/htkk ja työkustannukset 8000 euroa / htkk, koodirivin kustannus noin 13 euroa Arvioidut projektin kustannukset 552,000 euroa ja arvioitu työmäärä 68 htkk.!28

Kokemusperäiset arviomallit Yleinen muoto: exponent effort = tuning coefficient * size tavallisesti työpanos (htkk) vakio tai projektin mutkikkuutta kuvaava numero tavallisesti LOC voi olla myös FP aiemman kokemuksen perusteella tehty arvio!29

LOC ja FP perustaiset mallit LOC perustaiset E = 5.2 * (KLOC) 0.91 Walston-Felix malli E = 5.5 + 0.73 * (KLOC) 1.16 Bailey-Basili malli E = 3.2 * (KLOC) 1.05 Boehm (keskinkertainen) malli FP perustaiset E = -91.4 + 0.355 FP Albrect & Gaffney malli E = -37 + 0.96 FP Kemerer malli E = -12.88 + 0.405 FP pienten projektien regressiomalli Mallit antavat samoilla KLOC ja FP arvoilla eri työmääräarvion Siksi mallit täytyy aina kalibroida paikallisiin olosuhteisiin FP arvojen sijaan voidaan käyttää Object points, OP erilaisten näyttöjen määrä, yksinkertainen = 1 OP, mutkikas = 3 OP tuotettujen raporttien määrä, 1-8 OP lausekielisten moduulien määrä, moduuli = 10 OP!30

COCOMO (Constructive Cost Model) Boehm 1981 Mallista on kolme versiota: Basic, Intermediate ja Detailed Basic mallissa projektit luokitellaan kolmeen luokkaan: helppo tehtävä (organic), normaali tehtävä (semi detached) ja vaikea tehtävä (embedded). Henkilötyömääräarvio (MM, man month) perustuu pitkälle tuotteen KDSI (thousand delivered source instruction) arvoon ja saadaan vaikeusasteesta riippuen seuraavilla kaavoilla helppo: MM = 2.4 * KDSI 1.05 hyvin ymmärretyt sovellukset, pienet tiimit normaali: MM = 3.0 * KDSI 1.12 mutkikkaampia projekteja, tiimillä ei riittävästi kokemusta sovellusalueelta vaikea: MM = 3.6 * KDSI 1.20 vaikeat projektit, ohjelmisto osa mutkikkaasta kokonaisuudesta, joka koostuu tiukasti toisiinsa liittyvistä laitteistoista, ohjelmistoista, säädöksistä!31

COCOMO (Constructive Cost Model) Kalenteriaika-arvio perustuu laskettuun MM arvoon ja saadaan vaikeusasteesta riippuen seuraavilla kaavoilla helppo: T dev = 2.5 * MM 0.38 normaali: T dev = 2.5 * MM 0.35 vaikea: T dev = 2.5 * MM 0.32 Esimerkkinä 15.000 rivin Web sovellus, joka toteutetaan Java kielellä ja kehittäjät ovat kokeneita, jolloin vaikeusaste on helppo MM = 2.4 * 15 1.05 = 41 htkk T dev = 2.5 * 41 0.38 = 10 kk!32

Työmäärä (HTKK) 100 200 300 400 500 600 700 800 900 1000 10 20 30 40 50 60 70 80 90 100 Ohjelmiston koko (KDSI) Kalenteriaika (KK) 0 2 4 6 8 10 12 14 16 18 20 22 24 Koon vaikutus työmäärään 10 20 30 40 50 60 70 80 90 100 Ohjelmiston koko (KDSI) Koon vaikutus kalenteriaikaan helppo tehtävä normaali tehtävä vaikea tehtävä

COCOMO (Constructive Cost Model) Intermediate mallissa arvio tehdään kahdessa vaiheessa alkuarvio (nimellinen MM) perustuu tuotteen KDSI (thousand delivered source instruction) ja kehitettävän tuotteen haastavuuteen (helppo, normaali, vaikea) esim. helppo tuote, arvio koosta 12.000 DSI työpanos (nmm) = 3.2 * (12) 1.05 htkk = 43 htkk tätä arviota voidaan korjata kustannuskertoimella, joka perustuu 15 osatekijään esim. vaadittu luotettavuus, suoritusaikarajoitukset ohjelmoijan kyvykkyys, uusien ohjelmointikäytäntöjen käyttö tekijät voivat saada arvoja 0.70, 0.85, 1.00, 1.15, 1.30 ja 1.65 jos kokonaiskerroin on esim. 1.35, niin korjattu työpanos (MM) = 1.35 * 43 = 58 htkk!34

COCOMO-II COCOMO II koostuu neljästä mallista (joita voidaan käyttää kehityksen eri vaiheissa): Sovelluksen rakenteeseen perustuva (Application composition model) käytetään hyvin varhaisessa vaiheessa, kun tiedetään rakennettavan sovelluksen perusrakenne ja käytettävä teknologia laskennan perustana application points = object points Aikaiseen suunnitteluun perustuva (Early design model) käytetään, kun vaatimusmäärittelyt pysyvät vakaana laskennan perustana function points Uudelleenkäyttöön perustuva (Reuse model) käytetään yhdessä post-architecture mallin kanssa arvioidaan uudelleenkäytettävien komponenttien ja koodin generoinnin vaatimaa työmäärää, laskennan perustana LOC Arkkitehtuurivaiheen jälkeinen (Post-architecture model) käytetään ohjelmiston rakentamisen aikana laskennan perustana LOC, joka on summa uudesta koodista, uudelleenkäytetystä koodista ja muutetusta koodista korjauskertoimena voidaan käyttää 17 attribuuttia!35

Olioprojektin koon arviointi Skenaarioiden määrä (käyttötapaukset) Ydinluokkien määrä (määritelty jo analyysivaiheessa) Tukiluokkien määrä (tarvitaan järjestelmän rakentamiseen, mutta eivät ole ongelman ratkaisuun käytettäviä ydinluokkia) Yhtä ydinluokkaa vastaavien tukiluokkien määrä. GUI sovelluksissa tukiluokkia 2-3 kertaa ydinluokkien määrä Ei-GUI sovelluksissa tukiluokkia 1-2 kertaa ydinluokkien määrä Lorenz & Kidd Arvioi tukiluokkien määrä kertomalla edellisessä vaiheessa saadulla kertoimella avainluokkien lkm:n. Kerro näin saatu luokkien kokonaismäärä yhden luokan rakentamiseen tarvittavalla työmääräarviolla (Lorenz ja Kidd ehdottavat 15-20 työpäivää/luokka). Tarkista saatu arvio käyttötapausperustaisella arviolla!36

27. Projektin aikataulun kiinnittäminen työn osittaminen - WBS WBS (work breakdown structure) on puurakenne, joka kuvaa esim. projektin tai sopimuksen vaatiman työpanoksen. Tällöin kuvataan lopputulos ja sen jakaminen hallittaviin komponentteihin (järjestelmät, osajärjestelmät, komponentit, tehtävät, osatehtävät, työpakkaukset) Tehtävät (tai osatehtävät) ovat yhdelle henkilölle ositettavissa oleva rajattu työkokonaisuus, josta henkilö selviää 2-3 viikossa!37

http://www.criticaltools.com/!38

Task network chart with critical path (red) http://www.criticaltools.com/!39

Projektin vastuiden määrittely Responsibility Assignment Matrix (RAM) Projektin vastuiden määrittelyn pohjana ovat projektin tehtävien määritys WBS (work breakdown structure) siihen liittyvät työmääräarviot käytettävissä olevat resurssit osaaminen työpanos vastuu Lopputuloksena on Responsibility Assignment Matrix (RAM)!40

Projektin aikataulutus Tietty tehtävä toteutetaan aktiviteetilla Aktiviteettiin liittyy alkamisajankohta, päättymisajankohta tekijät, käytettävä työpanos vaihetuotteet (deliverables) Aktiviteetti 1 Aktiviteetti 2 Aktiviteetti 3 Aktiviteetti 4... Aktiviteettien päättymisajankohtia sanotaan etapeiksi (milestones) Etappi on saavutettu, kun aktiviteetin vaihetuotteet on hyväksytty projektisuunnitelman määrittämällä tavalla (esim. projektikatselmuksessa)!41

Esimerkki aikataulutuksesta (Ganttkaavio) Katso myös MS Project https://products.office.com/fi-fi/project/ ja https://en.wikipedia.org/wiki/comparison_of_project_management_software!42

Earned Value Management (EVM) (Earned Value Analysis, EVA) Projektin hallinta ansaitun arvon perusteella Ansaittu arvo (Earned value) mittaa kehitystä arvioidaan projektin valmiusastetta suorittamalla määrämuotoista analyysiä aikataulutettujen tehtävien suoritusasteesta!43

Miten ansaittu arvo lasketaan... Työn budjetoitu kustannus (budgeted cost of work scheduled, BCWS) on määritelty jokaiselle aikataulun tehtävälle BCWS i on suunniteltu työpanos tehtävälle i. tietyllä ajan hetkellä voidaan laskea arvo BCWS, joka on niiden tehtävien BCWS i arvojen summa, joiden pitäisi olla suunnitelmien (aikataulun) mukaan olla valmiina käytetään myös termiä PV (planned value) Valmiiden tehtävien budjetti (budget at completion, BAC) määritellään kaikkien tehtävien BCWS i arvojen summana. BAC = (BCWS k ) kaikille tehtäville k!44

Ansaitun arvon laskenta CPI = EV / AC SPI = EV / PV PV BAC kustannukset AC EV SV CV aika Lipke & Henderson 2006!45

Miten ansaittu arvo lasketaan... Seuraavaksi lasketaan suoritetun työn budjetoidut kustannukset (budgeted cost of work performed, BCWP). BCWP on kaikkien valmiiden tehtävien BCWS arvojen summa tietyllä ajan hetkellä. käytetään myös termiä EV (earned value) the distinction between the BCWS and the BCWP is that the former represents the budget of the activities that were planned to be completed and the latter represents the budget of the activities that actually were completed. [WIL99] BCWS, BAC ja BCWP arvojen perusteella voidaan laskea : Aikataulupohjainen suorituskyky (Schedule performance index, SPI) = BCWP/BCWS tai EV/PV (hyvä, jos > 1) Aikataulupoikkeama (Schedule variance, SV) = BCWP BCWS SPI kuvaa resurssien käytön tehokkuutta.!46

Miten ansaittu arvo lasketaan... Arvioitu valmiusaste (Percent scheduled for completion) = BCWS/BAC = (PV /BAC) mikä prosenttiosuus tulisi olla valmiina hetkellä t. Todellinen valmiusaste (Percent complete) = BCWP/ BAC = (EV/BAC) mikä osuus todella on valmiina hetkellä t. Todellinen työkustannus (Actual cost of work performed, ACWP = AC), todellinen työkustannus tehtävistä, jotka ovat valmiina tietyllä hetkellä. Sen jälkeen voidaan laskea kustannuspohjainen suorituskyky (Cost performance index, CPI) = BCWP/ACWP = EV/AC Kustannuspoikkeama (Cost variance, CV) = BCWP ACWP!47