SlideShare a Scribd company logo
1 of 144
eclipse

modeling     PROJECT




  Overview
    Dr. Jan Köhnlein
       itemis AG
What is the                       ?
              eclipse

              modeling  PROJECT
What is the                       ?
              eclipse

              modeling  PROJECT




  Everything you need
     for modeling!
Where is the EMP used ?
uses EMP
Commercial tools
 leverage EMP
SD Times has rated
EMF Top in Modeling
       (2008)
EMP is even going
  to the stars!
eclipse


                    in Numbers
modeling  PROJECT
eclipse


                        in Numbers
    modeling  PROJECT




•   First components started in 2003
eclipse


                        in Numbers
    modeling  PROJECT




•   First components started in 2003

•   Currently
eclipse


                        in Numbers
    modeling  PROJECT




•   First components started in 2003

•   Currently

    •   75 committers and contributors
eclipse


                        in Numbers
    modeling  PROJECT




•   First components started in 2003

•   Currently

    •   75 committers and contributors

    •   from 15 companies + individuals
eclipse


                        in Numbers
    modeling  PROJECT




•   First components started in 2003

•   Currently

    •   75 committers and contributors

    •   from 15 companies + individuals

    •   9 subprojects
eclipse


                        in Numbers
    modeling  PROJECT




•   First components started in 2003

•   Currently

    •   75 committers and contributors

    •   from 15 companies + individuals

    •   9 subprojects

    •   25 components
eclipse


                        in Numbers
    modeling  PROJECT




•   First components started in 2003

•   Currently

    •   75 committers and contributors

    •   from 15 companies + individuals

    •   9 subprojects

    •   25 components

•   Around 14000 bug reports
eclipse


                        in Numbers
    modeling  PROJECT




•   First components started in 2003

•   Currently

    •   75 committers and contributors

    •   from 15 companies + individuals

    •   9 subprojects

    •   25 components

•   Around 14000 bug reports

•   297022 commits in 2008 (>114000 in 2009)
Components
  of EMP
ATL
                       MOFScript GMT           GMF
    OMCW IMM
           UMLX
QVTD MST                            VIATRA2
                             TCS               BPMN2
 Xtext    JET     Epsilon          AMW   MWE
                                                OCL
                            EMF
                CDO
  QVTO                         Teneo GEMS
                                             TMF
      SBVR                Mint M2M
Net4j         Compare                  EMF4Net M2T
   Validation
                       UML2 Tools MDT       MoDisco
  Papyrus EMF Core
                      Search Ecore Tools Temporarility
              Xpand
EMF Query
                   EMF       EMFatic EMFT
      UML2      Transaction                JCR
 Acceleo SDO XSD             Amalgam    Management
EMP
EMF




      EMP
EMF         EMFT




      EMP
EMF         EMFT


                   M2M

      EMP
EMF         EMFT


                   M2M

      EMP
                   Amalgam
EMF         EMFT


                   M2M

      EMP
                   Amalgam


               TMF
EMF         EMFT


                   M2M

      EMP
                   Amalgam


               TMF
      GMF
EMF         EMFT


                         M2M

            EMP
                         Amalgam


M2T
                     TMF
            GMF
EMF         EMFT


                               M2M

                  EMP
GMT                            Amalgam


      M2T
                           TMF
                  GMF
EMF         EMFT

 MDT
                               M2M

                  EMP
GMT                            Amalgam


      M2T
                           TMF
                  GMF
EMF
EMF Core



EMF
Validation
             EMF Core



    EMF
Validation
                           EMF Core
  Model
Transaction

                  EMF
Validation
                           EMF Core
  Model
Transaction

                  EMF


                           Model
                           Query
Validation
                           EMF Core
  Model
Transaction

                  EMF
  Teneo
                           Model
                           Query
Validation
                           EMF Core
  Model
Transaction

                  EMF
  Teneo
                           Model
        CDO
                           Query
Validation
                           EMF Core
  Model
Transaction

                  EMF
  Teneo
                           Model
        CDO
                           Query
                Net4j
Validation
                           EMF Core
  Model
Transaction
                              SDO
                  EMF
  Teneo
                           Model
        CDO
                           Query
                Net4j
EMFT
EMFT




Search
EMFatic

    EMFT




