andrena: Neue Maven-Plug-ins für ein vereinfachtes Architektur-Management

andrena objects ag 23.05.2013

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: github.com/andrena/no-package-cycles-enforcer-rule

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: github.com/andrena/macker-maven-plugin

Ü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: c4j.vksi.de).  

Über die andrena objects ag

Das inhabergeführte Unternehmen wurde 1995 gegründet und unterstützt mit über 80 Mitarbeiterinnen und Mitarbeitern seine Kunden im Agile Software Engineering. Standorte sind Karlsruhe und Frankfurt am Main. andrena gehört in Deutschland zu den Vorreitern in Sachen Agilität. Das Angebotsspektrum umfasst Projektunterstützung, Lösungen sowie Beratung und Training, stets mit dem Ziel des Dreiklangs von agilem Projekt Management (Scrum), agilem Requirements Engineering und agilen Software Engineering. Die Kunden der andrena objects ag schätzen dabei besonders die Ergebnissicherheit in der gemeinsamen Projektarbeit und die hohe fachliche Kompetenz der andrena-Mitarbeiterinnen und -mitarbeiter.

Weitere Informationen zum Unternehmen unter www.andrena.de.