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

Samankaltaiset tiedostot
8. Laadunvalvonta. Mitä laatu on?

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

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

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

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

Mitä prosessissa kehitetään. Prosessin kehittäminen. Kehittämisen tavoitteita. Perusasioita kehittämisessä. Pohjana esim. CMM

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)

Projektinhallinta: kustannusarvio

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

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

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

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

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Prosessikuvaukset ja elinkaarimallit

Luotettavuuden mittaamisesta. Ilkka Norros ja Urho Pulkkinen

Triangulaatio tutkimusmenetelmänä

ITK130 Ohjelmistojen luonne

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena

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

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

Ohjelmistotuotanto, syksy laatu Ohjelmiston laatu

Matematiikan tukikurssi

Kriittisen polun hallinta CRIPMAN (CRItical Path MANagement) Pekka Maijala & Jaakko Paasi

Turvallisuus ja turvallisuudenhallintajärjestelmä

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

TILASTOLLINEN LAADUNVALVONTA

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

IV-kuntotutkimushanke_tutkijat

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

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

Potilastietojärjestelmän laatu Mittaa ja paranna potilastietojärjestelmän laatua

Laboratoriotyön sisältö. Pareittain tehtävä laboratoriotyö Vaatimukset: Laboratoriotyöskentely Loppuraportti (1 raportti/työ)

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

Johdatus diskreettiin matematiikkaan Harjoitus 7,

Opettajalle ohje opintojakson toteutuksen tekemiselle mallipohjana ja mallipohjan tuominen opintojakson toteutukseen.

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI, ESA SALMIKANGAS

Algoritmit ja tietorakenteet Copyright Hannu Laine. 1, kun n= 0. n*(n-1)!, kun n>0;

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmiston testaus ja laatu. Testaus käytettävyys

Johdantoluento. Ohjelmien ylläpito

Missä mennään BI? Mikko Kontio

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

Seuranta ja raportointi KA2-hankkeessa. CIMO, Helsinki Esityksen sisältö. 1. Hankkeen sisäinen seuranta ja raportointi

Hankkeen toiminnot työsuunnitelman laatiminen. Hanketyöpaja innovaatioiden siirto -hanketta valmisteleville

Tietojärjestelmän osat

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

Tutkimuksen projektisointi ja ajankäyttö. Jouni Lauronen

Ohjelmistojen suunnittelu

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Ohjelmiston testaus ja laatu. Testaus yleistä

MIKKO-projekti ja mittausten automatisointi

PROJEKTIN DOKUMENTOINTI JOUNI HUOTARI, ESA SALMIKANGAS

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana

Strategia, johtaminen ja KA. Virpi Einola-Pekkinen

Syksyn aloituskampanjat lippukunnissa

EUROOPAN YHTEISÖJEN KOMISSIO. Ehdotus: NEUVOSTON ASETUS. neljännesvuosittaista julkista velkaa koskevien tietojen laatimisesta ja toimittamisesta

Sisäinen auditointi osa Oamkin ympäristöohjelmatyötä

Yleinen osa - Kuntoutuksessa tukena,

Itä-Suomen. työturvallisuuskilpailu. Kuopio Iso-Valkeinen

Projektin suunnittelu

Projektin suunnittelu. CMMI-käytänteet. Projektin suunnittelu CMMI-käytänteet

Ohjelmistotuotanto, s /27/2003

LAATURAPORTTI Iteraatio 1

Learning cafen yhteenveto. Helsinki

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Mitä on ohjelmistotuotanto? Johdanto. Tämän kurssin näkökulma. Kurssin suhde muuhun opetukseen

Työkalujen yleinen arkkitehtuuri. Ylläpitoon liittyvät työkalut. Ylläpitotehtävien mukaiset työkalut. Työkalujen jaotteluperusteita

IIZP2010 Järjestelmäprojekti 5 op

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

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto

Mitä on ohjelmistotuotanto?

MAA10 HARJOITUSTEHTÄVIÄ

Määrittelyvaihe. Projektinhallinta

II- luento. Etiikan määritelmiä. Eettisen ajattelu ja käytänteet. 1 Etiikka on oikean ja väärän tutkimusta

