×

Status message

This proposal has been approved and the Eclipse PMF project has been created.

PMF

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Background: 

The Graphical User Interface (GUI) is the visible part of the software. It really consists of the gate through which business features are made available and it reflects the application quality. Designing the visual composition and temporal behavior of GUI is an important part of software application programming. Its goal is to enhance the efficiency and ease of use for the underlying logical design. Typically, the user interacts with information by manipulating visual widgets that allow for interactions appropriate to the kind of data they hold. The widgets of a well-designed interface are selected to support the actions necessary to achieve the goals of the user.

Model-Driven Engineering is a modern, standard and industry software engineering. It refers to a range of development approaches that are based on the use of software modeling as a primary form of expression. Sometimes models are constructed to a certain level of detail, and then code is written by hand in a separate step. Sometimes complete models are built including executable actions. Model-driven architecture supports model-driven engineering of software systems. MDA provides a set of guidelines for structuring specifications expressed as models. The MDA approach defines system functionality using a platform-independent model (PIM) using an appropriate domain-specific language (DSL).

Obviously, MDE in GUI needs an appropriate framework to simplify the presentation generation. It is in fact a critical component in scalable enterprise data presentation applications such as ERP and BPMS in Manufacturing, Supply Chain, Financials, Customer Relationship Management (CRM), Human Resources, Warehouse Management and Decision Support System. It is the purpose of this project named as Presentation Modeling Framework (PMF in abbreviation). 

From users' perspective, the UI presentation modeling should be composed of following steps using PMF:

  • Business modeling
  • Importation of the business model and initialization of PMF structure
  • High level UI presentation modeling in PMF editor
  • Model transformation from PMF model to displaying technology execution code
Scope: 

PMF is a high extensible modeling solution of UI based on the approach of code generation. Precisely, it is just a development tool, not a runtime UI component. Therefore, it should be integrated with other system modeling solution such as Papyrus, Sirus.   

Description: 

PMF focuses in fact on high level presentation modeling concepts on GUI by ignoring the displaying technology artifacts such as appearence, layouts and data binding support. It allows each technology to make its specific connection with this framework. 

The purpose of this framework is to provide the basic functional concepts of user interaction in a PIM level UI modeling language. The language can be extended in two ways:

  • Higher level patterns can be defined using PMF itself and used as language extensions
  • Transformations/Generators from the PIM level model to specific UI technology platforms

Each displaying technology such as XUL, eclipse SWT/Jface/workbench, JSF, SWT, Swing, GWT, Ajax, Silverlight or others, can extend this framework to implement a specific generator for producing executable codes in Java or in declarative language.

Precisely, PMF provides following components:

  • An EMF-based foundation that covers the basic functional concepts of user interaction.
  • Examples of higher level patterns  like Master/Detail using the basic PMF concepts
  • Template engines' integration for code generation via EGF
  • Two integrations as demonstration samples are proposed (integrations with other UI solution will be explored after the first release):
    • Eclipse XWT for eclipse
    • Web application via Angular JS

This framework is not a specific UI framework for a displaying technology, neither a specific UI Markup language. It is a high level modeling framework to design the data presentation scenario/pattern and user interactions.

Why Here?: 

It is a unique high level UI modeling solution in MDE for different execution enviroments such as Eclipse RCP, Web application, mobile device, etc. It presents several advantages:

  • —Make UI development easier
  • More productive
  • —Multiple UI Platform supports
  • —Taking maximum of platform UI technology
  • —Separate roles in UI development to enable specialization and customization
  • —Easy to integrate other Modeling development tools  
Project Scheduling: 

We expect to pass the code IP review in September 2015.  

The first community technical release is scheduled early 2016 and the final release is targeted in June 2016.

Future Work: 

After the first release, the main focus will be the dynamic UI.

We plan to demonstrate this solution in EclipseCon France 2015 and then EclipseCon 2016 

People
Source Code
Initial Contribution: 

PMF was created early 2008. It was in standby during 2 years. And it got archived at summar 2012. In the same year, the development of PMF gets started in a recherche project Sys2Soft/CRYSTAL financed by France and Europe.

Thales, as a partner of these projects, provides their requirements. Soyatec has realized the PMF specification and developed the entire project. Therefore, Soyatec holds the copyright in EPL 1.0.  

At the current stage, PMF supports the following features:

  • Static UI
  • Properties View
  • Event handling by Java
  • Multiple Views for a data type

It is planned to integrate PMF in KitAlpha of Polarsys.

In summary, this new PMF inherits the same concept and architecture from the archived one. The difference can be highlighted as following:

  • Meta-model gets corrected, completed and extended
  • Integration with EGF for the code generation driving
  • Implementation of two code generators for two targets: Web Application in Angulas JS and Eclipse via XWT   
Source Repository Type: