UI modeling in Action   with PMF, e4 and EGF Yves Yang – Soyatec Benoît Langlois – Thales/EPM Thomas Guiu - Soyatec
Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><u...
Why UI modeling in Software Engineering? <ul><li>Current Practice </li></ul><ul><ul><li>Writing UI (User Interface) code f...
Why UI modeling in Software Engineering? <ul><li>Paradigm shift </li></ul><ul><ul><li>Modeling UI in order to abstract UI ...
From PMF to UI Code conforms to conforms to conforms to M1: Model level M2: Metamodel level
From PMF to UI Code conforms to conforms to conforms to M1: Model level M2: Metamodel level XWT Code of purcharse order UI...
Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><u...
Purpose <ul><ul><li>PMF is a high Extensible Exterprise Modeling Solution for data presentation </li></ul></ul>
Purpose <ul><li>Abstraction </li></ul><ul><ul><li>Data Model </li></ul></ul><ul><ul><li>UI Model </li></ul></ul><ul><ul><l...
Purpose <ul><li>Runtime mode </li></ul><ul><ul><li>Interactive </li></ul></ul><ul><ul><ul><li>Standalone </li></ul></ul></...
Benefices <ul><ul><li>Make development of UI’s easier </li></ul></ul><ul><ul><li>More productive </li></ul></ul><ul><ul><l...
Architecture
Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><u...
What is EGF? <ul><ul><li>EGF (Eclipse Generation Factories) is an Eclipse open source project under the  EMFT project . </...
Generative Software What target-platform? Generation reusability? Generation orchestration? Generation data, which ones, w...
Generation units of EGF
Generation units of EGF works with uses Factory Component    Composite generation unit    Location to declare: - Generat...
Generation units of EGF works with Portfolio uses Capitalization Factory Component    Consistent set of Factory Component...
Generation units of EGF works with uses Implementation Task (e.g., Java) Factory Component    The smallest generation uni...
Generation units of EGF works with uses Pattern Factory Component Systematic behavior <ul><li>Notation to define systemati...
Generation units of EGF works with Portfolio uses Capitalization Implementation Task (e.g., Java) Pattern Factory Componen...
EGF EGF Structure
Activity Hierarchy Activity Factory Component Task […] Activity Type
Activity Hierarchy Activity Factory Component Task Java Task [Language] Task […] Java Class 1 implementation Activity Type...
Activity and Production Plan Activity Factory Component Task invocation * Contract Container Contract * 0-1 Production Pla...
Activity and Production Plan Activity Factory Component Task invocation * Contract Container Contract * 0-1 Production Pla...
EGF Structure <ul><li>Storage </li></ul><ul><ul><li>In FCore file: factory components + tasks </li></ul></ul><ul><li>Execu...
Pattern – Definition <ul><li>Definition: </li></ul><ul><ul><li>A pattern is a solution to a recurrent generation problem <...
EGF PATTERN
Pattern Relationships Pattern inheritance Pattern delegation Pattern injection Pattern callback Pattern extension extends ...
Pattern execution Big Picture Result Final Result Pattern Execution onto a resource Resource, e.g. Model Pattern Pattern P...
Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><u...
« PMF to (e4)XWT » Generation xwt file runtime
« PMF to (e4)XWT » Generation realizes Provides: - PMF model - data model .ecore uses UI Provides: - domain data UI Design...
« PMF to (e4)XWT » Generation realizes portfolio PMF/XWT Designer/ Developer
Generation description Creation of the application description files; e4-specific    Declaration of menus, commands, part...
Project Creation & Configuration Files
Project Creation & Configuration Files PMF model Create Project Java Pattern
Project Creation & Configuration Files PMF model Jet Pattern
« Create Manifest » Pattern explained <ul><li>Objective: </li></ul><ul><ul><li>Producing the « MANIFEST.MF » file </li></u...
« Create Manifest » Pattern explained Create Manifest Base Inheritance
« Create Manifest » Pattern explained Create Manifest Base Application parameter Inheritance
« Create Manifest » Pattern explained applied orchestration Polymorphism
« Create Manifest » Pattern explained applied orchestration Polymorphism
Parts Creation – XWT Files
Parts Creation – XWT Files Forms / XWT file mapping
Parts Creation – XWT Files Forms / XWT file mapping Model-driven pattern strategy used
Parts Creation – XWT Files Forms / XWT file mapping Form_xwt Jet Pattern 1
Parts Creation – XWT Files Forms / XWT file mapping Collection Jet Pattern 2 1
Parts Creation – XWT Files Forms / XWT file mapping DataField Jet Pattern 2 1 3
Parts Creation – XWT Files Forms / XWT file mapping Reference Jet Pattern 2 1 3 4
Summary Engineering activity Multi-target
Summary PMF-to-XWT Portfolio based on customization Eclipse Component Off-The-Shelf solution Variants Generation Portfolio
Development Environment <ul><li>Design </li></ul><ul><ul><li>PMF: Eclipse Galileo, 3.5.x </li></ul></ul><ul><ul><li>EGF: E...
Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><u...
Conclusion <ul><li>Regarding the PMF-to-(e4)XWT generation with EGF </li></ul><ul><ul><li>Maturity level: Prototype, but p...
UI modeling in Action Thank You! EGF is supported by the European Project OPEES
UI modeling in Action Additionnal Slides
Demo #1 EGF – EMF Wrapper Library.fcore file contains Task and Factory component invocation orchestration Main Factory Com...
Demo #1 EGF – EMF Wrapper Library.fcore file contains Task reference Contract value for a contract (= task parameter) impl...
Demo #1 EGF – EMF Wrapper Library.fcore file contains Factory component contracts Factory component reference Factory Comp...
In/Output relationships Quantity’s Properties Amount’s Properties
EGF – Pattern – External View Super-Pattern Pattern Pattern Type delegation Language Type 0..n variable 0..n parameter 1 n...
EGF – Pattern – External View EClassifierGen EClass Gen EStructural Feature Gen EClass delegation Jet Example <ul><li>The ...
EGF – Pattern – Implementation View Methods which implement the pattern Order to execute the methods header: typically use...
Upcoming SlideShare
Loading in...5
×