2.2 Täydellinen yhtälö. Ratkaisukaava

Sisällys. 12. Monimuotoisuus. Johdanto. Alityypitys. Johdanto. Periytymismekanismi määrittää alityypityksen.

Ohjelmistojen testaus

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Tarjoajalla on oltava hankinnan kohteen laatu ja laajuus huomioon ottaen kokemusta seuraavilla alueilla:

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

Työmarkkinatilastoista, niiden käytöstä ja tulkinnoista

AIKA JA OPPIMINEN ASKO KARJALAINEN 2007 OULUN YLIOPISTO OPPIMISYHTEISÖT AJASSA SEMINAARI KUOPION YLIOPISTOSSA

Mihin huomio kiinnittyy s, e kasvaa ja vahvistuu

ARVIOINTIPERIAATTEET

- Kommentoi koodisi. Koodin kommentointiin kuuluu kuvata metodien toiminta ja pääohjelmassa tapahtuvat tärkeimmät toiminnat. Esim.

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Vaatimusmäärittely- ja hallinta

Aloittavilla opiskelijoilla on hyvin erilaiset fysiikan taidot Taitavat turhautuvat herkästi Vähemmän taitavat eivät välttämättä osaa yhdistää

Osaamisen tunnistaminen ja tunnustaminen näyttötutkinnoissa. Markku Kokkonen Koulutus- ja tutkintotoimikunnat Opetushallitus

Dynaaminen hankintajärjestelmä. Kuntatalo Katariina Huikko Lakimies, Suomen Kuntaliitto

Nimi Ovessa hanke Kehittämisverkoston teema tapaaminen Vapautuvan vangin asumisen järjestäminen Tampereella eli Tampereen malli

Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c.

FC Kangasala ry: Strategiatyö

Samanaikaisen innovatiivisuuden ja tehokkuuden edistäminen. Olli-Pekka Kauppila, Mira Halonen & Ville Koiste Aalto-yliopiston kauppakorkeakoulu

Numeeriset menetelmät

Jussi Eerikäinen, 2014

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

(x 0 ) = lim. Derivoimissääntöjä. Oletetaan, että funktiot f ja g ovat derivoituvia ja c R on vakio. 1. Dc = 0 (vakiofunktion derivaatta) 2.

Transkriptio:

8. Laadunvalvonta Mitä laatu on? Ohjelmistojen laatu on parantunut paljon viimeisen 15 vuoden aikana. Tämä näkyy mm. siinä, että asiakkaat ovat keskimäärin tyytyväisempiä tuotteiden toimintaan kuin 90-luvun alussa. Tähän on muutama pääsyy: Yrityksissä on otettu käyttöön uusia entistä laadukkaampia tekniikoita. Laadunvalvonta on saanut huomiota. Standardointi on helpottanut projekteja. Kevät 2005 Ohjelmistotuotanto / Taina 1 Laatu on yllättävän vaikea määriteltävä: Asiakkaan vaatimukset eivät riitä: Implisiittisiä vaatimuksia ei kirjata. Myös muilla kuin asiakkaan sidosryhmillä voi olla laatuvaatimuksia. Esim. ylläpidettävyys. Kaikkia laatuvaatimuksia ei vielä osata kuvata yksiselitteisesti. Onko tuote laadukas, jos asiakkaan odotukset tuotteelle eivät täyty, vaikka kirjatut vaatimukset täyttyvät? Kevät 2005 Ohjelmistotuotanto / Taina 2 Pressman: Eräs laadun määritelmä Conformance to explicitly stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software. Toiminnalliset ja ei-toiminnalliset vaatimukset. Standardoitu ohjelmistotuotantoprosessi. Implisiittiset vaatimukset. (R. Pressman, Software Engineering, a Practitioner s Approach. McGraw-Hill) Laadun hallinta Laadun varmistus (quality assurance): määritellään joukko menettelytapoja ja standardeja, joiden avulla päästään hyvään laatuun. Laadun suunnittelu (quality planning): valitaan tietyssä projektissa käytettävät laatuun tähtäävät menettelytavat. Laadun seuranta (quality control): valvotaan, että laatuun tähtäävät toiminnot toteutuvat. Kevät 2005 Ohjelmistotuotanto / Taina 3 Kevät 2005 Ohjelmistotuotanto / Taina 4 Prosessin ja tuotteen laatu Kehitettävän tuotteen laatu riippuu käytetyn prosessin laadusta. Tämä on hyvä asia, sillä jotkut laatuattribuutit ovat vaikeita mitattavia, mutta prosessin hyvyyttä voidaan kyllä mitata. Prosessin ja tuotteen laadun suhde on huonosti hallittu ohjelmistotekniikan ala. Tiedetään, että prosessin laatu vaikuttaa lopputulokseen, mutta ei tiedetä miten. Kevät 2005 Ohjelmistotuotanto / Taina 5 Laatuvaatimukset Laatuvaatimukset ovat ei-toiminnallisia vaatimuksia, liittyvät usein koko järjestelmään, mutta ne voivat liittyä myös johonkin yksittäiseen toimintoon, on kerättävä kuten muutkin vaatimukset, voivat olla myös implisiittisiä. Laatuvaatimusten painotus riippuu toteutettavan ohjelmiston tyypistä. Kevät 2005 Ohjelmistotuotanto / Taina 6 Taina 1

