Java EE vs. Jakarta EE, oder doch etwas Neues?
13. August 2019
alle anzeigen
abakusBT - Kundenübersicht

abakusBT - Kundenübersicht

Schon seit geraumer Zeit stellt sich uns immer wieder eine Frage: Wieviel Code lässt sich an nur einem Arbeitstag mit Generierungslogik entwickeln, wenn das Projekt selbst noch „komplettes Neuland“ für einen Entwickler darstellt.

Um diese Frage genauer zu beantworten, haben wir uns folgende Aufgabe gestellt:
Nach dem Vorbild einer existierenden Desktop-Anwendung soll eine Webanwendung mit gleichem oder ähnlichem Funktionsumfang entstehen. Idealerweise möchten wir dazu eine im Markt bekannte Lösung nachbauen.

Glücklicherweise konnten wir mit der highQ Computerlösungen GmbH einen Partner gewinnen, der uns erlaubte, eine eigens entwickelte Desktopanwendung für Bauträgerkreditmanagement – namentlich abakusBT – hierfür Pate stehen zu lassen. Die Software abakusBT ist eine ausgereifte und seit 20 Jahren am Markt geschätzte Lösung für Banken und Kreditinstitute im Bereich Bauträgermanagement und aktuell bei 60 Finanzhäusern bundesweit im Einsatz.
Dem beteiligten Web-Entwickler am Experiment war die Lösung noch nicht bekannt. Die einzelnen Funktionen von abakusBT wurden während des Experiments erklärt und dann auf die neue Web-Lösung übertragen.

Vorbereitungen

Unser „Experimentskunde“ Herr Christian Disch, Produktverantworktlicher für abakusBT bei highQ Computerlösungen GmbH, wurde vorab gebeten aus der Vielzahl der unterschiedlichen Eingabemasken der bestehenden Lösung jene auszuwählen, die für eine sinnvolle Nutzung von abakusBT minimal nötig sind. Diese sollten dann am Tag des Experiments in der neuen Webanwendung umgesetzt werden. Das oberste Ziel war: Am Ende des Tages soll im Optimalfall eine Anwendung mit tatsächlichem Nutzenfaktor erstellt worden sein.
Um dieses ehrgeizige Ziel in realistische Sphären zu rücken, wurde das Experiment auf die reine Entwicklung des Quellcodes beschränkt. Das heißt, im Vorfeld wurde bereits eine Entwicklungsumgebung (Eclipse) sowie die nötigen Projekte samt Setup eingerichtet (Apache Maven). Ebenfalls wurde ein Applikationsserver (Wildfly) samt leerer Datenbank (Postgres) erstellt, auf denen die Anwendung gestartet werden konnte. Das Setup für die automatisierte Softwareentwicklung wurde ebenfalls angelegt, um den entsprechenden Softwaregenerator nutzen zu können. Jetzt konnte das Experiment beginnen!

Vorab muss an dieser Stelle erwähnt werden, dass mit Herrn Disch und Marcus Munzert zwei Experten angetreten sind, die jeweils Ihre Domäne beherrschen. Einarbeitungszeit in Technologien und Tools gab es somit keine.

Die Umsetzung

Am 11. Dezember 2019 war es dann soweit. Um 9:45 Uhr starteten wir unser Experiment. Die einzelnen Arbeitsschritte und die dafür nötigen Zeiten wurden über eine Zeiterfassung genau protokolliert. Herr Disch präsentierte als Kenner von abakusBT Marcus Munzert die bestehende Lösung und zeigte dabei ebene jene Masken und Eingabeformulare, welche im Rahmen des Experiments als webbasierte Lösung in jedem Falle umgesetzt werden sollten.

Marcus Munzert begann mit der Modellierung der Entitäten für die Persistierung der Daten. Hierbei muss erwähnt werden, dass uns die technische Dokumentation der bestehenden Lösung in digitaler Form zu Verfügung stand. Das ist deshalb wichtig, da es uns ermöglichte, die Dokumentation und Beschreibung teilweise in unser Modell zu übernehmen – was natürlich erheblich Tipparbeit und damit Zeit ersparte.
Danach wurde auch schon die Startseite der Anwendung mit der Auswahlliste für Bauträger und Objekte modelliert und die Verbindungen zu den entsprechenden Entitäten hergestellt. Mittels unseres JEE-Generators wurde das Modell in den Quellcode für die Anwendung überführt. Im Code wurden in den vom Generator vorgesehenen Stellen noch manuelle Änderungen eingefügt (um Daten zu laden und zu persistieren).
Herr Disch stand während des gesamten Experiments mit weiteren Informationen helfend zur Seite, so dass Rückfragen direkt beantwortet und vom Entwickler bei seiner Arbeit berücksichtigt werden konnten. Als Ergebnis erblickte die erste Version der Anwendung nach knappen drei Stunden das Licht der Welt.
Es folgten weitere Iterationen, in welchen zusätzliche Eingabemasken, Übersichtsseiten und Verknüpfungen modelliert, generiert und angepasst wurden. Die Navigation zwischen den Seiten sowie die Funktionen auf den Seiten wurden hinzugefügt und ständig gemeinsam mit Herrn Disch getestet.
Nach 6 Stunden und 50 Minuten wurde das Experiment beendet, da alle von Herrn Disch vorab ausgewählten Formulare in einer ersten Version umgesetzt waren und somit das gestellte Ziel erreicht war.

