Der Reise-Butler ist die Smartphone-App für den wissbegierigen Reisenden und Fallbeispiel für die Methode CARDS+.


Moritz hat in früheren Projekten erlebt, dass nicht funktionale Aspekte und Qualitätsmerkmale als vorgefertigter Katalog aufgefasst wurden. Bereits beim Projektstart sollten sie neben funktionalen und betrieblichen Anforderungen erfasst werden. Sie wurden oftmals unvollständig erhoben, sehr ungenau formuliert oder aus anderen Projekten einfach übernommen.

Das System muss mit fehlerhaften Eingaben des Nutzers umgehen können und gegebenenfalls Rückmeldung an den Nutzer geben.

Diese spannende Formulierung für ein Qualitätsmerkmal lässt sehr viel Spielraum für Interpretationen.

  • Was sind fehlerhafte Eingaben?
  • Was bedeutet es, mit fehlerhaften Eingaben umgehen zu können?

Der Weichmacher “gegebenenfalls” ist schließlich noch das letzte i-Tüpfelchen der Unverbindlichkeit.

Das System muss alle Daten verschlüsselt übertragen.

Der Auftraggeber, der diesen Satz formulierte, wollte ursprünglich sicherstellen, dass alle Eingaben der Nutzer verschlüsselt übertragen werden. Ein Großteil des Systems sollte jedoch ohne Nutzeraktivitäten in einem sicheren Bereich laufen. Dort wäre der Verzicht auf eine Verschlüsselung in den technischen Schnittstellen möglich. Durch das unspezifische Qualitätsmerkmal ist diese Vereinfachung aber nicht zulässig.

Das System muss in der Lage sein, unterbrechungslos und ausfallsicher alle Daten konsistent und fehlerfrei zu verarbeiten.

Dieser Satz wirkt im ersten Moment herausfordernd, aber nachvollziehbar. Unterbrechungsfrei und ausfallsicher sind Eigenschaften eines verteilten Systems. Es ist normal, dass ein System Daten konsistent und fehlerfrei verarbeiten soll. Betrachten wir jedoch das CAP-Theorem, das besagt, dass es in einem verteilten System unmöglich ist, gleichzeitig die drei Eigenschaften Konsistenz (englisch: consistency), Verfügbarkeit (englisch: availability) und Ausfalltoleranz (englisch: partition tolerance) zu garantieren, dann wird klar, dass der Auftraggeber auf eine der geforderten Eigenschaften verzichten muss. Die richtige Wahl ist entscheidend für den Erfolg.

Qualitätsmerkmale, auch bekannt als nicht funktionale Aspekte, legen fest, unter welchen Rahmenbedingungen Funktionen eines Systems ausgeführt werden sollen. Ziel ist es, das System so auszulegen und zu betreiben, dass die Nutzer optimal damit arbeiten können. Die internationale Norm ISO 9126 definiert Qualitätsmerkmale in insgesamt sechs Hauptkategorien.

Funktionalität (englisch: functionality, functional suitability) ist das Vorhandensein von Funktionen mit angeforderten Eigenschaften. Funktionale Software besitzt einen angemessenen Umfang und ist ordnungsgemäß realisiert. Da aber ein Software-Test nur die Anwesenheit, aber nicht die vollständige Abwesenheit von Fehlern zeigen kann, ist eine fehlerfreie Software eher als nie erreichbares Ziel zu sehen.

ktip Das Vorhandensein einer angemessenen Produktdokumentation fällt in diesen Bereich.

Zuverlässigkeit (englisch: reliability) ist die Fähigkeit der Software, ihr Leistungsniveau unter festgelegten Bedingungen über einen festgelegten Zeitraum zu bewahren. Über Verfügbarkeit erfolgt die Festlegung, inwieweit eine Anwendung rund um die Uhr verfügbar ist. Weitere Merkmale sind die Wiederherstellbarkeit und die Fehlertoleranz. Wiederherstellbarkeit bezeichnet die Fähigkeit einer Software, das IT-System an dem Punkt wiederherzustellen, an dem es einen Ausfall gab. Fehlertoleranz ist die Eigenschaft einer Software, seine Funktionsweise auch dann aufrechtzuerhalten, wenn unvorhergesehene Eingaben oder Fehler in einzelnen Komponenten auftreten.

