Entwicklungsprozess

Persistenz und Validierung aus dem UML-Modell gewinnen?

BVA
JPA
MDA
UML-Generierung

Abstract


Thu 8:45 - 9:30 Uhr | 2010

Ein Großteil der Geschäftsanwendungen verwendet relationale Datenbanken. Seit JEE5 kann mit Java Persistence API (JPA JSR-220) das OR-Mapping mit Annotationen definiert werden. Es stellt sich dennoch die Frage, warum muss man immer noch manuell die JPA-Mappings in den Klassen definieren. Wäre es nicht wesentlich effizienter die Annotationen auf Basis des UML-Klassenmodells abzuleiten? Mit einem Codegenerator sollte es möglich sein, auf Basis der Klassenbeziehungen die entsprechenden relationalen Beziehungen abzubilden.

Ein weiteres Problem in nahezu allen Anwendungen ist die konsistente Datenvalidierung an den Systemgrenzen wie Validierungen an den Schnittstellen zu Nachbarsystemen, Eingabevalidierungen in den Benutzeroberflächen oder im Persistenzlayer. Da diese Bereiche oft unterschiedliche Teams bearbeiten, kommt es leider immer wieder zu inkonsistenten Implementierungen in ein und demselben System. Wäre es nicht besser die Validierung an die Domänenklassen zu binden und diese in Abhängigkeit der Anforderungen der verschiedenen Systemgrenzen zu verwenden?

Mit der Bean Validation API (BVA JSR-303) wurde ein Standard für Java definiert, welcher ab Java 7 im JDK enthalten ist. Da Validierungsregeln meistens schon in der Designphase bekannt sind, kann man die Regeln zentral im UML-Klassenmodell hinterlegen und mit einem Code-Generator daraus Klassen ableiten!

Ziel für beide Generatoren ist mit den bereits vorhandenen UML-Beziehungen sehr viele Informationen für den Standardfall abzuleiten. Zudem sollte die Anwendung der BVA und JPA-UML-Profile im UML-Modell im Enterprise Architect (EA) möglichst einfach sein. Beide mit openArchitectureWare (oAW) umgesetzten Generatoren, wurden mit pilotierten Einsätzen in Bestandssystemen in der Industrie erprobt.

Präsentiert werden die Implementierungen der Code-Generatoren für die JPA und BVA. Es wird in einer Livedemo mit der Toolchain (EA, oAW, ANT) ein Beispielprojekt generiert. Abschließend werden die Erfahrungen der Praxiserprobung dargestellt und kritisch hinterfragt.

Präsentation
Non-Sponsored TalkFortgeschritteneDeutsch
Darko Palic

Darko Palic

Darko Palic arbeitet seit über 10 Jahren in der Projektautomatisierung in Softwareprojekten (Schwerpunkt Java, aber auch .net/C#). Sein Ziel ist es die Projekteabläufe effizienter zu gestalten und somit Kosten zu sparen. Sein Interesse zur Automatisierung ist insbesondere durch die Erfahrungen aus der EDV-Administration seit Anfang der 90er geprägt worden. Seine Schwerpunkte sind Themen rund um die Automatisierung, d.h. vollautomatisierte Releasebuilds, automatisierte Integrationstests und Codegenerierungen für den Softwarealltag. Herr Palic ist selbstständig und berät mit seiner kleinen Beratertruppe Enterprise-Projekte im Umfeld IT-Automatisierung und IT-Architekturen. Er wird auch oft zu Rate gezogen, wenn es um das nahtlose Zusammenspiel zwischen Rechenzentren und Softwareprojekten geht.