Java.sun.com/javaone/sf | 2004 JavaOne SM Conference | Session 1396 1 The Eclipse Modeling Framework Ed Merks, Ph.D. Software Architect IBM Canada Ltd.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

IAAnalyzer: Towards a Model-Driven Modeling and Analysis Framework for C ONNECT(ors) Massimo Tivoli, University of L’Aquila (UNIVAQ)
MDA and QVT in Together Architect 2006  Pavel Kobiakov, Borland Software Corporation  06 December 2005.
The MEMOPS Programming Framework Wayne Boucher, Cambridge
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
2006 JavaOne SM Conference | Session TS-4160 | © 2006 by IBM Create, Test, and Consume Web Services with the Eclipse Web Tools Platform Jeffrey Liu, Release.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
OMG Meeting, Helsinki Model Driven Architecture An Alternative Implementation Approach Werner Froidevaux
IBM Software Group © 2005 IBM Corporation University of Nantes Eclipse dayMarch 2005 The Eclipse Modeling Framework and the IBM Model Transformation Framework.
Framework for Model Creation and Generation of Representations DDI Lifecycle Moving Forward.
The Meta-Object Facility (MOF)
ARCH-6: UML Modeling with Enterprise Architect Phillip Magnay Technical Architect.
MDA Guide Version CYT. 2 Outline OMG Vision and Process Introduction to MDA How is MDA Used? MDA Transformations Other MDA Capabilities Using the.
An Approach and Tool for Synchronous Refactoring of UML Diagrams and Models Using Model-to-Model Transformations Hafsteinn Þór Einarsson Helmut Neukirchen.
Xactium xDSLs Run Models Not Code Tony Clark
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Copyright © IBM Corp., | March 17, 2008 Fundamentals of the Eclipse Modeling Framework Dave Steinberg IBM Rational Software Toronto, Canada EMF.
UML2 Package Merge Usage scenarios and their effect on XMI and Java API interoperability Bran Selic, Jim Amsden, Kenn Hussey Oct, 2003.
Metadata Tools and Methods Chris Nelson Metanet Conference 2 April 2001.
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
Introduction to MDA (Model Driven Architecture) CYT.
Tools for Diagrammatic Specifications Stian Skjerveggen Supervisors: Yngve Lamo, Adrian Rutle, Uwe Egbert Wolter.
Model Handling with EMF Eclipse ECESIS Project Model handling with EMF An introduction to the Eclipse Modeling Framework ATLAS group (INRIA & LINA),
Modeling Tools for Healthcare Technical Overview April 8, 2009.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Copyright © 2009 AtlanMod. All Rights Reserved Frédéric Jouault & Hugo Bruneliere AtlanMod team (INRIA & Mines de Nantes) Possible Benefits of Bridging.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Selected Topics in Software Engineering - Distributed Software Development.
1 Cisco Unified Application Environment Developers Conference 2008© 2008 Cisco Systems, Inc. All rights reserved.Cisco Public Introduction to Etch Scott.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for.
Graphical Modeling Framework (GMF) Creation Review Richard C. Gronback Borland Software Corp. April 13, 2005.
Treasure Hunt - project development overall status - November 2011.
ARCH-2: UML From Design to Implementation using UML Frank Beusenberg Senior Technical Consultant.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
From RIMBAA to SIMBAA ? Robert Worden Open Mapping Software Ltd
1 Innovative Solutions For Mission Critical Systems Using EMF Annotations to Drive Program Behavior February 19, 2014.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Graphical Modeling Framework (GMF) Richard C. Gronback Project Lead.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with IBM Rational Software Architect, V7.5 Module 18: Applying Patterns and Transformations.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Graphical Modeling Framework (GMF) Creation Review Richard C. Gronback Borland Software Corp. April 13, 2005.
Design Pattern Support based on principles of model driven development Zihao Zhao.
1 Model Driven Health Tools Design and Implementation of CDA Templates Dave Carlson Contractor to CHIO
Model Driven Architecture MDA SE-548 Lale Doğan
Building Enterprise Applications Using Visual Studio®
Java Beans Sagun Dhakhwa.
Web Application Modeling
Technical Sessions Scripting/Groovy Simple App Framework Portlet Rest
Evaluating Compuware OptimalJ as an MDA tool
Constructing MDA-based Application Using Rational XDE for .NET
Execute your Processes
Model Driven Software Development
Software Architecture & Design
Presentation transcript:

java.sun.com/javaone/sf | 2004 JavaOne SM Conference | Session The Eclipse Modeling Framework Ed Merks, Ph.D. Software Architect IBM Canada Ltd. Introducing Modeling to the Java™ Technology Mainstream