käyttöturvallisuus tietoturvallisuus luotettavuus tehokkuus käytettävyys opittavuus joustavuus Laatukomponentit virheettömyys monimutkaisuus modulaarisuus testattavuus siirrettävyys ylläpidettävyys uuskäyttöisyys Kunkin projektin kohdalla on päätettävä, mitkä laatukomponenteista ovat lopputuotteen kannalta merkittäviä. Kevät 2005 Ohjelmistotuotanto / Taina 7 Kuka huolehtii laadusta? Laadun hallinta on syytä erottaa projektin hallinnasta. Näiden välillä voi olla eturistiriita: tehdäänkö nopeasti vai laadukasta? Yrityksen yhteinen laaturyhmä valvoo projektien laatua. Laaturyhmä tarjoaa johdonmukaiset menettelytavat, vertailukelpoiset havainnot ja Riippumattomuuden yksittäisten projektien aikataulu- ja kustannuspaineista. Kevät 2005 Ohjelmistotuotanto / Taina 8 Mittaus Ennustaminen ja mittaus Etenemisen ja laadun seuranta: saadaan täsmällistä tietoa, verrataan suunnitelmaa ja toteutumaa. Projektin lopussa tapahtuva mittaus: kerätään historiatietoa tulevia projekteja varten. Projektin aikana tapahtuva mittaus: ohjataan käynnissä olevaa projektia. Software process Control measurements Management decisions Software product Predictor measurements Prosessin mitat: prosessin seuranta Tuotteen mitat: laadun seuranta ja ennustaminen Mitattavien suureiden suhde laatukomponentteihin on selvitettävä ennen projektin alkua. Kevät 2005 Ohjelmistotuotanto / Taina 9 Kevät 2005 Ohjelmistotuotanto / Taina 10 Kiinnostavat ja mitattavat suureet Mittausprosessi Halutaan tietää (laatukomponentit): Maintainability Reliability Portability Usability Voidaan mitata: Number of procedure parameters Cyclomatic complexity Prog ram size in lin es of code Number of error m essag es Len gth of user m anu al Yhteys laatukomponenttien ja mitattavien suureiden välillä ei ole selvä Prosessin avulla etsitään osia, joiden laatu poikkeaa muiden osien laadusta. Prosessin kulku: 1. Valitse mitattavat suureet. 2. Valitse tutkittavat komponentit. 3. Mittaa komponentit. 4. Tunnista poikkeavat havainnot. 5. Analysoi poikkeavat komponentit. Kevät 2005 Ohjelmistotuotanto / Taina 11 Kevät 2005 Ohjelmistotuotanto / Taina 12 Taina 2

