iks Thementag
„Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“
19.06.2012
Softwarequalität:
Definitionen, Wünsche, Grenzen
Autor:
Christoph Schmidt-Casdorff
Seite 3 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
Seite 4 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
Seite 5 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Was charakterisiert (Software-)Qualität ?
Qualität macht sich am stärksten bemerkbar, wenn sie fehlt
– Wenn es weh tut, ist es ziemlich spät
– Fehlende Qualität kostet
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 guten Gewissens
auszuliefern ist?
– Woher wissen Sie, dass Ihre Software gewisse Qualitäts-
standards erfüllt?
Seite 6 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Wissen um Qualität muss ermittelt werden
Nach : Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2007 / 2008. 22.1.2008
Sie
glaub
en
Sie glauben
sich hier
Sie
glaub
en
Sind aber hier
Seite 7 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Unbegrenzte Qualität ist nicht möglich
Nach Frühauf, K., J. Ludewig, H. Sandmayr (1991).Software-Projektmanagement und -Qualitätssicherung
Seite 8 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Cost to fix a defect
Entdeckung
Require-
ments
Architek-
tur
Entwick-
lung
System-
test
Nach
Auslieferung
Entste-
hung
Require-
ments 1× 3× 5–10× 10× 10–100×
Architek
-tur - 1× 10× 15× 25–100×
Entwick-
lung - - 1× 10× 10–25×
http://en.wikipedia.org/wiki/Software_testing
Fehlende Qualität kostet
Seite 9 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Auf was bezieht sich Softwarequalität?
Produktqualität
– Qualität des Produkts
– Softwaresystem, Architekturdokumentation, Anforderungs-
dokumentation
Prozessqualität
– Qualität des Herstellungsprozesses
Wir beschäftigen uns heute hauptsächlich mit Produktqualität
Seite 10 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Worauf bezieht sich 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 11 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
Seite 12 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Was ist Softwarequalität ?
Die Erwartungen an Softwarequalität …
– hängen von der Perspektive ab
• Endanwender Entwickler
• Betrieb Abnahmetest
– können kulturell bedingt sein
– sind i.d.R. subjektiv
Notwendigkeit, Softwarequalität zu definieren
Seite 13 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Was ist Softwarequalität ?
Wie definiert sich Softwarequalität?
Wie kann Softwarequalität bewertet werden?
– Zuordnung von qualitätssichernden Maßnahmen
– Messung von Qualitätsanforderungen
Wie kann Softwarequalität für ein Projekt / Produkt / Prozess
gewährleistet werden?
– Welche Anforderungen an SW-Qualität werden benötigt?
Mit diesen Fragen beschäftigen sich Qualitätsmodelle
Seite 14 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
Seite 15 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Qualitätsmodelle
Qualitätsmerkmale definieren objektiv bestimmbare Eigenschaften
– des Produkts
– werden hierarchisch geordnet
Qualitätsmetriken quantifizieren bestimmte Aspekte
– liefern die Bewertungsgrundlage für Merkmale
– können auch kategorisieren (0/1, Ampel u.v.a.)
Qualitätsindikatoren
– kategorisieren das Ergebnis einer Metrik bzgl. eines Merkmals
– verbinden Merkmale mit Metriken
• Eine Metrik bewertet i.d.R. mehrere Merkmale
Seite 16 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Beispiele von Qualitätsmerkmalen
Seite 17 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Qualitätsindikatoren
Sie
glaub
en
Metrik inkl.
Messmethode
Sie
glauben
Kategorisierung
der Messungen
Sie
glauben
Welche Merkmale
werden durch Indikator
beeinflusst
Seite 18 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Qualitätsmodelle
Warum reicht eine Menge an Metriken nicht aus?
– Metrik liefert eine Qualifizierung / Quantifizierung eines Aspekts
– Ist kein Wert als solcher
• Ist die Maßzahl gut/schlecht?
• Was gefährde ich bei schlechter Maßzahl?
Metrik ist ohne Kontext des / der Merkmale wertlos
– Wahlloses Messen ist sinnlos
Merkmal ohne Metrik kann nicht bewertet / validiert werden
– Wird ein Merkmal durch das Produkt erfüllt?
– Wenn ja, in ausreichendem Maß?
Zusammenhang zwischen Qualitätsmerkmalen und Metriken
ist herzustellen Qualitätsmodelle
Seite 19 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
Seite 20 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Hierarische Qualitätsmodelle
Definition eines Software-Qualitätsmodells über
– Definition eines Systems von Qualitätsmerkmalen
• i.d.R. mehrstufig
– Explizite Zuordnung von Indikatoren
• nachgeordnet
Beispiele
– Mc Call
– Boehm
– ISO 9126 (FURPS)
– Squid
Seite 21 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
ISO 9126 – Hierarchie von Qualitätsmerkmale
Seite 22 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Qualitätsindikatoren gemäß ISO 9126
Seite 23 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Bewertung hierarischer Qualitätsmodelle?
Historisch gesehen: Einstieg in systematische Software-Qualität
Geben guten Überblick über die unterschiedlichen Facetten von
Qualität
– Guter Einstieg in das Thema / Hintergrundwissen
– Kompendium, um alle relevanten Qualitätsmerkmale zu entdecken
Sind schwergewichtig und unflexibel
– Unklare Bedeutung und Bedeutungsunterschiede einzelner Merkmale
– Starre Vorgaben
– Akademisch
Sind schwer anzuwenden
– Der Zuschnitt auf das eigene Projekt / Produkt ist schwierig
Es fehlt ein pragmatischer Ansatz
Seite 24 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
Seite 25 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Analytische Ansätze
Von der Analyse zur Qualität
– Im Gegensatz zu hierarchischen Qualitätsmodellen
Ausgangspunkt sind analytische Verfahren
– Diese führen zu Qualität
– Unterschiedliche Verfahren werden innerhalb eines Projektes
eingesetzt
– Verfahren werden hinsichtlich ihrer Qualitätsmerkmale bewertet
Seite 26 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Qualitätsanalyse-Werkzeuge
Sensoren sind Werkzeuge, welche
– (Software-)metriken automatisiert ermitteln
– Auf vorgegebenem Regelwerk arbeiten
• Siehe checkstyle, PMD, findbug
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 27 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Qualitäts-Cockpit: Sonar
Siehe http://www.sonarsource.org/sonar-3-0-in-screenshots/
Seite 28 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Qualitätsanalyse-Werkzeuge
Qualitätsanalyse-Werkzeuge müssen an Qualitätsmerkmale
angepasst werden
– Welche Metriken werden ausgeführt?
– Welche Indikatoren werden aus den Metriken abgeleitet?
Nutzen Sie bekannte / bewährte Guidelines
– Java Coding Conventions (sun)
Seite 29 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
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 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Methodische Ermittlung von Qualitätszielen
Verfahren, um…
– projektspezifische Qualitätsanforderungen zu ermitteln
– diese messbar zu gestalten
– diesen eine oder mehrere Metriken zuzuordnen
… führen zu einem projektspezifischen Qualitätsmodell
… unterstützen z.B. die Ermittlung nicht funktionaler Anforderungen
… werden zur Ermittlung von Review-Zielen genutzt
Bsp.: Goal Question Metric (GQM)
Seite 31 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Qualitätsmodelle
Alle Ansätze, um Qualitätsmodelle zu ermitteln ….
… verbinden Qualitätsmerkmale mit Qualitätsmetriken
Anforderungen an Qualität sind projektspezifisch
Seite 32 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
Seite 33 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
Wünsche und Grenzen
Qualität entstünde als Nebenprodukt der Softwareentwicklung 1)
– Sie entsteht nicht quasi von selbst
– Um die Qualität 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 Modelle / 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 34 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
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
in Ihr Qualitätsmodell
– 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ät ist ein Prozess, keine Momentaufnahme
Seite 35 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
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/
[SQUID]
Kitchenham, B., Linkman, S., Pasquini, A., Nanni, V.: The SQUID
approach to defining a quality model. Software Quality Control 6(3)
Seite 36 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen
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
Fragen?
www.iks-gmbh.com
Top Related