Softwarequalität: Definitionen, Wünsche, Grenzen iks Thementag Mehr Softwarequalität Ausgewählte Themen 22.05.2014 Autor: Christoph Schmidt-Casdorff
Agenda Einführung Was ist Softwarequalität? Qualität messen Werkzeuge / Verfahren Wünsche, Grenzen, Best Practices Seite 3 / 35
Agenda Einführung Was ist Softwarequalität? Qualität messen Werkzeuge / Verfahren Wünsche, Grenzen, Best Practices Seite 4 / 35
http://www.moldychum.com/home-old/tag/fly-rods Seite 5 / 35
Was charakterisiert (Software-)Qualität? Qualität macht sich am stärksten bemerkbar, wenn sie fehlt Wenn es weh tut, ist es zu spät Qualität ist kein Selbstzweck Qualität wird implizit als gegeben vom Kunden / Nutzer vorausgesetzt Wissen um Qualität muss ermittelt werden Woher wissen Sie, dass Ihre Software gewisse Qualitäts- Standards erfüllt? Fehlende Qualität kostet! Seite 6 / 35
Wissen um Qualität muss ermittelt werden Wer viel arbeitet, macht viele Fehler Wer wenig arbeitet, macht wenig Fehler Wer nicht arbeitet, macht keine Fehler, und wer keine Fehler macht - der wird befördert http://www.abnehmen-aktuell.de/images/abnehmen-bilder/2012/03/c38530ba-1.gif Seite 7 / 35
Das Gleiche gilt für das Qualitätstesten Sie glaub en Sie glauben sich hier Sie Sind glaub aber hier en Nach : Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2007 / 2008. 22.1.2008 Seite 8 / 35
Entstehung Fehlende Qualitätssicherung kostet Cost to fix a defect Entdeckung Requirements Architektur Entwicklung Systemtest Nach Auslieferung Requirements 1x 3 5 10 10 10 100 Architektur - 1 10 15 25 100 Entwicklung - - 1 10 10 25 http://en.wikipedia.org/wiki/software_testing Seite 9 / 35
Unbegrenzte Qualität ist nicht wirtschaftlich Nach Frühauf, K., J. Ludewig, H. Sandmayr (1991).Software-Projektmanagement und -Qualitätssicherung Seite 10 / 35
(Wie) Kann Qualität ermittelt werden? Quelle : http://blog.timesunion.com/opinion/files/2011/02/0301_wviraqwait.jpg Seite 11 / 35
Klassifizierungen von Softwarequalität Externe Qualität * Qualität aus der Perspektive des Anwenders / Kunden Zuverlässigkeit, Funktionsumfang Indikatoren können von außen gemessen werden Interne (oder auch strukturelle) Qualität Qualität aus Entwicklungsperspektive Indikatoren können nur von innen gemessen werden Sind früh im Entwicklungsprozess anzuwenden * ISO 9126 unterscheidet in Quality Of Use und externe Qualität Seite 12 / 35
Externe Qualität Interne Qualität Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg Seite 13 / 35
Klassifizierungen von Softwarequalität Produktqualität Qualität des Produkts des Softwaresystems, der Architekturdokumentation, der Anforderungsdokumentation,... Prozessqualität Qualität des Herstellungsprozesses Seite 14 / 35
Einordnung der Folgethemen Garbage in garbage out Team Clean Coding Software-Usability Seite 15 / 35
Agenda Einführung Was ist Softwarequalität? Qualität messen Werkzeuge / Verfahren Wünsche, Grenzen, Best Practices Seite 16 / 35
Was ist Softwarequalität? Unterschiedliche Erwartungen an Softwarequalität Hängen von der Perspektive ab Kunde Entwickler Betrieb Können kulturell bedingt sein Sind i.d.r. subjektiv Notwendigkeit, Softwarequalität zu definieren Seite 17 / 35
Definition von Qualität Qualität (lat.: qualitas = Beschaffenheit, Merkmal, Eigenschaft, Zustand) hat zwei Bedeutungen: 1. neutral: die Summe aller Eigenschaften eines Objektes, Systems oder Prozesses 2. bewertet: die Güte aller Eigenschaften eines Objektes, Systems oder Prozesses Qualität ist die Gesamtheit der (Qualitäts-)Merkmale und Merkmalswerte eines Produkts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. Wikipedia DIN-Standard Seite 18 / 35
Qualitätsmerkmale Qualität ist ganzheitlich zunächst nicht ermittelbar Es können nur Eigenschaften eines Produktes / Prozesses bewertet werden Qualitätsmerkmale definieren Gesucht sind objektiv bestimmbare (und qualitätsrelevante) Merkmale des Produkts bzw. der Software Diese Merkmale werden solange verfeinert, bis sie messbar sind. Alle Qualitätsmerkmale zusammen machen Qualität aus Seite 19 / 35
Qualitätsmerkmale nach ISO 9126 http://www.johner-institut.de/wissen/wp-content/uploads/2011/06/iso9126-deutsch1.png Seite 20 / 35
Usability Funktionalität Zuverlässigkeit extern Prüfbarkeit Sicherheit Performanz Installierbarkeit Änderbarkeit Wartbarkeit Testbarkeit Architektur Design Technologie Code Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg intern Seite 21 / 35
Ziel: Qualität bestimmen Qualitätsmerkmale Sollen bewertet werden Wiederholbar, nachvollziehbar? Welche Metrik bewertet welches Merkmal? Was sagt ein Messwert über Qualität aus? - Wann ist Qualitätsmerkmal (ausreichend) erfüllt? Qualitätsmetriken quantifizieren bestimmte Aspekte Liefern die Bewertungsgrundlage Können auch kategorisieren (0/1, Ampel u.v.a.) Versuch, Subjektivität bei Bewertungen zu reduzieren Seite 22 / 35
Merkmale Indikator Metrik Sie glauben Bewertung der Messungen Sie glaub en Metrik inkl. Messmethode Sie glauben Welche Merkmale werden durch die Metrik beeinflusst? Seite 23 / 35
Merkmale Indikator Metrik Metrik Critical Code Sie glauben sind u.u. Projektspezifisch und müssen justiert werden Seite 24 / 35
Qualitätsmerkmale und Metriken Metrik ohne Bezug zu Merkmal(en) ist wertlos Metrik liefert eine Qualifizierung / Quantifizierung eines Aspektes Ist kein Qualitätswert als solcher Ist die Maßzahl gut / schlecht? Was gefährde ich bei schlechter Maßzahl? Messen ohne Bezug zu Merkmal bedeutet wahlloses Messen Merkmal ohne Metrik kann nicht bewertet / validiert werden Wird ein Merkmal durch das Produkt erfüllt? Wenn ja, in ausreichendem Maße? Ist die Bewertung nachvollziehbar? Zusammenhang zwischen Merkmalen und Metriken ist herzustellen Seite 25 / 35
Agenda Einführung Was ist Softwarequalität? Qualität messen Werkzeuge / Verfahren Wünsche, Grenzen, Best Practices Seite 26 / 35
Qualitätsanalyse-Werkzeuge Ausgangspunkt sind analytische Verfahren Sie untersuchen vorwiegend den Quellcode, aber auch die Performanz des Systems, die Entwicklungsgeschwindigkeiten (Produktivität), die Benutzerfreundlichkeit und viele weitere Merkmale (s. ISO 9162-2) können gemessen werden Qualitätsanalyse-Werkzeuge können an Qualitätsmerkmale angepasst werden Welche Metriken werden ausgeführt? Welche Indikatoren werden aus den Metriken abgeleitet? Wann hat Ihre Software eine ausreichende Qualität erreicht? Verfeinerung im Laufe des Projekts / Produkts Seite 27 / 35
Werkzeuge zur Qualitätsanalyse Sensoren sind Werkzeuge, welche (Software-)metriken automatisiert ermitteln Auf vorgegebenem Regelwerk arbeiten Siehe Checkstyle, PMD, FindBugs Qualitäts-Cockpits ergänzen Sensoren Bewerten Messungen der Sensoren Bereiten diese projektspezifisch auf Protokollieren Qualitätsverlauf Siehe Sonar System Analysis Workbenches Flexible Konfiguration des Regelwerks Siehe Sotograph zur Bewertung von Architekturkonformität Seite 28 / 35
Qualitäts-Cockpit : Sonar Siehe http://www.sonarsource.org/sonar-3-0-in-screenshots/ Seite 29 / 35
Reviews / Inspektionen Sind analytische Verfahren, um Qualität zu ermitteln Sind da von besonderer Bedeutung, wo keine werkzeugunterstützten Methoden verfügbar sind Benötigen Ausführungskontext Welches Qualitätsmerkmal wird geprüft? Nach welchen Regeln / Verfahren wird geprüft? Siehe Requirements Engineering Seite 30 / 35
Agenda Einführung Was ist Softwarequalität? Qualität messen Werkzeuge / Verfahren Wünsche, Grenzen, Best Practices Seite 31 / 35
Wünsche und Grenzen Qualität entstünde als Nebenprodukt der Softwareentwicklung 1) Sie entsteht nicht quasi von selbst Um sie muss man sich kümmern Qualität gäbe es umsonst Gegenüberstellung von Qualitätskosten zu Qualitätsanforderungen Gleichgewicht zwischen Kosten / Risiken und Aufwand Qualitätsanforderungen wären immer gleich Qualitätsanforderungen unterscheiden sich von Projekt zu Projekt Es gibt fertige out-of-the-box Model/Tools/Methoden, nach denen Qualität für ihr Projekt erreicht werden kann Qualitätsanforderungen müssen explizit formuliert werden 1) Wünsche sind kursiv Seite 32 / 35
Best Practices Bauen Sie eine eigene Qualitätskultur auf Wenn noch nicht geschehen Der Einstieg ist nicht so schwer Nutzen Sie Qualitätsanalyse-Werkzeuge für den Einstieg I.d.R. nur für interne Qualität Nutzen Sie bestehende Qualitätsanforderungsprofile Leiten Sie Ihre Qualitätsanforderungen ab Am Anfang des Projekts Messen Sie die Erfüllung der Anforderungen Pflegen Sie Ihre Qualität Qualitätssicherung ist ein Prozess, keine Momentaufnahme Seite 33 / 35
Referenzen [Code Complete] Steve McDonnell, Code Complete (2nd Edition) Microsoft Press Deutschland; Auflage (27. Januar 2005) ISBN-13: 978-3860635933 [ISO 9126] ISO 9126-1: Software engineering Product quality Part 1: Quality model [GQM] http://goldpractice.thedacs.com/practices/gqm/ [SIGS-DATCOM] http://www.sigs-datacom.de/wissen/themenchannel/software-qualitaet-undtesten.html [SQUID] Kitchenham, B., Linkman, S., Pasquini, A., Nanni, V.: The SQUID approach to defining a quality model. Software Quality Control 6(3) Seite 34 / 35
Weiterführende Literatur Software Metrics and Software Metrology; Alan Abrain John Wiley & Sons; ISBN-13: 978-0470597200 SEI quality driven software measurement http://www.sei.cmu.edu/reports/96hb002.pdf SQUID Quality Framework http://www.inf.utfsm.cl/~visconti/iia375/documentos/squid.pdf F. Deißendörfer (Diss. 2009), Continuous Quality Control of Long-Lived Software Systems http://mediatum2.ub.tum.de/doc/737380/737380.pdf Seite 35 / 35
Fragen?
www.iks-gmbh.com