Mitä mitataan? Mitä mitat kuvaavat? 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 jotakin joka toimii Staattiset mitat liittyvät tuotteen rakenteellisiin ominaisuuksiin voi olla välillinen yhteys joihinkin laatuominaisuuksiin esim. monimutkainen rakenne => vaikea ymmärtää Dynaamiset mitat liittyvät tuotteen käyttäytymiseen usein suora yhteys laatuominaisuuksiin esim. suoritusaika, havaittujen häiriöiden määrä edustavuus: mitan arvo kuvaa vain sitä tilannetta, jossa ohjelmaa on käytetty Kevät 2005 Ohjelmistotuotanto / Taina 13 Kevät 2005 Ohjelmistotuotanto / Taina 14 Esimerkkejä tuotteen mitoista Staattisia mittoja: Kutsuttujen metodien (tai funktioiden) lkm Perintähierarkian syvyys Luokkien lkm Käyttötapausten lkm Dynaamisia mittoja: Suoritusaika Tietokantahakujen lkm Kutsuttujen metodien lkm Tulostetun raportin rivien lkm Useat mitat ovat kuvaavampia skaalattuna jollakin (tuotteen tai tehtävän) kokoa kuvaavalla suureella. Kevät 2005 Ohjelmistotuotanto / Taina 15 Aikamitat Prosessin mitat esim. tiettyyn vaiheeseen kulunut aika Resurssimitat esim. henkilötyöpäivien määrä, koneaika Tapahtumamitat esim. testauksessa löytyneiden vikojen lkm, muutospyyntöjen lkm Käytetään prosessin seurantaan ja parantamiseen. Kevät 2005 Ohjelmistotuotanto / Taina 16 Mittaustietojen keruu Mittaus onnistuu parhaiten silloin, kun se ei häiritse normaalia työtä: Mittauksen pitää olla mahdollisimman automaattista. Mitattavat suureet pitää päättää etukäteen. Minimaalisuus: ei turhia mitattavia suureita. Mittauksiin osallistuvien työntekijöiden pitää saada tieto mitattavista suureista, tulosten tulkintatavoista ja tulosten käytöstä. Kevät 2005 Ohjelmistotuotanto / Taina 17 Mittatulosten analysointi Mitattavaan suureeseen vaikuttaa yleensä monta samanaikaista tekijää. Tulosten tulkintaan liittyy epävarmuutta. Esimerkiksi jos testauksessa löytyi vain pieni määrä vikoja, johtuuko se hyvästä koodauksesta? pinnallisesta testauksesta? taitavasta suunnittelusta? huolellisesta katselmoinnista? runsaasta uudelleenkäytöstä? Kevät 2005 Ohjelmistotuotanto / Taina 18 Taina 3

8.1 Prosessin parantaminen Prosessin parannussykli Prosessia voi olla tarpeen muuttaa: työ- tai sovellusympäristö muuttuu, työn tavoitteet muuttuvat, tarjolla olevat menetelmät kehittyvät, käytetty prosessi on jäykistynyt Tarkoituksellisen muutoksen tavoitteita: tuotteen laadun parantaminen, kustannusten vähentäminen, työskentelyn tehostaminen Kevät 2005 Ohjelmistotuotanto / Taina 19 Prosessia parannetaan syklissä: 1. Prosessia mitataan: Käynnissä olevan projektin tai projektissa tehtävän tuotteen attribuutteja mitataan. 2. Prosessia analysoidaan: Mittausten perusteella käytetystä prosessista tunnistetaan heikkoudet ja puollonkaulat. 3. Prosessia muutetaan Analyysissa löydetyt heikkoudet ja pullonkaulat korjataan. Jatketaan vaiheesta 1. Kevät 2005 Ohjelmistotuotanto / Taina 20 Prosessin parantamisprosessi Analyse process Process model Process change plan Identify improvements Training plan Introduce process change Train engineers Feedback on improvements Tune process changes Revised process model Jatkuva, iteratiivinen prosessi Lähtökohtana prosessissa havaitut ongelmat Kevät 2005 Ohjelmistotuotanto / Taina 21 Prosessin analysointi Prosessin parantamisen lähtökohtana on malli = kuvaus nykyprosessista. Yrityksen formaali prosessimalli. Mallin analysointi: Todellisen (käytössä olevan) prosessin tunnistaminen. Kytkennät toimintojen, tuotoksien, henkilöiden, rajoitteiden yms. Välillä. Voidaan kuvata kaavioina. Kevät 2005 Ohjelmistotuotanto / Taina 22 Muutosten todentaminen Muutosten todentaminen: mittaukset Mitataan tilannetta kuvaavia suureita ennen muutosta. Mitataan samat suureet muutoksen jälkeen Mitattavien suureiden valinta: Lähtökohtana on usein havaittu ongelma esim. tehoton testaus: mitataan löytyneiden vikojen määrää, testatun koodin määrää ja käytettyä aikaa. Prosessin kypsyys (maturity) Prosessien vertailussa käytettävä käsite Prosessien vertailuun tarkoitetut mallit luokittelevat prosesseja kypsyydeltään erilaisille tasoille. Kuvaa prosessin kyvykkyyttä: tasaisesti laadukas tuotantolinja, hyvin hallittu prosessi, suunnitelmien ja aikataulun pitävyys, sopeutuminen tarvittaviin muutoksiin. Kevät 2005 Ohjelmistotuotanto / Taina 23 Kevät 2005 Ohjelmistotuotanto / Taina 24 Taina 4

