A light introduction to the Eclipse Modeling Framework

Size: px
Start display at page:

Download "A light introduction to the Eclipse Modeling Framework"

Transcription

1 A light introduction to the Eclipse Modeling Framework Juan Manuel Vara Kybele Research Group University Rey Juan Carlos

2 References Eclipse Modeling Project: A Domain Specific Language (DSL) Toolkit Richard C. Gronback. Addison-Wesley Profesional, Eclipse Modeling Framework (Second Edition) Dave Steinberg, Frank Budinsky, Marcelo Paternostro, Ed Merks. Addison-Wesley Professional, Fundamentals of the Eclipse Modeling Framework EclipseCON2008, Dave Steinberg Model-Handling with EMF Open Model CourseWare (OMDW), ATLAS group,university of Nantes, A light introduction to the Eclipse Modeling Kybele 2010

3 Goals Paper stands for all Show how the MDE proposals can be deployed in a real framework Introduce the Eclipse Modelling Framework (EMF), the modeling platform most commonly used nowadays 3 A light introduction to the Eclipse Modeling Kybele 2010

4 Agenda Introduction MDE & EMF The Eclipse Platform Defining a Model with EMF EMF Architecture Code Generation Programming with EMF EMF.Edit Summary 4 A light introduction to the Eclipse Modeling Kybele 2010

5 MDE Principles Current engineering approaches Models not part of engineering processes (documentation) MDE approach Models as first class entities Need for dedicated tools MDE basic concepts System real world situation Model abstraction of a system Describe a given aspect of the system Metamodel rules to define an abstraction 5 A light introduction to the Eclipse Modeling Kybele 2010

6 Model-Driven Engineering (using MOF) conformsto meta Metametamodel Metametamodel element MOF M3 meta conformsto M2 Metamodel element Metamodel Relational metamodel UML metamodel meta conformsto System repof M1 Model element Model 6 A light introduction to the Eclipse Modeling Kybele 2010

7 Model-Driven Engineering (using MOF): Example MOF Metametamodel Association source destination Class conformsto conformsto Relational Metamodel Table Column + col name: String + owner name: String * {ordered} + keyof 1..* + key * * Type + type name: String conformsto System repof BookId Relational Model Title PagesNb AuthorId Book 7 A light introduction to the Eclipse Modeling Kybele 2010

8 MDE Are We There Yet? A (kind of) conceptual model for MDE Doubts exist about the ability of MDE to deliver on its promises: Ambitiousness of vision Model expressiveness vs. complexity Availability of implementations ( vaporware ) 8 A light introduction to the Eclipse Modeling Kybele 2010

9 Operating on Models Model persistence Loading/saving Model edition Creation/deletion/modification Model navigation conformsto/meta relations 9 A light introduction to the Eclipse Modeling Kybele 2010

10 EMF EMF is a Java-based environment for development of tools and other applications based on a structured model EMF is a simple, pragmatic approach to modeling: Allows us to generate some of the code that we write over and over, paving the way for more complex systems (including more ambitious MDA tools) Models are simple, but meant to be mixed with handwritten code It s real, proven technology (since 2002) 10 A light introduction to the Eclipse Modeling Kybele 2010

11 Model Driven Development with EMF Contrary to the belief of many programmers, modeling is useful for more than just documentation Almost every program we write manipulates some data model Defined using UML, XML Schema, some other definition language, or implicitly in Java EMF aims to extract this intrinsic model and generate some of the implementation code Can be a tremendous productivity gain 11 A light introduction to the Eclipse Modeling Kybele 2010

12 EMF at Eclipse.org Foundation for the Eclipse Modeling Project EMF project incorporates core and additional mature components: Query, Transaction, Validation EMF Technology project incubates complementary components: CDO, Teneo, Compare, Search, Temporality, Ecore Tools Other projects build on EMF: Graphical Modeling Framework (GMF), Model Development Tools (MDT), Model to Model Transformation (M2M), Model to Text Transformation (M2T) Other uses: Web Tools Platform (WTP), Data Tools Platform (DTP), Business Intelligence and Reporting Tools (BIRT), SOA Tools Platform (STP) Large open source user community 12 A light introduction to the Eclipse Modeling Kybele 2010

13 Agenda Introduction MDE & EMF The Eclipse Platform Defining a Model with EMF EMF Architecture Code Generation Programming with EMF EMF.Edit Summary 13 A light introduction to the Eclipse Modeling Kybele 2010

14 What is Eclipse? Eclipse is a universal platform for integrating development tools Open, extensible architecture based on plug-ins Plug-in development environment Java development tools Eclipse Platform Standard Java2 Virtual Machine PDE JDT Platform Java VM 14 A light introduction to the Eclipse Modeling Kybele 2010

15 Eclipse Plug-in Architecture (1/2) Plug-in - smallest unit of Eclipse function Big example: HTML editor Small example: Action to create zip files Extension point - Declarations of functionality that it makes available to other plug-ins Example: extension point for workbench preference UI Extension - a contribution. Use (implementation) of other plug-ins extension points Example: specific HTML editor preferences 15 A light introduction to the Eclipse Modeling Kybele 2010

16 Eclipse Plug-in Architecture (2/2) Each plug-in Contributes to 1 or more extension points Optionally declares new extension points Depends on a set of other plug-ins Contains Java code libraries and other files May export Java-based APIs for downstream plug-ins Lives in its own plug-in subdirectory Details spelled out in the plug-in manifest Manifest declares contributions Code implements contributions and provides API plugin.xml file in root of plug-in subdirectory 16 A light introduction to the Eclipse Modeling Kybele 2010

17 Eclipse Platform Architecture Eclipse Platform Runtime is micro-kernel All functionality supplied by plug-ins Eclipse Platform Runtime handles start up Discovers plug-ins installed on disk Matches up extensions with extension points Builds global plug-in registry Caches registry on disk for next time 17 A light introduction to the Eclipse Modeling Kybele 2010

18 The Eclipse Projects The development work in Eclipse is divided into numerous top-level projects Eclipse Project Modelling Project Tools Project Technology Project 18 A light introduction to the Eclipse Modeling Kybele 2010

19 The Projects The Eclipse Modeling Project can be seen as a DSL toolkit providing support for the different tasks related with deploying MDE proposals Abstract Syntax CDO Net4j Teneo Model Query Model Transaction Validation Framework Technology & Research AM3 AMW MOFScript UMLX Visual GMF Epsilon VIATRA GEMS MoDisco Concrete Syntax Textual TMF Xtext TCS Model Dev. Tools BPMN2 OCL UML2 UML2 Tools XSD Model Transformation M2M QVTo QVTd M2T JET Acceleo Xpand 19 A light introduction to the Eclipse Modeling Kybele 2010

20 Agenda Introduction Defining a Model with EMF EMF Architecture Code Generation Programming with EMF EMF.Edit Summary 20 A light introduction to the Eclipse Modeling Kybele 2010

21 What is an EMF Model? Specification of an application s data Object attributes Relationships (associations) between objects Operations available on each object Simple constraints (e.g. multiplicity) on objects and relationships Essentially, the Class Diagram subset of UML 21 A light introduction to the Eclipse Modeling Kybele 2010

22 Model Sources EMF models can be defined in (at least) three ways: 1. Java Interfaces 2. UML Class Diagram 3. XML Schema Choose the one matching your perspective or skills and EMF can create the others, as well as the implementation code 22 A light introduction to the Eclipse Modeling Kybele 2010