Search
EMFatic

              EMFT
EMF4Net



          Search
EMFatic

                EMFT
EMF4Net


     Mint
            Search
Compare               EMFatic

                EMFT
EMF4Net


     Mint
            Search
Ecore Tools


 Compare                      EMFatic

                EMFT
EMF4Net


     Mint
            Search
Ecore Tools


 Compare                      EMFatic

                EMFT
EMF4Net


     Mint
                        MWE
            Search
JCR
                          Ecore Tools
          Management

 Compare                         EMFatic

                   EMFT
EMF4Net


     Mint
                           MWE
               Search
JCR
                          Ecore Tools
          Management

 Compare                         EMFatic

                   EMFT
EMF4Net
                                Temporarility

     Mint
                           MWE
               Search
MDT
UML2




 MDT
UML2




 MDT
       OCL
UML2




              MDT
                    OCL

UML2 Tools
UML2


                    Papyrus

              MDT
                      OCL

UML2 Tools
UML2

BPMN2
                    Papyrus

              MDT
                      OCL

UML2 Tools
UML2

BPMN2
                    Papyrus

MST
              MDT
                      OCL

UML2 Tools
UML2   IMM
BPMN2
                      Papyrus

MST
              MDT
                          OCL

UML2 Tools
UML2   IMM
BPMN2
                      Papyrus

MST
              MDT
                           OCL

UML2 Tools           XSD
UML2     IMM
BPMN2
                        Papyrus

MST
              MDT
                             OCL

UML2 Tools             XSD
               SBVR
M2T
Acceleo



          M2T
Acceleo
                JET

          M2T
Acceleo
                  JET

            M2T



    Xpand
M2M
QVTD



       M2M
QVTD



       M2M


   QVTO
QVTD
             ATL


       M2M


   QVTO
TMF
Xtext




TMF
GMF



      Amalgam
GMT
AM3

GMT
AMW


            AM3

GMT
AMW


Epsilon               AM3

          GMT
AMW


Epsilon               AM3

          GMT
GEMS
AMW


Epsilon                 AM3

            GMT
GEMS


  MoDisco
AMW


Epsilon                       AM3

             GMT
GEMS


  MoDisco
            MOFScript
AMW


Epsilon                       AM3

             GMT
GEMS


  MoDisco               OMCW
            MOFScript
AMW


Epsilon                       AM3

             GMT
                              TCS
GEMS


  MoDisco               OMCW
            MOFScript
UMLX
                        AMW


Epsilon                       AM3

             GMT
                              TCS
GEMS


  MoDisco               OMCW
            MOFScript
UMLX
                        AMW
  VIATRA2


Epsilon                       AM3

             GMT
                              TCS
GEMS


  MoDisco               OMCW
            MOFScript
Use Cases for Modeling
Using
Modeling
Standards
XMI
        SysML
 UML

          OMG
                        MTL
       Standards
MDA
        OCL     BPMN
Papyrus                EMF Core
                                XMI
                    SysML
 UML2
       UML
 UML2 Tools
                  OMG            Acceleo
                        IMM
                                       MTL
                  MST
               Standards
       QVTD           SBVR

 MDA
                        OCL
                  OCL
QVTO                          BPMN
                                 BPMN2
Domain
Modeling
Model Your Business Objects
         in Ecore
Model Your Business Objects
         in Ecore


              EMF Core
Domain Models
• Ecore -> Java code generator
• Referential integrity
• Change notification
• Small footprint
• Efficient reflection
• Command framework
• Change recorder
Domain Models
•                                JET
  Ecore -> Java code generator
• Referential integrity
• Change notification
• Small footprint
• Efficient reflection
• Command framework
• Change recorder
Domain Models
•                                   JET
  Ecore -> Java code generator
• Referential integrity
• Change notification
• Small footprint                EMF Core
• Efficient reflection
• Command framework
• Change recorder
Generated IDE
Generated IDE
       JET
Generated IDE
       JET




      EMF Core
Persistence


• RESTful
• XMI / XML serialization
• Database persistence
• Distributed shared models
Persistence


• RESTful         EMF Core
• XMI / XML serialization
• Database persistence
• Distributed shared models
Persistence


• RESTful         EMF Core
• XMI / XML serialization
• Database persistence Teneo
• Distributed shared models
Persistence