| 2004 JavaOne SM Conference | Session Goal Learn about modeling and how the Eclipse Modeling Framework can help you write your application in significantly less time, simply by leveraging the data model you've probably already defined, although you might not know it Eclipse Modeling Framework (EMF)

| 2004 JavaOne SM Conference | Session Agenda What is Modeling? EMF Model Definition Code Generation EMF Architecture Demo Summary

| 2004 JavaOne SM Conference | Session A software development architecture proposed by the OMG (Object Management Group) Application is specified in a high-level platform independent model (PIM) ─abstracts away underlying platform technology Transformation technologies are used to convert PIM to platform specific model (PSM), implementation code, etc. Includes several open modeling standards ─UML, MOF, XMI, CWM Model Driven Architecture (MDA)™ What is Modeling?

| 2004 JavaOne SM Conference | Session It’s mostly vaporware 2. “Real programmers” know that implementing complex systems by simply transforming a picture, is a “pipe dream” ─not to mention the fact that it could put us “real programmers” out of business! 3. Smart people know that all the expressive power of Java ™ software can’t be available in the model ─if it was, it wouldn't be any simpler (higher level) ─it would just be another “programming language” Why don’t we care about MDA? What is Modeling?

| 2004 JavaOne SM Conference | Session It’s not totally vaporware 2. “Real programmers” know that generating some of the code that we write over and over, must be possible It will simply pave the way for even more complex systems on top of it … programmers like us will never be out of business! 3. Smart people (that have been around long enough) recognize many of the same arguments that were used to oppose high- level languages vs. assembly language Why should we care about MDA? What is Modeling?

| 2004 JavaOne SM Conference | Session Contrary to most programmers’ belief, modeling can be useful for more than just documentation Just about every program we write manipulates some data model ─It might be defined using Java ™, UML, XML Schema, or some other definition language EMF aims to extract this intrinsic "model" and generate some of the implementation code ─Can be a tremendous productivity gain Model Driven Development with EMF What is Modeling?

| 2004 JavaOne SM Conference | Session Agenda What is Modeling? EMF Model Definition Code Generation EMF Architecture Demo Summary

| 2004 JavaOne SM Conference | Session 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 What is an EMF “model”? EMF Model Definition

| 2004 JavaOne SM Conference | Session 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 generate the others as well as the implementation code Model Sources EMF Model Definition

