OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN



Samankaltaiset tiedostot
OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

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

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

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

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

Arviointi ja mittaaminen

Mittaamisen maailmasta muutamia asioita. Heli Valkeinen, erikoistutkija, TtT TOIMIA-verkoston koordinaattori

Indikaattorit eli mittarit. Kepan verkkokurssi Jonna Haapanen ja Eija Mustonen

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

MIKKO-projekti ja mittausten automatisointi

JOHDANTO SOSIAALISEN TILINPITOON:

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena

Mittaaminen menettely (sääntö), jolla tilastoyksikköön liitetään tiettyä ominaisuutta kuvaava luku, mittaluku.

Vastksen ja diodin virta-jännite-ominaiskäyrät sekä valodiodi

Aki Jääskeläinen Tutkijatohtori Tampereen teknillinen yliopisto

Otannasta ja mittaamisesta

Automatisoinnilla tehokkuutta mittaamiseen

SOSIAALINEN TILINPITO Kirsti Santamäki,

Työkalujen merkitys mittaamisessa

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

811312A Tietorakenteet ja algoritmit I Johdanto

Laatukäsikirja - mikä se on ja miten sellainen laaditaan?

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

LIITE 1 VIRHEEN ARVIOINNISTA

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

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi

Tietorakenteet ja algoritmit - syksy

3. Käsiteanalyysi ja käsitekaavio

Tunteiden

Tilastollisten aineistojen kerääminen ja mittaaminen

Ammattikoulutuksen tuloksellisuus ja tuloksellisuuden arviointi

UML -mallinnus TILAKAAVIO

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

ITK130 Ohjelmistojen luonne

OPAS SOSIAALISEEN TILINPITOON

Sosiaalisten verkostojen data

Ohjelmistojen mallintaminen, mallintaminen ja UML

Monipuolisen yhteistyön haaste pyrittäessä korkealle

1. Työpaikan työntekijöistä laaditussa taulukossa oli mm. seuraavat rivit ja sarakkeet

STT Viestintäpalvelut Oy ProCom Viestinnän ammattilaiset ry. Viestinnän mittaamisen tila suomalaisissa organisaatioissa

Tietokantojen suunnittelu, relaatiokantojen perusteita

Televerkon verkkotietojärjestelm

1 Teknisen ja ympäristötoimen mittareiden laatiminen

LIITE 1 VIRHEEN ARVIOINNISTA

ASIAKASKÄYTTÄYTYMISEN MUUTOS JA SEN MITTAAMINEN

Kojemeteorologia (53695) Laskuharjoitus 1

Mobiilit ratkaisut yrityksesi seurannan ja mittaamisen tarpeisiin. Jos et voi mitata, et voi johtaa!

Johdantoluento. Ohjelmien ylläpito

Ohjelmoinnin perusteet, syksy 2006

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

1 Määrittelyjä ja aputuloksia

LIITE 1 VIRHEEN ARVIOINNISTA

Roi Rules Mittaamisen sietämätön keveys

Tilastolliset ohjelmistot A. Pinja Pikkuhookana

Kokemuksia eri projektityyppien haasteista/sudenkuopista toimittajayhteistyön näkökulmasta. Pekka

Vaikutusten mittaaminen. Hannes Enlund Fimea Lääkehoitojen arviointi

Verkkokurssin laadun arviointi ja mittaaminen

Limsan sokeripitoisuus

Videotoisto Nexus 7 tableteilla: Android 4.4 KitKat selvästi edellistä versiota heikompi

Keskeiset aihepiirit

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Projektityö

MONISTE 2 Kirjoittanut Elina Katainen

TASAVIRTAPIIRI - VASTAUSLOMAKE

Johdatus tilastotieteeseen Tilastollisten aineistojen kerääminen ja mittaaminen. TKK (c) Ilkka Mellin (2005) 1

Esimerkkejä vaativuusluokista

Algoritmit 1. Luento 1 Ti Timo Männikkö

Miten raportoin laadun? Kai Koistinen , Ota laatu haltuun paikkatiedot paremmaksi -työpaja

Luuntiheysmittaus. Harri Sievänen, TkT, dos Tutkimusjohtaja, UKK-instituutti Puheenjohtaja, Luustoliitto ry. S-posti:

Järjestö 2.0 -työryhmäpäivä Antti Pelto-Huikko, erityisasiantuntija

FYS206/5 Vaihtovirtakomponentit

