Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung

Slides:



Advertisements
Ähnliche Präsentationen
Vortrag Code-Dokumentation
Advertisements

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Allgemeines Name: Ursprünglich: „Personal Home Page Tools“
Zur SCORM-Fähigkeit konventioneller XML-unterstützender eLearning Developer Tools im Projekt I-can-EIB OFFIS Oldenburger Forschungs- und Entwicklungsinstitut.
1 Gerardo Navarro Suarez BPM Suite. 2 Quelle: camunda Services GmbH Das Warum hinter Activiti Problem bestehender BPMS: Starker Fokus auf das Business.
Business Intelligence Jan Weinschenker
Eclipse.
Modellgetriebene Softwareentwicklung
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Die Nutzung internationaler Standards in MEX
eine Plattform für annotierte Korpora in XML
Druck / Ausgaben unter LSF
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
Seminar: XML für Fortgeschrittene Referent: Katrin Apel
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Testgetriebene Entwicklung
Werkzeuge und Softwareumgebung von Christian Michele.
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
MDSD – Model Driven Software Development
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Seminar Modellgetriebene Softwareentwicklung Einführung Seminar modellgetriebene Softwareentwicklung WS 05/06 Dipl.-Inf. Nadine Fröhlich Prof. Dr.-Ing.
XDoclet ETIS SS05.
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Software Engineering Seminar Metamodellierung
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
Software Design Patterns Extreme Programming (XP).
Einführung in Visual C++
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Systementwicklungsprojekt:
UML Begleitdokumentation des Projekts
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Erweiterung von EMF Refactor um Update Funktionalität in grafischen Editoren Thorsten Arendt, AG Taentzer, SWT FoPra-Vorstellung, 19. April 2012.
Präsentation einer Codegenerator Softwarelösung objectiF.
Letzter Tag Spaeter Zeitpunkt letzte Lied hoert man weiter.
MDA – Framework AndroMDA
Durchstarten beim Technologieführer
Basiswissen für Partner und interessierte Kunden Technologie.
INFORMATIONSSYSTEM ZUR STUDIERENDENVERWALTUNG OPUS-College.
App-Entwicklung mit HTML5, CSS und JavaScript
Einführung Modellgetriebene Softwareentwicklung, Metamodellierung Stephan Hildebrandt.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
VU Semistrukturierte Daten 1
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Effiziente Codegenerierung aus UML2 Strukturdiagrammen
Eclipse Modeling Framework (EMF)
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Google Android.
CMS Content-Management-Systeme (CMS), dienen der Verwaltung und Pflege von Dokumenten und Inhalten in Inter- und Intranetanwendungen. Den Entwickler oder.
Drucken mit XSL-FO DaimlerChrysler  Drucken von Webseiten
Eclipse – PHP Tool Integration (PTI) Sven Kiera, TWT Interactive GmbH.
Generative Softwareentwicklung in der Praxis Olaf Kaus, „Java User Group“, Hannover 6.Oktober 2003.
Lightning Talk von Andreas Güntzel Model Driven Software Development CODE GENERIERUNG MIT ANY.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Bern University of Applied Sciences Engineering and Information Technology Documentation generator for XML-based description standards Ausgangslage: Die.
Seminar Modellgetriebene Softwareentwicklung XMI - XML Metadata Interchange Vortrag im Rahmen des Seminar Modellgetriebene Softwareentwicklung Mirko Otto.
Seminar Modellgetriebene Softwareentwicklung Thema 3: Metamodelle – MOF Michél Rieser Prof. Dr.-Ing. habil. Georg Paul
MDA – Model Driven Architecture
Wirtschaftsinformatik Christian Mehring Im Rahmen des Seminars „Ausgewählte Themen des Softwareengineering“
BA Stuttgart, Technische Informatik, SW-Engineering, Objektorientierter Entwurf April 2007 Seite 1 Objektorientierter Entwurf (OOD) Beispiel: Generator.
IT-Dienstleistungen E-Learning Systeme Content Management 1 Fallbeispiel ILIAS: Das Repository-Objekt-Plugin „Centra“
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
1. Betreuer: Prof. Dr. Jörg Striegnitz 2. Betreuer: Dr. Martin Schindler Kontextsensitive Autocompletion für Klassendiagramme in der UML/P Florian Leppers.
Methodische Grundlagen des Software-Engineering
Implementieren von Klassen
openArchitectureWare in der FIDUCIA IT AG
 Präsentation transkript:

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

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

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

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

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

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

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

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

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

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

Templates II Nico Suchold openArchitectureWare

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(I197eb84m10365753ca2mm4784) START*/ // place code here /*PROTECTED REGION END*/ Nico Suchold openArchitectureWare

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

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

Quellenangaben b+m Informatik AG: Open Generator Framework Referenz, http://architecturware.sourceforge.net/data/openGeneratorFrameWor kReference_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/MetaModelBasedCodeGe n.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 Nico Suchold openArchitectureWare

Vielen Dank für Ihr Interesse ! Nico Suchold openArchitectureWare