• RESTful         EMF Core
• XMI / XML serialization
• Database persistence Teneo
• Distributed shared models CDO
XMI
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?>
<MyDomain:Person xmi:version=quot;2.0quot;
	    xmlns:xmi=quot;http://www.omg.org/XMIquot;
	    xmlns:MyDomain=quot;http://www.itemis.de/myDomain/1.0quot;
	    givenName=quot;Svenquot;
	    surName=quot;Efftingequot;>
  <addresses street=quot;Schauenburgerstra§e 119quot;
  	 city=quot;Kielquot;
  	 postalCode=quot;24118quot;/>
  <phones countryCode=quot;49quot;
  	 number=quot;122344545quot;/>
</MyDomain:Person>
UI Extensions


• Search
• Development support
• Diff / Merge
• Ecore editing
UI Extensions


• Search Search
• Development support
• Diff / Merge
• Ecore editing
UI Extensions


• Search Search
• Development support   Mint
• Diff / Merge
• Ecore editing
UI Extensions


• Search Search
• Development support Mint
• Diff / Merge Compare
• Ecore editing
UI Extensions


• Search Search
• Development support Mint
• Diff / Merge Compare
• Ecore editing EMFatic
UI Extensions


• Search Search
• Development support Mint
• Diff / Merge Compare
• Ecore editing EMFatic
    Ecore Tools
Extensions


• Transactions
• Validation
• Query
• Target platforms
Extensions

                    EMF
                 Transaction
• Transactions
• Validation
• Query
• Target platforms
Extensions

                      EMF
                   Transaction
• Transactions
               Validation
• Validation
• Query
• Target platforms
Extensions

                      EMF
                   Transaction
• Transactions
               Validation
• Validation
• Query EMF Query
• Target platforms
Extensions

                      EMF
                   Transaction
• Transactions
               Validation
• Validation
• Query EMF Query
• Target platforms SDO
Extensions

                      EMF
                   Transaction
• Transactions
               Validation
• Validation
• Query EMF Query
• Target platforms SDO
         EMF4Net
Domain-Specific Languages
Why DSLs?
@Entity
public class Customer implements Serializable {
  private Long id;
  private String name;
  private Collection<Order> orders = new HashSet<Order>();
  private Set<PhoneNumber> phones = new HashSet<PhoneNumber>();
  // No-arg constructor
  public Customer() {}
  @Id // property access is used
  public Long getId() {
    return id;
  }
  public void setId(Long id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  @OneToMany
  public Collection<Order> getOrders() {
    return orders;
  }
  public void setOrders(Collection<Order> orders) {
    this.orders = orders;
  }
  @ManyToMany
  public Set<PhoneNumber> getPhones() {
    return phones;
  }
  public void setPhones(Set<PhoneNumber> phones) {
    this.phones = phones;
  }
}
@Entity
                           public class Customer implements Serializable {
                             private Long id;
                             private String name;
                             private Collection<Order> orders = new HashSet<Order>();
                             private Set<PhoneNumber> phones = new HashSet<PhoneNumber>();
                             // No-arg constructor
                             public Customer() {}
                             @Id // property access is used
                             public Long getId() {
                               return id;
                             }
                             public void setId(Long id) {
                               this.id = id;
                             }
entity Customer {            public String getName() {
    String name                return name;
                             }
    Order[] orders           public void setName(String name) {
    PhoneNumber[] phones       this.name = name;
                             }
}                            @OneToMany
                             public Collection<Order> getOrders() {
                               return orders;
                             }
                             public void setOrders(Collection<Order> orders) {
                               this.orders = orders;
                             }
                             @ManyToMany
                             public Set<PhoneNumber> getPhones() {
                               return phones;
                             }
                             public void setPhones(Set<PhoneNumber> phones) {
                               this.phones = phones;
                             }
                           }
DSL Overview
Design the
Language


              Implement
              the Tooling



     Create
     Models




                  Execute
                  Models
DSL: Language Definition

 • Abstract Syntax
 • Concrete Syntax
  • Textual
  • Graphical
  • Structural
DSL: Language Definition

 • Abstract Syntax EMF Core
 • Concrete Syntax
  • Textual
  • Graphical
  • Structural
DSL: Language Definition

