Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 1 FÖRELÄSNING 8 DSV2PVT Kvalitet i mjukvara, utvecklingsmodeller Beatrice Åkerblom beatrice@dsv.su.se Institutionen för Data- och Systemvetenskap (DSV) IT-Universitetet SU/KTH
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 2 Kvalitet är: Definitioner av kvalitet Kvalitet är svårt att definiera, omöjligt att mäta men lätt att känna igen B. Kitchenham, 1989. Alla sammantagna egenskaper hos ett objekt eller en företeelse som ger dess förmåga att tillfredsställa uttalade och underförstådda behov ISO Kvalitet är frånvaro av defekter Crosby 1979. the degree to which the attributes of the software enable it to perform its intended end use U.S. Department of Defense
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 3 Vad är kvalitet? Kvalitet är svårdefinierat eftersom Kvalitet kan vara olika saker för olika slags produkter Kvalitet kan vara olika saker för olika användare av samma produkt Kvalitetskraven på en produkt beror på våra förväntningar Kvalitet märks sällan när den är hög, men betydligt mer när den saknas Vi gör alltid en avvägning mot kostnaden
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 4 Förändringar i synen på kvalitet Synen på kvalitet har förändrats från att betyda att produkten uppfyller de specifikationer som den byggts efter till att betyda att produktens förmåga att uppfylla kundens behov och förväntningar från leverantörens önskesyn på kvalitet till en mer kundtillvänd syn på kvalitet
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 5 Speciellt för kvalitet i mjukvara? Mjukvaran har ingen fysisk representation Man saknar kunskap om kundens behov när utvecklingen påbörjas Kundens behov förändras med tiden Den snabba utvecklingen inom både hårdvara och mjukvara De höga förväntningarna från kunderna, speciellt med avseende på anpassningsförmåga. Mjukvaran tillverkas bara en gång
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 6 Kvalitetsegenskaper i mjukvara Korrekthet Underhållsvänlighet Tillförlitlighet Testbarhet Användarvänlighet Flyttbarhet Effektivitet Återanvändbarhet Integritet Integrerbarhet Kostnadseffektivitet
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 7 Hur mäter man kvalitet? Hur vet vi att kvalitetsegenskperna uppfyllts? Vad kan vi mäta och när kan vi mäta? Finns det kopplingar mellan interna och externa egenskaper?
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 8 Hur mäter man kvalitet? (forts.) Attribut Funktionsduglighet Tillgänglighet Anpassnings förmåga Användarvänlighet Delattribut Processkapacitet Processnabbhet Lagringskapacitet Trolig tillgänglighet Tillförlitlighet Underhållsvänlighet Integritet Förbättringar Utbyggbarhet Flyttbarhet Inkörningstid Enkelt att använda Nödvändig träning Produktivitet Kundtillfredsställelse Exempel på mätningar Transaktioner per sek. Svarstid Lagrade enh. (bytes/post) Total tid/antal fel Mean time to failure Tid att rätta tex 90% av funna fel Procentandel orörda programdelar Tid för tillägg av små förbättringar Tid för att inkludera 10% logik Nödvändiga resurser för att flytta produkten till en ny plattform Tid att nå basnivå för användningen av produkten Läsbarhetsindex Minimal träningstid Antal lösta uppgifter/timme Resultat av användarundersökning
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 9 Problem med specifikationer Specifikation med kundens behov Specifikation med utvecklingsorganisationens behov Kvalitetsegenskaper kan inte specificeras på ett otvetydigt sätt Mjukvaruspecifikationer är vanligtvis inte kompletta Kvalitet i mjukvara kan vara mer än bara att den skall sakna fel samt uppfylla sin specifikation
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 10 Vilka faktorer påverkar mjukvarans kvalitet? Teknologin som används i utvecklingen Personalens kunnande Kostnader, tidsåtgång och planering Kvaliteten hos mjukvaruprocessen
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 11 Faktorer vikt? Teknologi Process Personal
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 12 Förbättringar av processen Se till att alla i organisationen gör på samma sätt Definiera rutiner som beskriver hur arbetsuppgifter skall utföras Konstruera standarder som beskriver hur arbetets produkter skall se ut Samla mätdata och erfarenheter Identifiera styrkor och svagheter Använd sedan dessa data och erfarenheter för att bli bättre
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 13 Modeller för processförbättring Det finns ett antal olika modeller och standarder för processförbättringsarbete och kvalitetssäkring. ISO 9000 CMM och CMM-familjen ISO/IEC 15504 SPICE CMMI
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 14 ISO 9000 Fokuserar helt på produktens kvalitet, kundens förväntningar Spänner över väldigt mycket, men är inte så detaljerad Binär modell, antingen har man ISO 9000 eller så har man det inte
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 15 ISO 9000
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 16 CMM Capability Maturity Level Utvecklad av SEI, Carnegie Mellon University Används för att avgöra en organisations mognadsgrad Definierar vilka förbättringar som bör ge de största effekterna beroende på organisationens utgångspunkt En utvärdering ger ett betyg på organisationsnivå Stegvis förbättring
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 17 CMM
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 18 ISO/IEC 15504 SPICE Förslag till standard för processförbättring Utvecklad i ett internationellt samarbete Används för att avgöra förmågan hos en process eller processinstans Definierar vilka förbättringar som bör ge de största effekterna beroende på processens utgångspunkt En utvärdering ger en betygsprofil över de processer som organisationen valt att utvärdera Kontinuerlig förbättring
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 19 CMMI Den nya versionen av CMM En kombination av CMM, de andra CMM-modellerna och SPICE Både organisations- och processperspektiv Både stegvis och kontinuerlig förbättring Mycket omfattande och komplex
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 20 KOSTNAD Kostnad hittade fel kostnad n Krav insamling kostnad 10 X n Design Implemen tation Integration Operation TID
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 21 Kodgranskning Leta fel i koden, utskriven på papper. Gruppvis eller individuellt. Spciella, strukturerade metoder finns. Har använts framgångsrikt i många projekt i över 20 år. Har inte fått den spridning det kanske förtjänar Kodgranskning upplevs som mycket tråkigt.
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 22 Kontinuerlig kodgranskning Fel hittas lättare i samma sekund som man gör dem. Kodstandarder följs på ett bättre sätt om man har ett socialt tryck att följa dem. Samarbetet förbättras eftersom man lär sig att förstå varandras sätt att tänka.
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 23 Parprogramming En uppmärksammad del av XP (Extreme Programming) är parprogrammeringen, där man alltid arbetar i par framför en dator. All kod produceras på detta sätt med Två programmerare Ett tangentbord En mus En monitor
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 24 Hur går parprogramming till Samarbete mellan två programmerare En åt gången skriver kod Den andra personen har till uppgift att Agera granskare Hålla fokus på övergripande, strategiska mål Man turas om att ha de olika rollerna Man byter ofta programmeringspartner
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 25 Vad ger parprogrammering för fördelar? Problemlösningsfördelar man löser omöjliga problem snabbare Två programmerare som arbetar i par producerar mer än två programmerare som arbetar var för sig Den kod som produceras med hjälp av parprogrammering har högre kvalitet Programmerarna stärker moralen hos varandra i stressiga situationer
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 26 Vad ger parprogrammering för fördelar? (forts.) Programmerarna trivs bättre med sitt arbete om de arbatar i par Arbetsgruppen blir mer sammansvetsad och kommunikationen ökar Specialkunskaper sprids till flera medarbetare
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 27 Kan det verkligen fungera? Studier gjorda med studenter visar att det fungerar Relative Time: One Individual vs Two Collaborators 200.0% 150.0% 100.0% 50.0% 0.0% Program 1 Program 2 Program 3 One Individual Two Collaborators
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 28 Kan det verkligen fungera? Studier gjorda med studenter visar att det fungerar Post Development Test Cases Passed 100.0% 80.0% 60.0% 40.0% 20.0% 0.0% Program 1 Program 2 Program 3 Individuals Collaborators
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 29 Hur skall vi använda parprogrammering på den här kursen? Använd parprogrammering inom grupperna ni behöver inte byta programmeringspartner. Se till att den som inte har kommandot för tillfället verkligen hänger med i det som görs hela tiden. Vad händer om vi har väldigt olika kunskapsnivå när det gäller programmering? Är du den som är sämre se till att få förklaringar! Är du den som är bättre glöm inte att låta din kamrat programmera!
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 30 XP extreme Programming Kombinerar ett antal väletablerade metoder för mjukvaruutveckling till en helhet Tar sin utgångspunkt i programmering och programmerarnas arbete, inte ledning och organisation Värderingar Enkelhet, kommunikation, återkoppling och mod Roller Kund, programmerare, ledning
Föreläsning 8 DSV2:PVT Kvalitet i mjukvara 31 Metaforen Rak och enkel planering Tidiga och täta produktreleaser Enklast möjliga lösning XP beprövade metoder Skriv testkoden först av allt, testa ständigt Ständigt förbättrande av koden All kod skrivs i par Alla äger koden Bygg hela tiden Ingen övertid Kodstandard Kunden finns på plats hela tiden