Kod och kvalitet. Mjukvarukvalitet. Mjukvarukvalitet. Effektkartan. -ilities. TNM021 Programvaruutveckling

Relevanta dokument
RUT - utvecklingshandbok 10.7 Användning av CMM v 1.2

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

FÖRELÄSNING 8 DSV2PVT

(källa: Rick Falkvinge) Historien om Bonke

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Obesvarade frågor från F4

Användarcentrerad systemdesign

Föreläsning 2: Introduktion till utvärdering varför ska vi utvärdera?

Linköpings universitet 1

Copyright Prolore All Rights Reserved.

Erfarenheter av användarfall vid utvärdering i strategisk upphandling

Resiliens att kunna utnyttja möjligheter och hantera kriser och förändringar. Coachens dag

Introduktion. Grundkursen

Testning på 3 föreläsningar. PV7180 Verifiering och Validering. Litteratur. Vad är testning? Varför testa och olika syn? Målet med testning

Föreläsning 2: Introduktion till utvärdering varför ska vi utvärdera?

Intro utvärdering

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Tråkmånsarnas comeback

Design och krav. Design Definition. enkelt Det ska vara möjligt att. Henrik Artman

Föreläsning 10: Introduktion till utvärdering. Rogers et al. Kapitel 12

OBS! Vi har nya rutiner.

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

Användarcentrerad systemdesign

WEBBSERVERPROGRAMMERING

OBS! Vi har nya rutiner.

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Att fatta rätt beslut vid komplexa tekniska upphandlingar

KOM IHÅG ATT NOTERA DITT TENTAMENSNUMMER NEDAN OCH TA MED DIG TALONGEN INNAN DU LÄMNAR IN TENTAN!!

Användarcentrerad systemdesign

IT och funk0onshinder

Ledningssystem för IT-tjänster

This work by. Fredrik Wendt. is licensed under a. Creative Commons

Workplan Food. Spring term 2016 Year 7. Name:

Användarcentrerad systemdesign

Datavetenskap. Beteendevetenskap MDI. Design

Testautomatisering. Intro

Uttagning för D21E och H21E

Pragmatisk programmering. Cyberrymden Marcus Rejås Pragmatisk programmering,19 september (26)

Att fastställa krav. Annakarin Nyberg

S/4HANA Cloud för tillverkande industri möjligheter och utmaningar

Projekt i verkligheten. Ola Ågren

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Styr och utveckla ditt IT-stöd utifrån internationella standarder

Designdiscipliner. Tjänstedesigner, vad gör man

WEBBTEKNIK. Ämnets syfte

WEBBTEKNIK. Ämnets syfte

Quicksort. Koffman & Wolfgang kapitel 8, avsnitt 9

Platina och kvalité. Rasmus Staberg, Teknisk direktör,

FÖRBÄTTRING AV MJUKVARUPROCESSEN

Webbserverprogrammering

Labb 1: Vad, hur, och varför?

Vägytans tillstånd, historik och framtid. Johan Lang

ATT MÄTA FRAMGÅNG I MATEMATIKPROJEKT MARTIN GRANDER MALMÖ HÖGSKOLA

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4

Inför projektuppgiften. Markus Buschle,

SUZUKI GRAND VITARA 3P CITY 2011»

Hur hanterar vi risk? Vad är TKO? Skillnad på agil och trad? Agil/Lean: Defer Commitment, Build knowledge, Fail fast

Användarcentrerad systemdesign

Att lyckas med programstyrning. Marina Maric, Business Consultant, Antura AB

episurf.com Stora Aktiedagen, 13 november 2017

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.

CM FORUM. Introduktion till. Configuration Management (CM) / Konfigurationsledning. Tobias Ljungkvist

Projektplan, Cykelgarage

Configuration Management

Laboration i datateknik

Giltig legitimation/pass är obligatoriskt att ha med sig. Tentamensvakt kontrollerar detta. Tentamensresultaten anslås med hjälp av kodnummer.

Arkitektur. Den Röda Tråden

Projektuppgift.

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

Övningstenta, Examinationsfrågor

Medarbetarskap och säkerhet

Pragmatisk programmering. Cyberrymden Marcus Rejås Pragmatisk programmering,16 december (29)

Mönster. Ulf Cederling Växjö University Slide 1

Objektorienterad programmering

Programvara i säkerhetskritiska tillämpningar

Webbreg öppen: 26/ /

Rastercell. Digital Rastrering. AM & FM Raster. Rastercell. AM & FM Raster. Sasan Gooran (VT 2007) Rastrering. Rastercell. Konventionellt, AM

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Mått och mätning. Varför behöver vi mäta?

Swedish framework for qualification

Uppgift v1: Teststrategi i sammanhang Terese Berger. Teststrategi. Projekt CiviCRM. Version 0.9. Sida 1(7)

Inkapsling (encapsulation)

Föreläsning 1. Introduktion Utveckla för förändring

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive

KUNG. TEKNISKA HÖGSKOLAN. Laboration. Programmering av LEGO-robot

Självkörande bilar. Alvin Karlsson TE14A 9/3-2015

