Effiziente Codegenerierung aus UML2 Strukturdiagrammen

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Projektmeeting Stufe I Kick-Off Stufe II
C Sharp (C#) Martin Saternus Senior Student Partner
1 Referenzmodelle für HISinOne Dr. Uwe Hübner, 02. Juli 2009.
1 Gerardo Navarro Suarez BPM Suite. 2 Quelle: camunda Services GmbH Das Warum hinter Activiti Problem bestehender BPMS: Starker Fokus auf das Business.
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung
Kapitel 8: Nachrichtenbasierte Kommunikation mit JMS
Vorstellung von PaderWAVE Generierung von Web-Anwendungen aus visuellen Spezifikationen, SS04 Projektgruppe der AG Kastens.
Konzeption und Implementation visueller Editoren zur Bearbeitung von SPS-Schrittketten mit dem Editorgeneratorsystem DEViL Dennis Klassen Höxterstraße.
Seminar Software-Engineering für softwareintensive Systeme
Visualisierung des Rechts mit UML
Anwendungsfalldiagramm
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE P MuSofT Erkundungsumgebung Entwicklung eines komponentenbasierten Systems WS 03/04.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
DOM (Document Object Model)
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
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.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
3.+4. Übungsblatt Abstraktion, Modultypen und OO Erweiterung des Entwurfs Benutzbarkeitsbeziehungen 11. Mai 2006 Dipl.-Inform. Christian Fuß.
UML Begleitdokumentation des Projekts
Werkzeugunterstützte Softwareadaption mit Inject/J
Chat System – Gruppe B Tim Braun, Andre Ester, Florian Müller und
Spezifikation von Anforderungen
Plattformunabhängige Programmiersprache
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.
Übersicht Motivation Konzeption Umsetzung/ Implementierung
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Einfache Automaten mit Lego Mindstorms praktisch umsetzen
Nutzungsszenarien introspektiver Modelle
Grundlagen ExecutionModel Simulationsumgebung
INFORMATIONSSYSTEM ZUR STUDIERENDENVERWALTUNG OPUS-College.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Java für Fortgeschrittene
Evaluation von softwaregestützten Modellierungsmöglichkeiten innerhalb der Analysephase von Fortbildungsmaßnahmen Kolloquium - Thomas Vogt –
Einführung Modellgetriebene Softwareentwicklung, Metamodellierung Stephan Hildebrandt.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
UML-Kurzüberblick Peter Brusten.
Wasserfallmodell und Einzelbegriffe
SPODAT - Blick nach vorn
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Enterprise Achitect (Sparx Systems) Marius Rudolf
Eclipse Modeling Framework (EMF)
00:13 Matthias Ansorg FH Gießen-Friedberg1 / 24 Multidimensionale Datenstrukturen - semantische und logische Modellierung Teilvortrag: logische Modellierung.
Zwischenvortrag zur Diplomarbeit
Diplomverteidigung Ulrich Dinger Thema: Untersuchung und Entwicklung von Ansätzen und Techniken zur Realisierung einer (Web) Service Language.
Objektorientierung.
Modellbasierte Software-Entwicklung eingebetteter Systeme
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Generierung von effizientem C-Code aus UML2-Strukturdiagrammen
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
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
Ziel - Konzept - Realisierung 28. August 2003 Ursula Jutzi.
Objektorientierte (OO) Programmierung
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Entwurf, Implementierung und Test eines Java – Web Services als Kommunikationsschnittstelle für Webapplikationen mit Funktionen.
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
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
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
 Präsentation transkript:

Effiziente Codegenerierung aus UML2 Strukturdiagrammen Zwischenvortrag Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Motivation Eingebettete Systeme Zeit- und sicherheitskritische Abläufe Eingeschränkte Ressourcen (Speicher, Prozessor- und Controllerleistung) Hardwarenahe Programmierung in C erforderlich Einsatz von UML bei eingebetteten Systemen Einheitliche Modellierung z.B. mit UML Wiederverwendung, Erweiterung, Anpassung Durchgängiger Methoden- und Werkzeugeinsatz RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Aufgabenstellung Konzeptioneller Teil Wie können UML2 Strukturdiagramme in ANSI C übertragen werden? Wie kann effizienter Code erzeugt werden? Technischer Teil Entwicklung eines Eclipse-Plugins Einlesen von UML-Modellen aus ViPER Implementierung der konzeptionellen Ergebnisse Generierung von lauffähigem ANSI C-Code RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Inhalt Vorgaben UML2-Standard (Strukturdiagramme) ANSI C-Standard Lösungskonzeption Transformationskonzept Umsetzung in ANSI C Technische Lösung Eingesetzte Frameworks Realisierung Optimierungsmöglichkeiten Demo des Werkzeugs RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk UML2 Standard Universelle Modellierungssprache OMG-Standard UML2 ab 2004 Komplexitätsreduzierung, erneuertes Metamodell Neue Anwendungsbereiche (J2EE, Echtzeitanwendungen) Bessere Unterstützung der hierarchischen Modellierung Einführung von zusätzlichen Strukturdiagrammen Kompositionsstrukturdiagramme Funktionsweise eines Systems, Verhaltensmuster Komponentendiagramme Physische Struktur eines Systems Gemeinsames Verhalten in öffentlichen Schnittstellen bereitstellen RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk ANSI C Standard Standardisierung des ANSI von 1988 Erstmalige Festlegung des Sprachstandards Wichtige Eigenschaften Keine Laufzeitabhängigkeit, Overhead Weite Verbreitung, Compiler-Support Hohe Performanz, Hardware-nah Skalierbarkeit Einfache Lesbarkeit, Benutzung RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Inhalt Vorgaben UML2-Standard (Strukturdiagramme) ANSI C-Standard Lösungskonzeption Transformationskonzept Umsetzung in ANSI C Technische Lösung Eingesetzte Frameworks Realisierung Optimierungsmöglichkeiten Demo des Werkzeugs RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Lösungskonzeption Direkte Generierung des Codes aus UML2-Modell Modelltransformation in ANSI C-Modell, dann Codegenerierung ANSI C-Modell (abstrakter Syntaxbaum) als Zielmodell Transformation zwischen UML2- und ANSI C-Modell Modellüberprüfung vor und nach Transformation Codegenerierung aus ANSI C Modell RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

Vorteile der Lösungsansätze Direkte Generierung Weniger benutzte Frameworks Weniger Code 2. Transformation, dann Generierung Gezielte Optimierung der Einzelschritte möglich Relativ einfache Anpassung an andere Sprachen, Systeme, Modelle Entwicklung und Fehlersuche einfacher RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

Lösungskonzeption: Schema RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Umsetzung in ANSI C Modellierung von Modulen durch Übersetzungseinheiten Datenkapselung mit Hilfe von structs Vorwärtsdeklaration in Headerdatei Methoden als Pointer auf Funktionen Eindeutige Signatur Implizites this als *void-Zeiger Methoden zusätzlich als Fassade per Makro RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

Umsetzung in ANSI C: Beispiel RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

Umsetzung: Components RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

Umsetzung: Delegation-Connector RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

Umsetzung: Assembly-Connector RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Inhalt Vorgaben UML2-Standard (Strukturdiagramme) ANSI C-Standard Lösungskonzeption Transformationskonzept Umsetzung in ANSI C Technische Lösung Eingesetzte Frameworks Realisierung Optimierungsmöglichkeiten Demo des Werkzeugs RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

Eingesetzte Frameworks Eclipse Eclipse Modelling Framework (EMF) Vereinigt UML, XML und JAVA Persistenz-API, Generierung, Validation openArchitectureWare Komponentenbasiertes Rahmenwerk Modelltransformation Codetransformation (XML, JAVA, HTML, …) Schnittstellen zu EMF und anderen Modellierungstools RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Realisierung RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk ANSI C-Metamodell ANSI C-Metamodell analog zum abstrakten Syntaxbaum RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

ANSI C-Metamodell: Erweiterung Erweiterung um AST-fremde Elemente Containerstruktur oberhalb der TranslationUnit (Code-Organisation) CodeAnnotations, Syntaxrepräsentation von Kommentaren (Dokumentation) RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Modellvalidierung Funktionale Überprüfungssprache Check Einsatz zur Überprüfung von UML2- und ANSI C-Modellen Jedes Modellelement direkt prüfbar Verschiedene Prioritäten möglich RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

Modelltransformation Funktionale Transformationssprache xTend Chaining, Syntaxcheck automatische Abhängigkeiten RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Codegenerierung Funktionale Generierungssprache xPand Generierungsschablonen für Metamodellelemente Schablonen als Klassenstruktur entsprechend dem ANSI C-AST RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Inhalt Vorgaben UML2-Standard (Strukturdiagramme) ANSI C-Standard Lösungskonzeption Transformationskonzept Umsetzung in ANSI C Technische Lösung Eingesetzte Frameworks Realisierung Optimierungsmöglichkeiten Demo des Werkzeugs RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk Optimierung Singletons Objekte, die nur einmal im System existieren Potenzial: this-Zeiger fallen weg Direkte Connector-Verbindung Delegation Connectors über mehrere Ebenen werden „eingedampft“ Potenzial: Nicht mehr benutzte Connectors fallen weg RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk

Demo time!

Ende + Preview Vielen Dank für die Aufmerksamkeit! Endvortrag: Multiplizität von Elementen Protected Regions bei der Generierung Evaluation des Werkzeugs RWTH Aachen, LuFGI 3 Software Konstruktion - Mathias Funk