slide1
Download
Skip this Video
Download Presentation
openArchitectureWare Tool-Suite für modellgetriebene Softwareentwicklung

Loading in 2 Seconds...

play fullscreen
1 / 16

openArchitectureWare Tool-Suite für modellgetriebene Softwareentwicklung - PowerPoint PPT Presentation


  • 83 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' openArchitectureWare Tool-Suite für modellgetriebene Softwareentwicklung' - rufus


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung

Nico Suchold

suchold @ cs.uni-magdeburg.de

openArchitectureWareTool-Suite für modellgetriebene Softwareentwicklung
inhalt
Nico SucholdInhalt

Historie und Einordnung

Kern-Kompetenz

Das Generator-Framework

Metamodellierung

Templates

Integration

Zusammenfassung und Ausblick

historie und einordnung
Nico SucholdHistorie 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

kern kompetenz
Nico SucholdKern-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

das generator framework
Nico SucholdDas 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

metamodellierung i
Nico SucholdMetamodellierung 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

metamodellierung ii
Nico SucholdMetamodellierung 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

metamodellierung iii
Nico SucholdMetamodellierung 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>

metamodellierung iv
Nico SucholdMetamodellierung IV

<MetaMap>

<Mapping>

<Map>Geschaeftsobjekt</Map>

<To>Geschaeftsobjekt</To>

</Mapping>

</MetaMap>

Instantiierung

templates i
Nico SucholdTemplates 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

templates iii
Nico SucholdTemplates 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*/

}

}

integration
Nico SucholdIntegration

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

zusammenfassung und ausblick
Nico SucholdZusammenfassung 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

quellenangaben
Nico SucholdQuellenangaben

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

ad