Software-Architektur: verstehen, definieren und kontrollieren

Mit Cantata Test Architect können Sie Architekturprobleme schnell erkennen und beheben. Das System bietet Software-Architekten einen schnellen Weg, die Architektur einer Anwendung mit der Dependency-Structure-Matrix-Technologie visuell darzustellen. Damit ist es möglich zu sehen, wie unterschiedliche Software-Schichten miteinander interagieren. Potenziell unerwünschte Beziehungen im Code werden identifiziert. Die Desktop-Basisplattform kann in gängige Entwicklungsumgebungen integriert werden. So wird die Überprüfung der Architektur zu einem festen Bestandteil des Entwicklungsprozesses.

Cantata Test Architect wird so zu Ihrem Wettbewerbsvorteil. Denn das System hilft Ihnen, mit DevOps-Geschwindigkeit zu entwickeln und zu testen. Mit Cantata Test Architect können Sie:

Test Architect Video

Die eigene Software-Architektur verstehen. Selbst wenn sie groß und komplex ist.

Cantata Test Architect nutzt die Dependency Structure Matrix oder Design Structure Matrix (DSM), um ihre Architektur zu analysieren und zu verstehen. Eine DSM ist eine einfache, kompakte visuelle Darstellung eines Systems in Form einer Square-Matrix.

Vielleicht denken auch Sie häufig an solche direkten Graphen, wenn es um Software-Abhängigkeiten geht:

 

Das DSM zeigt die gleichen Informationen wie ein Graph, aber auf viel prägnantere Weise.

 

Seine besondere Stärke zeigt DSM bei der Analyse großer, komplexer Software-Systeme. Eine Reihe von Partitionierungsalgorithmen dienen im DSM dazu, Schichten (Hierarchien) und Komponenten (Modularität) innerhalb des Softwaresystems zu identifizieren. Und das selbst dann, wenn die Architektur bereits erodiert sein sollte.

Die Ergebnisse der Partitionierungsalgorithmen werden als Kästchen (virtuelle Partitionen) in DSM angezeigt.

Wie Sie Ihre Architektur definieren oder refaktorieren (‘Refactoring‘) können

Cantata Test Architect unterstützt Sie beim Refactoring, weil in der Regel im Laufe der Zeit die Architektur erodiert. Dazu bietet Cantata Test Architect leistungsstarke Funktionen, um die Modularität zu verbessern.

Architektur-Editor – Sie möchten die Architektur ändern, ohne den Code zu ändern? Der Architektur-Editor macht Sie vollständig flexibel. So können Sie das Refactoring durchspielen, noch bevor Sie in den Code eingreifen. Sie können Architekturregeln vorgeben, beliebige Abstraktionen erstellen oder löschen, und deren Abhängigkeiten spezifizieren. Alle Änderungen am Architekturmodell werden automatisch festgehalten. Sie möchten alternative „Was-wäre-wenn“-Architekturen ausprobieren und die Auswirkungen dieses Refactorings ergründen? Dazu bietet Ihnen Cantata Test Architect die Lösung: mit Funktionen zum Rückgängigmachen und Wiederholen (‘Undo/Redo‘).

Round Trip durch das Modell – Wenn das System im Laufe der Zeit überarbeitet wird, kann der Benutzer die Architektur in Cantata Test Architect pflegen. Eine leistungsstarke Update-Funktion bietet die Möglichkeit, das Model kontinuierlich zu aktualisieren, wenn im Laufe der Entwicklung Codeänderungen vorgenommen werden.

Algoritmusunterstützung – Cantata Test Architect verfügt über eine Reihe von Algorithmen, die den Refactoring-Prozess unterstützen. Mithilfe dieser Algorithmen können Sie Zyklen unterbrechen und Subsysteme modifizieren, um Kopplung und Kohäsion zu verringern. Und Sie haben die Möglichkeit die Beziehungen zwischen den Modulen zu verstehen.

Steuerung: Architektur festlegen und durchsetzen

Cantata Test Architect nutzt das Konzept der Entwurfsregeln. Damit kann festgelegt werden, welche Art von Beziehungen zwischen den Subsystemen zulässig sind. Auf diese Weise ist es möglich, für das gesamte Entwicklungsteam die Architektur klar zu definieren, zu kommunizieren und auch durchzusetzen.

Regeln können auf jeder Hierarchiestufe spezifiziert oder überschrieben werden. Die Regeln können breit angelegt sein. Oder je nach Bedarf eingegrenzt werden. Sie können:

  • Regeln für interne und externe Abhängigkeiten definieren
  • Regeln für die Architekturschichten festlegen (‘Layering Rules‘)
  • Regeln für unabhängige Komponenten festlegen
  • Regeln, basierend auf den Typen der Abhängigkeit festlegen
  • Und Regeln festlegen, die auf dem Typ des Quell- oder Zielsubsystems basieren

Wer regelbasierte Architekturen durchsetzen will, kann auch diesen Vorgang automatisieren. Kommandozeilen-Dienstprogramme (LDC-Command-Line) können eingesetzt werden, um die Architektur zu überwachen und durchzusetzen. Cantata Test Architect kann in das Build-System eingebettet werden, um Berichte und Benachrichtigungen über Verstöße gegen die definierte Architektur zu erstellen.

Kontinuierliche Architektur-Analyse

Mit den LDC-Command-Line Anwendungen ist es möglich, die Abhängigkeitsmodelle automatisch zu überprüfen und zu aktualisieren. LDC ist das Herzstück unserer Unterstützung für DevOps und Continuous Integration.

Dies sind einige typische Einsatzmöglichkeiten für LDC-Anwendungen:

  • Erstellen Sie ein neues Modell oder aktualisieren Sie ein bestehendes – in beiden Fällen können Sie den Verlauf der Abhängigkeiten beibehalten
  • Generieren Sie Berichte in verschiedenen Formaten und mit unterschiedlichen Informationen. Pflegen Sie die Berichte in ihrer Historie. Verfügbare Formate sind XML, HTML, Text, XLS, CSV, JPG und PNG. Im Bericht ist erfasst, wie sich das neue Modell vom alten unterscheidet und welche Regelverstöße festgestellt wurden. Dazu gibt es eine Vielzahl an Daten wie Metriken, DSM und Arbeitsliste.
  • Führen Sie benutzerdefinierte Skripte für Projekte aus.
  • Veröffentlichen und extrahieren Sie Projekte in das und aus dem Repository.

LDC analysiert automatisch jeden Build, sodass Architekturprobleme frühzeitig erkannt werden können. Damit ist es Entwicklern möglich, diese Probleme in einem Stadium zu beheben, in dem es nur geringe Kosten verursacht. Architektonische Integrität komplexer Anwendungen ist von entscheidender Bedeutung für die Systemqualität.

Systemarchitekten benötigen eine zuverlässige, automatisierte Lösung wie Cantata Test Architect LDC, um Architekturen durchzusetzen, die dafür sorgen, dass Geschäftsanwendungen stabil und effizient arbeiten. LDC kann problemlos in Ihre DevOps-Toolkette integriert werden. Der Aufwand für Scans wird minimiert – die gesparte Zeit kann für die Behebung der Probleme eingesetzt werden.