37
iks Thementag „Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“ 19.06.2012 Softwarequalität: Definitionen, Wünsche, Grenzen Autor: Christoph Schmidt-Casdorff

Softwarequalität: Definitionen - Wünsche - Grenzen

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Softwarequalität: Definitionen - Wünsche - Grenzen

iks Thementag

„Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“

19.06.2012

Softwarequalität:

Definitionen, Wünsche, Grenzen

Autor:

Christoph Schmidt-Casdorff

Page 2: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 3: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 4: Softwarequalität: Definitionen - Wünsche - Grenzen

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?

Page 5: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 6: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 7: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 8: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 9: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 10: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 11: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 12: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 13: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 14: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 15: Softwarequalität: Definitionen - Wünsche - Grenzen

Seite 16 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen

Beispiele von Qualitätsmerkmalen

Page 16: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 17: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 18: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 19: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 20: Softwarequalität: Definitionen - Wünsche - Grenzen

Seite 21 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen

ISO 9126 – Hierarchie von Qualitätsmerkmale

Page 21: Softwarequalität: Definitionen - Wünsche - Grenzen

Seite 22 / 36 iks Thementag: „Mehr Softwarequalität“ - Definitionen, Wünsche, Grenzen

Qualitätsindikatoren gemäß ISO 9126

Page 22: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 23: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 24: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 25: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 27: Softwarequalität: Definitionen - Wünsche - Grenzen

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)

Page 28: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 29: Softwarequalität: Definitionen - Wünsche - Grenzen

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)

Page 30: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 31: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 32: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 33: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 34: Softwarequalität: Definitionen - Wünsche - Grenzen

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)

Page 35: Softwarequalität: Definitionen - Wünsche - Grenzen

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

Page 36: Softwarequalität: Definitionen - Wünsche - Grenzen

Fragen?

Page 37: Softwarequalität: Definitionen - Wünsche - Grenzen

www.iks-gmbh.com