Benutzbarkeit (englisch: usability) ist die Fähigkeit des Produktes, Standards, Konventionen, Stilvorgaben (englisch: style guides) oder Vorschriften bezogen auf die Benutzbarkeit einzuhalten. Benutzbarkeit ist eng verwandt mit dem Begriff Gebrauchstauglichkeit. Gebrauchstauglichkeit bezeichnet die Eignung eines Produktes bei der Nutzung durch bestimmte Nutzer die angestrebten Ziele effektiv, effizient und zufriedenstellend zu erreichen.

ktip Die Ergonomie der Benutzeroberfläche und die Verwendung von Personas zur Dokumentation von Nutzerverhalten fällt in diesen Bereich.

Effizienz (englisch: efficiency, performance) ist das Verhältnis zwischen dem Leistungsniveau der Software und dem Umfang der eingesetzten Betriebsmittel unter festgelegten Bedingungen. In der Praxis wird Effizienz oftmals mit den Eigenschaften Leistungsfähigkeit (englisch: performance), Verarbeitungsgeschwindigkeit, Antwortzeit, Skalierbarkeit, Durchsatz, Speicherbedarf oder Mengengerüst bewertet.

ktip Die Effizienz vorhandener Software kann “am lebenden Objekt” objektiv gemessen werden. Insofern ist die Prüfung, ob Effizienzanforderungen an die Software erreicht werden, durch den Einsatz von Werkzeugen für Datenanalyse und Monitoring möglich.

Wartbarkeit (englisch: maintainability) ist ein Sammelbegriff für Änderungen mit dem Ziel, Korrekturen, Verbesserungen oder Anpassungen an der Software für neue Anforderungen oder geänderten Qualitätsmerkmalen durchzuführen. Eine Software gilt als wartbar bzw. gut änderbar, wenn der Aufwand für die Durchführung von Änderungen gering ist. Dieses Ziel kann durch modularen Aufbau mit wiederverwendbaren Komponenten erreicht werden. Eine umfangreiche Testpyramide und gute Analysemöglichkeiten sind weitere Merkmale einer wartbaren Software.

ktip Die Forderung nach einer technischen Dokumentation sowie die Festlegung und Messung von Code-Qualität (englisch: clean code) und Testabdeckung (englisch: test code coverage) fällt in diesen Bereich.

Portabilität (englisch: portability), auch Übertragbarkeit, ist die Eignung der Software, von der Umgebung in eine andere übertragen werden zu können. Daraus leitet sich der Anspruch ab, dass Software leicht installierbar und Komponenten der Software leicht austauschbar sind.

Die ISO 9126 wurde inzwischen von der ISO 25010 abgelöst. Die entscheidenden Neuerungen bei der ISO 25010 – auch unter dem Namen SQuaRE (Systems and Software Quality Requirements and Evaluation) bekannt – sind die Hinzunahme von Sicherheit und Kompatibilität als Hauptkategorien, die seit der Definition der ISO 9126 an Bedeutung hinzugewonnen haben.

Sicherheit (englisch: security) ist ein Sammelbegriff für alle Fähigkeiten einer Software, die notwendig sind, um Daten und das IT-System so zu schützen, dass beabsichtigte Zugriffe erkannt und unerlaubte Zugriffe abgewehrt werden.

Kompatibilität (englisch: compatibility), auch Interoperabilität, kennzeichnet die Fähigkeit der Software von mindestens zwei IT-Systemen, Daten oder digitale Information untereinander auszutauschen, diese digitalen Daten korrekt zu interpretieren und zu verarbeiten.

ktip Das Vorhandensein einer angemessenen Schnittstellendokumentation fällt in diesen Bereich.