 • Abstract Syntax EMF Core
 • Concrete Syntax
  • Textual Xtext
  • Graphical
  • Structural
DSL: Language Definition

  • Abstract Syntax EMF Core
  • Concrete Syntax
    • Textual Xtext
TCS
    • Graphical
    • Structural
DSL: Language Definition

  • Abstract Syntax EMF Core
  • Concrete Syntax
    • Textual Xtext
TCS
    • Graphical GMF
    • Structural
DSL: Language Definition

  • Abstract Syntax EMF Core
  • Concrete Syntax
    • Textual Xtext
TCS
    • Graphical GMF
    • Structural EMF Core
DSL: Modeling IDE

• Model Editors
 • Structral
 • Textual
 • Graphical
• Query
DSL: Modeling IDE

• Model Editors
 • Structral EMF Core
 • Textual
 • Graphical
• Query
DSL: Modeling IDE

• Model Editors
 • Structral EMF Core
 • Textual Xtext
 • Graphical
• Query
DSL: Modeling IDE

  • Model Editors
    • Structral EMF Core
TCS • Textual Xtext
    • Graphical
  • Query
DSL: Modeling IDE

  • Model Editors
    • Structral EMF Core
TCS • Textual Xtext
    • Graphical GMF
  • Query
DSL: Modeling IDE

  • Model Editors
    • Structral EMF Core
TCS • Textual Xtext
    • Graphical GMF
  • Query
        EMF Query
DSL: Execution


• Validation
• Code generation
• Interpretation
DSL: Execution

            Validation
• Validation
• Code generation
• Interpretation
DSL: Execution

            Validation
• Validation
• Code generation        JET
• Interpretation
DSL: Execution

            Validation
• Validation
                     Acceleo
• Code generation
                               JET
• Interpretation
DSL: Execution

              Validation
•   Validation
                       Acceleo
•   Code generation
                      Xpand JET
•   Interpretation
DSL: Execution

              Validation
•   Validation
                       Acceleo
•   Code generation
                      Xpand JET
•   Interpretation
       EMF Core
DSL: Transformation


• Model import
• Model-to-model transformation
• Tool orchestration
DSL: Transformation

             XSD
• Model import
• Model-to-model transformation
• Tool orchestration
DSL: Transformation

             XSD
• Model import
                         ATL
• Model-to-model transformation
• Tool orchestration
DSL: Transformation

             XSD
• Model import
                         ATL Xpand
• Model-to-model transformation
• Tool orchestration
DSL: Transformation

             XSD
• Model import
                         ATL Xpand
• Model-to-model transformation QVTD
• Tool orchestration
DSL: Transformation

             XSD
• Model import
                         ATL Xpand
• Model-to-model transformation QVTD
•                          QVTO
  Tool orchestration
DSL: Transformation

             XSD
• Model import
                         ATL Xpand
• Model-to-model transformation QVTD
•                          QVTO
  Tool orchestration
                   MWE
An Example for DSLs
An Example for DSLs
eclipse

Visit                         at
         modeling  PROJECT




