Architekturqualitätstools

Die inneren Werte


Innere Qualität ist für die Softwareentwicklung von zentraler Wichtigkeit. Nur wenn die Qualität stimmt, kann Software langfristig kostengünstig weiterentwickelt werden. Soll beispielsweise eine Codebasis für die Wartung übernommen werden, ist eine richtige Einschätzung der Qualität essenziell. Eigentlich müsste die gesamte Codebasis durch ein Code-Review bewertet werden – das ist aber zu aufwändig. Also muss man Tools nutzen, die einen Eindruck von der Qualität des Codes geben. Noch wichtiger ist eigentlich die Architektur: Aus welchen Elementen ist das System aufgebaut? Gibt es Schichten oder andere Abstraktionen?

Oft gibt es eine Dokumentation, wie das System eigentlich aufgebaut sein soll. Aber sie ist meist nicht vollständig oder wurde bei Änderungen nicht mit angepasst. So bleibt die Frage offen, ob der in der Dokumentation dargestellte Zustand sich so auch wirklich im Code wiederfindet.

Code- und Architektur-Reviews

Für eine effektive Analyse des Codes bieten sich Werkzeuge an, die aus dem Code die Struktur ermitteln. Beispiele sind der Sonargraph oder Structure 101. Im Wesentlichen zeigen diese Werkzeuge einen Überblick über die Klassen und Packages der Anwendung und die Beziehungen dazwischen. So lässt sich leicht überprüfen, ob eine Schichtung in der Anwendung auch tatsächlich eingehalten wurde oder ob es Klassen und Packages gibt, die zu groß und komplex sind. Oft ist es erhellend, das Ergebnis einer solchen Analyse mit dem eigentlich angestrebten Bild zu vergleichen, um so die Umsetzung der Architektur zu überprüfen. Außerdem können so architekturelle Probleme wie zyklische Abhängigkeiten erkannt werden. Dass Packages voneinander abhängen, ist natürlich nichts Ungewöhnliches. Bei einer zyklischen Abhängigkeit hängen aber zwei Packages wechselseitig voneinander ab. Wenn also Änderungen in einem der Packages vorgenommen werden, so kann das Auswirkungen auf das jeweils andere Package haben. Die beiden Packages können also streng genommen nicht mehr getrennt entwickelt werden – obwohl sie ja ursprünglich einmal separiert wurden. Genau solche Probleme können mit diesen Tools erkannt werden. Abbildung 1 zeigt einen Package-Zyklus aus einer älteren Versions eines populären Open-Source-Projekts. Ohne den Einsatz dieser Werkzeuge schleichen sich diese Probleme leicht in eine Codebasis ein.

wolff_qualitaetstools_1.tif_fmt1.jpgAbb. 1: Überblick über die Struktur einer Anwendung mit Structure 101: Die Packages sind zyklisch voneinander abhängig

Auch sonst helfen die Werkzeuge, weitere Prob...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang