A light introduction to the Eclipse Modeling Framework
|
|
- Isaac Dwight Alexander
- 6 years ago
- Views:
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 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 informationWhat 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 informationEclipse 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 informationThe 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 informationAbstractCommand, 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 informationOOPSLA'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 informationCISC836: 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 informationM. (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 informationIntroduction 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 informationThe 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 informationInstitutionen 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 informationStart 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 informationIntroduction 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
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+
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 informationECLIPSE 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 informationEMFT 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 informationSequence 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 informationA 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 informationDominique 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 informationINTRODUCTION 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 informationBLU 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 informationGetting 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 informationEMF 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 informationEMC 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 informationINF5120 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 informationTeneo: 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 informationKnowledge 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 informationThe 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 informationEMC 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 informationPlanned 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 informationA 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 informationAcceleo 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 informationModel 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 informationANALYSIS 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 informationThe 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 informationDominique 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 informationIntroduction 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 informationTechnology 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 informationModel-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"
"" 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 informationEMC 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 informationEMF 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 informationComparing 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 informationTeiid 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 informationEMF 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 informationEMFT 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 informationEMF 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 informationModellierung 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 informationCapturing 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 informationA 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 informationA 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 information1 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 informationEMF 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 informationEMF 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 information20. 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 informationWorkpackage 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 informationIntroduction 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 informationKermeta 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 informationEGF 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 informationIP 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 informationFirst 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 informationSmart 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 informationEclipse 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 informationDTP 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 informationATHABASCA 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 informationAdvanced 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 informationUsing 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 informationConstraints, 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 informationwith 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 informationTiger 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 informationTeiid 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 informationLessons 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 informationECLIPSE 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 informationIntroduction 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 informationTechnical 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 informationIndex. 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 informationEclipse 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 informationChapter 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 informationIntroduction 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 informationSmall 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 informationAn 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 informationObject 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 informationADT: 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 informationinnoq 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 informationMEMOCenterNG 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 informationATL: 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 informationAn 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 informationGeneration 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 informationDRAFT. 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 informationA 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 informationImplementing 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 informationUML 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 informationModel 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 informationEGF 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 informationChapter 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 informationAN 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 informationopenarchitectureware 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 informationHow 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 informationComparative 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