SEI CMM SEI CMM (Software Engineering Institute Capability Maturity Model) on tunnetuin kypsyystasomalli. Se kehitettiin alkuaan Yhdysvaltain puolustusministeriön tarpeisiin. SEI CMM on tarkoitettu esimerkiksi ohjelmistoyrityksen alihankkijoiden tason arviointiin. Eteneminen alhaalta ylös Level 1 Initial CMM:n kypsyystasot Level 2 Repeatable 1. Perusprosessi 5. Optimoiva prosessi 4. Hallittu prosessi Level 3 Defined Level 4 M anag ed 2. Toistettava prosessi Level 5 Optimizing 3. Määritelty prosessi Kevät 2005 Ohjelmistotuotanto / Taina 25 Kevät 2005 Ohjelmistotuotanto / Taina 26 CMM:n tasot 1. Perusprosessi 3. Määritelty prosessi ad hoc -toiminta oman organisaation 2. Toistettava prosessi tarpeisiin määritelty standardoitu prosessi projektinhallinta 4. Hallittu prosessi laadunvarmistus tuotteenhallinta prosessia ja tuotetta mitataan voidaan toteuttaa vastaavia projekteja 5. Optimoiva prosessi kuin ennenkin jatkuva prosessin ei omaa määriteltyä prosessimallia parantaminen CMM:n painopistealueet Kuhunkin tasoon liittyy joukko keskeisiä parannuskohtia (key process areas). Prosessin parantaminen ei voi tapahtua missä järjestyksessä hyvänsä. Tietyt asiat täytyy saada kuntoon ennen kuin voi/kannattaa edetä kovin pitkälle muilla osa-alueilla. CMM sisältää konreettisia parannustoimenpiteitä (key practices). Kevät 2005 Ohjelmistotuotanto / Taina 27 Kevät 2005 Ohjelmistotuotanto / Taina 28 Kypsyystason arviointi Tavoitteena on yrityksen (organisaation) kypsyyden arviointi. Yksittäiset projektit voivat olla tasoltaan paljon korkeammalla kuin yrityksen yleinen taso. Arvioinnin tekee ulkopuolinen ryhmä käyttämällä kyselylomakkeita ja kyselyjä täydentäviä haastatteluja. Tuloksena saadaan arviointi ja loppuraportti. Kevät 2005 Ohjelmistotuotanto / Taina 29 Kypsyystasomallin käyttö Kypsyystason arvioinnin tavoitteena on saada puolueeton kuva yrityksen kokonaistasosta ja selvittää tärkeimmät korjattavat kohdat. Yritystä ei voi kuvata yhdellä numerolla. Osa-alueisiin liittyvä tieto on prosessin parantamisen kannalta olennaista. Malli sopii parhaiten suuriin organisaatioihin ja pitkiin projekteihin. Kevät 2005 Ohjelmistotuotanto / Taina 30 Taina 5