Wer wünscht sich nicht "Mehr Softwarequalität"? Insbesondere an Individualsoftware werden hohe Qualitätsanforderungen gestellt. Einen Königsweg gibt es zwar nicht, aber viele „Best practices“, mit denen Sie systematisch die Softwarequalität erhöhen können.
Weitere Vorträge, die wir auch gern in Ihrem Unternehmen halten, finden Sie unter: https://www.iks-gmbh.com/impulsvortraege
1. Softwarequalität:
Definitionen, Wünsche, Grenzen
iks Thementag
„Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“
19.06.2012
Autor:
Christoph Schmidt-Casdorff
2. Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 3 / 36
3. Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 4 / 36
4. 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?
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 5 / 36
5. Sie
Wissen um Qualität muss ermittelt werden Sie glauben
glaub
sich hier
en
Sie
glaub
Sind aber hier
en
Nach : Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2007 / 2008. 22.1.2008
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 6 / 36
6. Unbegrenzte Qualität ist nicht möglich
Nach Frühauf, K., J. Ludewig, H. Sandmayr (1991).Software-Projektmanagement und -Qualitätssicherung
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 7 / 36
7. Fehlende Qualität kostet
Entdeckung
Cost to fix a defect Require- Architek- Entwick- System- Nach
ments tur lung test Auslieferung
Require-
1× 3× 5–10× 10× 10–100×
ments
Entste- Architek
- 1× 10× 15× 25–100×
hung -tur
Entwick-
- - 1× 10× 10–25×
lung
http://en.wikipedia.org/wiki/Software_testing
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 8 / 36
8. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 9 / 36
9. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 10 / 36
10. Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 11 / 36
11. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 12 / 36
12. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 13 / 36
13. Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 14 / 36
14. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 15 / 36
16. Sie
Metrik inkl.
Qualitätsindikatoren glaub
Messmethode
en
Sie
Kategorisierung
der Messungen
glauben
Welche Merkmale
Sie
werden durch Indikator
glauben
beeinflusst
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 17 / 36
17. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 18 / 36
18. Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 19 / 36
19. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 20 / 36
20. ISO 9126 – Hierarchie von Qualitätsmerkmale
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 21 / 36
21. Qualitätsindikatoren gemäß ISO 9126
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 22 / 36
22. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 23 / 36
23. Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 24 / 36
24. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 25 / 36
25. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 26 / 36
27. 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)
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 28 / 36
28. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 29 / 36
29. 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)
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 30 / 36
30. Qualitätsmodelle
Alle Ansätze, um Qualitätsmodelle zu ermitteln ….
… verbinden Qualitätsmerkmale mit Qualitätsmetriken
Anforderungen an Qualität sind projektspezifisch
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 31 / 36
31. Agenda
Einführung
Was ist Softwarequalität ?
– Qualitätsmodelle
– Hierarchische Qualitätsmodelle
– Analytische Ansätze
Wünsche, Grenzen, best practices
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 32 / 36
32. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 33 / 36
33. 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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 34 / 36
34. 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)
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 35 / 36
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
iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen Seite 36 / 36