Zum Inhalt springen

Blogeintrag

Kontinuierliche Architekturanalyse

Architektur, Modellierung & Design  Consulting 

Die Symptome sind jedem bekannt: Je älter ein Software-System ist, desto länger dauert es Änderungen daran vorzunehmen. Das strapaziert nicht nur die Nerven der Entwickler, sondern auch die Geldbörse des Auftraggebers. Viele Software-Entwicklungsteams setzen daher statische Codeanalysewerkzeuge und Reviews ein. Dabei geht es vorwiegend um Codequalität und Design. Was noch fehlt, ist auch das Grobe regelmäßig zu prüfen – nämlich die Architektur.

Architekturanalyse erfreut sich einer immer größeren Beliebtheit. Hauptgrund dafür ist eine neue Generation von Werkzeugen. Architektur lässt sich jetzt automatisch und als Teil des Continuous Integration überprüfen.

Architekturanalysewerkzeuge haben meist zwei Hauptfunktionen. Zum einen messen sie typische Architekturmetriken (z. B. Kopplung, Kohäsion, Abstraktheit, Instabilität, Distanz, Zyklen) und zum anderen warnen sie, wenn eine Metrik außerhalb eines definierten Bereiches liegt. Die viel interessantere Funktion ist jedoch die Überprüfung von Regeln. Regeln leiten sich etwa aus Architekturmuster, Architekturstile oder aus Prinzipien ab. Hier einige Beispiele:

  • Beim 3-Schichtenmodell darf eine obere Schicht auf die darunterliegende Schicht zugreifen, aber nicht umgekehrt. Außerdem darf keine Schicht übersprungen werden.
  • Microservices dürfen sich nicht direkt aufrufen. Die Kommunikation muss streng entkoppelt sein – meist über REST oder Message Queues. Auch gemeinsamer Code ist unerwünscht, um die Flexibilität hoch zu halten.

In Architekturanalysewerkzeugen kann man solche Regeln in Form einer SOLL-Architektur modellieren und dann als Teil des Builds oder des Continuous Integrations automatisch mit der IST-Architektur vergleichen. Entwickler erhalten so zeitnahe Feedback und die Architektur bleibt sauber.

Abbildung 1: Sonargraph zeigt durch eine rot dargestellte Verbindung eine Regelverletzung an

Wer schon unter einer degenerierten Architektur leidet, kann mit einigen Architekturanalysewerkzeugen auch virtuelles Refactoring vornehmen. Das Werkzeug zeigt einem dabei grafisch die Strukturen und Regelverletzungen an. Der Architekt erzeugt anschließend neue (virtuelle) Bausteine, verschiebt per Drag&Drag Code und beobachtet, ob die Regelverletzungen weniger und die Metriken besser werden. Abschließend generiert der Architekt mit dem Werkzeug eine Liste von Refactoring-Aufgaben für die Entwickler.

 

Abbildung 2- Sonargraph  zeigt einen unerwünschten Zyklus zwischen Paketen an

Software Quality Lab unter stützt Sie bei der Auswahl und Einführung eines Architekturanalysewerkezeuges. Wir helfen Ihnen auch, die SOLL-Architektur zu modellieren und das Refactoring zu planen.

Fachlicher Kontakt

Markus Unterauer Profilbild

Markus Unterauer

markus.unterauer@software-quality-lab.com

 +43 676 840072-438