Ui Modeling In Action With PMF, e4(XWT) And EGF

3,690

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,690
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
99
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • 24/03/10 Thales Corporate Services
  • 24/03/10 Thales Corporate Services
  • 24/03/10 Thales Corporate Services
  • 24/03/10 Thales Corporate Services
  • 24/03/10 Thales Corporate Services
  • 24/03/10 Thales Corporate Services
  • Ui Modeling In Action With PMF, e4(XWT) And EGF

    1. 1. UI modeling in Action with PMF, e4 and EGF Yves Yang – Soyatec Benoît Langlois – Thales/EPM Thomas Guiu - Soyatec
    2. 2. Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><ul><li>Conclusion </li></ul>
    3. 3. Why UI modeling in Software Engineering? <ul><li>Current Practice </li></ul><ul><ul><li>Writing UI (User Interface) code for a target platform </li></ul></ul><ul><ul><li>Ex: JFace, SWT code </li></ul></ul><ul><li>Main Drawbacks </li></ul><ul><ul><li>Time-consuming activity </li></ul></ul><ul><ul><li>Scalability issue </li></ul></ul><ul><ul><li>Target platform-dependent </li></ul></ul><ul><ul><ul><li>Maintenance issue </li></ul></ul></ul><ul><ul><ul><li>UI Technology is changing quickly </li></ul></ul></ul>
    4. 4. Why UI modeling in Software Engineering? <ul><li>Paradigm shift </li></ul><ul><ul><li>Modeling UI in order to abstract UI description: </li></ul></ul><ul><ul><ul><li>Creating a platform-independent UI model </li></ul></ul></ul><ul><ul><ul><li>Next, targeting platform-specific UI code </li></ul></ul></ul><ul><li>This implies: </li></ul><ul><ul><li>A platform-independent UI metamodel  PMF </li></ul></ul><ul><ul><li>A generation engine to target a UI platform  EGF </li></ul></ul>
    5. 5. From PMF to UI Code conforms to conforms to conforms to M1: Model level M2: Metamodel level
    6. 6. From PMF to UI Code conforms to conforms to conforms to M1: Model level M2: Metamodel level XWT Code of purcharse order UI Purcharse order UI
    7. 7. Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><ul><li>Conclusion </li></ul>
    8. 8. Purpose <ul><ul><li>PMF is a high Extensible Exterprise Modeling Solution for data presentation </li></ul></ul>
    9. 9. Purpose <ul><li>Abstraction </li></ul><ul><ul><li>Data Model </li></ul></ul><ul><ul><li>UI Model </li></ul></ul><ul><ul><li>Data Binding technology </li></ul></ul><ul><ul><li>Target programming language </li></ul></ul><ul><li>Extensibility & Customization </li></ul><ul><ul><li>UI Model </li></ul></ul><ul><ul><li>Model Transformation engine </li></ul></ul><ul><ul><li>Integration with other tools such as DSL </li></ul></ul><ul><li>Top-down approach </li></ul>PIM PSM
    10. 10. Purpose <ul><li>Runtime mode </li></ul><ul><ul><li>Interactive </li></ul></ul><ul><ul><ul><li>Standalone </li></ul></ul></ul><ul><ul><ul><li>Embedded in other tools </li></ul></ul></ul><ul><ul><li>Automating </li></ul></ul><ul><ul><ul><li>Batch for integration in build system </li></ul></ul></ul><ul><li>Users </li></ul><ul><ul><li>Framework developer </li></ul></ul><ul><ul><li>Application designer </li></ul></ul>
    11. 11. Benefices <ul><ul><li>Make development of UI’s easier </li></ul></ul><ul><ul><li>More productive </li></ul></ul><ul><ul><li>Separate roles in UI development to enable specialization and customization </li></ul></ul><ul><ul><li>Integrate UI development with other Eclipse tool stack </li></ul></ul>
    12. 12. Architecture
    13. 13. Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><ul><li>Conclusion </li></ul>
    14. 14. What is EGF? <ul><ul><li>EGF (Eclipse Generation Factories) is an Eclipse open source project under the EMFT project . </li></ul></ul><ul><ul><li>Purpose : provide a model-based generation framework </li></ul></ul><ul><ul><li>Operational objectives : </li></ul></ul><ul><ul><ul><li>Supporting complex, large-scale and customizable generations </li></ul></ul></ul><ul><ul><ul><li>Promoting the constitution of generation portfolios in order to capitalize on generation solutions </li></ul></ul></ul><ul><ul><ul><li>Providing an extensible generation structure </li></ul></ul></ul>
    15. 15. Generative Software What target-platform? Generation reusability? Generation orchestration? Generation data, which ones, where? One-click generation solution? Update strategy of the produced artifacts? Combining [model|text|dsl]-to-[Model|text|dsl]? How to develop & test? Generation customization? Generation scope? Best practices, guidance? Generation workflow? Executability? Distribution? Merging Generation? Performance, scalability? Variability? Product lines? Integration of new language? Multiplicity of languages and engines? Dealing with generation complexity Issue An integrated and extensible software factory framework Proposed solution Software Industrialization Purpose
    16. 16. Generation units of EGF
    17. 17. Generation units of EGF works with uses Factory Component  Composite generation unit  Location to declare: - Generation data - Generation orchestration
    18. 18. Generation units of EGF works with Portfolio uses Capitalization Factory Component  Consistent set of Factory Components  Meets the need to have off-the-shelf generation solutions
    19. 19. Generation units of EGF works with uses Implementation Task (e.g., Java) Factory Component  The smallest generation unit  Reference to executable code in a given language 0 1 0 1
    20. 20. Generation units of EGF works with uses Pattern Factory Component Systematic behavior <ul><li>Notation to define systematic behavior applicable onto a resource </li></ul><ul><li>Declarative style </li></ul><ul><li>The behavior conforms to a language (e.g., Jet, Java) </li></ul>
    21. 21. Generation units of EGF works with Portfolio uses Capitalization Implementation Task (e.g., Java) Pattern Factory Component Systematic behavior Today 0 1 0 1
    22. 22. EGF EGF Structure
    23. 23. Activity Hierarchy Activity Factory Component Task […] Activity Type
    24. 24. Activity Hierarchy Activity Factory Component Task Java Task [Language] Task […] Java Class 1 implementation Activity Type Implementation
    25. 25. Activity and Production Plan Activity Factory Component Task invocation * Contract Container Contract * 0-1 Production Plan 0-1 Activity Invocation * Invocation Contract * contract
    26. 26. Activity and Production Plan Activity Factory Component Task invocation * Contract Container Contract * 0-1 Production Plan 0-1 Activity Invocation * Contract IN Contract OUT Contract IN/OUT Contract
    27. 27. EGF Structure <ul><li>Storage </li></ul><ul><ul><li>In FCore file: factory components + tasks </li></ul></ul><ul><li>Execution </li></ul><ul><ul><li>Dynamic </li></ul></ul><ul><ul><li>Resolution of platform / workspace environment </li></ul></ul><ul><ul><li>Structure check </li></ul></ul><ul><li>Extensibility </li></ul><ul><ul><li>EGF can be enriched by the principle of model extension </li></ul></ul><ul><ul><ul><li>Discovery at runtime </li></ul></ul></ul><ul><ul><li>Java Task and production plan are examples of implementation and workflow today </li></ul></ul>
    28. 28. Pattern – Definition <ul><li>Definition: </li></ul><ul><ul><li>A pattern is a solution to a recurrent generation problem </li></ul></ul><ul><li>Purpose </li></ul><ul><ul><li>Applying a systematic behavior onto a resource </li></ul></ul><ul><ul><li>Clearly dissociating the specification (external view) from the implementation (internal view) of the behavior </li></ul></ul><ul><ul><li>Reusing and customizing a pattern in different contexts </li></ul></ul><ul><ul><li>Supporting multilingual patterns in order to apply the best programming language to a situation, and then supporting multi-paradigm (M2T, M2M, T2M, T2T) </li></ul></ul>
    29. 29. EGF PATTERN
    30. 30. Pattern Relationships Pattern inheritance Pattern delegation Pattern injection Pattern callback Pattern extension extends (not available yet) The Pattern orchestration specifies the pattern relationships Possibility to combine different pattern relationships in the same orchestration Multilingual call
    31. 31. Pattern execution Big Picture Result Final Result Pattern Execution onto a resource Resource, e.g. Model Pattern Pattern Pattern Pattern Execution Process Pattern execution engines, e.g. for Jet, Java Optional - Pattern reporter for final form Pattern Strategy Patterns selection Way to apply patterns
    32. 32. Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><ul><li>Conclusion </li></ul>
    33. 33. « PMF to (e4)XWT » Generation xwt file runtime
    34. 34. « PMF to (e4)XWT » Generation realizes Provides: - PMF model - data model .ecore uses UI Provides: - domain data UI Designer UI User
    35. 35. « PMF to (e4)XWT » Generation realizes portfolio PMF/XWT Designer/ Developer
    36. 36. Generation description Creation of the application description files; e4-specific  Declaration of menus, commands, part layouts 1 2 3 4 Creation of the Java part of the XWT components; XWT-specific Creation of XWT files; XWT-specific  Description of the components, supported events Creation of the project 2 3 4 1
    37. 37. Project Creation & Configuration Files
    38. 38. Project Creation & Configuration Files PMF model Create Project Java Pattern
    39. 39. Project Creation & Configuration Files PMF model Jet Pattern
    40. 40. « Create Manifest » Pattern explained <ul><li>Objective: </li></ul><ul><ul><li>Producing the « MANIFEST.MF » file </li></ul></ul><ul><li>Input: </li></ul><ul><ul><li>PMF model </li></ul></ul><ul><ul><li>Pattern parameter: Application node of the PMF model </li></ul></ul><ul><li>Means: </li></ul><ul><ul><li>Using a Jet-based Pattern for « Model-to-text » transformation </li></ul></ul><ul><ul><li>Using a reporter for persistence of the pattern result </li></ul></ul>
    41. 41. « Create Manifest » Pattern explained Create Manifest Base Inheritance
    42. 42. « Create Manifest » Pattern explained Create Manifest Base Application parameter Inheritance
    43. 43. « Create Manifest » Pattern explained applied orchestration Polymorphism
    44. 44. « Create Manifest » Pattern explained applied orchestration Polymorphism
    45. 45. Parts Creation – XWT Files
    46. 46. Parts Creation – XWT Files Forms / XWT file mapping
    47. 47. Parts Creation – XWT Files Forms / XWT file mapping Model-driven pattern strategy used
    48. 48. Parts Creation – XWT Files Forms / XWT file mapping Form_xwt Jet Pattern 1
    49. 49. Parts Creation – XWT Files Forms / XWT file mapping Collection Jet Pattern 2 1
    50. 50. Parts Creation – XWT Files Forms / XWT file mapping DataField Jet Pattern 2 1 3
    51. 51. Parts Creation – XWT Files Forms / XWT file mapping Reference Jet Pattern 2 1 3 4
    52. 52. Summary Engineering activity Multi-target
    53. 53. Summary PMF-to-XWT Portfolio based on customization Eclipse Component Off-The-Shelf solution Variants Generation Portfolio
    54. 54. Development Environment <ul><li>Design </li></ul><ul><ul><li>PMF: Eclipse Galileo, 3.5.x </li></ul></ul><ul><ul><li>EGF: Eclipse Galileo, > 3.5.1 </li></ul></ul><ul><li>Runtime </li></ul><ul><ul><li>XWT: e4/Helios </li></ul></ul>
    55. 55. Agenda <ul><li>Introduction </li></ul><ul><li>PMF </li></ul><ul><li>EGF </li></ul><ul><li>PMF to XWT with EGF </li></ul><ul><li>Conclusion </li></ul>
    56. 56. Conclusion <ul><li>Regarding the PMF-to-(e4)XWT generation with EGF </li></ul><ul><ul><li>Maturity level: Prototype, but promising </li></ul></ul><ul><ul><li>Not covered: events, multi-forms </li></ul></ul><ul><ul><li>Interest to have an integrated generation tool with EGF </li></ul></ul><ul><li>Improvement #1 </li></ul><ul><ul><li>1. Code-oriented to model-based paradigm shift, </li></ul></ul><ul><ul><li>2. Engineering-driven activities: producing UI, UI tests, doc… </li></ul></ul><ul><ul><li>Could be applied to other engineering activities, such as diagram </li></ul></ul><ul><li>Improvement #2 </li></ul><ul><ul><li>Interest of off-the-shelf factories </li></ul></ul><ul><ul><li>Future work: Pattern contribution and customization for flexible generations </li></ul></ul>
    57. 57. UI modeling in Action Thank You! EGF is supported by the European Project OPEES
    58. 58. UI modeling in Action Additionnal Slides
    59. 59. Demo #1 EGF – EMF Wrapper Library.fcore file contains Task and Factory component invocation orchestration Main Factory Component
    60. 60. Demo #1 EGF – EMF Wrapper Library.fcore file contains Task reference Contract value for a contract (= task parameter) implementation Task Java Class Java Task usage
    61. 61. Demo #1 EGF – EMF Wrapper Library.fcore file contains Factory component contracts Factory component reference Factory Component usage Pattern viewpoint Task invocation orchestration
    62. 62. In/Output relationships Quantity’s Properties Amount’s Properties
    63. 63. EGF – Pattern – External View Super-Pattern Pattern Pattern Type delegation Language Type 0..n variable 0..n parameter 1 nature Query Constraint 0..1 preCondition <ul><li>Definition: </li></ul><ul><li>query/parameter: query for object selection onto a resource </li></ul><ul><li>nature: language used for the pattern implementation </li></ul><ul><li>preCondition/Constraint: constraint to be verified before application </li></ul><ul><li>variable/Type: local variable declaration for the pattern implementation </li></ul>
    64. 64. EGF – Pattern – External View EClassifierGen EClass Gen EStructural Feature Gen EClass delegation Jet Example <ul><li>The EClassGen pattern is applied on a Ecore resource </li></ul><ul><li>Objects selected on the ecore resource: EClass instances </li></ul><ul><li>It specializes the EClassifierGen pattern </li></ul><ul><li>It applies a model-to-text generation in Jet </li></ul><ul><li>Its also applies a generation on its features by delegation to the EStructuralFeatureGen pattern </li></ul>ECore Resource element nature Query
    65. 65. EGF – Pattern – Implementation View Methods which implement the pattern Order to execute the methods header: typically used for the Jet header init: method for pattern initialization (e.g., variable initialization) A method editor allows to edit pattern methods
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×