Software-Architekturanalyse

Stimmen Implementierung und
Ihre Softwarearchitektur überein?

Nur wenn Softwarearchitektur und Entwurf mit dem Code übereinstimmen, können Sie sicher sein, dass Sie die Softwarearchitektur als Richtschnur und Leitlinie für die Diskussion über die Auswirkung neuer Features nutzen können. Denn genau hierfür ist Softwarearchitektur gedacht: für die langfristig zielgerichtete und geplante Entwicklung Ihrer Produkte. Doch erst durch eine Architekturprüfung wird die notwendige Übereinstimmung zwischen Architektur und Implementierung wirklich gewährleistet.

Architektureinhaltung ist auf lange Sicht der Schlüssel zum Erfolg

Der Einsatz der Architekturprüfung (auch Architektur-Check, Architektur-Verifikation oder Architektur-Konformanzprüfung genannt) stellt sicher, dass Entwickler und Software-Architekten die Basis des zu entwickelnden Systems nicht verlassen, sondern auf ihr aufbauen. Die Struktur des Systems bleibt klar und sauber, Software Architektur-Erosion und Architektur-Schulden werden transparent gemacht und so wirkungsvoll bekämpft.

Zusätzlich enthält die Software-Architektur in sicherheitsrelevanten Systemen selbst sicherheitsrelevante Attribute und Strukturen und muss daher im Code genau umgesetzt werden. Abweichungen von der Architektur werden zu einer Gefahr für die funktionale Sicherheit. Durch die Architektur-Konformanzprüfung wird diese Bedrohung effektiv entschärft.


Wo kommt die Software-Architektur für die Architekturprüfung her?

Die Architekturprüfung basiert auf dem strukturellen Modell der Architektur und/oder des Entwurfs Ihrer Software. Diese statische Struktur kann als UML-Modell (z.B. als Package- oder Komponenten-Diagramm) oder als jede andere Form einer Graph-Struktur dargestellt werden. So sind auch eine textuelle Architekturbeschreibung oder ein Bild der geplanten Architektur geeignete Ausgangspunkte und das Vorgehen hierzu wird weiter unten beschrieben.

Die Axivion Suite kann Software-Architekturen aus weit verbreiteten UML-Werkzeugen wie Enterprise Architect und IBM Rational Rhapsody® importieren. Dadurch lässt sich die Architekturprüfung direkt und einfach mit den bestehenden Architektur- und Design-Prozessen verzahnen.

Für alle, die noch keine Architektur-Dokumentation besitzen, hält die Axivion Suite Möglichkeiten der Wiedergewinnung, des Reverse Engineering und der Modellierung bereit.

Abhängig von den Ausgangsvoraussetzungen wird die Software-Architekturanalyse mit einem existierenden semiformalen Modell, einer dokumentierten Beschreibung der Architektur oder durch Annahmen und Hypothesen über eine mögliche Architektur gestartet. Man kann diese Einteilung grob durch Software-Architekturverifikation, Software-Architekturwiedergewinnung und Software-Architekturarchäologie beschreiben. Es gibt Zwischenzustände und das Ziel ist jedes Mal, die Ausgangsvoraussetzungen für eine kontinuierliche Software-Architekturverifikation zu schaffen.

Software-Architekturverifikation / Software-Architektur-Check

Der Architekturcheck nutzt eine Architekturbeschreibung in einer semiformalen Notation, wie sie z.B. UML liefert. Die Axivion Suite kann Modelle und Mapping-Informationen aus weit verbreiteten UML-Werkzeugen wie Enterprise Architect und IBM Rational Rhapsody® importieren. Die Mapping-Information beschreibt in diesem Prozess, wie die Architektur mit dem Code zur Deckung gebracht werden kann.

Nach dem Import kann der Graph des Modells unmittelbar mit dem aus der Codeanalyse der Axivion Suite stammenden Graphen der Implementierung verglichen werden. Im Ergebnis gibt es bei Übereinstimmung Konvergenzen, bei überzähligen, nicht implementierten Beziehungen im Modell Absenzen und bei überzähligen Beziehungen in der Implementierung Divergenzen, die dann auf Probleme im Code hinweisen.

In einem iterativen Prozess können jetzt Implementierung und Architektur in Übereinstimmung gebracht werden. Die Architekturprüfung muss fester Bestandteil des CI-Prozesses werden, damit kein Rückfall passiert. Entstehende Architekturverstöße werden dadurch unverzüglich aufgedeckt und können im frühen Stadium besprochen und gelöst werden. Die Einhaltung der vorgegebenen Architektur im Code wird damit sichergestellt, eine weitere Architekturerosion wird gestoppt und Architekturschulden können über zielgerichtete Refactoring-Maßnahmen, die sich über die Ergebnisse des Architekturchecks direkt überwachen lassen, behoben werden.

+ Downloaden Sie unser kostenloses Online-Seminar: „Checking Enterprise Architecture models against code“

Software-Architektur-
Wiedergewinnung

Die Architektur-Wiedergewinnung startet in einem bekannten Projekt. Eventuell haben zu Beginn des Projektes Architekturskizzen existiert, welche nicht weitergepflegt wurden. Neue Anforderungen und Wartungsaufgaben haben diese ursprüngliche Architektur verwässert und sie wurde auch nicht konsequent überprüft.

Trotzdem existiert noch eine Vorstellung von einer grundlegenden Architektur und rudimentäre Fragmente sind noch verfügbar. Aus diesen Fragmenten und Annahmen wird jetzt die Architekturhypothese aufgestellt. Diese initiale Hypothese wird durch den Abgleich mit der Implementierung validiert und Abweichungen werden in einem iterativen Prozess behoben.

Am Ende des Prozesses steht dann wieder eine validierte Architektur zur Verfügung, welche den Einstieg in den Prozess der kontinuierlichen Architekturverifikation ermöglicht.

+ Downloaden Sie unser kostenloses Online-Seminar: „Software Architecture Recovery with Axivion Suite“

Software-Architekturarchäologie

Wenn Sie ein Software-Projekt aus einer anderen Abteilung oder von einem Kunden übernehmen, ist die Ausgangssituation in Architektur-Fragen in der Regel weit von einer validierten Architektur entfernt.

Oft ist die Dokumentation nicht ausreichend oder verständlich und Sie können nur Annahmen über eine mögliche Architektur treffen. Im Prinzip ähnelt das Vorgehen dem der Architektur-Wiedergewinnung, stellt aber eine extreme Form dar.

Die erste Hypothese sollte möglichst einfach gewählt werden, um die großen Strukturen zu erkennen und teilweise auch zu erraten. Dieser Prozess kann durch eine Analyse des Ist-Zustands unterstützt werden. Die Axivion Suite stellt Ihnen den Ist-Zustand Ihrer Systemstruktur dar, hier können Sie eventuell schon erste Muster erkennen.

Es lohnt sich auf jeden Fall, so viel wie möglich über die Struktur und die Intention der Software im Vorfeld zu erfahren, um die ersten Hypothesen zielgerichtet aufstellen zu können. Hierbei unterstützt Sie die Architektur-Analyse der Axivion Suite.


Die Axivion Suite ist ein echter Game Changer. Dank kontinuierlicher Tests durchlaufen die Programmierer eine Lernkurve, wobei die Akzeptanz für die jeweiligen Architekturanforderungen steigt.  Dies macht, in einem derartigen Software Archäologie Projekt, den Weg frei für das Erreichen von Level 3 des Automotive SPICE Standards.

Kosmas Kopmeier
Director Engineering Consulting, SynSpace Group GmbH