ISO, weshalb warum? Ist Software-Qualität Geschmackssache?

By 18. Mai 2016Inhaltliches

Wir tun uns leicht damit, etwas nach unserem persönlichen Geschmack zu bewerten, zum Beispiel Musik. Auch bei Software äußern wir schnell unsere Meinung über eine Lösung: „Das hätte ich anders gemacht!“ oder „So tut das nicht!“
Für die Einschätzung der Qualität von Softwaresystemen reicht dies jedoch nicht aus. Das stellen Teams dann fest, wenn es unterschiedliche Meinungen zu einer Lösung gibt. Wer hat nun Recht? Derjenige, der länger im Team ist? Der mit mehr allgemeiner Erfahrung? Schnell wird klar, dass der persönliche Maßstab nicht ausreichend ist und wir einen allgemeinen Maßstab benötigen um sinnvoll bewerten zu können, ob eine Lösung geeignet ist.

FURPS/FURPS+, DIN 66272, ISO 9126, ISO 25010, etc.

Bevor wir uns selbst etwas überlegen, greifen wir doch lieber auf eins der bestehenden Modelle für Qualität von Softwaresystemen zurück. Für Softwarearchitekten sind diese Modelle deshalb interessant, weil die qualitativen Anforderungen wichtige Treiber für Architekturarbeit sind. Aus der Aufnahme und Bewertung dieser Anforderungen leite ich ab, in welchen Bereichen ich schon sicher bin und in welchen Bereichen meines Entwurfs ich noch investieren muss.

Alle Modelle definieren Software-Qualität anhand von Merkmalen, die am fertigen System sichtbar werden. Sie unterscheiden sich in der Auswahl und Beschreibung der Merkmale. Am besten lässt sich das anhand der am weitesten verbreiteten Modelle zeigen, der ISO 9126 und der ISO 25010. Letztere ist die Ablösung der erstgenannten Norm und setzt sich erst nach und nach in der Literatur durch. Sie treffen daher häufig noch auf die ältere Norm.

Als Überblick folgt die Auflistung und Beschreibung der unterschiedlichen Qualitätsmerkmale der ISO 25010 im Einzelnen:

Qualitätsmerkmal Englischer Begriff Beschreibung Unterkategorien
Funktionalität
Funktionalität
Functional Suitability Die Art und Weise, wie die gewünschte Funktionalität geliefert wird Vollständigkeit, Korrektheit, Angemessenheit
Effizienz
Effizienz
Performance Efficiency Stellt die Leistung des Systems in Relation zum Ressourcenverbrauch dar
Häufig auch mit Performance bezeichnet
Zeitverhalten, Ressourcenverbrauch, Kapazität
Kompatibilität
Kompatibilität
Compatibility Fähigkeit zum Austausch von Daten mit anderen Systemen oder Komponenten, die auf anderer oder der gleichen Hardware laufen. Ko-Existenz, Interoperabilität
Benutzbarkeit
Benutzbarkeit
Usability Grad der Nutzbarkeit für definierte Benutzer, vorher bestimmte Ziele mit dem System effizient und zufrieden zu erreichen. Erlernbarkeit, Bedienbarkeit,
Schutz vor Fehlern des Benutzers, Barrierefreiheit
Zuverlässigkeit
Zuverlässigkeit
Reliability Erbringung der Leistungen des Systems unter bestimmten Bedingungen über einen definierten Zeitraum Reife,
Verfügbarkeit, Fehlertoleranz, Wiederherstellbarkeit
Sicherheit
Sicherheit
Security Fähigkeit, die Daten und das System so zu schützen, dass sowohl beabsichtigte als auch unbeabsichtigte Zugriffe erkannt und abgewehrt werden Vertraulichkeit,
Integrität, Nachweisbarkeit,
Ordnungsmäßigkeit, Authentizität
Wartbarkeit
Wartbarkeit
Maintainability Die Wirtschaftlichkeit, mit der ein System angepasst werden kann, um auf Veränderungen der Umwelt, Rahmenbedingungen oder Anforderungen zu reagieren sowie Fehler zu korrigieren Modularität, Wiederverwendbarkeit, Analysierbarkeit, Änderbarkeit, Testbarkeit
Portabilität
Portabilität
Portability Einfachheit, mit der ein System von einer Umgebung auf eine andere übertragen werden kann Anpassbarkeit, Installierbarkeit,
Austauschbarkeit

Die entscheidende Neuerung bei der ISO 25010 – auch unter dem Namen SQuaRE (Systems and Software Quality Requirements and Evaluation) bekannt – ist die Hinzunahme von Sicherheit und Kompatibilität als Hauptkategorien, die seit der Definition der ISO 9126 an Bedeutung hinzugewonnen haben. Interessant dabei ist, dass Sicherheit in der alten Norm noch eine Unterkategorie zu Funktionalität war, also sozusagen befördert wurde. Insgesamt erhalten wir damit ein vollständiges Modell zur Bewertung von Software-Qualität.

Das im englischsprachigen Raum weit verbreitete FURPS+ setzt sich aus zwei Bestandteilen zusammen: Die fünf Qualitätsmerkmale Funktionalität, Benutzbarkeit, Zuverlässigkeit, Effizienz und Änderbarkeit (der Name des Modells ist aus den Anfangsbuchstaben der englischen Begriffe abgeleitet) und dazu Rahmenbedingungen für Design, Entwicklung, Schnittstellen und Hardware. Die einzuhaltenden Rahmenbedingungen beeinflussen nämlich die Erreichung der Qualitätsziele mitunter stark. Auch bei der Verwendung von anderen Modellen müssen Projekte diese natürlich berücksichtigen.

Software-Qualität detaillierter erklärt

Die Unterkategorien helfen, die Bedeutung der Begriffe genauer einzuordnen. Zum Beispiel enthält der Begriff Effizienz neben dem offensichtlichen Zeitverhalten eben auch den Ressourcenverbrauch. Für Ihr Softwareprojekt bedienen Sie sich dieser Kategorien und nehmen auch eigene Begriffe hinzu, die in Ihrem Umfeld gebräuchlicher sind. Für eine Konkretisierung der Anforderungen an Ihr System benutzen wir sogenannte Qualitätsszenarien. Diese stellen das System in den Mittelpunkt und zeigen dessen Verwendung durch einen Akteur. Dieser kann neben dem Benutzer auch jemand aus dem Entwicklungs- oder Betriebsteam sein oder auch ein Fremdsystem. In einem weiteren Blogpost zeige ich, wie Qualitätsszenarien genau aussehen und gebe Beispiele für die aufgeführten Qualitätsmerkmale. Mit Merkmalen und dazugehörigen Szenarien erhalten Sie ein rundes Bild über die von Ihrem System gewünschte Qualität.

Auch wenn wir nun ein Modell gefunden haben, mit dem wir Software-Qualität bewerten können, rate ich davon ab, damit verschiedene Systeme untereinander zu vergleichen: Die Anforderungen für die Lösungen unterscheiden sich ebenso wie die Umfelder, in denen sie entwickelt werden. Verschiedene Lösungsalternativen für ein System können wir damit aber sehr gut vergleichen und die Aussage „So tut das nicht!“ beweisen oder widerlegen.

Leave a Reply