© Excellent backgrounds/Shutterstock.com
Frameworks und Tools (nicht nur) für große Java-EE-Projekte richtig auswählen

Strategisch wählen


Frage: „Warum habt ihr gerade diese Bibliothek ausgewählt?“ Antwort: „Weiß ich nicht mehr. Hat damals Peter hinzugefügt. Leider können wir ihn nicht mehr fragen, da er das Projekt schon verlassen hat.“ Solche oder ähnliche Dialoge kennt vermutlich jeder, der neu in ein Projekt kommt. Wäre es nicht besser, wenn man an dieser Stelle einfach auf die Architekurdokumentation verweisen könnte? Dieser Artikel zeigt, wie man strukturiert eine solche Auswahl treffen kann und nachvollziehbar dokumentiert.

Wer schon einmal in großen Softwareentwicklungsprojekten mitgearbeitet hat, weiß: Hier gelten andere Regeln als bei kleinen Projekten. Kann man in überschaubaren Teams noch „schnell mal etwas ausprobieren“, wird dies bei größeren Gruppen leicht zu einem Kosten-, Zeit- und Qualitätsproblem.

Jeder Fehler multipliziert sich schon während der Entwicklung mit der Anzahl der Entwickler: 80 Entwickler können eine Stunde nicht arbeiten und schon sind zwei volle Arbeitswochen verbrannt worden. Noch schlimmer wird es in der Produktion: 2 000 Anwender können eine Viertelstunde nicht arbeiten und 12 ½ Arbeitswochen sind verloren …

Eine gezielte Auswahl der richtigen Tools und Frameworks ist daher ein zentraler Baustein für ein erfolgreiches Projekt und einen stabilen Betrieb. Wie findet man aber die „richtigen“ Tools und Frameworks?

Wichtig ist eine strukturierte und rationale Herangehensweise, welche die getroffenen Entscheidungen auch dokumentiert und nachvollziehbar macht. Entscheidungen „aus dem Bauch heraus“ sollen vermieden werden, um das Risiko von Fehlentscheidungen zu minimieren.

Um eine fundierte Entscheidung treffen zu können, braucht man sinnvolle Kriterien für den Vergleich der zur Auswahl stehenden Optionen. Aus Sicht der Architektur gibt es im Wesentlichen vier Punkte:

  • Technische Eignung (K.-o.-Kriterium)

  • Leicht zu verstehen

  • Qualität / Stabilität

  • Gute Dokumentation / Information

Betrachtet man diese Frage aus dem Blickwinkel der Projektleitung, kommen vier weitere Punkte hinzu:

  • Entwickler mit Know-how sind verfügbar

  • Langjähriger Support ist gesichert

  • Kostengünstig

  • Passende Lizenzierung

Im Folgenden soll als Beispiel eine Java-Persistence-(JPA-)Implementierung ausgewählt werden.

Die Kandidaten

Ein guter Einstiegspunkt für eine Recherche sind die Suchmaschinen (Abb. 1). Meistens reicht es schon aus, die ersten zwei bis drei Ergebnisseiten durchzuarbeiten. Unter dem Begriff „JPA Implementations“ finden sich schnell einige Kandidaten:

  • Batoo JPA (JPA 2.0) [1]

  • DataNucleus (JPA 2.1 – Ex „JPOX“) [2]

  • EclipseLink (JPA 2.1 – Ex „TopLink“) [3]

  • Hibernate (JPA 2.1) [4]

  • OpenJPA (JPA 2.0 – Ex „Kodo“) [5]

Die erste Überraschung ist DataNucleus: Ein eher unbekanntes, aber JPA-2.1-konformes Framework, das dazu auch noch JDO-Funktionalität bietet. Bei einer spontanen Auswahl wäre diese Bibliothek vermutlich gar nicht betrachtet worden.

schnell_strategischwaehlen_1.tif_fmt1.jpgAbb. 1: Guter Einstiegspunkt: Die Suchmaschinen

Vorbereitung

Technische Eignung (K.-o.-Kriterium): Das Java Persistence API liegt derzeit in der Version 2.1 vor, die mit dem JSR 338 [6] spezifiziert wurde. Sowohl DataNucleus, EclipseLink (Referenzimplementierung des JS...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang