Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Samankaltaiset tiedostot
Projektinhallinta: kustannusarvio

8. Laadunvalvonta. Mitä laatu on?

Ohjelmistotuotanto, laadunvalvonta Syksy Laadunvalvonta. Mitä laatu on? Laadun komponentit. Laatuvaatimukset.

ITK130 Ohjelmistojen luonne

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

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

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

Ohjelmistojen suunnittelu

Ohjelmistotuotanto, s /27/2003

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Aluksi. Riskien hallinta. Riskityyppejä. Riskillä on kaksi ominaisuutta. Reaktiivinen strategia. Proaktiivinen strategia

arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi

Käytettävyyslaatumallin rakentaminen verkkosivustolle

7.4 Variability management

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

CMMI CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto

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)

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

Tietojärjestelmän osat

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

Software engineering

8. Laadunvalvonta. Mitä laatu on? Eräs laadun määritelmä. Laadun hallinta. Laatuvaatimukset. Prosessin ja tuotteen laatu

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

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Mittaaminen projektipäällikön ja prosessinkehittäjän työkaluna

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

Ohjelmistotekniikka - Luento 2

Suunnitteluvaihe prosessissa

ISO/IEC sarja (SQUARE)

Ohjelmistotuotanto, k

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

KUNTIEN JA HUS:N ASIAKAS- JA POTILASTIETOJÄRJESTELMÄN HANKINTA

1. Johdanto. Ohjelmistotuotannon ongelmia

Hieman lisää malleista ja niiden hyödyntämisestä

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

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Yleiskuvaus - LVpalvelukerroksen. laadulliset vaatimukset Jari Kokko & Vesa Mettovaara LUVAT JA VALVONTA -KÄRKIHANKE

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

Uudelleenkäytön jako kahteen

Millainen on onnistunut ICT-projekti?

7. Product-line architectures

Ohjelmistojen testaus

SYSTEEMITYÖ. Tärkeitä sanoja

Results on the new polydrug use questions in the Finnish TDI data

SoberIT Software Business and Engineering institute

Johdantoluento. Ohjelmien ylläpito

Ohjelmistotuotanto, projektinhallinta Kevät 2005

Infrastruktuurin asemoituminen kansalliseen ja kansainväliseen kenttään Outi Ala-Honkola Tiedeasiantuntija

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Algoritmit 1. Luento 3 Ti Timo Männikkö

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

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

Ohjelmistotuotanto, syksy laatu Ohjelmiston laatu

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2007

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Käytettävyyslaatumallin rakentaminen web-sivustolle. Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -suunnitelma Timo Laapotti 28.9.

Projektin suunnittelu

Operatioanalyysi 2011, Harjoitus 3, viikko 39

Johdatusta ohjelmistotekniikkaan

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

2. Ohjelmistotuotantoprosessi

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

Ohjelmistojen mallintaminen, mallintaminen ja UML

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

Yhteenveto. Menettelytavat

Laadukkaiden ja luotettavien ohjelmistojen vaatimukset ja miten ne täytetään?

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

Laadunvarmistuksesta. Luennon tavoitteista. Motivointia. Sommerville, Software Engineering (6th ed.)

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

3. Projektinhallinta. Miksi ohjelmistoprojektin hallinta on erilaista?

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Software product lines

TOIMINNALLINEN MÄÄRITTELY MS

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia

Projektityö

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

LUONNOS RT EN AGREEMENT ON BUILDING WORKS 1 THE PARTIES. May (10)

Luokka- ja oliokaaviot

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Projektinhallinnan merkitys

Ohjelmistojen vaatimusmäärittely Helsingin yliopisto, TKTL, s2013. Harri Laine 1. Vaatimusmäärittely. Vaatimusmäärittely. Vaatimusmäärittely

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

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

Virtuaalinen tarkastus. Katselmoinnit osa 3. Paritarkastus. N-kertainen tarkastus (n-fold inspection)

Efficiency change over time

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Tulevaisuuden työ nyt

Transkriptio:

