Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
1
LAADUN VAIKUTUSKETJUKäytön laadun ja tuotelaadun väliset riippuvuudet eli
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
49
Laadun vaikutusketju
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
50
Prosessin laatu
Sisäisetlaatu-tekijät
Ulkoisetlaatu-tekijät
Käytönaikainen
laatu
Prosessinmitat
Sisäiset mitat Ulkoiset mitat Käytön aikaisetmitat
Prosessi Ohjelmiston laatu Ohjelmistotuotteenvaikutus
vaikuttaa vaikuttaa vaikuttaa
riippuu riippuu riiippuu Määritellytkäyttötilanteet
[Nev13] Risto Nevalaisen esitys ”Järjestelmän ja ohjelmiston mittaaminen”.http://www.sfsedu.fi/materiaalit (kts. IT-Standardit)
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
2
Laadun vaikutusketju
Lähtökohtana ovat käyttäjän tarpeet ja käytöntilanteetEsimerkki: joukkoliikenteen aikataulutiedonhakeminen on-line palvelusta mobiililaitteellaKäyttäjän tarpeet ja odotukset (käytönaikainen laatu):
Tehokkuus (eli vaikuttavuus), tyytyväisyys -Tietojen pitää olla täsmällisiä ja ajan tasallaTehollisuus, tyytyväisyys - Halutun linjan ja vuorontietojen löytäminen pitää olla intuitiivista ja nopeaa
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
51
Laadun vaikutusketju
Käytön laatuun vaikuttavat palvelun ulkoisetlaatupiirteet (järjestelmän black-box tarkastelu)
Käytettävyys - esimerkiksiKuinka monen askelen (klikkauksen, muun syötteen) takana halututtiedot ovat?Kuinka selvän ja nopean palautteen käli antaa käyttäjän toiminnoista?
Suorituskyky (tehokkuus) - esimerkiksiKuinka kauan koko käyttötapaus kestää?Kuinka kauan yksittäisten tietonäyttöjen tai sivujen latautuminenkestää?Kuinka nopeasti sovellus käynnistyy?Kuinka nopea tietoliikenneyhteys tarvitaan jne.
(Data quality – ei käsitellä tällä kurssilla)
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
52
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
3
Laadun vaikutusketju
Sisäinen laatu mahdollistaa (tai estää!) halutunulkoisen laadun saavuttamisen (järjestelmän white-box eli lasilaatikkotarkastelu)
Suorituskyky (esim. tiedonhakujen kesto) määräytyy pitkälleohjelmiston (ja laitteiston) arkkitehtuurista jateknologiavalinnoista sekä tekniikoiden oikeasta käytöstäKäytettävyyteen vaikuttavat suoraan käyttöliittymänsuunnittelu (esim. useimmin tarvittujen toimintojennostaminen aloitusnäyttöön sekä niiden suorittamiseentarvittavien vuorovaikutusten määrän minimointi) jaepäsuoremmin palvelun eri toimintojen käytön monitorointi-ja tilastointikyvykkyys (instrumentointi, logit)
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
53
Laadun vaikutusketju
Palvelun toteutuksessa käytettävät resurssitja menetelmät vaikuttavat kaikkiin laadunalueisiin
Käytettävyyssuunnittelijoiden ja ohjelmisto-arkkitehtien sekä –kehittäjien tiedot, taidot jakokemus - ja ennen muuta asenne (myös johdon)Aikataulu ja budjetti suhteessa toim. määräänKäyttäjien osallistaminen kehitykseen ja käyttäjienpalautteen systeemaattinen kerääminen jahyödyntäminenLaatutavoitteiden esilletuonti ja jatkuva arviointi
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
54
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
4
Laadun vaikutusketju
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
55
Kehittämis-prosessin laatu
Ohjelmistonlaatu
Järjestelmänlaatu
Resurssienlaatu
Järjestelmänkäytön aikainen
laatu
Määriteltykäyttötilanne
Muidenosajärjestelmien
laatu
A BA vaikuttaa B:hen, tai
B seuraa A:sta Sidosryhmät Tehtävä Ympäristö
[Nev13] Risto Nevalaisen esitys ”Järjestelmän ja ohjelmiston mittaaminen”.http://www.sfsedu.fi/materiaalit (kts. IT-Standardit)
Käyttäjäryhmät ja laatu
ISO/IEC 25010 tunnistaa 3 käyttäjäryhmää1. Pääasiallinen käyttäjä (primary user)
Henkilö, joka on järjestelmän kanssa vuorovaikutuksessajärjestelmän pääkäyttötarkoituksen mukaisesti
2. Toissijainen, pääkäyttöä tukeva käyttäjä(secondary user)
Sisällön tuottaja, järjestelmävalvoja, turvallisuusvalvojaYlläpitäjä, asentaja, suunnittelija (analyst), testaaja
3. Epäsuora käyttäjä (indirect usr)Vastaanottaa järjestelmän tuottamia tulostietoja, mutta eiitse ole vuorovaikutuksessa sen kanssa
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
56
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
5
Käyttäjäryhmät ja laatu
Jokaisella käyttäjäryhmällä on omattarpeensa, jotka tulee ottaa huomioonjärjestelmän määrittelyssä, suunnittelussa jatoteutuksessaTuotelaadun piirteet ovat eri tavalla tärkeitäeri käyttäjäryhmilleOhjelmiston ja sitä suorittavan järjestelmänominaisuudet määräävät tuotelaadun erikäyttöyhteyksissä (ja eri käyttäjäryhmille)
Taulukko seuraavalla diallaKevät 2015 Ohjelmistoprosessit ja ohjelmistojen
laatu57
Käyttäjäryhmät ja laatu
Tuotelaatu-piirre
Vaikuttaapääkäyttäjänkokemaankäytön laatuun
Vaikuttaaylläpitotehtä-vissä koettuunlaatuun
Muidensidosryhmiennäkemä laatu
Toiminnallinensopivuus
X
Tehokkuus X XYhteensopivuus XKäytettävyys XLuotettavuus X XTurvallisuus X XYlläpidettävyys XSiirrettävyys X
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
58
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
6
Sisäisen ja ulkoisen laadunpiirteet
Toiminnal-linensopivuus
Tehokkuus Yhteen-sopivuus
Käytettä-vyys
Luotetta-vuus
Turvalli-suus
Ylläpidet-tävyys
Siirrettä-vyys
Toiminnal-linenkattavuus
Toiminnal-linen oikeel-lisuus
Toiminnal-linen sovel-tuvuus
Vasteaika
Resurssienkäyttösuhde
Kapasiteetti
Rinnakkais-elo
Yhteensopi-vuus
Soveltuvuu-den selkeys
Opittavuus
Helppokäyt-töisyys
Käyttövirhei-denestäminen
Käyttöliitty-män miellyt-tävyys
Matalakynnys
Ohjelmisto-tuotteen kyp-syys
Saatavuus
Vikasietoi-suus
Toipumis-valmius
Tietosuoja
Koskemat-tomuus
Kiistämättö-myys
Aitous
Todenperäi-syys
Rakenteel-linen selkeys
Uudelleen-käytettävyys
Analysoita-vuus
Muunnelta-vuus
Testattavuus
Sovitetta-vuus
Asennetta-vuus
Korvattavuus
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
59Ulkoinen, pääasiassa ulkoinen, sekä sisäinen että ulkoinen, pääasiassa sisäinen
OHJELMISTOJEN VIOISTAMistä ne tulevat?
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
60
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
7
”Blue screen of death”
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
61
Vioista
Vikojen vähäinen määrä on perinteisesti ollut yksi tärkeimpiälaadun indikaattoreitaEsimerkiksi ohjelmistojen laadun ja kehitysprojektientuottavuuden parissa pitkän päivätyön tehnyt Capers Jones onmääritellyt [Jon08] laadun seuraavasti
“The absence of defects that would make software either stopcompletely or produce unacceptable results. Defects can be tracedto requirements, to design, to code, to documentation, or to badfixes of previous defects.”
Tällä tavoin määritelty laatu on kvantifioitavissa melkosuoraviivaisesti (sekä mittaamista että ennustamista varten),mutta on muuten kovin suppea
Jones on myöhemmin laajentanutkin laadun määritelmäänsäkattamaan mm. käytettävyyden
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
62[Jon08] Capers Jones, Applied Software Measurement. McGraw-Hill, 2008.
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
8
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
63
Virhe – vika - häiriö
Ohjelmistojen laadun kannalta on oleellista erotellatoisistaan (kehitys-) virhe eli erehdys (error, mistake),(ohjelmisto-) vika (fault) ja (toiminta-) häiriö(failure/defect).
Koodin kirjoittajat tekevät virheitä. Virhe voikoskea rakennetta (esim. viittaus vääräänmuuttujaan) tai koodin logiikkaa (esim. vaatimuson tulkittu väärin, käytetään jotain APIa väärällätavalla) jne.Kun erehdyksessä kirjoitettu koodi saa ohjelmistontoimimaan väärin, kyse on (ohjelmisto-) viasta.Kaikki viat eivät tee näin, sillä vikaa seuraavatkoodirivit saattavat ”neutraloida” vian vaikutuksen,tai vika voi peittyä toisten vikojen vaikutuksesta.
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
64
Virhe – vika - häiriö
Kun viallista koodia suoritetaan, syntyy häiriö.Kaikista ohjelmistovioista ei seuraatoimintahäiriöitä. Vika saattaa olla hautautuneenakoodiin sellaiseen paikkaan, että sitä ei suoritetakoskaan (esimerkiksi harvinaiseenpoikkeuskäsittelijään tai käytännössämahdottomaan parametrien kombinaatioon).
Puhekielen bugi (bug) tarkoittaa yleensävirhettä tai vikaaDefekti (defect) voi tarkoittaa myös vikaa
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
9
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
65
Virheet, viat ja häiriöt
Vain osa kaikista virheistä näkyy vikoina ja osavioista häiriöinä loppukäyttäjälle asti (ohjemistontuotantoversiossa)
Suuri osa häiriöistä tulee ilmi jo kehitysaikana testauksen jamuun laadunvarmistuksen ansioista
Kuitenkin mikä tahansa koodiin jäänyt passiivinenvika saattaa koodia muutettaessa aktivoitua ja mikätahansa vika saattaa sopivassa käytössä aiheuttaahäiriön.Kehitystiimille laadukas tuote tarkoittaa vähäistävikojen määrää. Loppukäyttäjän kannalta setarkoittaa vähäistä häiriöiden määrää.
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
66
Virheet, viat ja häiriöt
Yleensä ohjelmistoista raportoitujen häiriöiden määrä on välillä0,1 – 5,0 häiriötä tuhatta koodiriviä kohdenCapers Jones on kerännyt vuosikymmeniä asiakkaidensaprojekteista (n. 13000 kpl) tietoja häiriöpotentiaaleista (defectpotentials) ja häiriöiden poistamistehokkuudesta (defect removalefficiency)Jonesin data[Jon13] osoittaa keskimääräiseksi häiriöpotentiaaliksi5,0 häiriötä per toimintopiste (~ 50-60 riviä Javan tasoistaohjelmointikieltä) ja keskim. häiriöiden poistamistehokkuudeksi85%
Eli noin 15 häiriötä per 1 KLOCParhailla projekteilla luvut ovat 2,5 ja 96% eli 2,6 per 1 KLOCKts. diat 23 – 25 [Jon13]
[Jon13] Capers Jones, Software Quality: A Survey of the State of the Art, 2013.http://namcookanalytics.com/software-quality-survey-state-art/ (haettu 16.3.2015)
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
10
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
67
Ohjelmistojen virhetyypit 1
Koska ohjelmistohankkeissa tehdyt virheetvaikuttavat ohjelmiston laatuun, on tärkeää tietää,minkä tyyppisiä virheitä tehdään.Galin[Gal04] listaa yhdeksän virhetyyppiä ja antaakustakin esimerkkejä:
1. Väärin määritellyt vaatimuksetVaatimusten määrittelytavassa on virheitäPuuttuvia vaatimuksiaEpätäydellisiä vaatimuksiaYlimääräisiä vaatimuksia
2. Asiakkaan ja kehittäjän väliset kommunikaatiokatkoksetAsiakkaan vaatimukset ymmärretään väärinAsiakkaan muutostoiveet ymmärretään väärinAsiakkaan vastaukset kysymyksiin ymmärretään väärin
[Gal04] Daniel Galin: Software Quality Assurance - From Theory to Implementation. Pearson Education, 2004
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
68
Ohjelmistojen virhetyypit 2
3. Tahalliset poikkeamat vaatimuksistaOhjelmistossa uudelleenkäytetään koodia ilman kunnollistaanalyysia vaadittavista muutoksistaOsa vaatimuksista jää toteuttamatta budjetin tai aikataulunylittymisen johdostaKehitystiimi muuttaa vaatimuksia kysymättä asiastaasiakkaalta
4. Ohjelmiston logiikan suunnitteluvirheetVäärien tai tilanteeseen sopimattomien algoritmien käyttöTilasiirtymävirheetRaja-arvovirheet
5. KoodausvirheetPainovirheetKielioppivirheetVaatimusten tai suunnittelun tulkintavirheet
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
11
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
69
Ohjelmistojen virhetyypit 3
6. Dokumentointi- ja koodausohjeiden noudattamattajättämiset
Vaikealukuiset dokumentitVaikeaselkoinen ohjelmakoodi
7. Testausprosessissa oikomisetVajaa testaussuunnitelmaLöydettyjen vikojen ja virheiden kehno dokumentointiTiukan aikataulun johdosta tapahtuva puutteellinen vikojen javirheiden korjaus
8. ToimintatapavirheetVäärin tulkittu ohjelmiston tarkoitettu käyttötapa (käyttötapaus)
9. DokumentointivirheetDokumentoimattomat toiminnotVirheelliset toimintaohjeetYlimääräiset ja puuttuvat toiminnot
Häiriöiden lähteet Jonesin mukaan
Capers Jones on kerännyt vuosikymmeniäasiakkaidensa erityyppisistä projekteistatietoja häiriötiheyksistä ja niiden synty-yhteyksistä (eli virhetyypeistä)
Katso dia 58 esityksessä [Jon13]Jones & Bonsignour[JoB11]
“For large systems, requirements defects,architectural defects, and design defects are themain sources of quality problems” (Ch. 2)
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
70[JoB11] C. Jones, O. Bonsignour, The Economics of Software Quality. Addison-Wesley Professional, 2011
[Jon13] Capers Jones, Software Quality: A Survey of the State of the Art, 2013.http://namcookanalytics.com/software-quality-survey-state-art/ (haettu 16.3.2015)
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
12
Vikojen estäminen ja poistaminen
Monet ohjelmistokehityksen menetelmät, työtavat jatyökalut tähtäävät vikojen syntymisen estämiseen taivikojen tehokkaaseen poistamiseenTehokkuus, jolla kehityksen aikana poistetaan vikojaohjelmistosta, on perinteisesti ollut keskeinen mittarikehitysprosessin laadulle
Tehokkuuden mittaaminen vaatii kirjanpitoa havaituistavioista, niiden vakavuudesta ja lähteestä/syntyvaiheestaNopeaa reagointia korostavissa web-projekteissapainotetaan pikemmin häiriöiden nopeaa havaitsemistatuotannossa ja korjausten pikaista julkaisua
Tästä lisää myöhemmin kurssillaKevät 2015 Ohjelmistoprosessit ja ohjelmistojen
laatu71
OHJELMISTOJEN LAADUNTALOUDELLINEN MERKITYS
Show me the money
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
72
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
13
Laatu, kustannukset ja tuotot
Ohjelmistoja tuottavia ja käyttäviä organisaatioitakiinnostaa taloudellisesta näkökulmasta laadunvaikutus seuraaviin asioihin[JoB11]
Kehityksen, ylläpidon, parannuksen ja tuen kustannukset.Kehityksen, ylläpidon, parannuksen ja tuen aikataulutOhjelmiston suorat myyntitulotLiitännäispalveluista ja –tuotteista saatavat tulotO:n käytön oppimiskäyräO:n käytöstä seuraavat operationaaliset säästötUudet liiketoimintamahdollisuudet, jotka o:n käyttö tuo mukanaan
Liiketoiminnan ja yrityksen johdon näkökulmasta ontärkeää, että käytetty laadun määritelmä ja laatumittaritmahdollistavat laadun vaikutusten kvantifioinnin
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
73
Laadun taloudellinen merkitys
Tiivistettynä, laatu vaikuttaa neljääntaloudellisesti merkittävään alueeseenohjelmistojen tuotannossa ja käytössä1. Ohjelmistojen kehittämisen ja ylläpidon
kustannukset ja työmäärä2. Kaupallisten ohjelmistojen kannattavuus3. Inhimillisen työn tuottavuus4. Ohjelmistojen rooli uusissa ja innovatiivisissa
tuotteissa ja palveluissa
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
74
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
14
Huonon laadun vaikutuskehitykseen ja ylläpitoon
Huono laatuVenyttää testausta ja aiheuttaa epävarmuuttatoimitusaikatauluunKorjaukset ja uudelleen tekeminen aiheuttavatsuurimman kustannuspaineenAiheuttaa ylitöitä ja budjetin pettämisenVaatii julkaisun jälkeen kallista asiakastukeaLisää julkaisun jälkeisen ylläpidon kustannuksiaVoi viedä oikeudenkäyntiin sopimusrikkomuksesta
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
75
Hyvän laadun vaikutuskehitykseen ja ylläpitoon
Hyvä laatuLyhentää testaukseen käytettyä aikaa ja parantaatoimitusaikataulun ennustettavuuttaVähentää korjausten ja uudelleen tekemisenmäärää jopa 50%Vähentää yllättäviä ylitöitä ja pienentääkuluylityksiäVähentää julkaisun jälkeistä asiakastuen tarvettaVähentää julkaisun jälkeisen ylläpidonkustannuksiaPienentää oikeudenkäyntien riskiä
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
76
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
15
Huonon laadun vaikutusinhimillisen työn tuottavuuteenHuono laatu
Lisää toimintahäiriöistä johtuvaa odottelua jatoimettomuuttaVoi hidastaa toimenpiteiden suoritusta japienentää työpanoksen tuottavuuttaVoi johtaa onnettomuuksiin tai transaktiovirheisiinHäiriöiden seurausten korjaaminen aiheuttaaylimääräistä työtäLisää myös väärien häiriöraporttien määrääJohtaa välillisiin vahinkoihin ja kalliisiinliiketoiminnan ongelmiin
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
77
Hyvän laadun vaikutusinhimillisen työn tuottavuuteenHyvä laatu
Vähentää toimintahäiriöitä ja niistä johtuvaatoimettomuuttaAuttaa optimoimaan työntekijöiden työsuorituksiaVähentää onnettomuuksien tai transaktiovirheidentodennäköisyyksiäPienentää häiriöiden seurausten korjaamistarvettaVähentää väärien ja aiheettomien häiriöraporttienmäärääVähentää välillisiä vahinkoja ja liiketoiminnanongelmia
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
78
Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015
16
”Quality is free”
Philip Crosby“It is always cheaper to do the job right the firsttime”“Quality is free, but no one is ever going to know itif there isn't some sort of agreed-on system ofmeasurement”http://www.philipcrosby.com/25years/read.htmlhttp://en.wikipedia.org/wiki/Philip_B._Crosby
Kevät 2015 Ohjelmistoprosessit ja ohjelmistojenlaatu
79