Sunday, December 21, 2014

Softwarearchitektur: Checkliste für Wartbarkeit-Szenarien

Szenarien sind ein weit verbreitetes Mittel, um die Qualitätsanforderungen an eine Software zu konkretisieren. Beigetragen hat dazu sicherlich das Software Engineering Institute der Carnegie Mellon University mit seiner szenariobasierten Methode zur Bewertung von Architekturen, genannt ATAM (Architecture Tradeoff Analysis Method).

Szenarien kommen also in zwei Situationen zum Einsatz: bei der Anforderungsklärung, um eine passende Software Architektur zu definieren, sowie bei der Bewertung einer Software Architektur, ob die Qualtitätsanforderungen ausreichend adressiert werden.

Ein Szenario hat vor allem folgende Attribute:

  • Stimulus: ein Ereignis, auf das die Software reagieren muss. Je nachdem, welches Qualitätsattribut durch das Szenario präzisiert wird (Wartbarkeit, Verläßlichkeit, Effizienz, etc), können das ganz unterschiedliche Dinge sein: die Installation der Software, eine Benutzereingabe, eine Nachricht von einem Fremdsystem, die Knappheit oder der Ausfall einer Resource, eine Änderungsanfrage vom Produktmanager oder noch was ganz anderes.
  • Response: die erwartete Reaktion der Software auf den Stimulus. Das kann die Beantwortung der Benutzereingabe, die Aufrechterhaltung des Betriebs trotz Teilausfalls oder die durchzuführenden Änderungen an der Software sein. Stimulus und Response sollten so konkret formuliert sein, dass tatsächlich eine Umsetzbarkeit durch den Architekten beziehungsweise eine Bewertung der Architektur möglich ist. Idealerweise ist die Metrik und der Zielwert für die Response exakt angegeben.

Weitere Attribute können sein:

  • ein Name für das Szenario
  • Quelle des Stimulus
  • Umgebung, in der das Szenario abläuft: beim Endnutzer, beim Entwickler, während der Installation, im degradierten Betrieb etc.
  • der Zielwert für die Repsonse
  • die Metrik für die Messung des Zielwerts
  • der Autor oder Ansprechpartner für Rückfragen
  • eine ID

Außerdem werden im Zuge einer Architekturbewertung natürlich alle Architekturentscheidungen, die eine Relevanz für das Szenario haben, diesem zugeordnet.

Bei der Arbeit mit Szenarien helfen Checklisten, alle wichtigen Details von Stimulus und Response zu erfassen und relevante Architekturentscheidungen zu identifizieren. Meine aktuelle Checkliste für Szenarien bezüglich Wartbarkeit sieht wie folgt aus:

Diese Checkliste basiert auf eigener Erfahrung und:

  • Appendix A Attribute Characteristics in ATAM: Method for Architecture Evaluation von Rick Kazman, Mark Klein, Paul Clements http://resources.sei.cmu.edu/library/asset-view.cfm?assetid=5177 und
  • Applicability of General Scenarios to the Architecture Tradeoff Analysis Method von Len Bass, Mark Klein, Gabriel Moreno http://resources.sei.cmu.edu/library/asset-view.cfm?assetid=5637

Feedback willkommen: Hilft Dir das so? Was würdest Du ergänzen?