Ohjelmiston kustannusarviot Projektinhallinta: kustannusarvio Yleensä jo projektin tarjouksen osana on jonkinlainen kustannusarvio Projektin tärkeimmät kustannustekijät: työvoimakustannukset (ylivoimaisesti suurin menoerä): Palkat ja sosiaalikulut Työtilat ym. laitteisto- ja ohjelmistokulut matkat ja koulutukset 581259 Ohjelmistotuotanto 339 581259 Ohjelmistotuotanto 340 Kustannusten arvioinnin ongelma Kustannusarvio joudutaan laatimaan aikaisin, sillä sitä tarvitaan neuvoteltaessa tarjouksesta Kokonaistyöpanoksen tarve riippuu olennaisesti laadittavasta ohjelmatuotteesta: Minkälaisista osajärjestelmistä tuote koostuu? Minkälaista ammattitaitoa tekijöiltä edellytetään? Kuinka paljon työtä kuinka kauan työ kestää? Kustannusten arvioinnin tapoja Aiempaan kokemukseen perustuva arviointi Ohjelmistotekniikan ja sovellusalueen asiantuntijat, analogiaperiaate Kustannusten mallintaminen Matemaattinen malli, jolla ennustetaan kustannuksia tiettyjen lähtökohtatietojen ja arvioiden perusteella Lukuisia malliin sisältyviä suureita kuitenkin arvioitava subjektiivisesti kokemukseen perustuen 581259 Ohjelmistotuotanto 341 581259 Ohjelmistotuotanto 342 Huomioitavaa Parkinsonin laki: Work expands so as to fill the time available for its completion Sovellus: mitä tahansa arvioidaan, projekti kuluttaa vähintään sen verran Budjetointi vaikuttaa suoritukseen Voidaan lähteä käytettävissä olevasta budjetista ja katsoa minkä verran toiminnallisuutta saadaan aikaisin Tuotos ja työpanos ohjelmistotyössä Työaika vaikuttaa kohtalaisen suoraviivaisesti kustannuksiin (palkat, tilakustannukset) Tarve arvioida tarvittavat tuotokset ja tietyn suuruiseen tuotokseen tarvittava työpanos (aika) Tuotoksen määrää mitaan tyypillisesti ohjelmatuotteen kokona (koodirivejä) tai ohjelmatuotteen sisältämän toiminnallisuuden määränä 581259 Ohjelmistotuotanto 343 581259 Ohjelmistotuotanto 344 1

Koodimäärään perustuva arviointi Tavallisin tuotoksen mitta on koodin määrä Konkreettinen Helposti miellettävissä, helposti (jälkikäteen) laskettavissa Toisaalta: Koodin laatiminen on vain osa työstä Koodirivin ilmaisuvoima riippuu käytetystä ohjelmointikielestä Koodirivien määrän arviointi ei ole helppoa projektin alkuvaiheessa 581259 Ohjelmistotuotanto 345 Toiminnallisuuteen perustuva koon arviointi Tuotosten suuruutta voidaan arvioida myös ohjelmiston toiminnallisuudella Korkeampi abstraktiotaso Toiminnallisuuden arvion tuloksena yksittäinen luku, mielekkyys, tulkinta? Ohjelmointikielestä riippumaton mitta Arviointi enemmän konkretiaan sidottu kuin koodirivien määrän arviointi Arvioita voidaan myös käyttää ennustamaan koodirivien lukumäärää 581259 Ohjelmistotuotanto 346 Toimintopisteanalyysi (function point analysis) Toiminnallisten vaatimusten analysointi Toiminnallisuutta kuvaavat alkiot Ulkoiset syötteet ja tulosteet Ulkoiset liittymät (external interfaces) Interaktiot käyttäjän kanssa Järjestelmän käyttämät tiedostot Kunkin kompleksisuus arvioidaan painot summataan toimintopisteiden lukumäärä Modifioidaan vielä erilaisilla kompleksisuustekijöillä (mm. uudelleenkäyttö, hajautus) 581259 Ohjelmistotuotanto 347 Oliopisteanalyysi Oliopisteanalyysi (object point analysis) on uudempi tekniikka, jossa on sama perusidea Helpompi analysoida korkean tason järjestelmäkuvauksesta kuin toimintopisteitä Oliopisteitä lasketaan Näytöistä (number of separate screens), Tuotettavista raporteista (number of reports produced) Toteutettavista moduuleista (number of modules to be developed) 581259 Ohjelmistotuotanto 348 Painokertoimet Elementin pisteytykseen vaikuttaa se, miten hankalaksi elementin toteutus katsotaan Yksinkertainen näyttö: 1op Keskivaikea näyttö: 2op Vaikea näyttö: 3op Yksinkertainen raportti: 2op Keskivaikea raportti: 5op Vaikea raportti: 8op Moduuli/komponentti: 10op Kustannusmallit Kustannusestimaatti saadaan tuotetta, projektia ja prosessia kuvaavien attribuuttien arvojen funktiona Asiantuntijat arvioivat mainittujen attribuuttien arvot Kustannusmallien peruskaava Effort = A x Size B x M A vakio (ainakin periaatteessa organisaatiokohtainen) Size = ohjelmiston koko B suurten projektien kompleksisuuslisä M kuvaa tuotteen, prosessien ja kehittäjien laatua 581259 Ohjelmistotuotanto 349 581259 Ohjelmistotuotanto 350 2