Luentokuvia HAKU:1. Paula Liukkonen Tukholman yliopisto

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Muuttujien määrittely

RAKENNUSAKUSTIIKKA - ILMAÄÄNENERISTÄVYYS

Uudelleenkäytön jako kahteen

Mittaustekniikka (3 op)

KÄYTTÖOHJE LÄMPÖTILA-ANEMOMETRI DT-619

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

ISO/IEC sarja (SQUARE)

Miten hyödynnän tietoa johtamisessa ja toiminnan kehittämisessä? Ermo Haavisto johtajaylilääkäri

Varausta poistavien lattioiden mittausohje. 1. Tarkoitus. 2. Soveltamisalue. 3. Mittausmenetelmät MITTAUSOHJE (5)

Populaatio tutkimusobjektien muodostama joukko, johon tilastollinen tutkimus kohdistuu, koko N

Erikoissairaanhoidon toimintalukujen, tulosten ja laadun mittaaminen. Hallintoylilääkäri (evp.) Erkki Kujansuu, PSHP

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

KUMPI OHJAA, STRATEGIA VAI BUDJETTI?

Ohjelmistojen mallintaminen. Luento 11, 7.12.

TAVOITEPOHJAINEN OHJELMISTOPROSESSIN KEHITTÄMINEN

SEURANTAMITTARIT Mitä tietoja kerätään? Mitä tekijöitä seurataan? Mitkä ovat keskeiset ulkoiset tekijät,

7. Resistanssi ja Ohmin laki

PROSESSIEN TUNNISTAMISESTA PROSESSIEN JOHTAMISEEN JA MITTAAMISEEN. C Harjoitteita. J Moisio, Qualitas Fennica / IMS Business Solutions Oy, 4/ 2017

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

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Yhteisöllisen toimintatavan jalkauttaminen!

TARKASTUSVALIOKUNTA Minna Ainasvuori JHTT, Liiketoimintajohtaja BDO-konserni

Tietohallinnon arvo liiketoiminnalle

Transkriptio:

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN 80 Mitat ja mittaus You can t control what you can t measure Tom DeMarco, 1982. DeMarcon toteama on kaikkien mittausspesialistien motto: ilman mittausta ei ole ohjausta. Väite on tietenkin liioiteltu. Kaikkia merkittäviä tietoja ei osata, voida tai haluta mitata. Mutta: mittaamalla ohjaus helpottuu. 81 1

Mitat ja Mittaus Yrityksen tavoitteet voidaan esittää erityisten indikaattorien tavoitearvojen avulla (haluttu taso) Esimerkiksi asiakastyytyväisyyden ja -uskollisuuden mittaaminen usealla indikaattorilla Mielipidekyselyt Net Promoter Score Häiriöilmoitusten ja tukipyyntöjen lukumäärän kehitys (suhteessa käyttäjämäärään) 82 Mitat ja Mittaus Vaikka mittauksia ei tehtäisikään täydessä laajuudessaan (tai tehdään kertaluonteisesti), mittausohjelma toimii kommunikaation ja sitouttamisen välineenä Mittausohjelman toimeenpanoa tärkeämpää on saada kaikki ymmärtämään ja hyväksymään mitä tavoitellaan Huom! - mittausten käyttö palkitsemisen tai henkilökohtaisen suoriutumisen arvioinnin perusteena kääntyy kuitenkin helposti itseään vastaan Voi olla monta tapaa saada mittarit näyttämään haluttuja arvoja, eivätkä kaikki ole tarkoituksenmukaisia Kehittäjät vierastavat henkilöön kohdistuvia mittauksia ja vaihtavat työpaikkaa 83 2

Mitta, mittaus, mittari Mitta tai metriikka (measure, metric) on luku tai symboli, joka karakterisoi kiinnostuksen kohteen (entity) tiettyä ominaisuutta (attribute) Mittaus (measurement) on prosessi, joka liittää luvun tai symbolin jonkin tosimaailman olion ominaisuuteen sen kuvailemiseksi selvästi määritellyn säännön mukaan Mittari tarkoittaa yleensä mittaa, tai mittaa ja sen mittauksessa käytettyä menetelmää (~mittauksen määrätty suoritustapa) Tekniikassa mittarilla tarkoittaa yleisesti myös mittalaitetta, jolla tietty mittaus tehdään ja josta mittauksen tulos voidaan suoraan lukea Katso myös: Mittaaminen, http://fi.wikipedia.org/wiki/mittaaminen 84 Mitta, mittaus, mittari Mittarit voivat olla suoria (direct) tai johdettuja (indirect). Suorien mittareiden mittaukset kertovat sellaisenaan kohteen tilasta. Esimerkiksi lämpötila on suora mittari. Johdettujen mittareiden mittaukset saadaan yhden tai useamman suoran mittarin mittausten funktiona. Esimerkiksi kuukauden keskilämpötila on johdettu mittari. Mittarien avulla voidaan arvioida, ennustaa tai tilastoida mittaajan kannalta mielenkiintoisia kohteen ominaisuuksia. 85 3