   www.eclipse.org/modeling

More Related Content

Similar to Eclipse Modeling Overview

EMF - The off beat path
EMF - The off beat pathEMF - The off beat path
EMF - The off beat path17thcamel
 
Developing a multi-panel editor for EMF traces models
Developing a multi-panel editor for EMF traces modelsDeveloping a multi-panel editor for EMF traces models
Developing a multi-panel editor for EMF traces modelsÁlvaro Jiménez Rielo
 
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkEclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkDave Steinberg
 
3mf infinity-and-beyond
3mf infinity-and-beyond3mf infinity-and-beyond
3mf infinity-and-beyondmikaelbarbero
 
Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Hugo Bruneliere
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008William Piers
 

Similar to Eclipse Modeling Overview (6)

EMF - The off beat path
EMF - The off beat pathEMF - The off beat path
EMF - The off beat path
 
Developing a multi-panel editor for EMF traces models
Developing a multi-panel editor for EMF traces modelsDeveloping a multi-panel editor for EMF traces models
Developing a multi-panel editor for EMF traces models
 
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkEclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
 
3mf infinity-and-beyond
3mf infinity-and-beyond3mf infinity-and-beyond
3mf infinity-and-beyond
 
Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011
 
ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008ATL tutorial - EclipseCon 2008
ATL tutorial - EclipseCon 2008
 

More from Dr. Jan Köhnlein

The Eclipse Layout Kernel sirius con 2017
The Eclipse Layout Kernel   sirius con 2017The Eclipse Layout Kernel   sirius con 2017
The Eclipse Layout Kernel sirius con 2017Dr. Jan Köhnlein
 
A New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEsA New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEsDr. Jan Köhnlein
 
Graphical Views For Xtext With FXDiagram
Graphical Views For Xtext With FXDiagramGraphical Views For Xtext With FXDiagram
Graphical Views For Xtext With FXDiagramDr. Jan Köhnlein
 
Diagram Editors - The FXed Generation
Diagram Editors - The FXed GenerationDiagram Editors - The FXed Generation
Diagram Editors - The FXed GenerationDr. Jan Köhnlein
 
Eclipse Diagram Editors - An Endangered Species
Eclipse Diagram Editors - An Endangered SpeciesEclipse Diagram Editors - An Endangered Species
Eclipse Diagram Editors - An Endangered SpeciesDr. Jan Köhnlein
 
A fresh look at graphical editing
A fresh look at graphical editingA fresh look at graphical editing
A fresh look at graphical editingDr. Jan Köhnlein
 
A fresh look at graphical editing
A fresh look at graphical editingA fresh look at graphical editing
A fresh look at graphical editingDr. Jan Köhnlein
 
A fresh look at graphical editing
A fresh look at graphical editingA fresh look at graphical editing
A fresh look at graphical editingDr. Jan Köhnlein
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Dr. Jan Köhnlein
 

More from Dr. Jan Köhnlein (20)

The Eclipse Layout Kernel sirius con 2017
The Eclipse Layout Kernel   sirius con 2017The Eclipse Layout Kernel   sirius con 2017
The Eclipse Layout Kernel sirius con 2017
 
A New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEsA New Approach Towards Web-based IDEs
A New Approach Towards Web-based IDEs
 
Responsiveness
ResponsivenessResponsiveness
Responsiveness
 
Getting rid of backtracking
Getting rid of backtrackingGetting rid of backtracking
Getting rid of backtracking
 
Graphical Views For Xtext With FXDiagram
Graphical Views For Xtext With FXDiagramGraphical Views For Xtext With FXDiagram
Graphical Views For Xtext With FXDiagram
 
XRobots
XRobotsXRobots
XRobots
 
Diagrams, Xtext and UX
Diagrams, Xtext and UXDiagrams, Xtext and UX
Diagrams, Xtext and UX
 
Scoping
ScopingScoping
Scoping
 
Xtext, diagrams and ux
Xtext, diagrams and uxXtext, diagrams and ux
Xtext, diagrams and ux
 
Diagram Editors - The FXed Generation
Diagram Editors - The FXed GenerationDiagram Editors - The FXed Generation
Diagram Editors - The FXed Generation
 
Code Generation With Xtend
Code Generation With XtendCode Generation With Xtend
Code Generation With Xtend
 
Graphical Views For Xtext
Graphical Views For XtextGraphical Views For Xtext
Graphical Views For Xtext
 
The Xtext Grammar Language
The Xtext Grammar LanguageThe Xtext Grammar Language
The Xtext Grammar Language
 
Eclipse Diagram Editors - An Endangered Species
Eclipse Diagram Editors - An Endangered SpeciesEclipse Diagram Editors - An Endangered Species
Eclipse Diagram Editors - An Endangered Species
 
Java DSLs with Xtext
Java DSLs with XtextJava DSLs with Xtext
Java DSLs with Xtext
 
DSLs for Java Developers
DSLs for Java DevelopersDSLs for Java Developers
DSLs for Java Developers
 
A fresh look at graphical editing
A fresh look at graphical editingA fresh look at graphical editing
A fresh look at graphical editing
 
A fresh look at graphical editing
A fresh look at graphical editingA fresh look at graphical editing
A fresh look at graphical editing
 
A fresh look at graphical editing
A fresh look at graphical editingA fresh look at graphical editing
A fresh look at graphical editing
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
 

Recently uploaded

Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Recently uploaded (20)

Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Eclipse Modeling Overview