COCOMO II Empiirinen malli: perustuu kokemukseen suuresta määrästä projekteja dokumentoitu Riippumaton : ei sidoksissa ohjelmistoyrityksiin Pitkä historia alkaen v. 1981, nykyisin COCOMO 2 malli Alun perin vesiputousmallin kustannusarvioinnin tueksi Nykyisin laajempi, mm. uudelleenkäytettävät komponentit tarkentuvat osamallit: lisäinformaation myötä lisääntyvä tarkkuustaso kustannusten estimoinnissa COCOMO II:n osamallit Application composition model käytetään, kun ohjelmisto tehdään suurelta osalta valmiista komponenteista Early design model käytetään, kun vaatimusmäärittely on tehty, mutta suunnittelu ei ole alkanut Reuse model käytetään laskettaessa uudelleenkäytettävien komponenttien adaptoimisen ja integroinnin vaatimaa työmäärää Post-architecture model käytetään kun järjestelmäarkkitehtuuri on valmis ja järjestelmästä on yksityiskohtaista tietoa 581259 Ohjelmistotuotanto 351 581259 Ohjelmistotuotanto 352 Application composition model Malli on tarkoitettu komponenteista koottavien ohjelmien arviointiin, mutta sitä voidaan kyllä käyttää arvioitaessa karkeasti mitä tahansa ohjelmistoa PM = ( NAP x (1 - %reuse/100 ) ) / PROD Tuottavuuskerroin (PROD) Tuottavuuskerroin huomioi alla taulukossa esitetyn mukaisesti kuinka kokenut tiimi tekee tuotetta kuinka hyviä kehitystyökaluja on käytössä PROD keskiarvo (kokemus+tools/2) PM= vaadittu työmäärä (henkilötyö-kk) NAP = oliopisteiden lukumäärä, %reuse = uudelleen käytettävien komponenttien osuus PROD=tuottavuus Tiimin kokemus Kehitystyökalujen taso matala matala 4 Matala Matala 7 Keskiverto Keskiverto 13 Korkea Korkea 25 korkea korkea 50 581259 Ohjelmistotuotanto 353 581259 Ohjelmistotuotanto 354 Early design model Vaatimusmäärittelyn jälkeen Perustuu algoritmisten mallien peruskaavaan PM = A x Size B x M M on seitsemän tekijän tulo (ei-toiminnalliset vaatimukset, ympäristö, henkilöstön kyvyt/kokemus) A estimoitu suuren datamäärän perusteella, A=2.94 alkuperäisessä kalibroinnissa Size= tuhatta koodiriviä (KLOC) B vaihtelee välillä 1.1...1.24 projektin innovatiivisuus, joustavuus, riskienhallinta, prosessin kypsyys Post-architecture level M lasketaan 17 kertoimen perusteella (early design mallissa 7 kerrointa) Koodin määrässä huomioidaan reuse model osamallin perusteella muodostettuja arvioita uudelleenkäytettävän koodin määrästä + muokkaustarpeesta sekä arvioidaan vaatimusten muuttumisesta seuraavia muutostarpeita Eksponentin määräämisessä viisi skaalaustekijää Lähdetään eksponentin arvosta 1.01 ja lisätään siihen skaalaustekijöiden summa jaettuna 100:lla 581259 Ohjelmistotuotanto 355 581259 Ohjelmistotuotanto 356 3