Regressionstestning teori och praktik

Nästa steg. LEAN Production 1 dag. Norrköping Nov Introduktion 2 Bakgrund och Teorier 3 5S, Std arbete, VSM 4 LEAN Spel 5 Ekonomi, Extra

Kvalitetsarbete I Landstinget i Kalmar län. 24 oktober 2007 Eva Arvidsson

Nästa steg. Några vanliga Verktyg 5S HUR UPPLEVER VI ORDNING? LEAN Production 1 dag. Norrköping Nov 2015

Discovering!!!!! Swedish ÅÄÖ. EPISODE 6 Norrlänningar and numbers Misi.se

AvI-index. Ett instrument för att mäta IT-systems användbarhet

ISO/IEC 20000, marknaden och framtiden

Chefens roll & betydelse vid förbättringsarbete. Förbättringsarbete med hjälp av BPSD-registret. Avsnitt

SKOLFS. beslutade den XXX 2017.

Användarcentrerad systemdesign

Systematiskt kvalitetsarbete i skolan. Analys av programteori

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Transkript:

4 2 5 The race for quality has no finish line, so technically it s more like a death march Kod och kvalitet Effektkartan Mjukvarukvalitet Vi blir alltmer beroende av de olika tekniska system vi omger oss med och att dessa fungerar utan fel. Exempelvis använder vi kärnkraft för energiförsörjning, flyg och bilar för transporter och datorer är ett viktigt hjälpmedel för lagring och överföring av information. Konsekvensen av störningar eller en olycka är ofta stor och ödesdiger. Genom att mäta och kontrollera under utvecklingsprocessen ökar man den slutliga produktens kvalitet Vilket i sin tur innebär att man uppfyller både effekt och kundens mål Att upprätthålla god kvalitet på dokument, process och kod är livsviktigt Mjukvarukvalitet Ett system har god kvalitet om det möter kundens behov är tillförlitligt är enkelt att underhålla Extern kvalitet Intern kvalitet Synliga symptom Hittas vid testning Osynliga orsaker Hittas vid mätning Mjukvarutest Användbarhetstest Kvalitetsmått Effektstyrning Orsaker: Dålig programstruktur, hög komplexitet, hög koppling, dålig läsbarhet, med mera. 3 -ilities Usability (användbarhet) Programmets känsla och måluppfyllelse Mjukvarans förmåga att bibehålla sin prestanda under en viss belastning under en viss tid Functionality (funktionalitet) Funktionella krav, men inte funktioner Efficiency (ung. effektivitet) Mjukvarans prestanda jämfört med vilka resurser som finns under en viss tid Maintainability (underhållbarhet) Hur lätt det är att underhålla den här programvaran Portability (portabilitet) Hur lätt det är att flytta ett system till en annan miljö? Testability (testbarhet) Mjukvarans förmåga att kunna testas Operation -ilities Example metrics

7 8 9 Usability-mätning Man mäter ändamålsenlighet, effektivitet, lärbarhet, m.m. Användarnas prestation följer en normalfördelning Standardavvikelsen är nästan alltid 52% av medelvärdet Runt 20 användare ger ett tillräckligt bra konfidensintervanll Ungefär 76 användare krävs för statistisk signifikans, men vi vill se trender Feluppskattning Antalet gäddor i Boren ska uppskattas. Fånga ett antal gäddor, säg N stycken. Märk dessa och släng i dem igen. "Blanda om", dvs vänta någon vecka till de har simmat runt ordentligt. Fånga på nytt ett antal gäddor, säg M stycken. Antag att av dessa M stycken gäddor är M' stycken märkta. Enkel statistikberäkning ger en uppskattning av antal gäddor i Boren till Sifferexempel: g = (M*N) / M N = 100, M = 100, M' = 20. g = (100*100)/20 = 500 gäddor 10... är mjukvarans förmåga att bibehålla sin prestanda under en viss belastning under en viss tid Syftet är att finna orsaker till fel och försöka eliminera dessa orsaker att finna konsekvenserna av fel och om möjligt lindra eller eliminera dessa Felbenägenhet Felintervall Tid till fel Föregående tid till fel MTTF (Mean Time To Failure) Medelvärdet av felintervallen MTTR (Mean Time To Repair) Medelvärdet av reparationsintervallen MTBF (Mean Time Between Failures) MTBF = MTTF + MTTR 11 Antal fel, feltolerans, felbenägenhet mäts Error (human mistake) leder till ett Fault (defect in product) som i sin tur leder till ett Failure (defect in operation) När man upptäcker ett failure utför man en fault identification för att hitta rätt fault till aktuellt failure, sen utför man fault correction eller fault removal När systemet blir mer tillförlitligt, ökar MTTF Vi vill mäta mellan 0 och 1, för att få jämförelsevärden Reliability growth curve (R) R = MTTF / (1 + MTTF) Reliability stability or growth 12

