Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung

Ähnliche Präsentationen


Präsentation zum Thema: "Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung"—  Präsentation transkript:

1 openArchitectureWare Tool-Suite für modellgetriebene Softwareentwicklung
Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung Nico Suchold cs.uni-magdeburg.de

2 Inhalt Historie und Einordnung Kern-Kompetenz Das Generator-Framework
Metamodellierung Templates Integration Zusammenfassung und Ausblick Nico Suchold openArchitectureWare

3 Historie und Einordnung
entstanden aus dem kommerziellen Produkt b+m Generator FrameWork der b+m Informatik AG wurde unter LGPL (Lesser General Public License) als Open Source zur Verfügung gestellt Java-implementiertes, MDSD-konformes Framework Metamodell-basierte, domainspezifische Sprachen (abstrakte Syntax, konkrete Syntax) Transformation durch Templates (Semantik) definierte Plattform manuelle Ergänzung Das Modell ist also präzise in dem Sinne, dass seine Bedeutung durch die DSL exakt definiert ist, es stellt formalisiertes Wissen über die Anwendungsdomäne dar. Die DSL, genauer: deren konkrete Syntax, kann entweder textuell oder grafisch sein, auch tabellarische oder andere Notationen können verwendet werden. Entscheidender ist die abstrakte Syntax, auch als Metamodell bezeichnet (siehe Abb. 4). Das Metamodell definiert die Modellelemente, mit denen die Modelle der betreffenden Domäne erstellt werden können. Neben einer abstrakten und einer konkreten Syntax muss jede Sprache auch eine Semantik besitzen, die die Bedeutung der Modelle genau definiert. Im Falle von MDSD wird die Semantik üblicherweise transformationell definiert, was bedeutet, dass die Modelle mittels Transformationen auf eine andere, wohl bekannte Sprache (oft eine 3GL) abgebildet werden. Diese Abbildungsregeln definieren die Bedeutung der DSL bzw. der damit ausgedrückten Modelle. Open Source schafft die Sicherheit der kontinuierlichen Weiterentwicklung und damit die notwendige Investitionssicherheit für Unternehmen und bietet die ideale Basis für Kooperation mit Toolherstellern und Kunden. Open Source Projekt bietet eine von Profis in der Praxis erprobte Basisplattform für die Integration von MDA/D in den Entwicklungsprozess Nico Suchold openArchitectureWare

4 Kern-Kompetenz Jede Form von Modellinformationen ist auswertbar
beliebige Ausgabeformate generierbar (Java, XML, PHP etc.) explizites Domain-Metamodell einfache Template-Sprache gute Integrationsfähigkeit umfangreiche Dokumentation Nico Suchold openArchitectureWare

5 Das Generator-Framework
Parser analysiert Inputmodell (z.B. XMI-Format) Instantiator bildet Instanzen des Metamodells zum geparsten Modell auf Basis Plattform-spezifischer Templates erzeugt Code Generator den zu generierenden Code Nico Suchold openArchitectureWare

6 Metamodellierung I reduziertes, praxis-orientiertes UML-Metamodell vorhanden und bildet Basis-Metamodell wird repräsentiert durch Basis-Metaklassen des Generator- Frameworks Basis-Metamodell wird um Elemente der eigenen Anwendungsarchitektur erweitert um DSL abzubilden Nico Suchold openArchitectureWare

7 Metamodellierung II für abgeleitete Element des Metamodells müssen die jeweiligen Metaklassen erstellt werden am einfachsten mittels Vererbung der Basis-Metaklassen und Implementierung speziell benötigter Methoden zu realisieren Nico Suchold openArchitectureWare

8 Metamodellierung III mittels der Mapping-Datei wird z.B. der Stereotyp Geschaeftsobjekt auf die erstellte Metaklasse Geschaeftsobjekt abgebildet <MetaMap> <Mapping> <Map>Geschaeftsobjekt</Map> <To>Geschaeftsobjekt</To> </Mapping> </MetaMap> Nico Suchold openArchitectureWare

9 Metamodellierung IV Instantiierung Nico Suchold openArchitectureWare
<MetaMap> <Mapping> <Map>Geschaeftsobjekt</Map> <To>Geschaeftsobjekt</To> </Mapping> </MetaMap> Instantiierung Nico Suchold openArchitectureWare