Skaalaustekijät (Sommerville 2010) Esimerkki (Sommerville 2010) Scale factor Precedentedness Development flexibility Architecture/risk resolution Team cohesion Process maturity Explanation Reflects the previous experience of the organization with this type of project. Very low means no previous experience; extra-high means that the organization is completely familiar with this application domain. Reflects the degree of flexibility in the development process. Very low means a prescribed process is used; extra-high means that the client sets only general goals. Reflects the extent of risk analysis carried out. Very low means little analysis; extra-high means a complete and thorough risk analysis. Reflects how well the development team knows each other and work together. Very low means very difficult interactions; extra-high means an integrated and effective team with no communication problems. Reflects the process maturity of the organization. The computation of this value depends on the CMM Maturity Questionnaire, but an estimate can be achieved by subtracting the CMM process maturity level from 5. A company takes on a project in a new domain. The client has not defined the process to be used and has not allowed time for risk analysis. The company has a CMM level 2 rating. Precedenteness - new project (4) Development flexibility - no client involvement - Very high (1) Architecture/risk resolution - No risk analysis - V. Low.(5) Team cohesion - new team - nominal (3) Process maturity - some control - nominal (3) Scale factor is therefore 1.17. 581259 Ohjelmistotuotanto 357 581259 Ohjelmistotuotanto 358 Laadunhallinta Laadunhallinta Viimeisen 20 vuoden aikana ohjelmistojen laatu on parantunut huomattavasti modernit prosessimallit opettavat entistä joustavammat ja silti hallitut työtavat, modernit ohjelmistotuotannon tekniikat hallitaan useimmiten aika hyvin ohjelmistojen laadunhallinta (quality management) on otettu merkittäväksi osaksi ohjelmistojen kehitystyötä 581259 Ohjelmistotuotanto 359 581259 Ohjelmistotuotanto 360 Mitä ohjelmiston laatu tarkoittaa? Ohjelmiston laatu = ohjelmiston vastaavuus määrittelynsä kanssa? Järjestelmävaatimukset eivät yksin riitä laadun perustaksi Niiden laatu ei ole tarpeeksi hyvä, epätäydellisyys, ristiriitaisuus Jännite asiakkaan ja kehitystiimin näkökulmien välillä Kaikkia laadun piirteitä ei osata määritellä yksiselitteisesti (esim. ylläpidettävyys) Ohjelmisto ei välttämättä täytä asiakkaan tarpeita, vaikka se vastaisi määrittelyä Onnistunut laadunhallinta takaa, että tehtävät tuotteet ovat laadukkaita sekä asiakkaan että kehitystiimin kannalta Pienissä projekteissa keskeisintä on luoda laatukulttuuri, jossa laatu on kaikkien vastuulla Mitä suurempi organisaatio ja suuremmat järjestelmät, sitä tärkeämpää on tarkasti ohjattu laadunhallinta 581259 Ohjelmistotuotanto 361 581259 Ohjelmistotuotanto 362 4

Laadunhallinnan tehtävät Laadunhallinta määrittelee tarvittavat laatustandardit ja laadun saavuttamiseksi tarvittavat menetelmät varmistaa, että määriteltyjä standardeja ja menetelmiä myös seurataan käytännössä pyrkii kehittämään laatukulttuurin, jossa laatu on kaikkien vastuulla Prosessin ja tuotteen laatu Tuotantoprosessin laatu vaikuttaa tuotteen laatuun Tuotteen laadun seuranta voi olla vaikeaa Prosessien ja tuotteen laadun välisestä yhteydestä tarvitaan lisätutkimusta 581259 Ohjelmistotuotanto 363 581259 Ohjelmistotuotanto 364 Laatukomponentit Ohjelmistojen laatukomponentteja Parhaiten laatu määritellään laatukomponenteilla (quality attributes) Laadukas tuote on sellainen, joka täyttää riittävän hyvin sille määritellyt laatukomponentit Laatukomponenteilla on läheinen yhteys ei-toiminnallisiin vaatimuksiin Siksi ei-toiminnallisia vaatimuksia kutsutaan laatuvaatimuksiksi Käyttöturvallisuus (safety) Tietoturvallisuus (security) Luotettavuus (reliability) Tehokkuus (efficiency) Käytettävyys (usability) Opittavuus (learnability) Joustavuus (resilience) Vakaus (robustness) Muutettavuus (adaptability) Virheettömyys (faultlessness) Monimutkaisuus (complexity) Modulaarisuus (modularity) Testattavuus (testability) Siirrettävyys (portability) Ylläpidettävyys (maintainability) Uuskäyttöisyys (reusability) 581259 Ohjelmistotuotanto 365 581259 Ohjelmistotuotanto 366 Laatuvaatimukset Ohjelmiston tyyppi vaikuttaa siihen, mitkä laadun komponentit pitää huomioida kehitystyössä tuotteen laatuvaatimukset ei-toiminnallisia vaatimuksia, jotka yleensä liittyvät koko järjestelmään Joskus laatuvaatimus voi liittyä yksittäiseen toimintoon: esimerkiksi tietyn toiminnon vasteaika on laatuvaatimus Laatukomponenttien valinta Laatukomponentit ovat usein ristiriidassa keskenään Esimerkiksi tietoturvallisuus voi olla ristiriidassa käytettävyyden kanssa Kehitystyössä on päätettävä, mitkä laatukomponenteista ovat tärkeimmät ja mistä voidaan tinkiä. Esimerkiksi edellä varmaankin tingittäisiin käytettävyydestä tietoturvallisuuden hyväksi 581259 Ohjelmistotuotanto 367 581259 Ohjelmistotuotanto 368 5