Ohjelmistomittarit Ohjelmistotuotannossa on paljon suoria ja johdettuja mittareita, ohjelmistomittareita (software metrics). Ohjelmistomittareilla ja tekijöillä on yhteys. Useimpien tekijöiden sisältä voidaan löytää osatekijöitä, joiden toteutumista voidaan arvioida mittareilla. Kun tekijän osatekijöiden mittarit näyttävät, että osatekijät toteutuvat ohjelmistossa, tekijä toteutuu ohjelmistossa ainakin osittain. Miksi vain osittain? tekijä on yleensä enemmän kuin osatekijöidensä summa kaikille osatekijöille ei ole varmoja mittareita 86 LAATUMITTARIT 87 4

Laatumittarit Laatumittarit mittaavat ohjelmistotuotteen tai ohjelmistoprosessin a. Laatumittari on funktio, jonka syötteenä on ohjelmistoon liittyvä data ja tuloksena dataa kuvaava numeerinen arvo. Laatumittarin numeerinen arvo (mittauksen tulos) kertoo, missä määrin mitattu data täyttää mittarilla kuvattavan attribuutin (quality attribute) Laatuattribuutti tarkoittaa jotakin laadun ominaisuutta. Esimerkiksi tekijät ja -osatekijät (characteristics) ovat attribuutteja Arvon tulkinta vaatii usein sen suhteuttamista kokeellisesti tai kokemusperäisesti määriteltyyn tavoitetasoon 88 Onks kymppi paljon vai vähän? 89 5

Laatumittarien tarkoitus Laatumittarit ovat laadunvarmistuksen hyödyllisimpiä työkaluja. Niiden avulla varmennetaan, että ohjelmistoprojektit etenevät oikein: verrataan toteutunutta a ja tason vaihtelua suunniteltuun un verrataan toteutunutta aikataulua ja budjettia suunniteltuun aikatauluun ja budjettiin tunnistetaan, milloin kehitys- tai ylläpitoprosessia pitää parantaa: kerätään historiatietoa toteutuneista projekteista ja tuotteista Mittarit voivat olla prosessikohtaisia: miten hyvin prosessi ja sen ilmentymä (projekti) vastaavat toisiaan tuotekohtaisia: miten hyvin tuote ja sen tekijät vastaavat toisiaan. 90 Laadun mittaus SQuaRE 2502n standardien mukaan Laatumalli 25010 määrittelee käytön laadun ja tuotelaadun piirteet, joista valitaan kullekin projektille relevantit piirteet 25020 ja 25021 luo puitteet ohjelmistomittareiden määrittelylle 25022 ja 25023 antavat suosituksia ja esimerkkejä, mitä mittareita kunkin piirteen kohdalla kannattaa käyttää 91 6

Laadun mittaus - tuote koostuu ISO 25023 ISO 25010 indikoi generoi koostuu indikoi käyttää ISO 25021 92 Laadun mittaus Ohjelmiston un liittyviä mitattavia ominaisuuksia standardi kutsuu kvantifioitaviksi ominaisuuksiksi (property to quantify, ei ed. kuvassa) Ominaisuus kvantifioidaan käyttämällä mittausmenetelmää (measurement method), joka on toimenpiteiden sarja, joka liittää ominaisuuteen tietyn tyyppisen (measurement scale) arvon Saatua ominaisuuden arvoa kutsutaan perusmitaksi (quality measure element) 93 7