10 Templates I dienen der Beschreibung der Codegenerierungsvorschriften
werden mit oAW-eigener Sprache Xpand erstellt sehr einfache Sprache mit wenigen Sprachelementen Templatedatei besteht aus beliebig vielen DEFINE-Blöcken Rumpf der DEFINE-Blöcke enthält beliebigen Text, Tags mit << und >> geklammert und Xpand-Kommentare Tags steuern die Generierung und Text wird unverändert in den Output geschrieben Nico Suchold openArchitectureWare

11 Templates II Nico Suchold openArchitectureWare

12 Templates III instantiierte Metaklasse aus dem Modell
Ausschnitt aus der Templatedatei <<DEFINE Root FOR Geschaeftsprozess>> <<FILE Name“.java“>> public class <<Name>> // Geschaeftsprozess { <<EXPAND PropertyDef FOREACH Attribute>> <<EXPAND MethodDef FOREACH Operation>> } <<ENDFILE>> <<ENDDEFINE>> <<DEFINE PropertyDef FOR Attribute>> private <<Type>> <<Name>>; public void <<Name.asSETTER>>(<<Type>> <<Name.asPARAM>>) { <<Name>> = <<Name.asPARAM>>; public <<Type>> <<Name.asGETTER>> () { return <<Name>>; <<DEFINE MethodDef FOR Operation>> <<Visibility>> <<ReturnType>> <<Name>> <<NONL>> (<<FOREACH Parameter AS curParam EXPAND USING SEPARATOR “, “ >> <<curParam.Type>> <<curParam.asPARAM>> <<ENDFOREACH>>) { <<NL>> <<PROTECT CSTART ‘/*’ CEND ‘*/’ ID Id>> // place code here <<ENDPROTECT>> generierte Datei RechnungErstellen.java public class RechnungErstellen // Geschaeftsprozess { private int interneNummer; public void setinterneNummer( int pinterneNummer ) { interneNummer = pinterneNummer; } public int getinterneNummer () { return interneNummer; public void erstelleRechnungFuerKunde( int pKundennummer) { /*PROTECTED REGION ID(I197eb84m ca2mm4784) START*/ // place code here /*PROTECTED REGION END*/ Nico Suchold openArchitectureWare

13 Integration Projekte zur Integration in UML-Werkzeuge
verschiedene unterstützte UML Dialekte ARIS UML-Designer Gentleware Poseidon for UML Rational Rode + UniSys XML Tools eigenes Plugin für Integration von oAW in Eclipse anzupassende Build-Skripte auf ANT-Basis Xpand Template Editor Content Outline Page Analyse von Generatorausgaben Template Editor bietet Syntax-Highlighting und Code Completion fürdie Xpand- Sprache französischen Anführungszeichen «und » OutlineView alle DEFINE-Blöcke aufgelistet. dump-File Model Structure View kann man durch das instanziierte Modell browsen. Template Call Graph View zeigt, welche Template-Definitionen mit entsprechenden Modellelementen expandiert wurden Nico Suchold openArchitectureWare

14 Zusammenfassung und Ausblick
leichter Einstieg durch Tutorials und Dokumentation flexibles Framework zur Generierung von Applikationen Version 4 Anfang 2006 bessere Integration in Eclipse (besseres debuggen) EMF – Unterstützung Erweiterung von XPand Nico Suchold openArchitectureWare

15 Quellenangaben b+m Informatik AG: Open Generator Framework Referenz, kReference_de.pdf Völter M.: Modellgetriebende Softwareentwicklung, Völter M.: Metamodellbasierte Codegenerierung in Java, n.pdf Grund M.: MDA Tools, Hasso-Plattner-Institut, Thoms K., Holzer B.: Java Magazin 07/2005, Codegenerierung mit dem openArchitectureWare Generator 3.0: The next Generation, Thoms K., Gruske M.: Java Magazin 08/2005, openArchitectureWare, Teil 2: Metamodellierung und Tool- Integration: Wenn Architektur zur Ware wird, Nico Suchold openArchitectureWare

16 Vielen Dank für Ihr Interesse !
Nico Suchold openArchitectureWare


Herunterladen ppt "Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung"

Ähnliche Präsentationen


Google-Anzeigen