Quality-driven Software Architecture

Qualität systematisch konstruieren

Als Softwarearchitekt müssen Sie bei der Konstruktion und Implementierung Ihrer Systeme also von Beginn an großen Wert auf die Erreichung der wichtigen Qualitätsmerkmale legen. Zum Glück ist das in der Praxis mit ein bisschen Systematik auch ohne neue Werkzeuge gut machbar. Sie sollten erst mal Qualität zu Ihrem wichtigsten Entwurfsziel erheben und ihr dementsprechend Augenmerk widmen. Folgen Sie dann einem klassischen Planen-Handeln-Prüfen-Zyklus (analog dem PDCA aus [3]) mit den folgenden Schritten:

  1. Aim = zielen: Konkretisieren und priorisieren Sie die notwendigen Qualitätsanforderungen.
  2. Plan = Maßnahmen planen: Definieren Sie (gemeinsam mit Ihrem Team) Maßnahmenpakete für die jeweiligen Qualitätsanforderungen. Priorisieren Sie auf Basis fachlicher und technischer Gegebenheiten.
  3. Build = bauen: Setzen Sie die hoch priorisierten Maßnahmen um. Dies bedeutet meistens, Teile des Systems zu implementieren.
  4. Check = prüfen: Überprüfen Sie die Wirksamkeit Ihrer Maßnahmen. Hierzu müssen Sie möglichst nah am laufenden System oder Teilen davon messen und testen. Bei Bedarf können Sie nun nachsteuern. Fangen Sie dazu beim ersten Schritt wieder an.

Dieses zyklische oder iterative Vorgehen, das in Abbildung 6 grafisch veranschaulicht wird, erhebt die systematische Überprüfung der Zielerreichung zum System [4]. Es stellt sicher, dass hoch priorisierte Qualitätsanforderungen rechtzeitig in der Konstruktion und Entwicklung berücksichtigt werden. Die Build- und Check-Aktivitäten sind ganz normales Architektur- bzw. Projektgeschäft, Aim und Plan bedürfen hingegen einer Erläuterung.

Abb. 6: Aim, Plan, Build, Check: Qualität systematisch konstruieren
Aim: Qualitätsziele konkretisieren

In der idealen Welt bekommen Sie als Softwarearchitekt aus dem Requirements Engineering bereits konkrete und spezifische Qualitätsanforderungen als Vorgabe. Allerdings habe ich in vielen Jahren in der IT-Branche selten ideale Zustände angetroffen, regelmäßig musste ich die Qualitätsanforderungen an Systeme nacharbeiten. Das hat den einfachen Grund, dass die Funktionen und Abläufe eines Systems sich meist recht einfach beschreiben lassen, sich Auftraggeber und andere Stakeholder jedoch mit der konkreten, präzisen Beschreibung von Wartbarkeit, Flexibilität, Robustheit, Ergonomie und Effizienz meist sehr schwer tun. Dabei gibt es doch seit Langem Abhilfe gegen dieses Problem: Methoden wie Qualitätsszenarien ([5], eine deutsche Kurzfassung in [6]) oder Planguage [7] helfen, Qualitätsanforderungen und -ziele pragmatisch und operationalisiert zu beschreiben. Ich möchte Ihnen die Szenarien, genauer gesagt Qualitätsszenarien, als nützliches Hilfsmittel vorstellen. Weiter oben haben wir den Oberbegriff Qualität bereits in Form eines Qualitätsbaums verfeinert. Nun widmen wir uns den Blättern dieses Baumes. Wir konkretisieren diese Blätter mit Szenarien, um genauer zu beschreiben, was die jeweiligen Stakeholder mit diesem Begriff meinen. Dabei können sich durchaus mehrere unterschiedliche Szenarien auf ein einzelnes Qualitätsmerkmal beziehen. Wiederum sollen Ihnen statt grauer Theorie einige Beispiele (Tabelle 1) diesen Ansatz verdeutlichen. Allgemein beschreiben Szenarien die Reaktion eines Systems auf Ereignisse. Viele Qualitätsmerkmale lassen sich mithilfe von Szenarien konkretisieren, insbesondere Effizienz, Performance, Flexibilität, Erweiterbarkeit und Zuverlässigkeit.

Tabelle 1: Beispiel von Qualitätsszenarien

Merkmal Untermerkmal Szenario Priorität
Zuverlässigkeit Robustheit Beim Upload eines korrumpierten jpg-Fotos gibt das System einen aussagekräftigen Hinweis ohne Absturz. B
Robustheit Beim Upload eines unbekannten Dateityps (etwa pdf, svg, tiff) gibt das System eine entsprechende Meldung und speichert die Daten ohne Absturz. A
Zuverlässigkeit Datenintegrität Das System wird unter keinen Umständen die von Benutzern hochgeladenen Fotos modifizieren oder beschädigen. A
Performance Benutzerzahl Das System unterstützt bis zu 15 Millionen Benutzer, die jeweils bis zu 50 Gigabyte Speicher für Fotos und Metadaten nutzen dürfen. B
Benutzerfreundlichkeit Erlernbarkeit Gelegenheitsnutzer sollten in weniger als 2 Minuten in der Lage sein, ihr erstes Foto zu speichern. B
Erlernbarkeit Benutzer sollten auch komplexere Suchanfragen ohne Zuhilfenahme der Dokumentation erstellen können. C
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.