• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Ui Modeling In Action With PMF, e4(XWT) And EGF
 

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

on

  • 3,846 views

 

Statistics

Views

Total Views
3,846
Views on SlideShare
3,653
Embed Views
193

Actions

Likes
2
Downloads
95
Comments
0

6 Embeds 193

http://www.eclipsecon.org 156
http://www.slideshare.net 33
http://webcache.googleusercontent.com 1
http://translate.googleusercontent.com 1
http://eclipsecon.org 1
https://www.eclipsecon.org 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Ui Modeling In Action With PMF, e4(XWT) And EGF Presentation Transcript

  • UI modeling in Action with PMF, e4 and EGF Yves Yang – Soyatec Benoît Langlois – Thales/EPM Thomas Guiu - Soyatec
  • Agenda
    • Introduction
    • PMF
    • EGF
    • PMF to XWT with EGF
    • Conclusion
  • Why UI modeling in Software Engineering?
    • Current Practice
      • Writing UI (User Interface) code for a target platform
      • Ex: JFace, SWT code
    • Main Drawbacks
      • Time-consuming activity
      • Scalability issue
      • Target platform-dependent
        • Maintenance issue
        • UI Technology is changing quickly
  • Why UI modeling in Software Engineering?
    • Paradigm shift
      • Modeling UI in order to abstract UI description:
        • Creating a platform-independent UI model
        • Next, targeting platform-specific UI code
    • This implies:
      • A platform-independent UI metamodel  PMF
      • A generation engine to target a UI platform  EGF
  • 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 Purcharse order UI
  • Agenda
    • Introduction
    • PMF
    • EGF
    • PMF to XWT with EGF
    • Conclusion
  • Purpose
      • PMF is a high Extensible Exterprise Modeling Solution for data presentation
  • Purpose
    • Abstraction
      • Data Model
      • UI Model
      • Data Binding technology
      • Target programming language
    • Extensibility & Customization
      • UI Model
      • Model Transformation engine
      • Integration with other tools such as DSL
    • Top-down approach
    PIM PSM
  • Purpose
    • Runtime mode
      • Interactive
        • Standalone
        • Embedded in other tools
      • Automating
        • Batch for integration in build system
    • Users
      • Framework developer
      • Application designer
  • Benefices
      • Make development of UI’s easier
      • More productive
      • Separate roles in UI development to enable specialization and customization
      • Integrate UI development with other Eclipse tool stack
  • Architecture
  • Agenda
    • Introduction
    • PMF
    • EGF
    • PMF to XWT with EGF
    • Conclusion
  • What is EGF?
      • EGF (Eclipse Generation Factories) is an Eclipse open source project under the EMFT project .
      • Purpose : provide a model-based generation framework
      • Operational objectives :
        • Supporting complex, large-scale and customizable generations
        • Promoting the constitution of generation portfolios in order to capitalize on generation solutions
        • Providing an extensible generation structure
  • 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
  • Generation units of EGF
  • Generation units of EGF works with uses Factory Component  Composite generation unit  Location to declare: - Generation data - Generation orchestration
  • 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
  • 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
  • Generation units of EGF works with uses Pattern Factory Component Systematic behavior
    • Notation to define systematic behavior applicable onto a resource
    • Declarative style
    • The behavior conforms to a language (e.g., Jet, Java)
  • Generation units of EGF works with Portfolio uses Capitalization Implementation Task (e.g., Java) Pattern Factory Component Systematic behavior Today 0 1 0 1
  • 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 Implementation
  • Activity and Production Plan Activity Factory Component Task invocation * Contract Container Contract * 0-1 Production Plan 0-1 Activity Invocation * Invocation Contract * contract
  • 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
  • EGF Structure
    • Storage
      • In FCore file: factory components + tasks
    • Execution
      • Dynamic
      • Resolution of platform / workspace environment
      • Structure check
    • Extensibility
      • EGF can be enriched by the principle of model extension
        • Discovery at runtime
      • Java Task and production plan are examples of implementation and workflow today
  • Pattern – Definition
    • Definition:
      • A pattern is a solution to a recurrent generation problem
    • Purpose
      • Applying a systematic behavior onto a resource
      • Clearly dissociating the specification (external view) from the implementation (internal view) of the behavior
      • Reusing and customizing a pattern in different contexts
      • Supporting multilingual patterns in order to apply the best programming language to a situation, and then supporting multi-paradigm (M2T, M2M, T2M, T2T)
  • EGF PATTERN
  • 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
  • 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
  • Agenda
    • Introduction
    • PMF
    • EGF
    • PMF to XWT with EGF
    • Conclusion
  • « 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 Designer UI User
  • « 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 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
  • 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
    • Objective:
      • Producing the « MANIFEST.MF » file
    • Input:
      • PMF model
      • Pattern parameter: Application node of the PMF model
    • Means:
      • Using a Jet-based Pattern for « Model-to-text » transformation
      • Using a reporter for persistence of the pattern result
  • « 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
    • Design
      • PMF: Eclipse Galileo, 3.5.x
      • EGF: Eclipse Galileo, > 3.5.1
    • Runtime
      • XWT: e4/Helios
  • Agenda
    • Introduction
    • PMF
    • EGF
    • PMF to XWT with EGF
    • Conclusion
  • Conclusion
    • Regarding the PMF-to-(e4)XWT generation with EGF
      • Maturity level: Prototype, but promising
      • Not covered: events, multi-forms
      • Interest to have an integrated generation tool with EGF
    • Improvement #1
      • 1. Code-oriented to model-based paradigm shift,
      • 2. Engineering-driven activities: producing UI, UI tests, doc…
      • Could be applied to other engineering activities, such as diagram
    • Improvement #2
      • Interest of off-the-shelf factories
      • Future work: Pattern contribution and customization for flexible generations
  • 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 Component
  • 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
  • Demo #1 EGF – EMF Wrapper Library.fcore file contains Factory component contracts Factory component reference Factory Component usage Pattern viewpoint Task invocation orchestration
  • 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 nature Query Constraint 0..1 preCondition
    • Definition:
    • query/parameter: query for object selection onto a resource
    • nature: language used for the pattern implementation
    • preCondition/Constraint: constraint to be verified before application
    • variable/Type: local variable declaration for the pattern implementation
  • EGF – Pattern – External View EClassifierGen EClass Gen EStructural Feature Gen EClass delegation Jet Example
    • The EClassGen pattern is applied on a Ecore resource
    • Objects selected on the ecore resource: EClass instances
    • It specializes the EClassifierGen pattern
    • It applies a model-to-text generation in Jet
    • Its also applies a generation on its features by delegation to the EStructuralFeatureGen pattern
    ECore Resource element nature Query
  • 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