Die Qualitätsanforderungen an Individualsoftware sind hoch. Sie soll funktional, zuverlässig, benutzerfreundlich und wartbar sein. Nicht zuletzt muss die Kosten-Nutzen-Relation stimmen.
Weitere Vorträge, die wir auch gern in Ihrem Unternehmen halten, finden Sie unter: https://www.iks-gmbh.com/impulsvortraege
2. Seite 3 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität ?
– Qualität messen
– Werkzeuge / Verfahren
Wünsche, Grenzen, Best Practices
3. Seite 4 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität ?
– Qualität messen
– Werkzeuge / Verfahren
Wünsche, Grenzen, Best Practices
4. Seite 5 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
http://www.moldychum.com/home-old/tag/fly-rods
5. Seite 6 / 35Softwarequalitä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 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!
6. Seite 7 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
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
7. Seite 8 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Das Gleiche gilt für das Qualitätstesten
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
8. Seite 9 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Cost to fix a defect
Entdeckung
Require-
ments
Architek-
tur
Entwick-
lung
System-
test
Nach
Auslieferung
Entstehung
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
Fehlende Qualitätssicherung kostet
9. Seite 10 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Unbegrenzte Qualität ist nicht wirtschaftlich
Nach Frühauf, K., J. Ludewig, H. Sandmayr (1991).Software-Projektmanagement und -Qualitätssicherung
10. Seite 11 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
(Wie) Kann Qualität ermittelt werden?
Quelle : http://blog.timesunion.com/opinion/files/2011/02/0301_WViraqWait.jpg
11. Seite 12 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
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
12. Seite 13 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg
Externe Qualität
Interne Qualität
13. Seite 14 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Klassifizierungen von Softwarequalität
Produktqualität
– Qualität des Produkts
– des Softwaresystems, der Architekturdokumentation,
der Anforderungsdokumentation, ...
Prozessqualität
– Qualität des Herstellungsprozesses
14. Seite 15 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Einordnung der Folgethemen
Team Clean
Coding
Garbage in –
garbage out
Software-Usability
15. Seite 16 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität?
– Qualität messen
– Werkzeuge / Verfahren
Wünsche, Grenzen, Best Practices
16. Seite 17 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
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
17. Seite 18 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
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
18. Seite 19 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
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
19. Seite 20 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Qualitätsmerkmale nach ISO 9126
http://www.johner-institut.de/wissen/wp-content/uploads/2011/06/ISO9126-deutsch1.png
20. Seite 21 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Architektur
Design
Technologie
Code
Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg
Funktionalität
Testbarkeit
Wartbarkeit
Usability
Zuverlässigkeit
Prüfbarkeit Installierbarkeit
Änderbarkeit
PerformanzSicherheit
extern
intern
21. Seite 22 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Ziel: Qualität bestimmen
Qualitätsmerkmale
– Sollen bewertet werden
– Wiederholbar, nachvollziehbar
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
Welche Metrik bewertet welches Merkmal?
Was sagt ein Messwert über Qualität aus?
- Wann ist Qualitätsmerkmal (ausreichend) erfüllt?
?
22. Seite 23 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Welche Merkmale
werden durch die
Metrik beeinflusst ?
Bewertung der
Messungen
Sie
glaub
en
Metrik inkl.
Messmethode
Sie
glauben
Bewertung der
Messungen
Sie
glauben
Sie
glauben
Welche Merkmale
werden durch die
Metrik beeinflusst ?
Merkmale ← Indikator → Metrik
23. Seite 24 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Merkmale ← Indikator → Metrik
Metrik
Critical Code
Sie
glauben
sind u.U. Projekt-
spezifisch und müssen
justiert werden
24. Seite 25 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
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
25. Seite 26 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität?
– Qualität messen
– Werkzeuge / Verfahren
Wünsche, Grenzen, Best Practices
26. Seite 27 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
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
27. Seite 28 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
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
29. Seite 30 / 35Softwarequalitä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
30. Seite 31 / 35Softwarequalität: Definitionen, Wünsche, Grenzen
Agenda
Einführung
Was ist Softwarequalität?
– Qualität messen
– Werkzeuge / Verfahren
Wünsche, Grenzen, Best Practices
31. Seite 32 / 35Softwarequalitä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 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
32. Seite 33 / 35Softwarequalitä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
– 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
33. Seite 34 / 35Softwarequalitä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/
[SIGS-DATCOM]
http://www.sigs-datacom.de/wissen/themenchannel/software-qualitaet-und-
testen.html
[SQUID]
Kitchenham, B., Linkman, S., Pasquini, A., Nanni, V.: The SQUID
approach to defining a quality model. Software Quality Control 6(3)
34. Seite 35 / 35Softwarequalitä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