Die ISO 25010 Norm
Die ISO 25010 ist eine – leider lediglich auf Englisch verfügbare – international anerkannte Norm für Softwarequalität. Sie umfasst 2 Modelle, jeweils mit Attributen und deren Charakteristika: Das Product quality-Modell und das Quality in use-Modell. Sprachlich unterschieden werden diese Typen von Qualität im Entwickleralltag als interne und externe Qualität, beobachtbare und nicht-beobachtbare Qualität, sichtbare und unsichtbare Qualität, statische und dynamische Qualität und – mein Favorit – als objektive und subjektive Qualität. Safety, Energieeffizienz und UX werden als Qualitätsattribute vielleicht vermisst, wenn man sich ausschließlich mit dem Product quality-Modell befasst. Wir werden sehen, wo sie die ISO 25010 Norm nennt und einordnet.
Das Product quality-Modell
Das Product quality-Modell erstreckt sich über 8 Qualitätsattribute:
- Functional suitability,
- reliability,
- performance efficiency,
- usability,
- security,
- compatibility,
- maintainability und
- portability.
Statt jedes dieser Attribute zu erläutern, möchte ich insbesondere auf zwei dieser Qualitätsaspekte näher eingehen: Functional suitability und Usability.
Functional Suitability
Functional suitability, also die funktionale Angemessenheit eines Softwaresystems, schlägt die Brücke zwischen der Softwarequalität als Sammlung nichtfunktionaler Anforderungen und den funktionalen Anforderungen eines Softwaresystems.
Die funktionale Angemessenheit eines Softwaresystems hat laut der ISO 25010 die Charakteristika:
- Functional completeness,
- Functional correctness und
- Functional appropriateness.
Funktionen – und damit die funktionalen Anforderungen eines Systems – müssen also vollständig, korrekt und geeignet sein. Diese Charakteristika bilden den Rahmen für die Erhebung der funktionalen Anforderungen an das zu entwickelnde System.
Usability
Die Usability (Gebrauchstauglichkeit) eines Softwaresystems ist, anders als einige vermuten, eine objektive Produktqualität und nicht abhängig von der Produktnutzung.
Zu Usability gehört als Charakteristik - neben anderen - Accessibility. Auch dieses Qualitätsmerkmal gilt es, bereits zur Entwicklungszeit zu optimieren; es tritt nicht erst während der Systemnutzung auf.
Das Quality in use-Modell
Interessant ist allerdings, dass die sich tatsächlich erst während der Systeminteraktion ausprägenden Qualitätsattribute Efficiency, Effectiveness und Satisfaction als traditionelle Faktoren der Usability in der ISO 25010 als Attribute der Nutzungsqualität kodiert sind. Usability wird hier nicht explizit genannt, auch nicht, dass diese drei Attribute überhaupt mit Usability in Verbindung stehen, mehr noch, dass sie die Faktoren der Usability darstellen.
Safety und Energy Efficiency
Als Produktqualität tauchen die beiden Attribute Safety und Energy efficiency in der ISO 25010 nicht auf, obwohl sie neben den genannten Qualitäten wichtig sind. Wir finden sie allerdings in dem Nutzungsqualitätsmodell. Es ist nachvollziehbar, sie dort zu nennen, handelt es sich doch um Qualitäten, die abhängig von der Interaktion mit dem System sind. Weder das Verhalten des Nutzers, das zu unvorhersehbaren Verletzungsgefahren führen kann, noch der Energiebedarf, der je nach Nutzungsart in die Höhe schnellen kann, wären als Produktqualität und damit als objektive Qualitätsattribute zur Entwicklungszeit umfassend implementierbar.
Safety und Energy efficiency als Freedom from risk
Beide Attribute, Safety sowie Energy Efficiency, sind Charakteristika von Freedom from risk. Freedom from risk ist neben den drei genannten Usability Faktoren ein viertes Attribut der Nutzungsqualität. Der Vollständigkeit halber sei genannt als fünftes und letztes Qualitätsattribut der Nutzungsqualität auch Context coverage. Context Coverage beschreibt die Abdeckung der möglichen Nutzungsumgebungen eines Softwaresystems. Auch diese sind nicht objektiv und somit nicht als Produktqualität darstellbar.
Freedom from risk umfasst die Charakteristika Economic risk mitigation, Health and safety risk mitigation und Environmental risk mitigation.
In Health and safety risk mitigation finden wir Safety explizit genannt. Environmental risk mitigation bezieht sich auf alle Umweltrisiken bei der Systemnutzung, also auch auf Energiebedarf und -verschwendung.
User Experience (UX)
Die UX entwickelte sich historisch durch die Ergänzung der Usability durch emotionale Aspekte. Die Nutzung eines Softwaresystems war nicht mehr nur rein funktionale Abarbeitung von Tasks und Prozessen, sondern sollte Nutzer emotional ansprechen, motivieren, in ihren Bann ziehen und Spaß bereiten. Als unendlich breite Qualität eines Softwaresystems darf sie also in keinem Qualitätsmodell fehlen. Wo aber versteckt sie sich in der ISO 25010?
Sie ist Teil der Nutzungsqualität und Charakteristik der Zufriedenheit. Dieser Usability-Faktor war unterspezifiziert und wird durch UX verfeinert. Die ausschlaggebende Charakteristik der Zufriedenheit ist Pleasure die in die ISO 25010 definiert wird als „degree to which a user obtains pleasure from fulfilling their personal needs“.
Personal needs sind basale psychologische Grundbedürfnisse, die erfüllt sein müssen, um positive UX zu empfinden. Um welche Grundbedürfnisse es sich handelt, erklärt die ISO 25010 nicht. Ausschlaggebend ist allerdings, dass die UX seit 2011, dem Jahr der Veröffentlichung der ISO 25010, offiziell eine Qualitätscharakteristik von Softwaresystemen ist. Sie prägt sich während der Nutzung aus, ob wir wollen oder nicht. Sie ist nicht vernachlässigbar und nicht objektiv als Qualität während der Softwareentwicklung bereits vor der tatsächlichen Interaktion eines Nutzers mit einem Softwaresystem festlegbar.
Um UX möglichst positiv zu gestalten, sind bereits vor der Entwicklung die psychologischen Grundbedürfnisse der Zielgruppen zu erheben. Anderenfalls ist eine positive UX, ausgelöst durch die Interaktion mit dem Softwaresystem, reiner Zufall.
Fazit
Bei der Entwicklung einer soliden Softwarearchitektur geht es um mehr als die Berücksichtigung objektiver Produktqualität, die durch hohe Codequalität gewährleistet werden kann. So gehören zu der Qualität von Software ebenso eine Reihe von Qualitätsattributen, die erst zur Laufzeit dynamisch und subjektiv erzeugt, ausgeprägt und wahrgenommen werden können.
Solche Qualitätsattribute sind auch Safety, Energy Efficiency und User Experience. Es sind die Nutzer des Softwaresystems, die mit ihrem individuellen Verhalten und ihrer subjektiven Wahrnehmung, Assoziation und Interpretation die Ausprägung und das Ausreichen dieses Teilbereichs der Softwarequalität beurteilen und nur sie allein können diese Beurteilung vornehmen. Es ist essentiell, vor der Entwicklung, vor der Systemarchitektur den Nutzerkontext, das Nutzerverhalten, die Nutzereinstellung, die Nutzerbedarfe und die Nutzerbedürfnisse zu erheben. Umso leichter fällt die Ausgestaltung der Softwareentwicklung und Softwarearchitektur, umso geringer wird das Risiko, Nutzer nicht zufriedenzustellen, Schäden für Körper und Umwelt zu erzeugen.
Aufgrund des breiten Spektrums von UX besteht für diesen Bereich eine eigene Architektur. Die UX-Architektur, bestehend etwa aus Informationsarchitektur, Funktionsarchitektur und Benutzungsschnittstellenarchitektur unter Berücksichtigung von Nutzerbedürfnissen und Nutzererwartungen. Doch dies ist eine andere Geschichte.