Woran erkennt man eine gute Software-Architektur?

Das war die Frage am Ende meines Webinars zum Thema „Agile Software-Architektur“. Zuvor hat der Teilnehmer diese Geschichte erzählt:

„Wir kommen mit unserer Embedded Software an den Punkt, an dem sie nicht mehr erweitern können. Die Software unterstützt unsere Gerätefamilien seit über 10 Jahre. Nach Änderungen für ein Produkt kommt es zu unerwartetem Verhalten in anderen Produkten“.

Haben Sie von einer ähnlichen Geschichte auch schon mal gehört? Der Zustand einer Software wird dann auch als „historisch gewachsen“ oder „big ball of mud“ bezeichnet.

Qualitätsmerkmale sind die Antwort

Die Frage nach der guten Software-Architektur ist einfach beantwortet: Eine gute Software-Architektur erkennt man daran, dass sie die geforderten Qualitätsmerkmale umsetzt. Im Falle der obigen Geschichte fällt es unter das Qualitätsmerkmal der Wartbarkeit von Software. Wobei wartbar ist die „historisch gewachsene“ Software ja prinzipiell, nur ist es teuer, diese wieder in den gewünschten, fachlich korrekten Zustand zu überführen. Das Ergebnis ist in jedem Fall unbefriedigend:

  • hoher Aufwand
  • die notwendigen Erweiterungen an der Funktionalität verteilt sich vermutlich über viele Stellen in der Software

Qualitätsmerkmale werden im Qualitätsmodellen ISO 25010 ausführlich beschrieben. Man erkennt, dass sich Qualitätsmerkmale auf unterschiedliche Phasen des Lebenszyklus von Software auswirken.

Betrieb der Software Zeitverhalten, Verbrauchverhalten, Zuverlässigkeit, Benutzbarkeit, Portierbarkeit, Safety, Security, …
Entwicklung der Software Wartbarkeit: Analysierbarkeit, Änderbarkeit, Stabilität, Testbarkeit

Tabelle 1: Wirkung von Qualitätsmerkmalen

Es gibt einen wichtigen Aspekt bei der Priorität von Qualitätsmerkmalen. Man kann sie in wichtige, kritische und nicht relevante Qualitätsmerkmale unterteilen.