Jede dieser Hauptkategorien hat noch eine Reihe Unterkategorien. In Summe unterscheiden die beiden Normen also mehr als 30 (!) Eigenschaften eines IT-Systems.

Moritz weiß aus eigener Erfahrung, dass Verantwortliche in den Projekten gerne annehmen, dass Entwickler schon wissen, wie sie Qualitätsmerkmale umsetzen müssen. Das stimmt auch. Eigentlich.

Qualitätsmerkmale werden nicht einfach programmiert. Sie sind Eigenschaften, die durch die Wahl des Architekturstils, durch den Einsatz bestimmter Infrastrukur oder Anwendung bestimmter Entwurfsmuster bestimmt werden. Qualitätsmerkmale beeinflussen sich gegenseitig. Häufig “zerren” sie von zwei Seiten, d.h. stärken wir ein Qualitätsmerkmal, schwächen wir ein anderes. Bauen wir beispielsweise ein verteiltes System, verbessern wir das Zeitverhalten, erschweren aber die Analysierbarkeit. Das CAP-Theorem ist ein weiteres Beispiel für dieses Dilemma.

Moritz beschließt, keinen Katalog von Qualitätsmerkmalen zu schreiben. Er möchte die Qualitätsmerkmale als Teil der Produktdokumentation entwickeln. Die Hauptkategorien aus der ISO 9125 bzw. ISO 25010 nutzt er zur Strukturierung der Qualitätsmerkmale im Wiki. Zu jedem Qualitätsmerkmal  stellt er sich die folgende Frage:

« Welche bereits getroffene Entscheidung hat Einfluss auf dieses Qualitätsmerkmal? »

Moritz nimmt jede Entscheidung, die er oder das Team mit dem Baustein Decision dokumentiert hat, und versucht sie mindestens einem Qualitätsmerkmal zuzuordnen, indem er in der Seite des Qualitätsmerkmals eine Verknüpfung zur Seite mit der Entscheidung einfügt. Er ergänzt eine Begründung, die erklärt, warum diese Entscheidung relevant für das Qualitätsmerkmal des Produktes ist.

Eine andere Form von Entscheidung ist die Verwendung von Produkten anderer Hersteller für die Realisierung der eigenen Komponenten. Der Baustein Service sieht im Steckbrief eine Liste der verwendeten Technologien vor. Die Liste besteht aus Verknüpfungen zu Modulen, die mit dem Baustein Spec dokumentiert wurden. Jedes “fremde” Produkt hat selbst Qualitätsmerkmale, die das eigene Produkt besser machen. Moritz untersucht alle eingesetzten Module und ordnet sie einem Qualitätsmerkmal zu, indem er in der Seite des Qualitätsmerkmals eine Verknüpfung zur Seite mit der Beschreibung des Moduls einfügt. Er ergänzt auch hier eine Begründung, die erklärt, warum dieses Modul relevant für dieses Qualitätsmerkmal ist.

Moritz verfolgt ein Ziel. Er will für jedes Qualitätsmerkmal mindestens eine Entscheidung oder ein eingesetztes Modul identifizieren. Gleichzeitig möchte er die Qualität der Beschreibung der Module verbessern, indem er nicht funktionale Aspekte bei den Herstellern recherchiert und seine Erkenntnisse im Wiki festgehalten hat. Die Erfassung der Qualitätsmerkmale ist für Moritz auch eine Chance, die Vollständigkeit der Produktdokumentation zu überprüfen. Der Umfang der Beschreibung für ein Qualitätsmerkmal zeigt auch, wie viele Gedanken sich ein Team bereits über die Qualitätsmerkmale gemacht hat. Nicht zu unterschätzen ist der Überblick zu jedem einzelnen Qualitätsmerkmal. Diese kompakte Zusammenstellung von Entscheidungen zu einem Thema zeigt Abhängigkeiten, die sonst nicht so leicht erkennbar sind.

Moritz ist für den Moment zufrieden. Er sieht das Arbeitsergebnis von heute als ersten Aufschlag, den er ab jetzt kontinuierlich verbessern will.

Zuletzt veröffentlichte Beiträge: