Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung
Download
1 / 16

- PowerPoint PPT Presentation


  • 85 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 '' - 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
Openarchitectureware tool suite f r modellgetriebene softwareentwicklung

Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung

Nico Suchold

suchold @ cs.uni-magdeburg.de

openArchitectureWareTool-Suite für modellgetriebene Softwareentwicklung


Inhalt

Nico Suchold Softwareentwicklung

Inhalt

Historie und Einordnung

Kern-Kompetenz

Das Generator-Framework

Metamodellierung

Templates

Integration

Zusammenfassung und Ausblick


Historie und einordnung

Nico Suchold Softwareentwicklung

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


Kern kompetenz

Nico Suchold Softwareentwicklung

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


Das generator framework

Nico Suchold Softwareentwicklung

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


Metamodellierung i

Nico Suchold Softwareentwicklung

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


Metamodellierung ii

Nico Suchold Softwareentwicklung

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


Metamodellierung iii

Nico Suchold Softwareentwicklung

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>


Metamodellierung iv

Nico Suchold Softwareentwicklung

Metamodellierung IV

<MetaMap>

<Mapping>

<Map>Geschaeftsobjekt</Map>

<To>Geschaeftsobjekt</To>

</Mapping>

</MetaMap>

Instantiierung


Templates i

Nico Suchold Softwareentwicklung

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


Templates ii

Nico Suchold Softwareentwicklung

Templates II


Templates iii

Nico Suchold Softwareentwicklung

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*/

}

}


Integration

Nico Suchold Softwareentwicklung

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


Zusammenfassung und ausblick

Nico Suchold Softwareentwicklung

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


Quellenangaben

Nico Suchold Softwareentwicklung

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


Vielen dank f r ihr interesse
Vielen Dank für Ihr Interesse ! Softwareentwicklung

Nico Suchold