Laadunhallintaryhmä Laadunhallinta kannattaa antaa ohjelmistoprojekteista riippumattomalle laadunhallintaryhmälle Laadunhallintaryhmä seuraa projekteja ja raportoi projektien johtoryhmille Laadunhallintaryhmän avulla projekteihin saadaan objektiivinen kehitystyön ulkopuolinen näkökulma 581259 Ohjelmistotuotanto 369 Standardit Standardit ovat sopimuksia, joiden avulla pyritään tasalaatuisuuteen Tiivistävät parhaat käytännöt Vältetään tehtyjen virheiden toistaminen Standardi voi koskea tuotetta tai prosessia: tuotetta koskevat standardit sisältävät tuotteen osien rakenteet ja esitystavat prosessia koskevat standardit sisältävät prosessin työvaiheet ja niissä käytettävät työtavat 581259 Ohjelmistotuotanto 370 Mittaukset Mittaus (measuring) projektin kestäessä ja päättyessä sekä tuotteesta että prosessista lasketaan sitä kuvaavia arvoja Mitattavat suureet (software metrics) Projektin aikana tehtävää mittausta käytetään seurattaessa ja ohjattaessa projektin etenemistä ja tuotteen laatua Projektin lopussa tehtävää mittausta käytetään tulevia projekteja varten Kiinnostavat ja mitattavat suureet Mitattavat suureet eivät yleensä ole sellaisenaan kiinnostavia Saadut arvot pitää tulkita Tulkinnassa mitattavasta suureesta johdetaan tieto, joka kertoo jostain kiinnostavasta suureesta: esim. mitataan vaatimusmäärittelyssä näyttöjen määrä Ł arvioidaan käytettävyyttä 581259 Ohjelmistotuotanto 371 581259 Ohjelmistotuotanto 372 Kiinnostavat ja mitattavat suureet Tuotteen mitat Staattiset mitat: Kerätään mittaamalla projektin tuotoksia: Suunnitelmia Koodia Dokumentteja Kerättävissä projektin alusta alkaen Dynaamiset mitat: Kerätään mittaamalla toimivaa ohjelmaa Mitan arvo riippuu myös siitä, miten ohjelmaa käytetään: Eri toimintojen käyttö Syötteet Kerättävissä vasta, kun on jotain, joka toimii Kuva I. Sommerville 2004 581259 Ohjelmistotuotanto 373 581259 Ohjelmistotuotanto 374 6

Mitä mitat kuvaavat? Staattiset mitat liittyvät tuotteen rakenteellisiin ominaisuuksiin Niillä voi olla välillinen yhteys laatuominaisuuksiin Esim. laaja vaatimusmäärittely Ł vaikeasti ylläpidettävä ohjelmisto Dynaamiset mitat liittyvät tuotteen käyttäytymiseen. Niillä on yleensä suora yhteys laatuominaisuuksiin. Esim. suoritusaika, toipuminen jne. Prosessin mitat Prosessin mittoja käytetään prosessin seurantaan ja parantamiseen: aikamitat, kuten tiettyyn työvaiheeseen kulunut aika resurssimitat, kuten käytettyjen henkilötyöpäivien määrä, koneaika tapahtumamitat, kuten testauksessa löytyneiden vikojen lukumäärä, muutospyyntöjen lukumäärä. 581259 Ohjelmistotuotanto 375 581259 Ohjelmistotuotanto 376 Mittatulosten analysointi Mitattavaan suureeseen vaikuttaa yleensä monta samanaikaista tekijää Tulosten tulkintaan liittyy epävarmuutta Esimerkiksi jos testauksessa löytyi vain pieni määrä vikoja, syy voi olla hyvässä koodauksessa, huonossa testauksessa, taitavassa suunnittelussa, huolellisissa tarkastuksissa, runsaassa uudelleenkäytössä ym. 581259 Ohjelmistotuotanto 377 7