Eclipse Modeling Framework (EMF)

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Software Engeniering II
Forschungszentrum Informatik
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
E-Commerce Shop System
1 Gerardo Navarro Suarez BPM Suite. 2 Quelle: camunda Services GmbH Das Warum hinter Activiti Problem bestehender BPMS: Starker Fokus auf das Business.
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
Software Engineering 2 Übung – Konstruktion interaktiver (CASE) Tools SS 2007 Leif Geiger, Carsten Reckord, Software Engineering.
Modellgetriebene Softwareentwicklung
Vortrag im Rahmen des Seminars Modellgetriebene Softwareentwicklung
Einführung in die Entwicklungsumgebung
Ruby on Rails im Überblick
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
DOM (Document Object Model)
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
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.
Explizite und editierbare Metainformationen für Software Muster.
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Projekt Web Engineering
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Software Engineering Seminar Metamodellierung
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Erweiterung von Eclipse als Entwicklungs-Plattform aus Sicht des Eclipse-Boardmitgliedes TogetherSoft Together auf Basis von Eclipse.
CRM Editor auf der Basis von Qt (Beispiel von Ubi erat Lupa)
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.
PHProjekt – eine open source Projektmanagementsoftware
Herzlich Willkommen… welcome… soyez la bienvenue….
Erweiterung von EMF Refactor um Update Funktionalität in grafischen Editoren Thorsten Arendt, AG Taentzer, SWT FoPra-Vorstellung, 19. April 2012.
Wir bauen uns eine Webapplikation!
Einfache Automaten mit Lego Mindstorms praktisch umsetzen
MDA – Framework AndroMDA
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Nutzungsszenarien introspektiver Modelle
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Proseminar: „Webtechnologien für Ecommerce“
App-Entwicklung mit HTML5, CSS und JavaScript
Sesame Florian Mayrhuber
Einführung Modellgetriebene Softwareentwicklung, Metamodellierung Stephan Hildebrandt.
Übersicht Was ist cocoon? Separation of Concerns Pipeline Modell
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
VU Semistrukturierte Daten 1
Wasserfallmodell und Einzelbegriffe
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
GMF (Graphical Modeling Framework)
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Torque robert.resch-wolfgang.schneider. uebersicht Was ist Torque Komponenten von Torque Generator Erzeugte Klassen Methoden Torque in Turbine Demobeispiel.
22. Oktober 2007Martin Feldmann, 1 Bachelor-Thesis Entwicklung einer automatisierten Dokumentation von LabVIEW Quellcode für das Rahmenwerk.
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.
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
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“
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
DOAG Regionaltreffen Trier/Saarland Verwendung von TopLink in J2EE Applikationen 09. September 2003 Marcus Keuper, Pfeil GmbH
XML-basierte Beschreibungssprachen für grafische Benutzerschnittstellen Seminarvortrag im Studiengang „Scientific Programming“ von Steffen Richter.
Methodische Grundlagen des Software-Engineering
 Präsentation transkript:

Eclipse Modeling Framework (EMF) 03.02.2010 Mich und Laurent

Agenda Motivation Grundlagen Technologien Manipulation Ecore Genmodell Demo Persistenz Notification Ausblick GMF Fazit / Quellen

Motivation Soll ich Modellieren oder Programmieren?  sowohl als auch!!! Produktivitäts-Steigerung durch Code-Generierung (und Fehlerminimierung) Software (Modell) leicht erweiterbar Annehmlichkeiten eines Frameworks nutzen (Notification, Persistenz, …)

Grundlagen EMF ist ein eigenständiges Eclipse-Projekt Modellgetriebene Entwicklung Pragmatischer Ansatz von Model-Driven Software Development (MDSD) Quelltextgenerierungs-Framework zur Erzeugung diverser Quellcode Artefakte Modell-Input/Output: XML-Schema Java-Code mit Annotations UML-Diagramm Baum-Editor Modell-Funktionalitäten: Instanzierung Abfragen Manipulieren Serialisieren, validieren, Persistenz Notification für MVC Generieren von JUnit-Code, um den generierten Code zu testen

Technologien Vereinigt drei Technologien: XML UML Java EMF ist die abstrahierte Notation, welche die Repräsentationen verbindet Modellierung des Datenmodells: Java mittels Annotations XMI (XML mit vordefinierten Tags)

Manipulation Veränderung des Datenmodells werden in allen Repräsentation nachgezogen

Begriff «ecore» ecore ist die Meta-Sprache zur Definition des Daten-Modells Grundlage für die Quelltexterzeugung Eclipse bietet eine Baum-Editor für die Erfassung des ecore-Modells (siehe Bild) Gewisse Eigenschaften können nur im Baum-Editor gesetzt werden Salopp betrachtet, entspricht es dem Klassendiagramm Konkret: Spezifikation der Daten einer Anwendung (Nutzdaten) Objekte mit Attributen Relationen (Assoziationen) zwischen Objekten Operationen auf Objekten Einfache Bedingungen (z.B. Multiplizität) von Objekten und Relationen

