HOCHSCHULE MITTWEIDA UNIVERSITY OF .Referat: ... Java-Klassenbibliothek ... Dinge wie Layout-Manager

Click here to load reader

download HOCHSCHULE MITTWEIDA UNIVERSITY OF .Referat: ... Java-Klassenbibliothek ... Dinge wie Layout-Manager

of 65

  • date post

    17-Sep-2018
  • Category

    Documents

  • view

    212
  • download

    0

Embed Size (px)

Transcript of HOCHSCHULE MITTWEIDA UNIVERSITY OF .Referat: ... Java-Klassenbibliothek ... Dinge wie Layout-Manager

  • Michel Kleinschmidt

    Automatisierte Generierung von Mappings zwischenGeschftsobjekten, Prsentationsschicht und

    Geschftslogik

    DIPLOMARBEIT

    HOCHSCHULE MITTWEIDA

    UNIVERSITY OF APPLIED SCIENCES

    Mathematik / Physik / Informatik

    Mittweida, 2009

  • Michel Kleinschmidt

    Automatisierte Generierung von Mappings zwischenGeschftsobjekten, Prsentationsschicht und

    Geschftslogik

    eingereicht als

    DIPLOMARBEIT

    an der

    HOCHSCHULE MITTWEIDA

    UNIVERSITY OF APPLIED SCIENCESMathematik / Physik / Informatik

    Geringswalde, 2009

    Erstprfer: Prof. Dr. rer. nat. Konrad SchulzZweitprfer: Dipl.-Inf. (FH) Andr Friedrichvorgelegte Arbeit wurde verteidigt am: 29.07.2009

  • Bibliographische Beschreibung:

    Michel Kleinschmidt:Automatisierte Generierung von Mappings zwischen Geschftsobjekten, Prsenta-tionsschicht und Geschftslogik. - 2009. 62 S. Mittweida, Hochschule Mittweida,Fachbereich Mathematik/Physik/Informatik, Diplomarbeit, 2009

    Referat:

    Mappings werden berall dort eingesetzt, wo eine Zuordnung von Wertepaaren ben-tigt wird. Wenn dies oft und nach gleichen Mustern geschieht, dann ergibt sich eineOptimierungsmglichkeit, die durch Automatisierung gelst werden kann. Hier setztdie vorliegende Arbeit an. Es wird ein Konzept fr die automatisierte Generierungvon Mappings, in einem Softwareprojekt der Firma Innovations Software Technolo-gy GmbH, entwickelt. Anschlieend wird das Konzept als Prototyp eines Mapping-Werkzeugs realisiert.

  • Inhaltsverzeichnis 3

    Inhaltsverzeichnis

    Abkrzungsverzeichnis 5

    Abbildungsverzeichnis 6

    Quelltextverzeichnis 8

    1 Einleitung 111.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3 Aufbau der Diplomarbeit . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    2 Grundlagen und Begriffsklrung 132.1 Geschftsobjekte und Geschftslogik . . . . . . . . . . . . . . . . . . . 132.2 Prsentationsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.3 Model View Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.4 Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.5 Work Frame Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.6 Reflection API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.7 Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    3 Analyse und Anforderungen 173.1 Ausgangslage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    3.1.1 Einsatzgebiet und Aufgaben von Mappings . . . . . . . . . . . . 173.1.2 Mapping-Typen . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    3.2 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    4 Entwurf 214.1 Grundstzliches Vorgehen bei der automatischen Generierung . . . . . 214.2 Generierung des Quelltextes . . . . . . . . . . . . . . . . . . . . . . . . 23

    4.2.1 Eigener Quelltextgenerator . . . . . . . . . . . . . . . . . . . . . 234.2.2 EMF und JET . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.2.3 EMFT und JET2 . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2.4 Auswahl einer Alternative . . . . . . . . . . . . . . . . . . . . . 27

    4.3 Benutzeroberflche und Einbindung in das bestehende System . . . . . 274.3.1 Art der Benutzeroberflche . . . . . . . . . . . . . . . . . . . . . 27

  • 4 Inhaltsverzeichnis

    4.3.2 Technik der Benutzeroberflche . . . . . . . . . . . . . . . . . . 284.4 Wiederverwendbarkeit der Mappingkonfigurationen . . . . . . . . . . . 29

    4.4.1 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.4.2 Serialisierung des GEF-Modells . . . . . . . . . . . . . . . . . . 304.4.3 Auswahl einer Mglichkeit . . . . . . . . . . . . . . . . . . . . . 31

    4.5 Systementwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    5 Implementierung 375.1 Mapping Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    5.1.1 Das Package Utilities . . . . . . . . . . . . . . . . . . . . . . . . 385.1.2 Das Package Controller . . . . . . . . . . . . . . . . . . . . . . . 425.1.3 Das Package Generators . . . . . . . . . . . . . . . . . . . . . . 43

    5.2 Mapping Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.2.1 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.2.2 Das Package Src-gen . . . . . . . . . . . . . . . . . . . . . . . . 45

    5.3 Mapping Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.3.1 Das Package Editor . . . . . . . . . . . . . . . . . . . . . . . . . 455.3.2 Das Package Editor.model . . . . . . . . . . . . . . . . . . . . . 465.3.3 Das Package Editor.model.commands . . . . . . . . . . . . . . . 495.3.4 Das Package Editor.figures . . . . . . . . . . . . . . . . . . . . . 495.3.5 Das Package Editor.parts . . . . . . . . . . . . . . . . . . . . . . 495.3.6 Das Package Editor.policies . . . . . . . . . . . . . . . . . . . . 505.3.7 Das Package Config . . . . . . . . . . . . . . . . . . . . . . . . . 50

    6 Zusammenfassung 51

    A Quelltextauszge 53

    Literatur 62

  • Abkrzungsverzeichnis 5

    Abkrzungsverzeichnis

    AM Attribut-MappingAPI Application Programming Interface

    DOM Document Object ModelDTD Document Type Definition

    EMF Eclipse Modeling FrameworkEMFT Eclipse Modeling Framework Technology

    GEF Graphical Editing Framework

    J2SE Java 2 Standard EditionJAXP Java API for XML ProcessingJDOM Java DOMJEE Java Enterprise EditionJET Java Emitter TemplatesJSP Java Server Pages

    MVC Model View Controller

    OM Objekt-Mapping

    SAX Simple API for XML

    UML Unified Modeling Language

    XML Extensible Markup LanguageXSD XML Schema DefinitionXSLT XSL Transformation

  • 6 Abkrzungsverzeichnis

  • Abbildungsverzeichnis 7

    Abbildungsverzeichnis

    2.1 Model View Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    3.1 Attribut-Mapping-Typen . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    4.1 JET-Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    5.1 Klassendiagramm Mapping Generator . . . . . . . . . . . . . . . . . . . 375.2 Mapping-Templates-bersicht . . . . . . . . . . . . . . . . . . . . . . . 445.3 Mapping Editor Package editor.model . . . . . . . . . . . . . . . . . . . 46

  • 8 Abbildungsverzeichnis

  • Quelltextverzeichnis 9

    Quelltextverzeichnis

    3.1 Attribut-Mapping als innere Klasse . . . . . . . . . . . . . . . . . . . . 184.1 Beispiel Attribut-Mapping . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 generiertes Attribut-Mapping . . . . . . . . . . . . . . . . . . . . . . . 334.3 generiertes Objekt-Mapping . . . . . . . . . . . . . . . . . . . . . . . . 344.4 abgeleitetes Objekt-Mapping . . . . . . . . . . . . . . . . . . . . . . . . 355.1 AttributeValidator Methode getValidatedMethods . . . . . . . . . . . . 395.2 Ausschnitte Klasse ConnectableComponent . . . . . . . . . . . . . . . . 47A.1 Methode createClassFile aus Storage . . . . . . . . . . . . . . . . . . . 53A.2 Klasse TypeStringBuilder . . . . . . . . . . . . . . . . . . . . . . . . . 54A.3 Template Simple Mapping . . . . . . . . . . . . . . . . . . . . . . . . . 57A.4 Skeleton fr Attribut-Mapping-Typen . . . . . . . . . . . . . . . . . . . 58A.5 Generatorklasse Simple Mapping . . . . . . . . . . . . . . . . . . . . . 58

  • 10 Quelltextverzeichnis

  • Kapitel 1. Einleitung 11

    Kapitel 1

    Einleitung

    1.1 Motivation

    Die vorliegende Diplomarbeit entstand im Auftrag der Innovations Software TechnologyGmbH, eines mittelstndischen Unternehmens, dass hauptschlich Software-Lsungenfr Banken und Finanzdienstleister entwickelt. Derartige Anwendungen werden nachErkenntnissen der modernen Software-Technik als Mehrschichten-Architekturen auf-gebaut. Dabei spielen die Zuordnungen voneinander entsprechenden Elementen un-terschiedlicher Schichten eine zentrale Rolle; sie werden mit dem technischen BegriffMappings bezeichnet (vgl. [LM07], S. 192).

    Die vorliegende Arbeit thematisiert Mappings in einem speziellen Einsatzbereich zwi-schen Prsentationsschicht, Geschftslogik und Geschftsobjekten. Diese werden fr dieZuordnung von Attributen der Prsentationsschicht zu den Attributen der Geschfts-objekte verwendet. Der Einsatz von Mappings ist hier zweckmig, um die Anwendungnach dem Model-View-Controller-Entwurfsmuster gestalten zu knnen und dessen Vor-teile zu nutzen.

    Die Mappings werden im vorliegenden Fall immer nach hnlichen Mustern erstellt.Das heit, bestimmte Quelltextabschnitte sind immer gleich. Daraus ergibt sich dieMglichkeit, die Erstellung der Mappings zu automatisieren. Gleichzeitig wird durch dieautomatisierte Erstellung eine Reduzierung der Fehler whrend der Programmierungerreicht.

  • 12 Kapitel 1. Einleitung

    1.2 Zielsetzung

    Das Ziel dieser Diplomarbeit ist die Konzeption und prototypische Realisierung ei-nes Mapping-Werkzeugs, mit dem der Entwickler eine Beziehung zwischen einzelnenAttributen aus dem Geschftsobjekt und der in der Benutzeroberflche dargestelltenKomponente herstellen kann. Aus diesen Beziehungen sollen dann automatisiert Map-pings erstellt werden.

    1.3 Aufbau der Diplomarbeit

    Die vorliegende Diplomarbeit gliedert sich in folgende Bestandteile:

    Kapitel 2 erklrt die grundlegenden Techniken und Begriffe, die fr das Verstndnisder Arbeit notwendig sind.

    Kapitel 3 analysiert die aktuelle Situation der Mappings im Softwareprojekt undzeigt die Anforderungen an das zu entwickelnde Werkzeug.

    Kapitel 4 zeigt Mglichke