SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais de 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
 

Mais de 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
 

Último

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Último (20)

"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

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

Notas do Editor