0 13 Andra ilities att mäta Availability growth curve (A) A = MTBF / (1 + MTBF) Maintainability growth curve (M) M = 1 / (1 + MTTR) 16 350 300 250 200 150 100 50 0 5 10 15 20 Failure time Failure interval MTTF 14 Kvalitetsarbete under projektet Kommentera varandras arbete Inspektera dokument Kvalitetskontroller Utvärdera varje fas Teambuilding Mätningar 17 1.00 0.90 1 3 5 7 9 11 13 15 15 Kvalitetsrapport Innehåller Planerade mätningar Genomförda mätningar Mätresultat Analys och diskussion Är en del av testrapporten 18

God kodkvalitet Följ en kodstandard Formatera för att främja förståelse Använd meningsfulla identifierarnamn Använd pseudokod som modulbeskrivningar Återanvändning Don t repeat yourself! Once and only once! Refactoring 19 CMM Capability Maturity Model är ett instrument för att utveckla företagets rutiner mot ett mer planerat och förutsägbart projektarbete Hänsyn tas till förmågan att genomföra projekt samt organisationens mognad vid genomförandet av projektet Målet med metoden är att öka förmågan och mognadsgraden hos företaget 22 Kvalitetsarbete vid kodning Tänk efter före, men inte för mycket "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." Enkelhet You ain t gonna need it! KISS! Kodinspektion Sparar tid vid debugging Parprogrammering 20 CMM Ett företag som ligger lågt på CMM-skalan har förmodligen improviserade och ineffektiva processer. Om en plan finns så följs den ändå inte. Kvalitet och funktionalitet blir lidande för att blir klar till deadline. Ett företag som ligger högre har dokumenterad erfarenhet från tidigare projekt och kan göra realistiska planer. Brister upptäcks i tid och kan bekämpas. 23 Parprogrammering Parprogrammerare spenderar ungefär 15% mer tid än individuella programmerare på samma uppgift. Dock är denna extra tid inte statistiskt signifikant Parprogrammerare får 15% färre fel i koden än individuella programmerare. Denna högre kvalitet är statistiskt signifikant 95% av parprogrammerare säger att de trivs bättre med arbetet, är mer självsäkra och litar på att den kod de har producerat fungerar. I det långa loppet tjänar man alltså både moral och pengar, eftersom det tar mycket lång tid att rätta buggar 21 1 2 3 CMM - nivåer 4 5 Optimizing Managed Defined Repeatable Initial 24

CMM nivå 1 Initial Problem att leverera system i tid Regelbundet uppstår kriser Planer och kvalitet överges för kod och test Sprucken budget Beroende av hjältedåd Inga åtgärder har tagits för att öka processutvecklingsförmågan 25 CMM nivå 4 Managed Kvantitativ processtyrning Kvalitetsstyrning Förutsägbar process 28 CMM nivå 2 Repeatable Kravhantering Projektplanering Projektuppföljning Underleverantörshantering Kvalitetssäkring Konfigurationskontroll Disciplinerad process 26 CMM nivå 5 Optimized Kontrollerat processbyte Kontrollerat teknikbyte Felförebyggande åtgärder Kontinuerligt förbättrande process 29 CMM nivå 3 Defined Organisationen har processfokus Organisationen har en processdefinition Integrerad mjukvarustyrning Mjukvaruproduktion Koordination mellan grupper Utbildningsprogram Granskningar Standardiserad process 27 CMM - företagskultur CMM med fokus på företagskultur: 1. -- 2. Fokus på ledningens ansvar för att leda anställda. Man ger lön, utbildning och liknande. 3. Kompetensbaserad arbetsstyrka. Deltagande företagskultur, karriärmöjligheter 4. Effektivt mätande, indelning i högprestandateam. Teambuilding, mentorskap, jämförelser mellan grupper, samstämmighet 5. Medveten kontinuerlig förbättring av kunskap och färdigheter. Coaching, personlig kompetensutveckling 30

CMM - Metod Det finns två metoder för att bedöma en organisations mognad: Processbedömning Utvärdering av förmåga Båda använder samma grund, CMM, men målet med deras användning är olika 31 CMM - Metod Indicate Process Capability Achieve Goals Address Implementation and Institutionalization Describe 34 CMM - Metod 32 Referenser Software Engineering for Students, kapitel 29 RUT 10.7, 10.9, 10.11, 10.18, 10.19, 17.2 http://en.wikipedia.org/wiki/ You_Ain't_Gonna_Need_It http://en.wikipedia.org/wiki/don% 27t_repeat_yourself 35 CMM Metod 1. Först väljer man medlemmar till gruppen som skall genomföra utvärderingeneller bedömningen. Dessa personer bör samtliga vara väl förtrogna med CMM, mjukvaruutveckling och projektstyrning. 2. Den undersökta organisationen eller gruppen fyller i enkäter om organisationens verksamhet och genomför eventuellt också andra diagnostiska tester. Syftet med detta är att få underlag för nästa steg. 3. Svaren från föregående steg analyseras. Man identifierar vilka områden som man bör fokusera på i framtiden. Dessa områden motsvarar CMM:s nyckelprocessområden, nivåer. 4. Undersökningsgruppen besöker nu objektet för att där undersöka processer och granska dokument m.m. 5. Organisationens starka respektive svaga sidor sammanställs. Om man genomför man en processbedömning blir denna 33