  • 1. eclipse modeling PROJECT Overview Dr. Jan Köhnlein itemis AG
  • 2. What is the ? eclipse modeling PROJECT
  • 3. What is the ? eclipse modeling PROJECT Everything you need for modeling!
  • 4. Where is the EMP used ?
  • 7. SD Times has rated EMF Top in Modeling (2008)
  • 8. EMP is even going to the stars!
  • 9. eclipse in Numbers modeling PROJECT
  • 10. eclipse in Numbers modeling PROJECT • First components started in 2003
  • 11. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently
  • 12. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently • 75 committers and contributors
  • 13. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently • 75 committers and contributors • from 15 companies + individuals
  • 14. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently • 75 committers and contributors • from 15 companies + individuals • 9 subprojects
  • 15. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently • 75 committers and contributors • from 15 companies + individuals • 9 subprojects • 25 components
  • 16. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently • 75 committers and contributors • from 15 companies + individuals • 9 subprojects • 25 components • Around 14000 bug reports
  • 17. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently • 75 committers and contributors • from 15 companies + individuals • 9 subprojects • 25 components • Around 14000 bug reports • 297022 commits in 2008 (>114000 in 2009)
  • 19.
  • 20. ATL MOFScript GMT GMF OMCW IMM UMLX QVTD MST VIATRA2 TCS BPMN2 Xtext JET Epsilon AMW MWE OCL EMF CDO QVTO Teneo GEMS TMF SBVR Mint M2M Net4j Compare EMF4Net M2T Validation UML2 Tools MDT MoDisco Papyrus EMF Core Search Ecore Tools Temporarility Xpand EMF Query EMF EMFatic EMFT UML2 Transaction JCR Acceleo SDO XSD Amalgam Management
  • 21. EMP
  • 22. EMF EMP
  • 23. EMF EMFT EMP
  • 24. EMF EMFT M2M EMP
  • 25. EMF EMFT M2M EMP Amalgam
  • 26. EMF EMFT M2M EMP Amalgam TMF
  • 27. EMF EMFT M2M EMP Amalgam TMF GMF
  • 28. EMF EMFT M2M EMP Amalgam M2T TMF GMF
  • 29. EMF EMFT M2M EMP GMT Amalgam M2T TMF GMF
  • 30. EMF EMFT MDT M2M EMP GMT Amalgam M2T TMF GMF
  • 31. EMF
  • 33. Validation EMF Core EMF
  • 34. Validation EMF Core Model Transaction EMF
  • 35. Validation EMF Core Model Transaction EMF Model Query
  • 36. Validation EMF Core Model Transaction EMF Teneo Model Query
  • 37. Validation EMF Core Model Transaction EMF Teneo Model CDO Query
  • 38. Validation EMF Core Model Transaction EMF Teneo Model CDO Query Net4j
  • 39. Validation EMF Core Model Transaction SDO EMF Teneo Model CDO Query Net4j
  • 40. EMFT
  • 42. EMFatic EMFT Search
  • 43. EMFatic EMFT EMF4Net Search
  • 44. EMFatic EMFT EMF4Net Mint Search
  • 45. Compare EMFatic EMFT EMF4Net Mint Search
  • 46. Ecore Tools Compare EMFatic EMFT EMF4Net Mint Search
  • 47. Ecore Tools Compare EMFatic EMFT EMF4Net Mint MWE Search
  • 48. JCR Ecore Tools Management Compare EMFatic EMFT EMF4Net Mint MWE Search
  • 49. JCR Ecore Tools Management Compare EMFatic EMFT EMF4Net Temporarility Mint MWE Search
  • 50. MDT
  • 52. UML2 MDT OCL
  • 53. UML2 MDT OCL UML2 Tools
  • 54. UML2 Papyrus MDT OCL UML2 Tools
  • 55. UML2 BPMN2 Papyrus MDT OCL UML2 Tools
  • 56. UML2 BPMN2 Papyrus MST MDT OCL UML2 Tools
  • 57. UML2 IMM BPMN2 Papyrus MST MDT OCL UML2 Tools
  • 58. UML2 IMM BPMN2 Papyrus MST MDT OCL UML2 Tools XSD
  • 59. UML2 IMM BPMN2 Papyrus MST MDT OCL UML2 Tools XSD SBVR
  • 60. M2T
  • 61. Acceleo M2T
  • 62. Acceleo JET M2T
  • 63. Acceleo JET M2T Xpand
  • 64. M2M
  • 65. QVTD M2M
  • 66. QVTD M2M QVTO
  • 67. QVTD ATL M2M QVTO
  • 68. TMF
  • 70. GMF Amalgam
  • 71. GMT
  • 73. AMW AM3 GMT
  • 74. AMW Epsilon AM3 GMT
  • 75. AMW Epsilon AM3 GMT GEMS
  • 76. AMW Epsilon AM3 GMT GEMS MoDisco
  • 77. AMW Epsilon AM3 GMT GEMS MoDisco MOFScript
  • 78. AMW Epsilon AM3 GMT GEMS MoDisco OMCW MOFScript
  • 79. AMW Epsilon AM3 GMT TCS GEMS MoDisco OMCW MOFScript
  • 80. UMLX AMW Epsilon AM3 GMT TCS GEMS MoDisco OMCW MOFScript
  • 81. UMLX AMW VIATRA2 Epsilon AM3 GMT TCS GEMS MoDisco OMCW MOFScript
  • 82. Use Cases for Modeling
  • 84. XMI SysML UML OMG MTL Standards MDA OCL BPMN
  • 85. Papyrus EMF Core XMI SysML UML2 UML UML2 Tools OMG Acceleo IMM MTL MST Standards QVTD SBVR MDA OCL OCL QVTO BPMN BPMN2
  • 87. Model Your Business Objects in Ecore
  • 88. Model Your Business Objects in Ecore EMF Core
  • 89. Domain Models • Ecore -> Java code generator • Referential integrity • Change notification • Small footprint • Efficient reflection • Command framework • Change recorder
  • 90. Domain Models • JET Ecore -> Java code generator • Referential integrity • Change notification • Small footprint • Efficient reflection • Command framework • Change recorder
  • 91. Domain Models • JET Ecore -> Java code generator • Referential integrity • Change notification • Small footprint EMF Core • Efficient reflection • Command framework • Change recorder
  • 94. Generated IDE JET EMF Core
  • 95. Persistence • RESTful • XMI / XML serialization • Database persistence • Distributed shared models
  • 96. Persistence • RESTful EMF Core • XMI / XML serialization • Database persistence • Distributed shared models
  • 97. Persistence • RESTful EMF Core • XMI / XML serialization • Database persistence Teneo • Distributed shared models
  • 98. Persistence • RESTful EMF Core • XMI / XML serialization • Database persistence Teneo • Distributed shared models CDO
  • 99. XMI <?xml version=quot;1.0quot; encoding=quot;UTF-8quot;?> <MyDomain:Person xmi:version=quot;2.0quot; xmlns:xmi=quot;http://www.omg.org/XMIquot; xmlns:MyDomain=quot;http://www.itemis.de/myDomain/1.0quot; givenName=quot;Svenquot; surName=quot;Efftingequot;> <addresses street=quot;Schauenburgerstra§e 119quot; city=quot;Kielquot; postalCode=quot;24118quot;/> <phones countryCode=quot;49quot; number=quot;122344545quot;/> </MyDomain:Person>
  • 100. UI Extensions • Search • Development support • Diff / Merge • Ecore editing
  • 101. UI Extensions • Search Search • Development support • Diff / Merge • Ecore editing
  • 102. UI Extensions • Search Search • Development support Mint • Diff / Merge • Ecore editing
  • 103. UI Extensions • Search Search • Development support Mint • Diff / Merge Compare • Ecore editing
  • 104. UI Extensions • Search Search • Development support Mint • Diff / Merge Compare • Ecore editing EMFatic
  • 105. UI Extensions • Search Search • Development support Mint • Diff / Merge Compare • Ecore editing EMFatic Ecore Tools
  • 106. Extensions • Transactions • Validation • Query • Target platforms
  • 107. Extensions EMF Transaction • Transactions • Validation • Query • Target platforms
  • 108. Extensions EMF Transaction • Transactions Validation • Validation • Query • Target platforms
  • 109. Extensions EMF Transaction • Transactions Validation • Validation • Query EMF Query • Target platforms
  • 110. Extensions EMF Transaction • Transactions Validation • Validation • Query EMF Query • Target platforms SDO
  • 111. Extensions EMF Transaction • Transactions Validation • Validation • Query EMF Query • Target platforms SDO EMF4Net
  • 114. @Entity public class Customer implements Serializable { private Long id; private String name; private Collection<Order> orders = new HashSet<Order>(); private Set<PhoneNumber> phones = new HashSet<PhoneNumber>(); // No-arg constructor public Customer() {} @Id // property access is used public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToMany public Collection<Order> getOrders() { return orders; } public void setOrders(Collection<Order> orders) { this.orders = orders; } @ManyToMany public Set<PhoneNumber> getPhones() { return phones; } public void setPhones(Set<PhoneNumber> phones) { this.phones = phones; } }
  • 115. @Entity public class Customer implements Serializable { private Long id; private String name; private Collection<Order> orders = new HashSet<Order>(); private Set<PhoneNumber> phones = new HashSet<PhoneNumber>(); // No-arg constructor public Customer() {} @Id // property access is used public Long getId() { return id; } public void setId(Long id) { this.id = id; } entity Customer { public String getName() { String name return name; } Order[] orders public void setName(String name) { PhoneNumber[] phones this.name = name; } } @OneToMany public Collection<Order> getOrders() { return orders; } public void setOrders(Collection<Order> orders) { this.orders = orders; } @ManyToMany public Set<PhoneNumber> getPhones() { return phones; } public void setPhones(Set<PhoneNumber> phones) { this.phones = phones; } }
  • 116. DSL Overview Design the Language Implement the Tooling Create Models Execute Models
  • 117. DSL: Language Definition • Abstract Syntax • Concrete Syntax • Textual • Graphical • Structural
  • 118. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual • Graphical • Structural
  • 119. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual Xtext • Graphical • Structural
  • 120. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual Xtext TCS • Graphical • Structural
  • 121. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual Xtext TCS • Graphical GMF • Structural
  • 122. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual Xtext TCS • Graphical GMF • Structural EMF Core
  • 123. DSL: Modeling IDE • Model Editors • Structral • Textual • Graphical • Query
  • 124. DSL: Modeling IDE • Model Editors • Structral EMF Core • Textual • Graphical • Query
  • 125. DSL: Modeling IDE • Model Editors • Structral EMF Core • Textual Xtext • Graphical • Query
  • 126. DSL: Modeling IDE • Model Editors • Structral EMF Core TCS • Textual Xtext • Graphical • Query
  • 127. DSL: Modeling IDE • Model Editors • Structral EMF Core TCS • Textual Xtext • Graphical GMF • Query
  • 128. DSL: Modeling IDE • Model Editors • Structral EMF Core TCS • Textual Xtext • Graphical GMF • Query EMF Query
  • 129. DSL: Execution • Validation • Code generation • Interpretation
  • 130. DSL: Execution Validation • Validation • Code generation • Interpretation
  • 131. DSL: Execution Validation • Validation • Code generation JET • Interpretation
  • 132. DSL: Execution Validation • Validation Acceleo • Code generation JET • Interpretation
  • 133. DSL: Execution Validation • Validation Acceleo • Code generation Xpand JET • Interpretation
  • 134. DSL: Execution Validation • Validation Acceleo • Code generation Xpand JET • Interpretation EMF Core
  • 135. DSL: Transformation • Model import • Model-to-model transformation • Tool orchestration
  • 136. DSL: Transformation XSD • Model import • Model-to-model transformation • Tool orchestration
  • 137. DSL: Transformation XSD • Model import ATL • Model-to-model transformation • Tool orchestration
  • 138. DSL: Transformation XSD • Model import ATL Xpand • Model-to-model transformation • Tool orchestration
  • 139. DSL: Transformation XSD • Model import ATL Xpand • Model-to-model transformation QVTD • Tool orchestration
  • 140. DSL: Transformation XSD • Model import ATL Xpand • Model-to-model transformation QVTD • QVTO Tool orchestration
  • 141. DSL: Transformation XSD • Model import ATL Xpand • Model-to-model transformation QVTD • QVTO Tool orchestration MWE
  • 142. An Example for DSLs
  • 143. An Example for DSLs
  • 144. eclipse Visit at modeling PROJECT www.eclipse.org/modeling

Editor's Notes