23 (Annotated) Java Interfaces Classes can be defined completely by a subset of members, supplemented by annotations public interface PurchaseOrder { String getshipto(); void setshipto(string value); String getbillto(); void setbillto(string value); List<Item> getitems(); // containment } EMF "would" introspect them and deduce the model properties 23 A light introduction to the Eclipse Modeling Kybele 2010

24 UML Class Diagram PurchaseOrder shipto : String billto : String items 0..* Item productname : String quantity : int price : float Built-in support for Rational Rose UML2 support available with UML2 (from MDT) 24 A light introduction to the Eclipse Modeling Kybele 2010

25 XML Schema <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd=" targetnamespace=" xmlns:po= <xsd:complextype name="purchaseorder"> <xsd:sequence> <xsd:element name="shipto" type="xsd:string"/> <xsd:element name="billto" type="xsd:string"/> <xsd:element name="items" type= po:item" minoccurs="0" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="item"> <xsd:sequence> <xsd:element name="productname" type="xsd:string"/> <xsd:element name="quantity" type="xsd:int"/> <xsd:element name="price" type="xsd:float"/> </xsd:sequence> </xsd:complextype> </xsd:schema> 25 A light introduction to the Eclipse Modeling Kybele 2010

26 Unifying UML, XML and Java All three forms provide the same information Different visualization/representation The application s data model or structure Model importers can be added for different model representations (e.g. RDB Schema) From a model definition, EMF can generate Java implementation code, including UI XML Schemas Eclipse plug-in artifacts 26 A light introduction to the Eclipse Modeling Kybele 2010

27 Direct Ecore Modeling Ecore models can be created directly Sample Ecore editor (in EMF) Ecore Tools graphical editor (from EMFT) 27 A light introduction to the Eclipse Modeling Kybele 2010

28 Ecore EMF s metamodel (model of a model) The model used to represent EMF models is called ECore. esupertypes ECore is itself an EMF model, so we can say that it is the meta-model to itself 0..* EClass name : String estructuralfeatures 0..* EStructuralFeature name : String It is usually used to specify platform independent models. It is actually also a meta-metamodel ereferencetype 1 EReference containment : boolean lowerbound : int upperbound : int EAttribute eattributetype 1 EDataType name : String eopposite A light introduction to the Eclipse Modeling Kybele 2010

29 OMG 4-layer Modelling Stack in terms of EMF ECore Metametamodel METAMETAMODEL ECore EClass EStructuralFeature The UML Metamodel METAMODEL UML Class ::EClass Property:: EStructuralFeature Some UML Models MODEL UML Model Customer:: Class name : String Varios usage of these models THE REAL WORLD Instantiation of UML model My_Customer::Customer name : John Doe metaobject conforms to 29 A light introduction to the Eclipse Modeling Kybele 2010

30 Ecore Modeling Concepts EClass - used for representing a modeled class. It has a name, zero or more attributes, and zero or more references EAttribute - used for representing a modeled attribute. Attributes have a name and a type EReference - used for representing an association end between classes. It has a name, a boolean attribute that indicates if it implies containment, or a destination reference type, which is another class. EDataType - used for representing attribute types. This type can be primitive, such as int or float, or object type, such as java.util.date 30 A light introduction to the Eclipse Modeling Kybele 2010

31 Ecore Modeling Concepts [Abstract] Classes, Interfaces Attributes and Operations Data types ( ) User Defined and Enum Data Types 31 A light introduction to the Eclipse Modeling Kybele 2010

32 Ecore Modeling Concepts References Associations One-way 32 A light introduction to the Eclipse Modeling Kybele 2010

33 Ecore Modeling Concepts References Associations Bidirectional 33 A light introduction to the Eclipse Modeling Kybele 2010

34 Ecore Modeling Concepts Containment Relationships Inheritance 34 A light introduction to the Eclipse Modeling Kybele 2010

35 Ecore Application models (e.g. families model) are instances of ECore EClass (name= Family") EClass (name= Daughter") ereferencetype EAttribute (name= firstname") EAttribute (name= lastname") EReference (name= daughters") EAttribute (name= firstname") 35 A light introduction to the Eclipse Modeling Kybele 2010

36 Ecore Persistent format is XMI (.ecore file) <eclassifiers xsi:type="ecore:eclass" name="family"> <estructuralfeatures xsi:type="ecore:eattribute" name="lastname" ordered="false unique="false" lowerbound="1" etype="ecore:edatatype <estructuralfeatures xsi:type="ecore:ereference" name="father" ordered="false lowerbound="1" etype="#//father" containment="true" eopposite="#//father/familyfather"/> <estructuralfeatures xsi:type="ecore:ereference name="mother" ordered="false lowerbound="1" etype="#//mother" containment="true" eopposite="#//mother/familymother"/> </eclassifiers> 36 A light introduction to the Eclipse Modeling Kybele 2010

37 Agenda Introduction Defining a Model with EMF EMF Architecture Code Generation Programming with EMF EMF.Edit Summary 37 A light introduction to the Eclipse Modeling Kybele 2010

38 EMF Architecture Application Model Editor EMF Tools Codegen Generates EMF Runtime Core Edit Eclipse Platform 38 A light introduction to the Eclipse Modeling Kybele 2010

39 EMF Components Core Runtime Notification framework ECore metamodel Persistence (XML/XMI), validation, change model EMF.Edit Support for model-based editors and viewers Default reflective editor Codegen Code generator for application models and editors Extensible model importer/exporter framework 39 A light introduction to the Eclipse Modeling Kybele 2010

40 Model Import and Generation UML XML Schema I M P O R T Ecore Model GENERATE Generator features: Customizable, JSP-like templates (JET) JDT-integrated, command-line or Ant Full support for regen and merge Java Model Java Edit Java Editor 40 A light introduction to the Eclipse Modeling Kybele 2010

41 Agenda Introduction Defining a Model with EMF EMF Architecture Code Generation Programming with EMF EMF.Edit Summary 41 A light introduction to the Eclipse Modeling Kybele 2010

42 Summary of Generated Artifacts Model Interfaces and classes Type-safe enums Package (metadata) Factory Switch utility Adapter factory base Validator Custom resource XML Processor Manifests, plug-in classes, properties, icons Edit (UI Independent) Item providers Item provider adapter factory Editor Model Wizard Editor Action bar contributor Advisor (RCP) Tests Test cases Test suite Stand-alone example 42 A light introduction to the Eclipse Modeling Kybele 2010

43 Code Generation Genmodel A generator model obtained from the Ecore model It contains information that needs to be provided to the generator where to put the generated code what prefix to use for the generated factory and package class names It is an EMF model that wraps the core model That is, generator model classes are Decorators of Ecore classes We are separating the generator model from the core model The Ecore metamodel can remain pure and independent of any information that is only relevant for code generation 43 A light introduction to the Eclipse Modeling Kybele 2010

44 Generated Model Code Interface and implementation for each modeled class Includes get/set accessors for attributes and references public interface Family extends EObject { { String getlastname(); void setlastname(string value); Father getfather(); } public class FamilyImpl extends EObjectImpl implements Family { { public String getlastname() public void setlastname(string newlastname) public Father getfather() } 44 A light introduction to the Eclipse Modeling Kybele 2010

45 Generated Model Code Plus a Package and a Factory class Factory class includes creators for the rest of classes Family afamily = FamilyFactory.eINSTANCE.createFamily(); Package class includes accessors for all the Ecore metadata for the model public void setshipto( String newshipto){ String oldshipto = shipto; shipto = newshipto; if (enotificationrequired()) enotify(new ENotificationImpl( this, Notification.SET, POPackage.PURCHASE_ORDER SHIP_TO, oldshipto, shipto) ) ; 45 A light introduction to the Eclipse Modeling Kybele 2010

46 Ecore ECore class hierarchy 46 A light introduction to the Eclipse Modeling Kybele 2010

47 EObject capabilities EObject is conceptually equivalent to java.lang.object. All modeled objects, generated or not, implement this interface to: Using the eclass() method, you can retrieve the metadata of the instance, i.e., its EClass. You can use the reflective API (eget(), eset()) to access its data. From any instance object you can get its container (parent) using the econtainer() method. Likewise, the eresource() method allows retrieving any physical storage location used to persist the object EObject also extends Notifier, which allows you to monitor all changes to the object's data 47 A light introduction to the Eclipse Modeling Kybele 2010

48 Change Notification public interface EObject extends Notifier { { } Every EObject is also a notifier Sends notification whenever an attribute or reference is changed Observers (or Listeners) can update views, dependent objects Observers are known as adapters cause they are used to extend the behavior of the object without subclassing We have to attach the adapter to the observed object adapter.notifychanged() setlastname() Adapter famobserver =... myfamily.eadapters().add(famobserver); famobserver myfamily 48 A light introduction to the Eclipse Modeling Kybele 2010

49 Change Notification: Feature Accessors Efficient notification from set methods Checks if there are listeners for such class If so, a notification is sent public String getlastname() { return lastname; } public void setlastname(string newlastname) { String oldlastname = lastname; lastname = newlastname; if (enotificationrequired()) enotify(new ENotificationImpl(this, Notification.SET, FamiliesPackage.FAMILY LAST_NAME, oldlastname, lastname)); } 49 A light introduction to the Eclipse Modeling Kybele 2010

50 Factories and Packages Package provides constants and access to metadata FamilyPackage fampackage = FamilyPackage.eINSTANCE; EClass fatherclass = FamilyPackage.Literals.ITEM; //or popackage.getitem() EAttribute priceattr = POPackage.Literals.ITEM PRICE; //or popackage.getitem_price() //or itemclass.getestructuralfeature(popackage.item PRICE) 50 A light introduction to the Eclipse Modeling Kybele 2010

51 Factories and Packages Factory to create instances of model classes public interface FamiliesFactory extends EFactory { FamiliesFactory einstance = Families.impl.FamiliesFactoryImpl.init(); Family createfamily(); Father createfather(); Mother createmother(); Son createson(); Daughter createdaughter(); FamiliesPackage getfamiliespackage(); } FamiliesFactory famfact = FamiliesFactory.eINSTANCE; Family fam = famfact.createfamily(); Indeed, EMF constructors are protected to impose the use of the Factory object to create new objects from your classes 51 A light introduction to the Eclipse Modeling Kybele 2010

52 Reflective EObject API All EMF classes implement EObject interface Provides an efficient API for manipulating objects reflectively instead of using generated methods Used by framework (e.g. persistence framework, copy utility, editing commands) Key to integrating EMF-based tools and applications public interface EObject { EClass eclass(); Object eget(estructuralfeature sf); void eset(estructuralfeature sf, Object val);... } 52 A light introduction to the Eclipse Modeling Kybele 2010

53 Reflective EObject API They are slightly less efficient than the generated methods but they open up the model for completely generic access. The reflective methods are used by the EMF.Edit framework to implement a full set of generic commands that can be used on any model AddCommand, RemoveCommand, SetCommand EObject myfamily = myfamily.setname( Simpson"); SIN REFLEXIÓN EObject myfamily = EAttribute lastname = fampackage.getfamily_lastname(); myfamily.eset(lastname, Simpson"); CON REFLEXIÓN 53 A light introduction to the Eclipse Modeling Kybele 2010

54 Reflective EObject API Efficient generated switch-based implementation of reflective methods public void eset(int featureid, Object newvalue) { switch (featureid) { case FamiliesPackage.FAMILY LAST_NAME: setlastname((string)newvalue); return; case FamiliesPackage.FAMILY FATHER: setfather((father)newvalue); return; case FamiliesPackage.FAMILY MOTHER: setmother((mother)newvalue); return; case FamiliesPackage.FAMILY SONS: getsons().clear(); getsons().addall((collection<? extends Son>)newValue); return; case FamiliesPackage.FAMILY DAUGHTERS: getdaughters().clear(); getdaughters().addall((collection<? extends Daughter>)newValue); return; } } super.eset(featureid, newvalue); EObject myfamily = EAttribute lastname = fampackage.getfamily_lastname(); myfamily.eset(lastname, Simpson"); 54 A light introduction to the Eclipse Modeling Kybele 2010

55 Regeneration and Merge The EMF generator is a merging generator /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ public String getname() { return name; elements are replaced/removed 55 A light introduction to the Eclipse Modeling Kybele 2010

56 Regeneration and Merge The EMF generator is a merging generator /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ public String getname() { return name; } To preserve changes NOT or delete tag If we regenerate the model, the generator detects the collision and discards the generated version of the method 56 A light introduction to the Eclipse Modeling Kybele 2010

57 Regeneration and Merge Generated methods can be extended through redirection public String getname() { return format(getnamegen()); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> */ public String getnamegen() { return name; } Before discarding a generated method, the generator first checks if there is another generated method in the file with the same name, but with Gen appended. If so, then instead of discarding the newly generated version of the method it redirects the output to it 57 A light introduction to the Eclipse Modeling Kybele 2010

58 Agenda Introduction Defining a Model with EMF EMF Architecture Code Generation Programming with EMF EMF.Edit Summary 58 A light introduction to the Eclipse Modeling Kybele 2010

59 Persistence EMF provides simple, yet powerful, mechanisms for managing object persistence Core models are serialized using XMI So could be done with terminal models If the core model comes from a Schema, the code generation allows persisting them as XML instances You may save your objects in any persistent form you like You ll need to code it yourself 59 A light introduction to the Eclipse Modeling Kybele 2010

60 Persistence: URI URI: open standard for identyfing data A URI is a string composed of three fundamental parts: a scheme, a scheme-specific part, and an optional fragment EMF URIs: org.eclipse.emf.common.util.uri Scheme: identify the protocol File, Jar, Platform ( ) E.G: platform:/resource/project/po.xml The URI fragment identifies a part of the contents of the resource. It's separated from the rest of the URI by the "#" character. file:/c:/dir1/dir2/myfile.xml#loc 60 A light introduction to the Eclipse Modeling Kybele 2010

61 Persistence: URI EMF uses URIs with fragments to reference EObjects in resources. Each EMF resource has a unique URI based on XPath Each object in a resource has a unique fragment that identifies that object within it The geteobject() method on the Resource interface can be used to retrieve an object, given its fragment path: Resource resource =... Item item = (Item)resource.getEObject("//@orders.0/@items.2"); Determining the fragment path of a given object (that is, the reverse operation) can be done using the geturifragment() method Item item =... String fragment = resource.geturifragment(item); 61 A light introduction to the Eclipse Modeling Kybele 2010

62 Resource Container for objects that are to be persisted together Represents a physical storage location Convert to and from persistent form via save() and load() Access contents of resource via getcontents() URI uri = URI.createFileURI("C:/data/po.xml"); Resource resource = rs.createresource(uri); resource.getcontents().add(p1); resource.save(null); EMF provides generic XMLResource implementation Other, customized implementations, too (e.g. XMI, EMOF) <PurchaseOrder> <shipto>john Doe</shipTo> <next>p2.xml#p2</next> </PurchaseOrder> 62 A light introduction to the Eclipse Modeling Kybele 2010

63 Persistence: Resource Set Context for multiple resources that may have references among them Usually just an instance of ResourceSetImpl Provides factory method for creating new resources in the set ResourceSet rs = new ResourceSetImpl(); URI uri = URI.createFileURI("C:/data/po.xml"); Resource resource = rs.createresource(uri); ResourceSet keeps track of which URIs have already been opened Also provides access to the registries, URI converter and default load options for the set 63 A light introduction to the Eclipse Modeling Kybele 2010

64 Persistence Persisted data is referred to a resource Objects can be spread out among a number of resources, within a resource set Proxies represent referenced objects in other resources Client load resource 1 ResourceSet uri 1 resource 1 uri 2 resource 2 Resource 1 demand-load resource 2 Resource 2 64 A light introduction to the Eclipse Modeling Kybele 2010

65 Proxy Resolution and Demand Load fam1.xml Simpsons.xml <?xml version="1.0" encoding="iso "?> <xmi:xmi xmi:version="2.0" xmlns:xmi=" xmlns="families"> <Family lastname="simpson"> <father firstname="homer"/> <neighbour </Family> f1 neighbour proxyuri= Flanders.xml#family.0" When we load the first Familiy object, a proxy is created to refer to its neighbour Family f1 = Family f = (Family) resource.getcontents().get(0); 65 A light introduction to the Eclipse Modeling Kybele 2010

66 Proxy Resolution and Demand Load <?xml version="1.0" encoding="iso "?> <xmi:xmi xmi:version="2.0" xmlns:xmi=" xmlns="families"> <Family lastname="simpson"> <father firstname="homer"/> <neighbour </Family> Simpsons.xml Flanders.xml f1 neighbour proxyuri= Flanders.xml#family.0" f2 Family f1 = Family f = (Family) resource.getcontents().get(0); Family f2 = fam1.getneighbour(); 66 A light introduction to the Eclipse Modeling Kybele 2010

67 EMF Resource Implementations EMF provides two resource implementations supporting serialization to XML or XMI Primary is provided by the XMLResourceImpl which can be used to serialize any EMF model to XML Flexible, you may customize it as needed Default EMF serialization is XMI: XMIResourceImpl (extends XMLResourceImpl) provides the support for serialization and loading of XMI 2.0 documents 67 A light introduction to the Eclipse Modeling Kybele 2010

68 XML Schema-Conformant Serialization You can customize the format of your XML file to conform to an XML Schema If you create your core model from a XMLSchema this is done automatically 68 A light introduction to the Eclipse Modeling Kybele 2010

69 XML Schema-Conformant Serialization To serialize an instance document Use an XMLResource with extended metadata enabled (e.g. use the resource factory generated with your model) Use an instance of the DocumentRoot in the resource s contents Set the appropriate reference to select the root element PurchaseOrder p1 =... ( filling the p1 object ) URI uri = URI.createFileURI("C:/data/order.po"); resource resource = rs.createresource(uri); DocumentRoot root = POFactory.eINSTANCE.createDocumentRoot(); resource.getcontents().add(root); root.setorder(p1); resource.save(null); 69 A light introduction to the Eclipse Modeling Kybele 2010

70 XML Schema-Conformant Serialization Ns URI NAMESPACE declaration added to the root element <?xml version="1.0" encoding="utf-8"?> <po:supplier xmlns:po=" <name>mysupplier</name> <order id="po-01" orderdate=" "> <billto country="us"> <name>mybilladdress</name> <street>elm Street</street> <city>chicago</city> <state>illinois</state> <zip>12345</zip> </billto> <creditcard> <number> </number> <expiry> </expiry> </creditcard> </order> </po:supplier> Ns Prefix 70 A light introduction to the Eclipse Modeling Kybele 2010

71 Change Recording The change model represents changes to instances of any EMF model 71 A light introduction to the Eclipse Modeling Kybele 2010

72 Change Recording Change recorder Adapter that creates change description based on notifications, to describe reverse delta Provides transaction capability ChangeRecorder changerecorder = new ChangeRecorder(resourceSet); try { // modifications within resource set } catch (Exception e) { changerecorder.endrecording().apply(); } 72 A light introduction to the Eclipse Modeling Kybele 2010

73 Validation Models can define named constraints and invariants for batch validation Invariant Defined directly on class, as <<inv>> operation Stronger statement about validity than a constraint Constraint Externally defined via a validator Invariants and constraints are invoked by a validator, which is generated for a package, if needed Bodies of invariants and constraints are usually handcoded 73 A light introduction to the Eclipse Modeling Kybele 2010

74 Agenda What is Modeling? Defining a Model with EMF EMF Architecture Code Generation Programming with EMF EMF.Edit Summary 74 A light introduction to the Eclipse Modeling Kybele 2010

75 Using EMF editors UML I M P O R T Ecore Model The EMF.Edit framework allows adding user interfaces to your model and code XML Schema GENERATE Java Model Java Edit Java Editor 75 A light introduction to the Eclipse Modeling Kybele 2010

76 EMF.Edit EMF.Edit is an Eclipse framework that includes generic reusable classes for building editors for EMF models Generated EMF.Edit code is divided into two parts UI-independent code is placed in an edit plug-in Facilitates the viewing and editing of model objects by providing item providers Item provider Item provider adapter factory Plug-in UI-dependent code is placed, by default, in a separate editor plug-in uses the Eclipse workbench framework, including JFace and SWT, to provide the interface for creation and editing of EMF models Editor Action bar contributor Wizard Plug-in 76 A light introduction to the Eclipse Modeling Kybele 2010

77 EMF.Edit Basics Supplier.po PurchaseOrder US Address Credit Card DocumentRoot root = resource.getcontents(0); root.get_text(); root.get_image(); List EObject nodes = root.getchildren(); 77 A light introduction to the Eclipse Modeling Kybele 2010

78 EMF.Edit Basics Supplier.po PurchaseOrder US Address Credit Card PropertySource ps = PropertySourceProvider.getPropertySource(); List PropertyDescriptors ps_list = ps.get_propertydescriptors(); 78 A light introduction to the Eclipse Modeling Kybele 2010

79 EMF.Edit Support To implement a tree viewer we need: ITreeContentProvider interface that is capable of returning the children of EMF model objects ILabelProvider to return a suitable text string for the label, usually based on one of the Ecore attributes For a property sheet viewer we need: A way of producing a set of IPropertyDescriptors for the (subset of) Ecore attributes and references that should be properties EMF.Edit supports two ways of implementing these things using the reflective EObject API Consults the core model at runtime to provide a "best guess" implementation getchildren econtents() or getlabel() getname() using generated classes you have an opportunity to influence some of the choices before the code is generated. E.g: setting a different attribute for the label 79 A light introduction to the Eclipse Modeling Kybele 2010

80 Item Providers Item providers are the single most important objects in EMF.Edit They "provide" functions on behalf of individual editable model "items" (objects) They need to perform four major roles: Implement content and label provider functions Provide a property source (property descriptors) for EMF objects Act as a command factory for commands on their associated model objects Forward EMF model change notifications on to viewers 80 A light introduction to the Eclipse Modeling Kybele 2010

81 Content and Label Item Providers EMF.Edit provides generic content and label provider implementation classes They delegate their implementation to item providers Both of these classes are constructed with an adapter factory which, like any other EMF adapter factory, serves to create and locate EMF adapters of a specific type 81 A light introduction to the Eclipse Modeling Kybele 2010

82 Item Property Source The second major role of an item provider is to act as a property source for the property sheet In EMF.Edit, the AdapterFactoryContentProvider also implements the IPropertySourceProvider interface and is used to provide a property source to the property sheet 82 A light introduction to the Eclipse Modeling Kybele 2010

83 Generating EMF.Edit Code Edit Code: a complete plug-in containing the UI independent portion of a model editor. A set of typed item provider classes, one for each class in the model. An item provider adapter factory class that creates the generated item providers. A Plugin class that includes methods for locating the plug-in's resource strings and icons. A plug-in manifest file, plugin.xml, specifying the required dependencies. A property file, plugin.properties, containing the externalized strings needed by the generated classes and the framework. A directory of icons, one for each model class. 83 A light introduction to the Eclipse Modeling Kybele 2010

84 Generating EMF.Edit Code Editor Code: a fully functional editor plug-in that will allow you to view instances of the model: An integrated Eclipse workbench editor A wizard for creating new model instance documents An action bar contributor that manages the popup menus, and toolbar and menu bar items A Plugin class that includes methods for locating the plug-in's resource strings and icons A plug-in manifest file, plugin.xml, that specifies the required dependencies and extensions of the editor, wizard, and action workbench extension points A property file, plugin.properties, containing the externalized strings needed by the generated classes and the framework A directory containing icons for the editor and model wizard 84 A light introduction to the Eclipse Modeling Kybele 2010

85 Agenda What is Modeling? Defining a Model with EMF EMF Architecture Code Generation Programming with EMF EMF.Edit Summary Example 85 A light introduction to the Eclipse Modeling Kybele 2010

86 Example Create EMF model from XML Schema Create an EMF project: kybele.example.po Select XML Schema as source Generate the code Change Model Name at root element: Purchase Order Change prefix at package element: PO Disable tests generation Test Directory = blank Generate All over root node 86 A light introduction to the Eclipse Modeling Kybele 2010

87 Example (II) Create new model Select kybele.es.po and run new Eclipse Application Check plug-in is installed Help About Eclipse Platform Plug-in details Create new General project Create new Example EMF Model Creation PO Model Select Supplier as model object Create Family Change family name Add Family child Validate the model Serialize the model and check that it conforms to the original Schema 87 A light introduction to the Eclipse Modeling Kybele 2010

88 Summary EMF is low-cost modeling for the Java mainstream Leverages the intrinsic model in an application No high-level modeling tools required Mixes modeling with programming to maximize the effectiveness of both Boosts productivity and integrates integration The foundation for model-driven development and data integration in Eclipse 88 A light introduction to the Eclipse Modeling Kybele 2010

89 Resources EMF documentation in Eclipse Help Overviews, tutorials, API reference EMF project Web site Downloads, documentation, FAQ, newsgroup, Bugzilla, Wiki Eclipse Modeling Framework, by Frank Budinsky et al. ISBN: Rough cut of second edition available 89 A light introduction to the Eclipse Modeling Kybele 2010

Model handling with EMF

Model handling with EMF Model handling with EMF An introduction to the Eclipse Modeling Framework ATLAS group (INRIA & LINA), University of Nantes France http://www.sciences.univ-nantes.fr/lina/atl/!1 Context of this work The

More information

What is Wazaabi 2.0? Declarative UI framework. based on. live EMF model(s)

What is Wazaabi 2.0? Declarative UI framework. based on. live EMF model(s) What is Wazaabi 2.0? Declarative UI framework based on live EMF model(s) What is an EMF Model? Specification of an application s data Object attributes Relationships (associations) between objects Operations

More information

Eclipse Modeling Framework (EMF) Paweł Żalejko

Eclipse Modeling Framework (EMF) Paweł Żalejko Eclipse Modeling Framework (EMF) Paweł Żalejko Agenda Model-Driven Development What is EMF? EMF demo - hello world EMF demo - command stack & adapters EMF demo - data binding & validation EMF demo - generating

More information

The Meta-Object Facility (MOF)

The Meta-Object Facility (MOF) Richard Paige University of York, UK July 2006 Context of this work The present courseware has been elaborated in the context of the MODELWARE European IST FP6 project (http://www.modelwareist.org/). Co-funded

More information

AbstractCommand, AbstractEnumerator, AbstractOverrideableCommand, AddCommand, AbstractTreeIterator, Adapter, EAnnotation.

AbstractCommand, AbstractEnumerator, AbstractOverrideableCommand, AddCommand, AbstractTreeIterator, Adapter, EAnnotation. INDEX A AbstractCommand, 53, 385 86 AbstractEnumerator, 401 2 Abstract model classes, 107, 164 65 AbstractOverrideableCommand, 56 57, 543 44 AbstractTreeIterator, 402 Action bar contributor generator pattern,

More information

OOPSLA'06 Tutorial T38 Introduction to the Eclipse Modeling Framework

OOPSLA'06 Tutorial T38 Introduction to the Eclipse Modeling Framework OOPSLA'06 Tutorial T38 Introduction to the Eclipse Modeling Framework Nick Boldt and Marcelo Paternostro IBM Rational Software Toronto, Canada EMF Project 2006 by IBM; made available under the EPL v1.0

More information

CISC836: Models in Software Development: Methods, Techniques and Tools

CISC836: Models in Software Development: Methods, Techniques and Tools CISC836: Models in Software Development: Methods, Techniques and Tools Topic 4: Code Generation with EMF Meta modeling Languages for meta models: Ecore Using EMF and Ecoreto define a data model Using EMF

More information

M. (1) (1) (2) (1) ATLAS

M. (1) (1) (2) (1) ATLAS Practice of Model Transformation and Model Weaving in the Eclipse Modeling Project with ATL and AMW Part 1 ATL: the ATLAS Transformation Language Mikaël Barbero (1) Marcos Didonet Del Fabro (1) Juan M.

More information

Introduction to MDE and Model Transformation

Introduction to MDE and Model Transformation Vlad Acretoaie Department of Applied Mathematics and Computer Science Technical University of Denmark rvac@dtu.dk DTU Course 02291 System Integration Vlad Acretoaie Department of Applied Mathematics and

More information

The Galilean Moons of Eclipse

The Galilean Moons of Eclipse The Galilean Moons of Eclipse Wayne Beaton The Eclipse Foundation Evangelist Director, Committer Community Agenda Ganymede New and Noteworthy Components/Equinox/OSGi Demo Questions What is Galileo? Simultaneous

More information

Institutionen för datavetenskap

Institutionen för datavetenskap Institutionen för datavetenskap Department of Computer and Information Science Final thesis Validation of ModelicaML Models by Goutham Gatla LIU-IDA/LITH-EX-A 12/061 2012-11-22 Linköpings universitet SE-581

More information

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.

Start Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1. www.thalesgroup.com Start Up Benoît Langlois / Thales Global Services 2 / Introduction EGF Architecture Concepts & Practice EGF Portfolios 3 / Introduction EGF Architecture Concepts & Practice EGF Portfolios

More information

Introduction to EGF. Benoît Langlois / Thales Global Services.

Introduction to EGF. Benoît Langlois / Thales Global Services. www.thalesgroup.com Introduction to EGF Benoît Langlois / Thales Global Services 2 / Agenda Introduction EGF Architecture Concepts & Practice EGF Portfolios 3 / Agenda Introduction EGF Architecture Concepts

More information

Ákos Horváth Gábor Bergmann Dániel Varró István Ráth Model Driven Software Development Lecture 3

Ákos Horváth Gábor Bergmann Dániel Varró István Ráth Model Driven Software Development Lecture 3 Domain-specific modeling (and the Eclipse Modeling Framework) Ákos Horváth Gábor Bergmann Dániel Varró István Ráth Model Driven Software Development Lecture 3 Méréstechnika és Információs Rendszerek Tanszék

More information

(Meta)Models between MetaEdit+

(Meta)Models between MetaEdit+ The Interchange of (Meta)Models between MetaEdit+ and Eclipse EMF Heiko Kern kern@informatik.uni-leipzig.de ni ig Nashville, Tennessee, 10/19/2008 1 Agenda 1. Introduction 2. MetaEdit-EMF-Bridge EMF 3.

More information

ECLIPSE MODELING PROJECT

ECLIPSE MODELING PROJECT ECLIPSE MODELING PROJECT A Domain-Specific Language Toolkit Richard С. Gronback AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Pans Madrid

More information

EMFT 1.0 Release Review (OCL, Query, Transaction, and Validation)

EMFT 1.0 Release Review (OCL, Query, Transaction, and Validation) EMFT 1.0 Release Review (OCL, Query, Transaction, and Validation) June 16, 2006 Christian Damus EMFT Developer IBM, Ottawa 1 EMFT 1.0 Release Review 2006 by IBM Corporation, made available under the EPL

More information

Sequence Diagram Generation with Model Transformation Technology

Sequence Diagram Generation with Model Transformation Technology , March 12-14, 2014, Hong Kong Sequence Diagram Generation with Model Transformation Technology Photchana Sawprakhon, Yachai Limpiyakorn Abstract Creating Sequence diagrams with UML tools can be incomplete,

More information

A Practical Evaluation of Using TXL for Model Transformation

A Practical Evaluation of Using TXL for Model Transformation A Practical Evaluation of Using TXL for Model Transformation Hongzhi Liang and Juergen Dingel School of Computing, Queen s University, Canada {liang, dingel}@cs.queensu.ca Abstract. As one of the MDA s

More information

Dominique Blouin Etienne Borde

Dominique Blouin Etienne Borde Dominique Blouin Etienne Borde dominique.blouin@telecom-paristech.fr etienne.borde@telecom-paristech.fr Institut Mines-Télécom Content Domain specific Languages in a Nutshell Overview of Eclipse Modeling

More information

INTRODUCTION TO EMF. Creating Model using EMF. Our Domain model used to showcase this use case is as shown below in fig.1

INTRODUCTION TO EMF. Creating Model using EMF. Our Domain model used to showcase this use case is as shown below in fig.1 INTRODUCTION TO EMF Creating Model using EMF This is the basic method of creating the Model instance using EMF (Eclipse Modelling Framework). In this tutorial we are going to explain the following, 1.

More information

BLU AGE 2009 Edition Agile Model Transformation

BLU AGE 2009 Edition Agile Model Transformation BLU AGE 2009 Edition Agile Model Transformation Model Driven Modernization for Legacy Systems 1 2009 NETFECTIVE TECHNOLOGY -ne peut être copiésans BLU AGE Agile Model Transformation Agenda Model transformation

More information

Getting the Most from Eclipse

Getting the Most from Eclipse Getting the Most from Eclipse Darin Swanson IBM Rational Portland, Oregon Darin_Swanson@us.ibm.com March 17, 2005 What is Eclipse An extensible tools platform Out-of-box function and quality to attract

More information

EMF Code Generation with Fujaba

EMF Code Generation with Fujaba EMF Code Generation with Fujaba Leif Geiger Universität Kassel Wilhelmshöher Allee 73 34121 Kassel leif.geiger@uni-kassel.de Thomas Buchmann Universität Bayreuth Universitätsstr. 30 95447 Bayreuth thomas.buchmann@unibayreuth.de

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 SP2 User Guide P/N 300-009-462 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2008 2009 EMC Corporation. All

More information

INF5120 Model-Based System Development

INF5120 Model-Based System Development INF5120 Model-Based System Development Lecture #3: Metamodelling and UML profiles, MDA technologies 04 February 2008 Brian Elvesæter, SINTEF 1 Outline Model-driven interoperability (MDI) framework MDA

More information

Teneo: Integrating EMF & EclipseLink

Teneo: Integrating EMF & EclipseLink Teneo: Integrating EMF & EclipseLink Model-Driven Development with Persistence Shaun Smith Martin Taal Stephan Eberle 2009 Eclipse Foundation; made available under the EPL v1.0 2 Teneo: Integrating EMF

More information

Knowledge Discovery: How to Reverse-Engineer Legacy Systems

Knowledge Discovery: How to Reverse-Engineer Legacy Systems Knowledge Discovery: How to Reverse-Engineer Legacy Systems Hugo Bruneliere, Frédéric Madiot INRIA & MIA-Software 1 Context of this work Knowledge Discovery: How To Reverse-Engineer Legacy Sytems The present

More information

The Eclipse Modeling Framework and MDA Status and Opportunities

The Eclipse Modeling Framework and MDA Status and Opportunities The Eclipse Modeling Framework and MDA Status and Opportunities David Frankel Consulting df@davidfrankelconsulting.com www.davidfrankelconsulting.com Portions adapted from the book Model Driven Architecture:

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.0 SP1.5 User Guide P/N 300 005 253 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All

More information

Planned Review Date: June 10, 2009 Communication Channel: eclipse.tools.emf Dave Steinberg and Ed Merks

Planned Review Date: June 10, 2009 Communication Channel: eclipse.tools.emf Dave Steinberg and Ed Merks EMF Core 2.5 Release Review Galileo Simultaneous Release Planned Review Date: June 10, 2009 Communication Channel: eclipse.tools.emf Dave Steinberg and Ed Merks Eclipse Modeling Framework Framework and

More information

A Formal Approach to Modeling and Model Transformations in Software Engineering

A Formal Approach to Modeling and Model Transformations in Software Engineering A Formal Approach to Modeling and Model Transformations in Software Engineering Department of Computer Engineering Faculty of Engineering Bergen University College 17.06.2008 EXPO 2008, Integration and

More information

Acceleo Galileo Simultaneous Release

Acceleo Galileo Simultaneous Release Acceleo 0.8.0 Galileo Simultaneous Release Jonathan Musset Release Review : June 10, 2009 C om m unic a tion C ha nnel :e c lip s e.m o d e lin g.m 2 t n e w s g ro u p P roc es s D oc um enta tion : h

More information

Model Driven Development with EMF and EclipseLink (experiences in MDD and generating user interfaces)

Model Driven Development with EMF and EclipseLink (experiences in MDD and generating user interfaces) Model Driven Development with EMF and EclipseLink (experiences in MDD and generating user interfaces) Suresh Krishna, Oracle Inc. EclipseCon, 03.20.2008. 1 Background : Model acts as the heart of the business

More information

ANALYSIS THROUGH REFLECTION: WALKING THE EMF MODEL OF BPEL4WS. Kien Huynh

ANALYSIS THROUGH REFLECTION: WALKING THE EMF MODEL OF BPEL4WS. Kien Huynh ANALYSIS THROUGH REFLECTION: WALKING THE EMF MODEL OF BPEL4WS Kien Huynh khuynh@cs.yorku.ca A thesis submitted to the Faculty of Graduate Studies in partial fulfilment of the requirements for the degree

More information

The Eclipse Rich Client Platform

The Eclipse Rich Client Platform The Eclipse Rich Client Platform Slides by various members of the Eclipse JDT and Platform teams Slides 2004 IBM Corporation Outline Rich Client Application? The Eclipse Plug-in Architecture Eclipse Plug-ins

More information

Dominique Blouin Etienne Borde

Dominique Blouin Etienne Borde Dominique Blouin Etienne Borde SE206: Code Generation Techniques dominique.blouin@telecom-paristech.fr etienne.borde@telecom-paristech.fr Institut Mines-Télécom Content Introduction Domain specific Languages

More information

Introduction To Model-to-Model Transformation

Introduction To Model-to-Model Transformation - 1 - Context of this work The present courseware has been elaborated in the context of the MODELPLEX European IST FP6 project ( http://www.modelplex.org/). Co-funded by the European Commission, the MODELPLEX

More information

Technology Tutorial. - Details and Advanced Concepts - Patrick Könemann Software Engineering 2 (02162)

Technology Tutorial. - Details and Advanced Concepts - Patrick Könemann Software Engineering 2 (02162) Technology Tutorial Software Engineering 2 (02162) - Details and Advanced Concepts - Patrick Könemann (pk@imm.dtu.dk) Oct 19 th 2009 Previous Tutorials. 1. A view and a selection listener for file types

More information

Model-Driven Engineering An introduction to the EMF facilities

Model-Driven Engineering An introduction to the EMF facilities An introduction to the EMF facilities F. Mallet Frederic.Mallet@unice.fr Université Nice Sophia Antipolis Software Engineering Model-Driven Engineering Model-Driven Engineering Build software useful to

More information

"Families to Persons"

Families to Persons "" A simple illustration of model-to to-model transformation Freddy Allilaire Frédéric Jouault ATLAS group, INRIA & University of Nantes, France -1- Context of this work The present courseware has been

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6 SP1 User Guide P/N 300 005 253 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

EMF Compare Ganymede Simultaneous Release

EMF Compare Ganymede Simultaneous Release EMF Compare 0.8.0 Ganymede Simultaneous Release June 16 th, 2008 Ganymede Release Talking Point Noteworthy New Features 2 way / 3 way comparison detecting conflics differencing, merging and extensibility

More information

Comparing graphical DSL editors

Comparing graphical DSL editors Comparing graphical DSL editors AToM 3 vs GMF & MetaEdit+ Nick Baetens Outline Introduction MetaEdit+ Specifications Workflow GMF Specifications Workflow Comparison 2 Introduction Commercial Written in

More information

Teiid Designer User Guide 7.7.0

Teiid Designer User Guide 7.7.0 Teiid Designer User Guide 1 7.7.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

EMF Ganymede Simultaneous Release

EMF Ganymede Simultaneous Release EMF 2.4.0 Ganymede Simultaneous Release June 4 th, 2008 Ganymede Release Talking Points Noteworthy New Features Support for Content Types Applications using EMF can now register its resources using content

More information

EMFT Mint (Incubation) 0.7 Ganymede Simultaneous Release Review

EMFT Mint (Incubation) 0.7 Ganymede Simultaneous Release Review EMFT Mint (Incubation) 0.7 Ganymede Simultaneous Release Review 4 June, 2007 1 Agenda Talking Points Features Non-Code Aspects APIs Architectural Issues Tool Usability End-of-Life Bugzilla UI Usability

More information

EMF Compare Galileo Simultaneous Release

EMF Compare Galileo Simultaneous Release EMF Compare 1.0.0 Galileo Simultaneous Release Cédric Brun Release Review : June 10th, 2009 Communication Channel : eclipse.modeling.emft newsgroup Process Documentation : http://www.eclipse.org/projects/dev_process/development_process.php

More information

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik Modellierung operationaler Aspekte von Systemarchitekturen Master Thesis presentation October 2005 March 2006 Agenda Goals Model-Driven Software Development Pro-active Infrastructure (PAI) Operational

More information

Capturing Middleware using UML Models.

Capturing Middleware using UML Models. OpenDDS Capturing Middleware using UML Models www.ociweb.com www.opendds.org Overview Eclipse based model capture Middleware Data Quality of Service Policies Code generation Validation Files and References

More information

A Comparison of Ecore and GOPPRR through an Information System Meta Modeling Approach

A Comparison of Ecore and GOPPRR through an Information System Meta Modeling Approach A Comparison of Ecore and GOPPRR through an Information System Meta Modeling Approach Vladimir Dimitrieski, Milan Čeliković, Vladimir Ivančević and Ivan Luković University of Novi Sad, Faculty of Technical

More information

A universal PNML Tool. Lukasz Zoglowek

A universal PNML Tool. Lukasz Zoglowek A universal PNML Tool Lukasz Zoglowek Kongens Lyngby 2008 Technical University of Denmark Informatics and Mathematical Modelling Building 321, DK-2800 Kongens Lyngby, Denmark Phone +45 45253351, Fax +45

More information

1 Overview. 1 Overview. Contents. 1.1 Table of Contents Table of Contents

1 Overview. 1 Overview. Contents. 1.1 Table of Contents Table of Contents 1 Overview Contents 1. 1.1 Table of Contents 1 Overview Papyrus is an environment for editing any kind of EMF model, particularly supporting UML 2 ( Unified Modeling Language (UML) version 2.4.1 ) and

More information

EMF course - PACT. Etienne Borde

EMF course - PACT. Etienne Borde EMF course - PACT Etienne Borde www.etienneborde.fr Objectives Collective software development requires to focus on integration. John develops functionality A; Mike develops functionality B How to ensure

More information

EMF Europa Simultaneous Release

EMF Europa Simultaneous Release EMF 2.3.0 Europa Simultaneous Release 6 June, 2007 Release Review revision 2.3.1 17 January, 2007 1 Europa Simultaneous Release 2007 by IBM Corporation, made available under the EPL v1.0 EMF - Europa Release

More information

20. Eclipse and Framework Extension Languages

20. Eclipse and Framework Extension Languages 20. Eclipse and Framework Extension Languages Prof. Uwe Aßmann TU Dresden Institut für Software und Multimediatechnik Lehrstuhl Softwaretechnologie Version 11-1.0, 12/17/11 Design Patterns and Frameworks,

More information

Workpackage 15: DBE Business Modeling Language. Deliverable D15.5: BML Editor Final Release

Workpackage 15: DBE Business Modeling Language. Deliverable D15.5: BML Editor Final Release Contract n 507953 Workpackage 15: DBE Business Modeling Language Deliverable D15.5: BML Editor Final Release Project funded by the European Community under the Information Society Technology Programme

More information

Introduction to Dependable Systems: Meta-modeling and modeldriven

Introduction to Dependable Systems: Meta-modeling and modeldriven Introduction to Dependable Systems: Meta-modeling and modeldriven development http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 3 Software development Automated software

More information

Kermeta tutorial. How to create an EMF meta model? François Tanguy, Didier Vojtisek, Zoé Drey, Marie Gouyette. Abstract

Kermeta tutorial. How to create an EMF meta model? François Tanguy, Didier Vojtisek, Zoé Drey, Marie Gouyette. Abstract Kermeta tutorial How to create an EMF meta model? François Tanguy, Didier Vojtisek, Zoé Drey, Marie Gouyette Abstract This tutorial show how to create an EMF model for the FSM example. Published Build

More information

EGF Tutorial. Benoît Langlois Thales/EPM. EGF Tutorial by Thales; made available under the EPL v1.0

EGF Tutorial. Benoît Langlois Thales/EPM. EGF Tutorial by Thales; made available under the EPL v1.0 EGF Tutorial Benoît Langlois Thales/EPM Agenda Introduction EGF Structure Pattern 2 What is EGF? EGF (Eclipse Generation Factories) is an Eclipse open source project under the EMFT project. Purpose: provide

More information

IP Log for modeling.mdt.modisco Release Indigo

IP Log for modeling.mdt.modisco Release Indigo IP Log for modeling.mdt.modisco Release Indigo Licenses Eclipse Public License v1.0 Third-Party Code CQ Third-Party Code License Use 3636 3637 3702 3994 3997 4192 4271 4524 Apache Commons JXPath Version:

More information

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009

First Steps in RCP. Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany. February 19th, 2009 First Steps in RCP Jan Blankenhorn, WeigleWilczek GmbH, Stuttgart, Germany February 19th, 2009 Agenda» About us» RCP Architecture and Bundles» Extension Points and Views» Bundle Dependencies 2 Jan Blankenhorn»

More information

Smart Client development with the Eclipse Rich Client Platform

Smart Client development with the Eclipse Rich Client Platform Smart Client development with the Eclipse Rich Client Platform Nick Edgar and Pascal Rapicault IBM Rational Software Ottawa, Ontario Eclipse Platform Committers To contact us: news://news.eclipse.org/eclipse.platform.rcp

More information

Eclipse and Framework Extension Languages

Eclipse and Framework Extension Languages Eclipse and Framework Extension Languages Prof. Uwe Aßmann TU Dresden Institut für Software und Multimediatechnik Lehrstuhl Softwaretechnologie Design Patterns and Frameworks, Prof. Uwe Aßmann 1 References

More information

DTP Help-Helper for Dynamic Context-Sensitive Help

DTP Help-Helper for Dynamic Context-Sensitive Help DTP Help-Helper for Dynamic Context-Sensitive Help This document introduces the Data Tools Platform (DTP) help-helper plug-in, which is provided in the Eclipse DTP project, since version 1.5 (released

More information

ATHABASCA UNIVERSITY RULE ENHANCED BUSINESS PROCESS MODELING OF SERVICE ORIENTED ARCHITECTURES LUIS ROCHA. A project submitted in partial fulfillment

ATHABASCA UNIVERSITY RULE ENHANCED BUSINESS PROCESS MODELING OF SERVICE ORIENTED ARCHITECTURES LUIS ROCHA. A project submitted in partial fulfillment ATHABASCA UNIVERSITY RULE ENHANCED BUSINESS PROCESS MODELING OF SERVICE ORIENTED ARCHITECTURES BY LUIS ROCHA A project submitted in partial fulfillment Of the requirements for the degree of MASTER OF SCIENCE

More information

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler Advanced Topics in Software Engineering (02265) IV. (Meta-) Modelling Frameworks 2 1. Motivation & Overview With MOF, we have: Modelling notation (EMOF / CMOF) Java API (JMI, EMF, etc) Instance model /

More information

Using Eclipse in MIS Research

Using Eclipse in MIS Research Using Eclipse in MIS Research GENERAL REMARK ECLIPSE and ECLIPSE PLUG- INS are very useful and powerful in the context of RESEARCH and EDUCATION but are probably not suited for developing commercial tools.

More information

Constraints, Meta UML and XML. Object Constraint Language

Constraints, Meta UML and XML. Object Constraint Language Constraints, Meta UML and XML G. Falquet, L. Nerima Object Constraint Language Text language to construct expressions for guards conditions pre/post conditions assertions actions Based on navigation expressions,

More information

with openarchitectureware

with openarchitectureware Model-Driven Development with openarchitectureware Markus Völter voelter@acm.orgorg www.voelter.de Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de 2006-7 Völter,

More information

Tiger EMF Model Transformation Framework (EMT)

Tiger EMF Model Transformation Framework (EMT) Tiger EMF Model Transformation Framework (EMT) Version 1.2.0 User Manual TU Berlin EMT Project Team: Enrico Biermann, Karsten Ehrig, Claudia Ermel, Christian Köhler, Günter Kuhns, Gabi Taentzer Email:

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Lessons learned from building Eclipse-based add-ons for commercial modeling tools

Lessons learned from building Eclipse-based add-ons for commercial modeling tools Lessons learned from building Eclipse-based add-ons for commercial modeling tools (from a technology perspective) István Ráth Ákos Horváth EclipseCon France June 14 2018 MagicDraw A popular modeling tool

More information

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ 1. What is Oracle proposing in EclipseLink, the Eclipse Persistence Platform Project? Oracle is proposing the creation of the Eclipse Persistence Platform

More information

Introduction to XML Metadata Interchange (XMI)

Introduction to XML Metadata Interchange (XMI) Introduction to XML Metadata Interchange (XMI) Department for Cooperative and Trusted Systems Information and Communication Technology, SINTEF, Forskningsveien 1, N-0314 Oslo, Norway http://www.sintef.no!1

More information

Technical Solutions for the Transformation-Driven Graphical Tool Building Platform METAclipse

Technical Solutions for the Transformation-Driven Graphical Tool Building Platform METAclipse Technical Solutions for the Transformation-Driven Graphical Tool Building Platform METAclipse Oskars Vilītis 1, Audris Kalniņš Institute of Mathematics and Computer Science, University of Latvia, 29 Raiņa

More information

Index. Symbols. /**, symbol, 73 >> symbol, 21

Index. Symbols. /**, symbol, 73 >> symbol, 21 17_Carlson_Index_Ads.qxd 1/12/05 1:14 PM Page 281 Index Symbols /**, 73 @ symbol, 73 >> symbol, 21 A Add JARs option, 89 additem() method, 65 agile development, 14 team ownership, 225-226 Agile Manifesto,

More information

Eclipse 4. Brian de Alwis. Abstract

Eclipse 4. Brian de Alwis. Abstract Eclipse 4 Brian de Alwis Abstract This year's Juno release sees the mainstream deployment of Eclipse 4, the new application platform from the Eclipse Foundation. Over four years in the making, Eclipse

More information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc. Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: WSAD. J2EE business topologies. Workbench. Project. Workbench components. Java development tools. Java projects

More information

Introduction to OpenArchitectureWare

Introduction to OpenArchitectureWare Introduction to OpenArchitectureWare Dr. Neil Loughran Neil.Loughran@sintef.no 20 th April 2009 ICT 1 Objective To give some insights into an alternative model transformation approach i.e. OpenArchitectureWare

More information

Small is Beautiful Building a flexible software factory using small DSLs and Small Models

Small is Beautiful Building a flexible software factory using small DSLs and Small Models Small is Beautiful Building a flexible software factory using small DSLs and Small Models Jos Warmer Partner, Ordina jos.warmer@ordina.nl 1 Modeling Maturity Levels MML 0: No specification MML 1: Textual

More information

An EMF Framework for Event-B

An EMF Framework for Event-B An EMF Framework for Event-B Developed by: Colin Snook University of Southampton, Fabian Fritz Heinrich Heine University, Düsseldorf, Alexei Illiasov Newcastle University EMF Eclipse Modelling Framework

More information

Object Constraint Language (MDT OCL) 1.3 Galileo Simultaneous Release Review

Object Constraint Language (MDT OCL) 1.3 Galileo Simultaneous Release Review Object Constraint Language (MDT OCL) 1.3 Galileo Simultaneous Release Review June 10, 2009 Agenda Talking Points Features Non-Code Aspects APIs Architectural Issues End-of-life Bugzilla Standards UI Usability

More information

ADT: Eclipse development tools for ATL

ADT: Eclipse development tools for ATL ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire

More information

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel

innoq Deutschland GmbH innoq Schweiz GmbH D Ratingen CH-6330 Cham Tel Tel innoq Deutschland GmbH innoq Schweiz GmbH D-40880 Ratingen CH-6330 Cham Tel +49 2102 77 1620 Tel +41 41 743 01 11 www.innoq.com Stefan Tilkov, stefan.tilkov@innoq.com 1 Goals Introduce MDE, MDA, MDD, MDSD,...

More information

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development Jens Gulden and Prof. Dr. Ulrich Frank University Duisburg-Essen, Universitaetsstr. 9,

More information

ATL: Atlas Transformation Language. ATL User Manual

ATL: Atlas Transformation Language. ATL User Manual ATL: Atlas Transformation Language ATL User Manual - version 0.7 - February 2006 by ATLAS group LINA & INRIA Nantes Content 1 Introduction... 1 2 An Introduction to Model Transformation... 2 2.1 The Model-Driven

More information

An Introduction to MDE

An Introduction to MDE An Introduction to MDE Alfonso Pierantonio Dipartimento di Informatica Università degli Studi dell Aquila alfonso@di.univaq.it. Outline 2 2» Introduction» What is a Model?» Model Driven Engineering Metamodeling

More information

Generation of Web-based Prototypes for Business Applications

Generation of Web-based Prototypes for Business Applications Generation of Web-based Prototypes for Business Applications Agenda: Motivation Requirements Research Models Realisation Experiences / Outlook Tobias Löwenthal Betreuer: Matthias Vianden Prof. Dr. Horst

More information

DRAFT. Consolidation of the Generator Infrastructure MDGEN Model Driven Generation

DRAFT. Consolidation of the Generator Infrastructure MDGEN Model Driven Generation Consolidation of the Generator Infrastructure MDGEN Model Driven Generation Date: October 16 th, 2012 Produced by: Mario Lovisi / Serano Colameo Version: 1.0 DRAFT Agenda Initial Situation / Goal of the

More information

A Tour of the Eclipse Environment

A Tour of the Eclipse Environment A Tour of the Eclipse Environment Stephen Barrett Concordia University What is Eclipse? Depends on who you ask. 2 What is Eclipse? 3 Man on the Street: Java-based development framework Spawned from IBM

More information

Implementing Model Driven Architecture

Implementing Model Driven Architecture TUTORIAL Implementing Model Driven Architecture Using Enterprise Architect MDA in Practice By Frank Truyen frank.truyen@cephas.cc All rights reserved. Page 1 Cephas Consulting Corp. Implementing Model

More information

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools UML Modeling I Instructor: Yongjie Zheng September 3, 2015 CS 490MT/5555 Software Methods and Tools Object-Oriented Design: Topics & Skills Rational Unified Process Unified Modeling Languages (UML) Provide

More information

Model Driven Ontology: A New Methodology for Ontology Development

Model Driven Ontology: A New Methodology for Ontology Development Model Driven Ontology: A New Methodology for Ontology Development Mohamed Keshk Sally Chambless Raytheon Company Largo, Florida Mohamed.Keshk@raytheon.com Sally.Chambless@raytheon.com Abstract Semantic

More information

EGF Creation Review. Benoît Langlois - Thales/TCS/EPM. April 22, 2009

EGF Creation Review. Benoît Langlois - Thales/TCS/EPM. April 22, 2009 EGF Creation Review Benoît Langlois - Thales/TCS/EPM April 22, 2009 Communication Channel URL: http://www.eclipse.org/newsportal/thread.php?group=eclipse.egf Agenda Executive Summary Requirements Mentors

More information

Chapter 3 Brief Overview of XML

Chapter 3 Brief Overview of XML Slide 3.1 Web Serv vices: Princ ciples & Te echno ology Chapter 3 Brief Overview of XML Mike P. Papazoglou & mikep@uvt.nl Slide 3.2 Topics XML document structure XML schemas reuse Document navigation and

More information

AN ERD TOOL. Abstract. Ron McFadyen Applied Computer Science University of Winnipeg Winnipeg, Manitoba, Canada R3B 2E9

AN ERD TOOL. Abstract. Ron McFadyen Applied Computer Science University of Winnipeg Winnipeg, Manitoba, Canada R3B 2E9 AN ERD TOOL Ron McFadyen Applied Computer Science University of Winnipeg Winnipeg, Manitoba, Canada R3B 2E9 r.mcfadyen@uwinnipeg.ca Abstract This paper discusses a graphical ERD editor that was developed

More information

openarchitectureware 4.1 An introduction

openarchitectureware 4.1 An introduction openarchitectureware 4.1 An introduction Markus Voelter, www.voelter.de, openarchitectureware (oaw) is a suite of tools and components assisting with model driven software development, more precisely it

More information

How we reached 0 technical debt in our Eclipse project

How we reached 0 technical debt in our Eclipse project How we reached 0 technical debt in our Eclipse project Lorenzo Bettini Dip. DISIA, University of Firenze, Italy Vincenzo Caselli, Francesco Guidieri RCP-Vision, Firenze, Italy EclipseCon Europe, 2016 Our

More information

Comparative analysis of MDA tools

Comparative analysis of MDA tools STUDIA INFORMATICA Nr 1-2(16) Systems and information technology 2012 Comparative analysis of MDA tools Krzysztof Pietraszek 1 1 Institute of Computer Science, University of Natural Sciences and Humanities,

More information