| 2004 JavaOne SM Conference | Session public interface PurchaseOrder { String getShipTo(); void setShipTo(String value); String getBillTo(); void setBillTo(String value); List getItems(); // List of Item } public interface Item { String getProductName(); void setProductName(String value); int getQuantity(); void setQuantity(int value); float getPrice(); void setPrice(float value); } EMF Model Definition 1. Java Interfaces

| 2004 JavaOne SM Conference | Session EMF Model Definition 2. UML Class Diagram

| 2004 JavaOne SM Conference | Session <xsd:element name="items" type="PO:Item" minOccurs="0" maxOccurs="unbounded"/> EMF Model Definition 3. XML Schema

| 2004 JavaOne SM Conference | Session Unifying Java™, XML, and UML technologies EMF Model Definition All three forms provide the same information ─Different visualization/representation ─The application’s “model” of the structure From a model definition, EMF can generate: ─Java™ implementation code, including UI ─XML Schemas ─Eclipse projects and plug-ins

| 2004 JavaOne SM Conference | Session Agenda What is Modeling? EMF Model Definition Code Generation EMF Architecture Demo Summary

| 2004 JavaOne SM Conference | Session public String getShipTo() { return shipTo; } public void setShipTo(String newShipTo) { String oldShipTo = shipTo; shipTo = newShipTo ; if (eNotificationRequired()) eNotify(new ENotificationImpl(this,... ); } Code Generation Efficient notification from “set” methods ─Observer Design Pattern Feature Change Notification

| 2004 JavaOne SM Conference | Session Code Generation public interface PurchaseOrder {... PurchaseOrder getNext(); void setNext(PurchaseOrder value); PurchaseOrder getPrevious(); void setPrevious(PurchaseOrder value); } Bidirectional Reference Handshaking next

| 2004 JavaOne SM Conference | Session Code Generation Bidirectional Reference Handshaking (cont) p1.setNext(p3); p2 previous next previous p1 next p2 previous next p3 previous change notification

| 2004 JavaOne SM Conference | Session public interface EObject { Object eGet(EStructuralFeature f); void eSet(EStructuralFeature f, Object v);... } Code Generation All EMF classes implement interface EObject Provides an efficient API for manipulating objects reflectively ─Used by the framework (e.g., generic serializer, copy utility, generic editing commands, etc.) ─Also key to integrating tools and applications built using EMF Reflective EObject API

| 2004 JavaOne SM Conference | Session public Object eGet(EStructuralFeature eFeature) { switch (eDerivedStructuralFeatureID(eFeature)) { case POPackage.PURCHASE_ORDER__SHIP_TO: return getShipTo(); case POPackage.PURCHASE_ORDER__BILL_TO: return getBillTo();... } Code Generation Efficient generated switch implementation of reflective methods Reflective EObject API (cont)

| 2004 JavaOne SM Conference | Session Code Generation Model Persistence poResource =...createResource(..."p1.xml"...); poResource.getContents.add(p1); poResource.save(...); Save model objects using EMF Resources ─Generic XML Resource implementation ─Other Resource implementations possible John Doe p2.xml#p2 p1.xml:

| 2004 JavaOne SM Conference | Session Code Generation Proxy Resolution and Demand Load PurchaseOrder p2 = p1.getNext(); p1 p1.xml next p2 p2.xml proxyURI=“p2.xml#p2” next proxyURI=“p2.xml#p2” next

| 2004 JavaOne SM Conference | Session Code Generation EMF.Edit Model Viewers and Editors My.po Item (Apples) Item (Oranges) PurchaseOrder Complete Eclipse SWT/JFace based editor Partial view support for other UI libraries (e.g., Swing) EMF command framework provides full undo/redo support

| 2004 JavaOne SM Conference | Session Agenda What is Modeling? EMF Model Definition Code Generation EMF Architecture Demo Summary

| 2004 JavaOne SM Conference | Session EMF Architecture Model Import and Generation IMPORTIMPORT GENERATE Ecore Model UML XML Schema Java model Java edit Generator features: Customizable JSP-like templates (JET) Command-line or integrated with Eclipse JDT Fully supports regeneration and merge Java editor* * requires Eclipse to run Java model

| 2004 JavaOne SM Conference | Session Ecore Ecore is EMF’s model of a model (metamodel) ─Persistent representation is XMI EMF Architecture

| 2004 JavaOne SM Conference | Session PurchaseOrder Ecore Model EMF Architecture

| 2004 JavaOne SM Conference | Session <eClassifiers xsi:type="ecore:EClass" name="PurchaseOrder"> <eReferences name="items" eType="#//Item" upperBound="-1" containment="true"/> <eAttributes name="shipTo" eType="ecore:EDataType <eAttributes name="billTo" eType="ecore:EDataType EMF Architecture PurchaseOrder Ecore XMI Alternate serialization format is EMOF ─Part of OMG MOF 2 Standard

| 2004 JavaOne SM Conference | Session EMF Architecture Dynamic EMF Given an Ecore model, EMF also supports dynamic manipulation of instances ─No generated code required ─Dynamic implementation of reflective EObject API provides same runtime behavior as generated code ─Also supports dynamic subclasses of generated classes All EMF model instances, whether generated or dynamic, are treated the same by the framework

| 2004 JavaOne SM Conference | Session EMF Architecture Who is using EMF today? IBM WebSphere/Rational product family Other Eclipse projects (XSD, UML2, VE, Hyades) ISV’s (TogetherSoft, Ensemble, Versata, Omondo, and more) SDO reference implementation Large open source community ─O(1K) downloads/day ─and growing …

| 2004 JavaOne SM Conference | Session Agenda What is Modeling? EMF Model Definition Code Generation EMF Architecture Demo Summary

| 2004 JavaOne SM Conference | Session Demo Using EMF 32

| 2004 JavaOne SM Conference | Session Agenda What is Modeling? EMF Model Definition Code Generation EMF Architecture Demo Summary

| 2004 JavaOne SM Conference | Session Summary EMF is low-cost modeling for the Java™ technology mainstream Leverages the intrinsic model in an application ─No high-level modeling tool required Boosts productivity and facilitates integration Mixes modeling with programming to maximize the effectiveness of both A breakthrough for model-based software development? You be the judge

| 2004 JavaOne SM Conference | Session For More Information Eclipse EMF Help ─overviews, tutorials, API reference EMF Project Web Site ─ ─documentation, newsgroup, mailing list, Bugzilla Eclipse Modeling Framework by Frank Budinsky et al. ─Addison-Wesley; 1 st edition (August 13, 2003) ─ISBN: IBM Redbook ─publication number: SG

| 2004 JavaOne SM Conference | Session Q&A 36

java.sun.com/javaone/sf | 2004 JavaOne SM Conference | Session Ed Merks, Ph.D. Software Architect IBM Canada Ltd. Introducing Modeling to the Java™ Technology Mainstream The Eclipse Modeling Framework