Presentation Modeling Framework
PMF (Presentation Modeling Framework) is a proposed new open source project under Eclipse Modeling to provide a metamodel for UI modeling.
This component is in the Pre-Proposal Phase (as defined in the Eclipse Development Process) and this document is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment on and/or join in the development of the component. Please send all feedback to the eclipse.modeling newsgroup.
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.
From users' perspective, the UI presentation modeling should be composed of following steps:
- 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 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, e4, 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, Finder and Selector defined in and using the basic PMF concepts
- Template engines' integration for code generation
- Two integrations as demonstration samples are proposed (integrations with other UI solution will be explored as the project evolves):
- JFace UI platform
- e4's declarative UI and modeled workbench
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.
Relationship with Other Eclipse Projects/Components
PMF will use the most Eclipse tools to archive the UI Presentation modeling and code generation. The most important tool is the modeling transformation engine. Several engines are used in diffferent Eclipse projects:
- JET, a derivative of JavaServer Pages (JSP) initially developed as part of the Eclipse Modeling Framework (EMF), and currently an incubator project JET2 in the Eclipse Modeling Project.
- Xpand is a statically-typed template language with a lot of advanced features
Obvious integrations between PMF and other Eclipse components (EcoreTools, UMLTools, M2T, MTL, EMF, EMFT, VE, etc.) will be explored as the component evolves.
e4 has planed to develop a Declarative UI framework and modelled workbench based EMF. They are the perfect concrete UI solutions for testing and demonstrating the concepts of PMF.
Initial CommittersThe initial committers for this project would be:
- Yves Yang (Soyatec), proposed project co-lead
- Jim van Dam (HiPeS), proposed project co-lead
- Thomas Guiu (Soyatec), committer
- Olivier Moïses (Generic Concept), committer
Code ContributionsSoyatec and HiPeS will offer an initial code contribution. An implementation of the PMF metamodel consisting of Java packages within the org.eclipse.pmf.* namespace will be generated and customized using EMF.
Thus far, interest in this component has been expressed by:
- Embarcadero Technologies
- Lyria - group W4
- Oslo Software
- itemis AG
- Brane Corporation
- Tom Schindl
- Florian Lautenbacher
- Cameron Bateman
- Sabri Skhiri