Kvalitet og programvare Når bare det beste er godt nok. Produktet prosessen eller begge deler?
To nøtter Hva forbinder du med et IT-system som har (høy) kvalitet? Formuler 3 kriterier for (høy) kvalitet til et IT-system og ranger mellom dem
ISO9000:2000 - definisjon av kvalitet Kvalitet i hvilken grad en samling av iboende egenskaper oppfyller krav Krav behov eller forventninger som er angitt, vanligvis underforstått eller obligatoriske Krav kan fremsettes av forskjellige personer
ISO definisjonen medfører: Kvalitet er å oppfylle krav Den som formulerer kravet vurderer om produktet oppfyller kravet Forskjellige personer med ulike krav vurderer derfor kvalitet ulikt Krav er det samme som behov og forventninger Derfor er Kvalitet er en subjektiv vurdering Kvalitet tidsavhengig
Andre definisjoner av kvalitet Egnethet for bruk ( fitness for purpose / fitness for use ) i forhold til brukerens eller kundens behov ISO 8402: Helhet av egenskaper og kjennetegn et produkt eller en tjeneste har, som vedrører dets evne til å tilfredsstille fastsatte krav eller behov som er antydet Helhet av egenskaper og kjennetegn et produkt eller en tjeneste har, som vedrører dens evne til å tilfredsstille fastsatte krav eller behov som er antydet. Medfører god systemkvalitet at virksomheten har et system for kvalitetsstyring? Må en virksomhet ha et system for kvalitetsstyring for å utvikle IT-systemer med god kvalitet?
Noen kvalitetsbegreper Kvalitetsstyring Driftsmessige teknikker og aktiviteter som benyttes for å oppfylle krav til kvalitet Kvalitetssikring Alle de planlagte og systematiske tiltak som er nødvendige for å få tilstrekkelig tiltro til at et produkt eller en tjeneste tilfredsstiller angitte krav til kvalitet Kvalitetsledelse Den del av ledelsesoppgaven som gjelder å fastsette og iverksette kvalitetspolitikken Kvalitetsvurdering (Kvalitetsrevisjon) Systematisk evaluering for å avgjøre i hvilken grad kvalitetsaktivitetene er i overensstemmelse med planlagte tiltak og om produktet (undervisningsprosessen/utdanningen) er effektivt gjennomført og hensiktsmessig med sikte på å oppnå målsetningene.
Kvalitet av et IT-system Systemets evne til å oppfylle krav, ønsker og forventninger Hvor godt systemet stemmer med med de opprinnelige skriftlige spesifikasjoner Forholdet mellom forventet og opplevd ytelse og funksjon av systemet Opplevd kvalitet Subjektiv vurdering av den enkelte bruker som kommer i kontakt med systemet
Hva medfører økt kvalitet? Produktegenskaper Bedre kvalitet gjør det mulig å: Øke kundens tilfredshet Øke salgbarheten av produktet Øke konkurranseevnen Øke markedsandelen Øke fortjenesten Øke prisen på produktet Fravær av feil og mangler Bedre kvalitet gjør det mulig å: Redusere kundens misnøye Redusere feilrate, vrak, omarbeiding Redusere kostnader til erstatninger etc. Redusere inspeksjoner og feilkontroller Korte ned produksjonstiden Øke produksjonskapasiteten Øke leveringsdyktigheten Effekt: Hovedeffekten er på fortjeneste. Bedre kvalitet koster MER for produsenten Effekt: Hovedeffekten er på kostnader Bedre kvalitet koster MINDRE for produsenten
Forskjellige typer programvarekvalitet Produktkvalitet programvaren skal ha de riktige egenskapene Prosesskvalitet gjøre de riktige tingene for at programvaren får de riktige egenskapene Intern kvalitet programvarens indre struktur, kode, definisjoner Ekstern kvalitet programvarens egenskaper sluttbrukeren kommer i kontakt med
Kvalitetsattributt - kvalitetsegenskap Generelle kvalitetsattributter Korrekthet Utfører det som er spesifisert i kravene Pålitelighet Du kan stole på programmet Robusthet Tåler at det skjer uforutssette ting
Flere generelle kvalitetsattributter Ytelse Hvor fort jobber systemet Effektivitet At systemet utfører sine oppgaver på den beste måten Brukervennlighet Lett å bruke Vedlikeholdbarhet Å holde systemet i drift i mange år
Usability - Brukskvalitet Et system har høy brukskvalitet hvis det er: Lett å lære, så brukere kan og raskt fra å ikke kjenne systemet til å gjøre noe arbeid. Effektivt, lar ekspertbrukeren oppnå en høy grad av produktivitet. Lett å huske, så brukere med lav brukshyppighet kan returnere etter en periode med inaktivitet uten å måtte lære alt på nytt. Relativt feilfritt og feiltolerant, slik at brukere ikke gjør mange feil, og at disse feilene ikke er katastrofale (og at man lett kan ta seg inn igjen) Behagelig å bruke, tilfredsstiller brukerne subjektivt, slik at de liker å bruke systemet.
Programkvalitet summen av kvalitetskriterier Funksjonalitet Oppfyller kravene, funksjoner, beskrivelser Pålitelighet / stabilitet - Realibility Brukskvalitet - Usability Yteevne - Efficiency Vedlikeholdbarhet Portabilitet
Når har et program riktig kvalitet? Når det har høyest mulig kvalitet? Når det har få feil? Når det oppfyller våre ønsker best mulig? Når det er utviklet etter bestemte kvalitetskrav? Når det er utviklet i land med menneskerettigheter? Når virksomheten har etiske retningslinjer? Når det er utviklet etter anerkjente metoder? Når det er utviklet med anerkjente verktøy? Når det ikke gjør skade på brukere eller andre?
Konsekvenser av ikke-kvalitet Driftsstans Feil i utregninger Feil i databasen Dårlig analyseegenskaper Dårlig adgangskontroll Dårlige brukeregenskaper Passer ikke til arbeidsoppgavene
Tre typer kvalitet Systemkvalitet - kvalitetene på systemene som behandler dataene Effektivitet, funksjonalitet,,... Datakvalitet - kvaliteten på dataene Korrekthet. Prosesskvalitet - kvaliteten på prosessene som leder fram til et gitt resultat Holde tidsfrister, økonomiske rammer, følge fastsatte lover, regler og forskrifter, fastlagte prosedyrer og krav,..
Kvalitet og kvalitetssikring Kvalitet tre definisjoner Systemets evne til å oppfylle krav, forventninger og ønsker Hvor godt systemet stemmer med med skriftlige spesifikasjoner Forholdet mellom forventet og opplevd ytelse av system Opplevd kvalitet subjektiv vurdering av den enkelte bruker som er berørt Kvalitetssikring Arbeidet med planlegging, utforming, vedlikehold og kontroll som har til hensikt å øke eller sikre kvaliteten av et produkt eller en prosess.
Et mål for kvalitetsarbeidet Lage en metode for kvalitetsvurdering og - forbedring av systemutviklingsarbeidet. Gi en tilfredsstillende kvalitetsgaranti for utviklingsarbeidet overfor oppdragsgiver. Bruke metoden regelmessig til: systematisk gjennomgang og vurdering av egne aktiviteter og resultater.
Utfordringer med kvalitet og kvalitetssikring Ulike parter har ulike oppfatninger om krav til kvalitet og prioritet mellom disse funksjonalitet eller brukervennlighet Mennesker opplever systemer forskjellig Omgivelsene påvirker oppfatninger om kvalitet Ulike kvalitetskrav er ofte helt uforenlige brukervennlighet eller sikkerhet Ikke alle brukerkrav lar seg enkelt måle
Aktiviteter i en systemutviklingsprosess Forstå kundekrav. Hva ønsker kunden seg? Hvilke problemer ønsker han å løse Omforme kundenes krav til noe vi kan realisere i programvare Realisere et system som tilfredsstiller kundens krav. hvordan dele opp systemet i del-systemer på en effektiv måte hvordan dele opp i moduler for å realisere delsystemets oppgaver.
Kvalitet i systemutviklingsarbeidet er kvaliteten på alle aktiviteter/handlinger som inngår i arbeidet med å produsere resultatet Overholde tidsfrister... Ressursforbruk innenfor økonomiske rammer, Følge lover, regler og forskrifter, fastlagte prosedyrer og krav (f eks. ISO 9000) Sikre godt arbeidsmiljø Det kan oppstå interessekonflikter mellom ulike parter
Systemutvikling eksempler på rammebetingelser Ytre rammebetingelser lover, regler, retningslinjer, regnskapsføring, faglige forutsetninger osv. krav fra oppdragsgiver vedtatte kvalitetsnormer Organisatoriske rammer utviklingsplan/beskrivelse ansvarsforhold, rutiner økonomi, ressurser, utstyrøkonomi, ressurser, utstyr tidsrammer Målgruppen behov størrelse forutsetninger, kunnskap, erfaringer Valg av teknologi /programvare Windows, UNIX, utviklingsverktøy Personell leder, Systemerere, programmerere Samarbeidspartnere underleverandører, outsourcing
Systemutvikling Eksempel på kvalitetsnormer Alle som har ansvar for eller deltar i utviklingsarbeid skal kjenne til aktuelle lover/regler og ytre rammer. Før oppdraget starter skal det foreligge en beskrivelse av systemet som spesifiserer bl.a. mål, innhold og kvalitetskrav. Utviklingen skal skje etter en prosjektplan som beskriver deltakernes ansvarsforhold, rutiner, økonomi og andre ressurser og en tidsplan for arbeidet. Utviklingen skal skje etter vurdering av målgruppens behov, forutsetninger, kunnskap og erfaringer Systemutviklingen bør ikke stille krav om tilgang til spesiell teknologi eller programvare. Alle som deltar i systemutviklingen skal ha nødvendig kompetanse for oppgaven de skal utføre. Ved samarbeid med underleverandører skal ansvarsfordeling defineres i skriftlig form.
En modell for et systems livsløp Forstudie Analyse Kravspesifikasjon Design Implementering Testing Ferdigstilling - Overtakelse Drift og vedlikehold Avslutning, konvertering og fjerning
Innhold i en kravspesifikasjon Innledning Oppdragsgiver, prosjekt- og brukergrupper Overordnet systembeskrivelse Hensikten, grafer med dataflyt, konsekvenser Rammebetingelser Tilgjengelighet, datasikkerhet, kapasitet Funksjonelle egenskaper Spesifisere skjermbilder, rapporter, inndata. Logisk datamodell Sammenhengen mellom datasettene,
Evaluering av systemkvaliteten Vurdert ut fra kravspesifikasjonen Hva har brukerne bedt om? Hva er det brukerne ønsker eller forventer Vurdert ut fra hvordan systemet fungerer i bruk Hva er det brukerne faktisk trenger Vurdert ut fra systemets plass/rolle i organisasjonen
Objektive og subjektive kvalitetskrav Objektive krav Funksjonskrav Ytelseskrav Tekniske krav Subjektive Bruksmessige krav Estetiske krav Symbolske krav
Evaluering av kvalitet Basert på metrikker - objektive Mål for effektivitet, stabilitet, vedlikehold,.. Konsistens, modularitet,.. Formelle metoder for å vise programmenes korrekthet Planlagte tester Målene er uavhengig av den som som evaluerer
Evaluering av kvalitet Basert på brukeres opplevde egenskaper - subjektive Utprøving gjennom eksperimentering og prototyping Evaluering med ukjente brukere Avhenger av brukernes egen erfaring og kompetanse