Fazit

Wie in der Einleitung bereits angemerkt ist abakusBT bereits sehr lange am Markt und verfügt über stark auf effiziente Erfassung optimierte Masken, um den Bediener bestmöglich zu unterstützen. Die im Experiment erstellten Seiten bilden also (noch) nicht den kompletten Funktionsumfang der Desktopanwendung ab. (Anmerkung: Hierfür ist aus heutiger Sicht tendenziell manuell erzeugter Quellcode zu erstellen, da der eingesetzte „generelle“ Generator für die meisten Funktionen noch keinen Support lieferte.)
Wie in der Statistik weiter unten zu sehen, wurden während des Experiments sage und schreibe etwas über 350 Dateien erzeugt. Diese Vielzahl an Quellcode ist deshalb in unseren Augen notwendig, um dem Entwickler möglichst viel Freiräume zu schaffen die generierte Anwendung an die geforderten Bedürfnisse anzupassen. Ein direkter Vergleich zu einer komplett manuell erstellten Anwendung auf Basis der reinen Anzahl an Dateien in unseren Augen nicht zielführend.
Dennoch lässt sich der erreichte Stand der Webanwendung nach den knappen 7 Stunden Entwicklungszeit sehen. Es wurden sämtliche Masken samt Funktionen zum Laden, Ändern und Persistieren der Daten umgesetzt. Auch die Navigation zwischen den einzelnen Eingabemasken sowie die Validierung der Daten während der Eingabe ist vollständig funktional umgesetzt. Ein erster automatisierter Test wurde zwar bereits generiert, konnte in der gegebenen Zeit jedoch nicht vollständig umgesetzt werden.
Das Experiment war ein voller Erfolg, der die Leistungsfähigkeit unseres JEE-Generators aufgezeigt. Herr Disch war als „Kunde“ in diesem Experiment mit dem erreichten Ziel und der dafür aufgewendeten Zeit ebenfalls äußerst zufrieden.
Als größten Vorteil dieser Herangehensweise ist aber die Verfügbarkeit eines maschinenlesbaren Modells der Software herauszustellen. Mit einem passenden Generator lässt sich dieses mit überschaubarem Aufwand sicherlich auch in anderen Technologien erstellen, selbst in solchen, die heute tatsächlich noch Neuland sind und zurecht als solches Bezeichnet werden…

Statistik

Während des Experiments wurden folgende Dateien erstellt oder automatisiert erzeugt.
(Achtung: Jetzt wird es technisch 😉)

TypBeschreibungAnzahl
Dateien
ModellOrganisationsspezifische Modelldateien und Steueranweisungen für den Generator4
ModellModelldateien für die Datenhaltung1
ModellModelldateien für die Oberflächenbeschreibung7
PersistenzJPA- und DAO–Dateien und Konfigurationsdateien
sowie Unittests
40
AllgemeinProjektübergreifende abstrakte Java-Dateien2
OberflächeCDI-Beans, EJBs, JSF-Dateien, DTO-Dateien
sowie Integrationstest samt JSON-Testdaten
314
368

Während der Arbeiten am abakusBT Webprojekt wurden:

  • 2 Konfigurationsdateien von Hand angepasst
  • 20 Java-Dateien mit handgeschriebenem Quellcode erweitert

Insgesamt wurden in der gesamten Anwendung 106 Zeilen Code händisch hinzugefügt, hauptsächlich Businesslogik.

Heinz Rohmer
Heinz Rohmer
Heinz Rohmer ist geschäftsführender Gesellschafter der Generative Software GmbH. Seit vielen Jahren entwicklt er Software in Java und gelegentlich auch in C#. Sein Hauptbetätigungsfeld liegt im Enterprise- und Cloud-Bereich. Bei Generative Software GmbH ist er neben administrativer sowie vertrieblicher Tätigkeiten auch für die Entwicklung unserer Werkzeuge verantwortlich.