Laadun mittaus Perusmitat kytketään piirteisiin johdettujen mittareiden kautta (software quality measures) Kuhunkin mittariin liittyy mittausfunktio (measurement function) eli algoritmi, joka (yleensä) yhdistää useamman perusmitan yhdeksi mittarin arvoksi Samaan piirteeseen liittyy tyypillisesti useita mittareita, joiden avulla kvantifioidaan Laatumittarin määrittelystä ilmenee, mikä on peruste mittarin ja piirteen yhteydelle 94 Tuotelaadun mittarit ISO 25023 määrittelee kullekin piirteelle yhden tai useamman mittarin, ja antaa suosituksia niiden käytöstä Aksellilla Erittäin suositeltava Suositeltava Harkinnan mukaan Soveltuvuus ulkoisen ja/tai sisäisen laadun mittaamiseen Määrittelee myös perusmitat, joihin johdetut mittarit perustuvat sekä perusmittojen käyttämät mittayksiköt ja -asteikot (esim. koko, aika, työmäärä) Eri ohjelmistomittareita ja niiden suhdetta un tarkastellaan lisää myöhemmin kurssilla! 95 8

Laatumittarien valinta Laatumittareita valittaessa määrä ei korvaa a. On parempi valita pieni joukko hyvin määriteltyjä mittareita kuin mitata kaikkea mahdollista SQuaRE 25022, 25023 antavat suosituksia ja esimerkkejä Valittavat mittarit riippuvat siitä, mikä on kiinnostavaa ja mitä on ylipäänsä mahdollista mitata. Jotta mittarien käyttö olisi tehokasta, sen täytyy olla keskitettyä. Mittarit täytyy määritellä ylhäältä alaspäin (ensin tavoite, sitten siihen sopivat mittarit), sillä erilaisia mittareita on valtava määrä. Koska kaikkea ei voi eikä kannata mitata, valitut mittarit on perusteltava hyvin. Tähän voidaan käyttää Goal Question Metric -menetelmää (GQM, Basili & Rombach, 1988). 96 Goal - Question - Metric GQM [1] perustuu näkemykseen, jonka mukaan järkevään mittaukseen yrityksen tarvitsee 1. Määritellä yritys- ja projektitason tavoitteet 2. Löytää ne yritys- projekti- ja tuotetason tiedot, jotka määrittävät tavoitteiden toteutumista yrityksen toiminnan tasolla 3. Suunnitella kehys, jonka avulla kerätyt tiedot saadaan tulkittua kuvaamaan tavoitteita ja niiden toteutumista Eli: 1. Mitä tietoa yritys tarvitsee? 2. Miten tarpeet voidaan kvantifioida (esittää määrällisesti) tiedon keräämistä varten? 3. Miten kerättyjä (numero-) tietoja pitää analysoida tavoitteiden saavuttamisen arvioimiseksi? GQM tarjoaa keinot määritellä kysymyksiin vastaava mittarijoukko. [1] http://www.cs.umd.edu/~mvz/handouts/gqm.pdf 97 9

GQM-kolmitasomalli GQM on kolmitasoinen malli: Käsitetaso (GOAL) Selvitetään halutut tuote-, prosessi- ja resurssitavoitteet. Eli mittauksen kohde ja mitä siitä halutaan tietää tai muuttaa ja kenen näkökulmasta. Toimintataso (QUESTION) Tavoitteiden perusteella johdetaan joukko kysymyksiä, jotka kuvaavat kunkin tavoitteen toteutumista sitä luonnehtivien asiantilojen kautta Kukin kysymys luonnehtii mittauksen kohdetta un liittyvän ongelman tai faktan kannalta ja tietystä näkökulmasta. Kvantitatiivinen taso (METRIC) Kuhunkin kysymykseen etsitään sellainen (objektiivinen tai subjektiivinen) mittari/mittarit, jonka avulla kysymykseen saadaan kvantitatiivisia vastauksia. GQM:lla ei kannata tehdä liian kunnianhimoisia suunnitelmia. Aluksi on parempi etsiä perusmittarit ydinkysymyksiin ja sen jälkeen vähitellen parantaa mittarikehystä lisäämällä kysymyksiä ja niihin liittyviä mittareita. 98 GQM malli GQM malli on hierarkkinen rakenne, joka alkaa tavoitteesta (goal) Tavoite määrittelee mittauksen tarkoituksen, mittauksen kohdeolion, itse mitattavan asian sekä näkökulman, josta mittaus tehdään Tavoite tarkennetaan kysymyksiksi (question), jotka jakavat mitattavan asian pääkomponentteihinsa Jokainen kysymys tarkennetaan sitten metriikoiksi (mittareiksi) Voivat olla objektiivisia tai subjektiivisia Samaa mittaria voidaan käyttää (osa-) vastauksena useampaan samaan tavoitteeseen liittyvään kysymykseen 99 10

