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.