Conference Program

Please note:
On this page you will only see the English-language presentations of the conference. You can find all conference sessions, including the German speaking ones, here.

The times given in the conference program of OOP 2024 correspond to Central European Time (CET).

By clicking on "VORTRAG MERKEN" within the lecture descriptions you can arrange your own schedule. You can view your schedule at any time using the icon in the upper right corner.

Wie fit ist deine Architektur? Automatisierte Architekturtests & statische Codeanalyse mit ArchUnit

Im Architektur-Entwurf treffen wir ständig Architekturentscheidungen, die im besten Fall explizit, dokumentiert und verstanden sind. Aber wie praktisch wäre es, wenn man kontinuierlich prüfen könnte, ob diese Richtlinien auch eingehalten werden? Hier helfen Architecture Fitness Functions. Wir zeigen, wie man mit ArchUnit solche Fitness Functions schreibt, die die Struktur unseres Codes überprüfen, und wie man diese in den Entwicklungsprozess integriert. Außerdem zeigen wir, wie man mit der API von ArchUnit statische Codeanalysen durchführt.

Zielpublikum: Architekt:innen, Entwickler:innen
Voraussetzungen: Basis-Kenntnisse Java
Schwierigkeitsgrad: Fortgeschritten

Extended Abstract:
Architekturentscheidungen zu treffen und zu dokumentieren, ist aufwändig und mühsam, mit der Folge, dass Entscheidungen oft nur implizit getroffen werden und dann in Vergessenheit geraten, geschweige denn im Lauf der ständigen Weiterentwicklung eingehalten werden.
Architecture Fitness Functions dienen dazu, Architekturentscheidungen im besten Fall automatisiert zu überprüfen. So bekommt das Entwicklungsteam jederzeit Feedback, ob die Architektur noch den festgelegten Regeln entspricht.
Manche Entscheidungen wie Namenskonventionen lassen sich schon lange über altbekannte Tools wie Checkstyle abtesten. Komplexere Entscheidungen aber lassen sich nicht immer einfach prüfen – oder sie erfordern ein komplexes Metamodell, das aufwändig zu erstellen und zu pflegen ist. Hier kommt ArchUnit ins Spiel.
In unserem Talk stellen wir anhand konkreter Fragestellungen vor, wie man mit ArchUnit automatisiert Architekturentscheidungen überprüft und in einen Standard-Testzyklus einbindet. Dazu bringt ArchUnit von Haus aus eine ganze Reihe von Standard-Hilfsmitteln mit. Besser noch: Eigene Architekturregeln lassen sich leicht in Form von Tests definieren und so im automatisierten Build überprüfen. Zugleich sind die Architekturregeln über die Tests dokumentiert.
Beispiele: Sind Abhängigkeiten zwischen Komponenten richtig definiert? Sind Strukturen innerhalb einer Komponente richtig modelliert, z.B. als Onion-Architektur?
Dieselbe API von ArchUnit kann man aber auch für statische Codeanalyse einsetzen, deren Output nicht in einem Test, sondern als Input in weitere Tools eingeht. Damit lassen sich einfach kleine Helferlein schreiben, um gezielt über statische Code-Analyse Handlungsbedarf identifizieren und analysieren zu können.
ArchUnit lässt sich demnach für kleine, mittlere und komplexe Fragestellungen einsetzen. Das skaliert gut und ermöglicht eine leichtgewichtige und automatisierte Absicherung von Architekturentscheidungen.
Wir zeigen zahlreiche Beispiele direkt im Code und geben damit einen ausführlichen Überblick über die Benutzung der ArchUnit-API.

Dr. Kristine Schaal ist als Software-Architektin seit fast 25 Jahren in der Software-Entwicklung tätig. In der Individualentwicklung arbeitet sie für Kunden verschiedener Branchen, überwiegend im Java-Umfeld.

Kristine Schaal

Vortrag Teilen