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

MIKKO-projekti ja mittausten automatisointi

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

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

Indikaattorit eli mittarit. Kepan verkkokurssi Jonna Haapanen ja Eija Mustonen

Automatisoinnilla tehokkuutta mittaamiseen

Otannasta ja mittaamisesta

Työkalujen merkitys mittaamisessa

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

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena

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

LIITE 1 VIRHEEN ARVIOINNISTA

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

SOSIAALINEN TILINPITO Kirsti Santamäki,

Tunteiden

Ammattikoulutuksen tuloksellisuus ja tuloksellisuuden arviointi

ITK130 Ohjelmistojen luonne

Sosiaalisten verkostojen data

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

811312A Tietorakenteet ja algoritmit I Johdanto

Ohjelmistojen mallintaminen, mallintaminen ja UML

arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi

Aki Jääskeläinen Tutkijatohtori Tampereen teknillinen yliopisto

Tietokantojen suunnittelu, relaatiokantojen perusteita

3. Käsiteanalyysi ja käsitekaavio

JOHDANTO SOSIAALISEN TILINPITOON:

ASIAKASKÄYTTÄYTYMISEN MUUTOS JA SEN MITTAAMINEN

LIITE 1 VIRHEEN ARVIOINNISTA

Johdantoluento. Ohjelmien ylläpito

Kojemeteorologia (53695) Laskuharjoitus 1

Ohjelmoinnin perusteet, syksy 2006

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

1 Määrittelyjä ja aputuloksia

LIITE 1 VIRHEEN ARVIOINNISTA

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

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

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

UML -mallinnus TILAKAAVIO

Limsan sokeripitoisuus

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Projektityö

MONISTE 2 Kirjoittanut Elina Katainen

Esimerkkejä vaativuusluokista

Algoritmit 1. Luento 1 Ti Timo Männikkö

Tilastolliset ohjelmistot A. Pinja Pikkuhookana

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

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

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Muuttujien määrittely

Luentokuvia HAKU:1. Paula Liukkonen Tukholman yliopisto

RAKENNUSAKUSTIIKKA - ILMAÄÄNENERISTÄVYYS

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

Mittaustekniikka (3 op)

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

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

TAVOITEPOHJAINEN OHJELMISTOPROSESSIN KEHITTÄMINEN

Tietorakenteet ja algoritmit - syksy

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

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

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

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

13/20: Kierrätys kannattaa koodaamisessakin

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

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

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Tilastollisten aineistojen kerääminen ja mittaaminen

IT-palvelupisteen palvelutason mittaaminen

Mittaamisen hyödyt. Heli Valkeinen, erikoistutkija, TtT TOIMIA-verkoston koordinaattori

Menetelmäraportti - Konfiguraationhallinta

Koesuunnitelma. Tuntemattoman kappaleen materiaalin määritys. Kon c3004 Kone ja rakennustekniikan laboratoriotyöt. Janne Mattila.

Televerkon verkkotietojärjestelm

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

Liikkuja polku verkostotapaaminen

MS-A0004/A0006 Matriisilaskenta

Nimi: Henkilötunnus: {id} {+id}

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Uudelleenkäytön jako kahteen

Algoritmit 2. Luento 1 Ti Timo Männikkö

Roi Rules Mittaamisen sietämätön keveys

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

ISO/IEC 29881:2010 => SFS-ISO 29881:2013. FiSMA 1.1 menetelmä vihdoin myös suomeksi. Pekka Forselius, Senior Advisor, FiSMA ry

ISO/IEC sarja (SQUARE)

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

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

Harjoitustyö Case - HelpDesk

Oikeanlaisten virtapihtien valinta Aloita vastaamalla seuraaviin kysymyksiin löytääksesi oikeantyyppiset virtapihdit haluamaasi käyttökohteeseen.

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Keskeiset aihepiirit

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

Transkriptio:

Mitat ja Mittaus OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN 80 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 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. Mitta, mittaus, mittari Mittatai 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 81 84 Mitat ja Mittaus Mitta, mittaus, mittari 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) 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. 82 85 1

Ohjelmistomittarit Onks kymppi paljon vai vähän? 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 89 Laatumittarien tarkoitus LAATUMITTARIT 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. 87 90 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 kokeellisestitai kokemusperäisesti määriteltyyn tavoitetasoon 88 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 2

Laadun mittaus - tuote Tuotelaadun mittarit ISO 25010 koostuu koostuu ISO 25023 indikoi indikoi generoi käyttää ISO 25021 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! 92 95 Laadun mittaus Laatumittarien valinta 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 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 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 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 3

GQM-kolmitasomalli GQM-esimerkki 2 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 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 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 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 99 102 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 KOON MITTARIT 100 103 4

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 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 5