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
5. 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
– 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ätsstandards erfüllt?
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 6 / 34
6. Wissen um Qualität muss ermittelt werden
Sie
Sie glauben
glaub
sich hier
en
Sie
Sind aber hier
glaub
en
Nach : Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2007 / 2008. 22.1.2008
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 7 / 34
7. Fehlende Qualitätssicherung kostet
Entdeckung
Entstehung
Cost to fix a defect
Requirements
Architektur
Entwicklung
Systemtest
1x
3×
5–10×
10×
10–100×
Architektur
-
1×
10×
15×
25–100×
Entwicklung
-
-
1×
10×
10–25×
Requirements
Nach
Auslieferung
http://en.wikipedia.org/wiki/Software_testing
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 8 / 34
8. Unbegrenzte Qualität ist nicht möglich
Nach Frühauf, K., J. Ludewig, H. Sandmayr (1991).Software-Projektmanagement und -Qualitätssicherung
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 9 / 34
9. Qualität kann ermittelt werden
Quelle : http://blog.timesunion.com/opinion/files/2011/02/0301_WViraqWait.jpg
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 10 / 34
10. 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
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 11 / 34
11. Externe Qualität
Interne Qualität
Quelle : http://www.dadalos-d.org/frieden/images/eisberg-modell.jpg
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 12 / 34
12. Worauf bezieht sich Softwarequalität?
Produktqualität
– Qualität des Produkts
– Softwaresystem, Architekturdokumentation,
Anforderungsdokumentation
Prozessqualität
– Qualität des Herstellungsprozesses
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 13 / 34
13. Worauf bezieht sich Softwarequalität?
Team Clean
Coding
Garbage in –
garbage out
Software-Usability
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 14 / 34
14. Themen der Softwarequalität
Garbage in –
garbage out
Team Clean
Coding
Software-Usability
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 15 / 34
15. Agenda
Einführung
Was ist Softwarequalität?
– Qualität messen
– Werkzeuge / Verfahren
Wünsche, Grenzen, Best Practices
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 16 / 34
16. Was ist Softwarequalität ?
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
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 17 / 34
17. Was ist Softwarequalität ?
Wie definiert sich Softwarequalität?
Wie kann Softwarequalität ermittelt 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?
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 18 / 34
18. Qualitätsmerkmale
Qualität ist als solche nicht ermittelbar
– Es können nur Eigenschaften eines Produktes/Prozesses
bewertet werden
Qualitätsmerkmale definieren
– Objektiv bestimmbare (und qualitätsrelevante) Eigenschaften
• des Produkts / der Software
– Alle Qualitätsmerkmale zusammen machen Qualität aus
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 19 / 34
20. Qualität bestimmen
Qualitätsmerkmale
– Sollen bewertet werden
– Wiederholbar, nachvollziehbar
?
Welche Metrik bewertet welches Merkmal?
Was sagt ein Messwert über die 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
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 21 / 34
22. Qualitätsmerkmale und Metriken
Metrik ohne Bezug zu Merkmal(en) ist wertlos
– Metrik liefert eine Qualifizierung/Quantifizierung eines Aspektes
– Ist kein Wert 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
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 23 / 34
23. Agenda
Einführung
Was ist Softwarequalität?
– Qualität messen
– Werkzeuge / Verfahren
Wünsche, Grenzen, Best Practices
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 24 / 34
24. Werkzeuge / Verfahren
Ausgangspunkte sind analytische Verfahren
– Basieren auf Untersuchung von Quellcode, Dokumentation, …
– Sie sind auf Qualitätssicherung ausgerichtet
– Unterschiedliche Verfahren werden innerhalb eines
Projektes eingesetzt
– Verfahren können hinsichtlich ihrer Qualitätsmerkmale
bewertet werden
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 25 / 34
25. Qualitätsanalyse-Werkzeuge
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
Nutzen Sie bekannte / bewährte Guidelines
– Java Coding Conventions (Oracle)
– Metriken, welche Standardeinhaltung messen
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 26 / 34
26. Werkzeuge zur Qualitätsanalyse
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
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 27 / 34
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
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 29 / 34
29. Agenda
Einführung
Was ist Softwarequalität?
– Qualität messen
– Werkzeuge / Verfahren
Wünsche, Grenzen, Best Practices
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 30 / 34
30. 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
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 31 / 34
31. 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ät ist ein Prozess, keine Momentaufnahme
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 32 / 34
32. 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)
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 33 / 34
33. 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
Softwarequalität: Definitionen, Wünsche, Grenzen
Seite 34 / 34