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
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.
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.
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
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
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.
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