Eclipse Modeling Overview

5,285
-1

Published on

Talk at the JAX 2009 in Mainz (Germany)

Published in: Technology
0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,285
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
331
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide
















































































































































  • Eclipse Modeling Overview

    1. 1. eclipse modeling PROJECT Overview Dr. Jan Köhnlein itemis AG
    2. 2. What is the ? eclipse modeling PROJECT
    3. 3. What is the ? eclipse modeling PROJECT Everything you need for modeling!
    4. 4. Where is the EMP used ?
    5. 5. uses EMP
    6. 6. Commercial tools leverage EMP
    7. 7. SD Times has rated EMF Top in Modeling (2008)
    8. 8. EMP is even going to the stars!
    9. 9. eclipse in Numbers modeling PROJECT
    10. 10. eclipse in Numbers modeling PROJECT • First components started in 2003
    11. 11. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently
    12. 12. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently • 75 committers and contributors
    13. 13. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently • 75 committers and contributors • from 15 companies + individuals
    14. 14. eclipse in Numbers modeling PROJECT • First components started in 2003 • Currently • 75 committers and contributors • from 15 companies + individuals • 9 subprojects
    15. 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. 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. 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)
    18. 18. Components of EMP
    19. 19. 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
    20. 20. EMP
    21. 21. EMF EMP
    22. 22. EMF EMFT EMP
    23. 23. EMF EMFT M2M EMP
    24. 24. EMF EMFT M2M EMP Amalgam
    25. 25. EMF EMFT M2M EMP Amalgam TMF
    26. 26. EMF EMFT M2M EMP Amalgam TMF GMF
    27. 27. EMF EMFT M2M EMP Amalgam M2T TMF GMF
    28. 28. EMF EMFT M2M EMP GMT Amalgam M2T TMF GMF
    29. 29. EMF EMFT MDT M2M EMP GMT Amalgam M2T TMF GMF
    30. 30. EMF
    31. 31. EMF Core EMF
    32. 32. Validation EMF Core EMF
    33. 33. Validation EMF Core Model Transaction EMF
    34. 34. Validation EMF Core Model Transaction EMF Model Query
    35. 35. Validation EMF Core Model Transaction EMF Teneo Model Query
    36. 36. Validation EMF Core Model Transaction EMF Teneo Model CDO Query
    37. 37. Validation EMF Core Model Transaction EMF Teneo Model CDO Query Net4j
    38. 38. Validation EMF Core Model Transaction SDO EMF Teneo Model CDO Query Net4j
    39. 39. EMFT
    40. 40. EMFT Search
    41. 41. EMFatic EMFT Search
    42. 42. EMFatic EMFT EMF4Net Search
    43. 43. EMFatic EMFT EMF4Net Mint Search
    44. 44. Compare EMFatic EMFT EMF4Net Mint Search
    45. 45. Ecore Tools Compare EMFatic EMFT EMF4Net Mint Search
    46. 46. Ecore Tools Compare EMFatic EMFT EMF4Net Mint MWE Search
    47. 47. JCR Ecore Tools Management Compare EMFatic EMFT EMF4Net Mint MWE Search
    48. 48. JCR Ecore Tools Management Compare EMFatic EMFT EMF4Net Temporarility Mint MWE Search
    49. 49. MDT
    50. 50. UML2 MDT
    51. 51. UML2 MDT OCL
    52. 52. UML2 MDT OCL UML2 Tools
    53. 53. UML2 Papyrus MDT OCL UML2 Tools
    54. 54. UML2 BPMN2 Papyrus MDT OCL UML2 Tools
    55. 55. UML2 BPMN2 Papyrus MST MDT OCL UML2 Tools
    56. 56. UML2 IMM BPMN2 Papyrus MST MDT OCL UML2 Tools
    57. 57. UML2 IMM BPMN2 Papyrus MST MDT OCL UML2 Tools XSD
    58. 58. UML2 IMM BPMN2 Papyrus MST MDT OCL UML2 Tools XSD SBVR
    59. 59. M2T
    60. 60. Acceleo M2T
    61. 61. Acceleo JET M2T
    62. 62. Acceleo JET M2T Xpand
    63. 63. M2M
    64. 64. QVTD M2M
    65. 65. QVTD M2M QVTO
    66. 66. QVTD ATL M2M QVTO
    67. 67. TMF
    68. 68. Xtext TMF
    69. 69. GMF Amalgam
    70. 70. GMT
    71. 71. AM3 GMT
    72. 72. AMW AM3 GMT
    73. 73. AMW Epsilon AM3 GMT
    74. 74. AMW Epsilon AM3 GMT GEMS
    75. 75. AMW Epsilon AM3 GMT GEMS MoDisco
    76. 76. AMW Epsilon AM3 GMT GEMS MoDisco MOFScript
    77. 77. AMW Epsilon AM3 GMT GEMS MoDisco OMCW MOFScript
    78. 78. AMW Epsilon AM3 GMT TCS GEMS MoDisco OMCW MOFScript
    79. 79. UMLX AMW Epsilon AM3 GMT TCS GEMS MoDisco OMCW MOFScript
    80. 80. UMLX AMW VIATRA2 Epsilon AM3 GMT TCS GEMS MoDisco OMCW MOFScript
    81. 81. Use Cases for Modeling
    82. 82. Using Modeling Standards
    83. 83. XMI SysML UML OMG MTL Standards MDA OCL BPMN
    84. 84. Papyrus EMF Core XMI SysML UML2 UML UML2 Tools OMG Acceleo IMM MTL MST Standards QVTD SBVR MDA OCL OCL QVTO BPMN BPMN2
    85. 85. Domain Modeling
    86. 86. Model Your Business Objects in Ecore
    87. 87. Model Your Business Objects in Ecore EMF Core
    88. 88. Domain Models • Ecore -> Java code generator • Referential integrity • Change notification • Small footprint • Efficient reflection • Command framework • Change recorder
    89. 89. Domain Models • JET Ecore -> Java code generator • Referential integrity • Change notification • Small footprint • Efficient reflection • Command framework • Change recorder
    90. 90. Domain Models • JET Ecore -> Java code generator • Referential integrity • Change notification • Small footprint EMF Core • Efficient reflection • Command framework • Change recorder
    91. 91. Generated IDE
    92. 92. Generated IDE JET
    93. 93. Generated IDE JET EMF Core
    94. 94. Persistence • RESTful • XMI / XML serialization • Database persistence • Distributed shared models
    95. 95. Persistence • RESTful EMF Core • XMI / XML serialization • Database persistence • Distributed shared models
    96. 96. Persistence • RESTful EMF Core • XMI / XML serialization • Database persistence Teneo • Distributed shared models
    97. 97. Persistence • RESTful EMF Core • XMI / XML serialization • Database persistence Teneo • Distributed shared models CDO
    98. 98. 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>
    99. 99. UI Extensions • Search • Development support • Diff / Merge • Ecore editing
    100. 100. UI Extensions • Search Search • Development support • Diff / Merge • Ecore editing
    101. 101. UI Extensions • Search Search • Development support Mint • Diff / Merge • Ecore editing
    102. 102. UI Extensions • Search Search • Development support Mint • Diff / Merge Compare • Ecore editing
    103. 103. UI Extensions • Search Search • Development support Mint • Diff / Merge Compare • Ecore editing EMFatic
    104. 104. UI Extensions • Search Search • Development support Mint • Diff / Merge Compare • Ecore editing EMFatic Ecore Tools
    105. 105. Extensions • Transactions • Validation • Query • Target platforms
    106. 106. Extensions EMF Transaction • Transactions • Validation • Query • Target platforms
    107. 107. Extensions EMF Transaction • Transactions Validation • Validation • Query • Target platforms
    108. 108. Extensions EMF Transaction • Transactions Validation • Validation • Query EMF Query • Target platforms
    109. 109. Extensions EMF Transaction • Transactions Validation • Validation • Query EMF Query • Target platforms SDO
    110. 110. Extensions EMF Transaction • Transactions Validation • Validation • Query EMF Query • Target platforms SDO EMF4Net
    111. 111. Domain-Specific Languages
    112. 112. Why DSLs?
    113. 113. @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; } }
    114. 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; } 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; } }
    115. 115. DSL Overview Design the Language Implement the Tooling Create Models Execute Models
    116. 116. DSL: Language Definition • Abstract Syntax • Concrete Syntax • Textual • Graphical • Structural
    117. 117. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual • Graphical • Structural
    118. 118. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual Xtext • Graphical • Structural
    119. 119. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual Xtext TCS • Graphical • Structural
    120. 120. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual Xtext TCS • Graphical GMF • Structural
    121. 121. DSL: Language Definition • Abstract Syntax EMF Core • Concrete Syntax • Textual Xtext TCS • Graphical GMF • Structural EMF Core
    122. 122. DSL: Modeling IDE • Model Editors • Structral • Textual • Graphical • Query
    123. 123. DSL: Modeling IDE • Model Editors • Structral EMF Core • Textual • Graphical • Query
    124. 124. DSL: Modeling IDE • Model Editors • Structral EMF Core • Textual Xtext • Graphical • Query
    125. 125. DSL: Modeling IDE • Model Editors • Structral EMF Core TCS • Textual Xtext • Graphical • Query
    126. 126. DSL: Modeling IDE • Model Editors • Structral EMF Core TCS • Textual Xtext • Graphical GMF • Query
    127. 127. DSL: Modeling IDE • Model Editors • Structral EMF Core TCS • Textual Xtext • Graphical GMF • Query EMF Query
    128. 128. DSL: Execution • Validation • Code generation • Interpretation
    129. 129. DSL: Execution Validation • Validation • Code generation • Interpretation
    130. 130. DSL: Execution Validation • Validation • Code generation JET • Interpretation
    131. 131. DSL: Execution Validation • Validation Acceleo • Code generation JET • Interpretation
    132. 132. DSL: Execution Validation • Validation Acceleo • Code generation Xpand JET • Interpretation
    133. 133. DSL: Execution Validation • Validation Acceleo • Code generation Xpand JET • Interpretation EMF Core
    134. 134. DSL: Transformation • Model import • Model-to-model transformation • Tool orchestration
    135. 135. DSL: Transformation XSD • Model import • Model-to-model transformation • Tool orchestration
    136. 136. DSL: Transformation XSD • Model import ATL • Model-to-model transformation • Tool orchestration
    137. 137. DSL: Transformation XSD • Model import ATL Xpand • Model-to-model transformation • Tool orchestration
    138. 138. DSL: Transformation XSD • Model import ATL Xpand • Model-to-model transformation QVTD • Tool orchestration
    139. 139. DSL: Transformation XSD • Model import ATL Xpand • Model-to-model transformation QVTD • QVTO Tool orchestration
    140. 140. DSL: Transformation XSD • Model import ATL Xpand • Model-to-model transformation QVTD • QVTO Tool orchestration MWE
    141. 141. An Example for DSLs
    142. 142. An Example for DSLs
    143. 143. eclipse Visit at modeling PROJECT www.eclipse.org/modeling

    ×