GQM-esimerkki 1 GOAL: Kustannuksiltaan ja vaikuttavuudeltaan tehokas koodausstandardi QUESTIONS: Standardin käyttö? Koodaajien tuottavuus? Koodin? METRICS: Standardia käyttävien koodaajien lkm. Kvalitatiiviset kokemukset standardista Koodin määrä Työmäärä Virheet 100 GQM-esimerkki 2 Tavoite Tarkoitus Parannetaan Kysymys 1 Mittarit Kysymys 2 Mittarit Kohde (prosessi) Asia/ongelma Näkökulma muutospyyntöjen käsittelyn ajallista täsmällisyyttä ja tehokkuutta projektipäällikön näkökulmasta. Mikä on nykyinen muutospyynnön käsittelynopeus? Muutospyynnön keskim. käsittelyaika Keskipoikkeama Käsittelyaikatavoitteen ylärajan ylittävien pyyntöjen osuus prosentteina Tehostuuko käsittely? Nykyinen keskimäär. käsittelyaika prosentteina valitusta perustasosta Projektipäällikön oma subj. arvio 101 11

GQM Usealla GQM mallilla voi olla yhteisiä kysymyksiä ja mittareita Ohjaa siihen, että mittauksen suorituksessa voidaan ottaa huomioon eri näkökulmat mitattavaan asiaan Sama mittaus voi tuottaa erityyppisiä arvoja näkökulmasta riippuen 102 KOON MITTARIT 103 12

Ohjelmiston kokomittarit Huomattavassa määrässä ohjelmiston mittareita mitataan niiden osana ohjelmiston kokoa. Vaikka erilaisia kokomittareita on lukemattomia, kaksi on ylitse muiden: KLOC (Kilos Lines Of Code): Kuinka monta tuhatta koodiriviä on ohjelmistossa. FP (Function Points): Kuinka paljon toiminnallisuutta on ohjelmistossa. Muita kokomittareita: Montako lausetta on ohjelmistossa (KLOC-variantti). Montako luokkaa/metodia/funktiota on ohjelmistossa. Montako riippumatonta polkua (independent path) on ohjelmistossa tai (yleensä) sen osassa. Riippumaton polku on sellainen suoritusreitti ohjelmistossa, että sitä ei voi saada yhdistämällä muista riippumattomista poluista. 104 KLOC KLOC on yleisin ohjelmiston kokomittari. Sillä mitataan ohjelmiston kokoa koodiriveinä joko kommenttien kanssa tai ilman niitä. KLOC on selkeä mittari, joka kuvaa koon lisäksi yllättävän hyvin kompleksisuutta: mitä isompi ohjelmisto/ohjelma/luokka/metodi tms. on, sitä mutkikkaampi se yleensä on (ja esimerkiksi sitä hankalampi testata ja ylläpitää). KLOC:n heikkous on sen ohjelmointikieliriippuvuus. Eri ohjelmointikielillä toteutetuista ohjelmistoista lasketut KLOCluvut eivät ole keskenään verrannollisia. Myös koodaustyylit vaikuttavat jonkin verran koodirivien määrään, mutta isoilla ohjelmistoilla erojen suhde koodirivien kokonaismäärään on melko pieni. KLOC:n sijaan kannattaa laskea esimerkiksi puolipisteitä (so. lauseita), jos koodirivin pituuden vaihtelu osoittautuu ongelmaksi. 105 13

KLOC-ongelmia Koska KLOC riippuu käytetystä ohjelmointikielestä ja koodaustavasta, KLOC-arvot ovat monen, laadun kannalta vähemmän tärkeän muuttujan summa. Lisäksi KLOC:lla on ikävä ominaisuus: se on nimensä mukaisesti koodirivien määrä, joten sitä ei voida laskea, ennen kuin koodi on kirjoitettu. Miten lasketaan kirjastoista/kehyksistä uudelleenkäytetyt koodirivit?? Lähdekoodia ei edes usein saatavissa KLOC-arvoja voidaan arvioida, mutta arviot ovat summittaisia. Olisi parempi, jos jo määrittely- tai suunnitteluvaiheessa ohjelman koolle voisi antaa luotettavan arvion. Määrittelystä laskettava kokoarvio on mahdollista toimintopisteillä (function points). Niiden avulla jo melko yleisistä määrityksistä voidaan arvioida, miten paljon toiminnallisuutta ohjelmistossa on. Arviot tarkentuvat projektin edetessä ja ohjelmiston vaiheittain valmistuessa 106 14