ecore-Metamodell Daten-Modell unserer Anwendung leitet schlussendlich von EObject ab:  primär EClass, EAttribute, EReference  Persistenz, Notification, … /** * @model abstract="true" * @generated */ public interface Shape extends EObject { ... }

Begriff «genmodel» durch genmodel wird die Quelltexterzeugung ermöglicht im Gegensatz zur ecore stellt es plattformspezifische (CPU/OS) Informationen zu Verfügung Mittels genmodels kann konfiguriert werden, wie der Quelltext generiert werden soll: Angabe der weiter benötigten Package für die Code-Generierung Spezifikation des Base Package Vorgang wird meistens durch einen Wizard unterstützt

Demo (Daten-Modell)

Persistenz Standardmässig wird eine dateibasierte Persistenz auf XML-Basis angeboten Beispiel Speichern/Laden eines EObject in XMI: // ResourceSet erzeugen ResourceSet resourceSet = new ResourceSetImpl(); // URI zur Modelldatei (XMI) festlegen URI fileURI = URI.createFileURI(new File("anyModelFile.xmi").getAbsolutePath()); // Resource für Modelldatei anlegen Resource resource = resourceSet.createResource(fileURI); // Ein Objekt vom Typ Vertrag hinzufügen RectabgularShape rectangle = EvmsFactory.eInstance.createRectabgularShape(); resource.getContents().add(rectangle); // Inhalt von Resource speichern resource.save(Collections.EMPTY_MAP);

Persistenz mittels Teneo Plugin EMF Teneo Ermöglicht die Anbindung an eine beliebige relationalen Datenbank Nutzt vorhandene O/R-Mapping-Technologien wie Hibernate oder EclipseLink

Notification Ist ein Benachrichtigungs-Mechanismus bei Änderungen eines Objektes  Observer-Pattern Dient zur Aktualisierung von Views und abhängigen Objekten (MVC) Notification ist wichtiger Bestandteil von EMF Jedes Objekt des Daten-Modells leitet von EObject ab und implementiert somit automatisch Notifier public interface EObject extends Notifier { ... } public interface Shape extends EObject { ... } public abstract class ShapeImpl extends EObjectImpl implements Shape { ... /** @generated */ public void setName(String newName) { String oldName = name; name = newName; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.SHAPE__NAME, oldName, name)); }

Ausblick GMF Erlaubt einen beliebigen, grafischen Editor «zusammen zu klicken» ohne eigenen Code zu schreiben. Diese Arbeit wird von Generatoren übernommen. GMF verwendet EMF um das Daten-Metamodell abzubilden GMF greift auf GEF (Graphical Editing Framework) zurück, dieses stellt umfangreiche Klassen für die graphische Darstellung und Werkzeuge für Editoren bereit.

Beispiel GMF

Fazit Enge Eclipse-Integration: Generierung von UI-Komponenten, Zusammenarbeit mit anderen Eclipse-Projekten, etwa im Eclipse Graphical Modeling Framework (GMF) Man bekommt als Entwickler viel geschenkt, etwa Persistenz und Validierung. Dies steigert die Produktivität beim Entwickeln. Wenig Einarbeitungszeit notwendig zum Modellieren aufgrund vieler Möglichkeiten der Modellierung (XML, UML, Java-Annotations) Einsatz von Code-Generatoren steigert Produktivität und reduziert Wiederholungen und damit mögliche Fehlerquellen Basiert auf offenen Standards und Open-Source-Frameworks Nur noch geringfügige Konfigurationen oder manuelle Anpassungen am Quellcode für das Daten-Modell erforderlich Erste Erfolge sind schnell erreicht. Komplexe Aufgaben erfordert tiefere Einarbeitung in das Thema  aufwendig Diverse Anbindung an EMF vorhanden: GMF, Teneo, … Es gelten die allgemeinen Vor-/Nachteile von Frameworks (Einarbeitung, Komfort, Skalierbarkeit, Abstraktion, Standard-Lektüre, …) Framework-Wechsel erfordert komplettes Redesign

Quellen Web: EMF-Projekt-Homepage: http://www.eclipse.org/modeling/emf/ EMF-Tutorial für Eclipse: http://www.vogella.de/articles/EclipseEMF/article.html GMF-Tutorial: www.tm.tfh-wildau.de/vandenhouten/media/GMF-Step-By-Step.pdf Bücher: EMF Eclipse Modeling Framework, Addison Wesley, ISBN 10: 0-321-33188-5