1 / 16

openArchitectureWare Tool-Suite für modellgetriebene Softwareentwicklung

Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung Nico Suchold suchold @ cs.uni-magdeburg.de. openArchitectureWare Tool-Suite für modellgetriebene Softwareentwicklung. Inhalt. Historie und Einordnung Kern-Kompetenz Das Generator-Framework Metamodellierung Templates

rufus
Download Presentation

openArchitectureWare Tool-Suite für modellgetriebene Softwareentwicklung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Nico Suchold Historie und Einordnung entstanden aus dem kommerziellen Produkt b+m Generator FrameWork der b+m Informatik AG wurde 14.09.2003 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

  4. Nico Suchold 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

  5. Nico Suchold 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

  6. Nico Suchold 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

  7. Nico Suchold 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

  8. Nico Suchold 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>

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

  10. Nico Suchold 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

  11. Nico Suchold Templates II

  12. Nico Suchold 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>>; } <<ENDDEFINE>> <<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>> } <<ENDDEFINE>> 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(I197eb84m10365753ca2mm4784) START*/ // place code here /*PROTECTED REGION END*/ } }

  13. Nico Suchold 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

  14. Nico Suchold 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

  15. Nico Suchold Quellenangaben b+m Informatik AG: Open Generator Framework Referenz, http://architecturware.sourceforge.net/data/openGeneratorFrameWorkReference_de.pdf Völter M.: Modellgetriebende Softwareentwicklung, http://architecturware.sourceforge.net/data/MDSD.pdf Völter M.: Metamodellbasierte Codegenerierung in Java, http://architecturware.sourceforge.net/data/MetaModelBasedCodeGen.pdf Grund M.: MDA Tools, Hasso-Plattner-Institut, http://www.grundprinzip.de/files/MDA_Tools-Martin_Grund.pdf Thoms K., Holzer B.: Java Magazin 07/2005, Codegenerierung mit dem openArchitectureWare Generator 3.0: The next Generation, http://www.itemis.de/pdf/jm_7_05_94_97.pdf Thoms K., Gruske M.: Java Magazin 08/2005, openArchitectureWare, Teil 2: Metamodellierung und Tool-Integration: Wenn Architektur zur Ware wird, http://www.itemis.de/pdf/jm_8_05_67_71.pdf

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

More Related