Das Architektur-Management von Software Projekten wird häufig vernachlässigt. Selbst in Fällen, in denen eingangs eine solide Architektur festgelegt wurde, ist es für Entwickler meist nicht einfach zu verifizieren, ob diese bei der Weiterentwicklung auch eingehalten wird. Das gilt beispielsweise für die Abhängigkeiten zwischen den Klassen einzelner Pakete, die spätestens bei Wartungsarbeiten erhebliche Probleme verursachen können. Sie im Vorfeld zu erkennen ist aber nicht immer trivial. Deutliche Vereinfachung versprechen jetzt zwei neue Maven-Plugins, die Ben Romberg, Software-Ingenieur bei andrena objects, weiterentwickelt und publiziert hat.
Die NoPackageCyclesEnforcerRule erkennt automatisch zyklische Abhängigkeiten zwischen Klassen aus verschiedenen Paketen. Diese Paket-Zyklen sollten vermieden werden, da die involvierten Pakete sonst nicht mehr isoliert voneinander betrachtet werden können – und damit geht die mit Paketen angestrebte Modularisierung verloren. Weil es für die automatische Erkennung von Paket-Zyklen noch kein verfügbares Maven-Plugin gab, wurde mit Hilfe von JDepend ein entsprechendes Plugin entwickelt, das durch seine Verfügbarkeit auf Maven Central leicht eingebunden werden kann.
Link: https://github.com/…
Das zweite Plugin namens „Macker“ erlaubt es, spezifische Abhängigkeiten zwischen Paketen zu definieren und diese Regeln automatisiert verifizieren zu lassen. Hintergrund war die Erfahrung, dass zu Projektbeginn festgelegte Maßgaben für die Abhängigkeiten zwischen Paketen oftmals nicht eingehalten werden. Gerade solche „Grauzonen-Beziehungen“ machen es später schwer, entsprechende Verflechtungen zu erkennen und zu korrigieren. Die Entwicklung an Macker wurde 2003 von den ursprünglichen Autoren eingestellt und daher nun als Fork mit den aktuellen Java-Versionen kompatibel gemacht. Auch dieses Plugin ist für die einfache Verwendung auf Maven Central verfügbar. Link: https://github.com/…
Über Ben Romberg
Ben Romberg ist Software-Entwickler bei der andrena objects ag. Sein besonderes Interesse gilt der qualitätsorientierten Software-Entwicklung mit Hilfe von Test-Driven Development. Zudem ist er der Autor des Contracts for Java Frameworks C4J (Link: http://c4j.vksi.de/).
Firmenkontakt und Herausgeber der Meldung:
andrena objects ag
Albert-Nestler-Straße 11
76131 Karlsruhe
Telefon: +49 (721) 6105-122
Telefax: +49 (721) 6105-140
http://www.andrena.de
Ansprechpartner:
Alin Frädrich
+49 (30) 61657167