GMF Project Requirements |
![]() |
| Note: This document is deprecated but maintained for historical reference. The requirements listed here now have corresponding Bugzilla entries, which are linked next to each item below. To see a list of all GMF plan items in Bugzilla, use this link. | |
| Document Information | |
| This document describes the high-level requirements for the Graphical Modeling Framework (GMF) project and provides an indication of their relative priority and reference information. Additionally, this document contains a number of outstanding questions regarding the project which will require discussion on the mailing list and/or newsgroup. This is a living document maintained in the GMF CVS repository and will likely evolve into several documents or alternative format as the project progresses. |
|
|
Change History 0.1.0 24 April 2005 Richard Gronback Document creation, including requirements from the newsgroup, Dan Massey, and Artem Tikhomirov.0.2.0 09 May 2005 Richard Gronback Added requirements posted to newsgroup by Daniel Leroux. 0.3.0 09 May 2005 Richard Gronback Updated/Added requirements based on newsgroup post by Markus Voelter. 0.3.1 01 July 2005 Richard Gronback Refined image export requirement based on newsgroup post by Constantine Plotnikov. 0.8.0 23 July 2005 Richard Gronback Incorporated changes discussed during GMF Kickoff Meeting. |
|
|
Contents |
| Overview | |
|
Graphical Modeling Framework project will provide the fundamental infrastructure and components for developing visual design and modeling surfaces in Eclipse. In essence, GMF will form a generative bridge between EMF and GEF, whereby a diagram definition will be linked to a domain model as input to the generation of a visual editor. The project aims to provide this framework, in addition to exemplary tools for select domain models which illustrate its capabilities. The original Project Proposal for GMF is maintained here for reference. The Creation Review presentation is maintained here. Feedback has been incorporated into this document based on postings to the GMF newsgroup. Each requirement below has two markers: the first indicates its relative priority [H | M | L] in terms of importance to the community, while the second indicates the current milestone the feature is targeted for release. At this stage, they are only specified as either [M1] or [M+] to indicate they are targeted for the first major milestone, or afterwards. More refinement will be applied to these requirements in the form of a project plan during the M1 implementation phase. The determination of M1 items and the expected delivery date (Q4 2005) was made during the Kickoff Meeting. |
|
| High-Level Requirements | |
|
The initial requirements for GMF are presented here. Each requirement has a priority indicator and may include references to indicate its source or other relevant information. These requirements are called out in the related Usage Scenarios below, and are to be used to create milestone target feature sets for the project. The requirements are broken down into categories which more or less correspond to the anticipated components of GMF, with the exception of the General Requirements. |
|
|
|
General Requirements |
- Extensibility
- GMF must adhere to the extensibility best practices of Eclipse. The generated plug-ins, the runtime framework, the genmodel, generator, wizards, etc. should all be designed/implemented with extensibility in mind.
- Interoperability
- GMF has the potential to interoperate with a number of other Eclipse projects and, potentially, support external standards and tooling frameworks. See the Interoperability section below.
- Compatibility
- GMF should leverage the latest (pure) version of platform and dependent projects, Java edition, utilize MANIFEST.MF files, etc.
- Testing
- Unit tests will be written and maintained for appropriate code segments.
- GMF should support and be tested on all the platforms supported by Eclipse or, minimally, by the EMF and GEF projects.
- Documentation
- Standard help, exsd files, tutorials, and samples will be provided.
- Internationalization/Localization
- GMF should be localized to the main locales supported by the platform or, minimally, by EMF and GEF.
- Performance
- The GMF runtime, designer, and generated components should be tested for performance characteristics and follow published guidelines.
|
|
Diagram Definition |
- A diagram definition may be mapped to zero or more domain models. In other words, a digram may contain elements which represent information from multiple domain models. [H][M1][114175]
- A diagram may contain multiple references to a single domain model element, potentially with each having a different diagram representation. [M][M1][114179]
- A diagram may have elements added from other referenced diagram definitions. [M][M1][114178]
- Metamodels
- Diagram groups
- Diagram definitions should support a logical grouping of diagrams, as required by the UML, for example. [M][M1][114180]
- Wizards
- GMF Project [H][M1][114107]
- Creates a project containing one or more domain models and associated diagram definition(s). The domain models may already exist and be referenced from other projects in the workspace.
- The domain models may be created from scratch or imported *.ecore, *.emf, xsd, etc. files.
- The required mapping models will be created.
- Diagram Definition [H][M1][114181]
- Creates a new diagram definition model and mapping model(s) based on selected domain model(s).
- Provides an option to create a default set of diagram elements for selected domain elements in an "interview" format, where the toolsmith is walked through each and is allowed to select from common diagram definition options.[M+][114182]
- It should be possible to create a diagram definition which is not yet tied to any particular domain model.[M1]
- Domain Model [H][M+][114183]
- Allows for the creation of a new EMF model using a graphic editor, leveraging an ECore modeling surface provided by GMF.
- Diagram Generation Model [H][M1][114184]
- Creates a new generation model from existing Diagram Definition.[M1][114184]
- Diagram Mapping Model [H][M1][114186]
- Allows an existing diagram definition to be mapped to another domain model.
- GMF Project [H][M1][114107]
- Notation Definition
- An editing environment for diagram notation definition will be
provided, to specify:
- Nodes [H][M1][114188]
- Shape definitions, including geometric, custom, and image file.
- Links [H][M1][114188]
- Connector elements to indicate relationship/flow/etc.
- Decorators [M][M1][114188]
- Text and icons for Node and Link elements.
- Properties [H][M1][114188]
- Attributes of an element to be displayed in a properties view.
- Nodes [H][M1][114188]
- A graphical surface for diagram definitions will be provided
(bootstrapped). [M][M+][114185]
- Provide a WYSIWYG capability for diagram definition. [L][M+][114187]
- A graphical surface for mapping definitions will be provided (bootstrapped). [L][M+][114199]
- An editing environment for diagram notation definition will be
provided, to specify:
- Tooling Definition
- Along with diagram defintion and domain model mapping, the designer should allow for the definition of those runtime options supported (as listed below), such as palette configuration, overview support, etc. [H][M1][114197]
- Semantic Definition
- Constraints [?]
- Diagram and/or domain models may have constraints added which need to be manifested as feedback in the graphical editor. For example, a constraint indicating that circular relationships are not allowed should be indicated in the UI while attempting to make such a connection. [M][M+][114192]
- Constraints may be defined in the diagram and/or domain models that are more appropriately checked in a batch mode, as is done with the EMF validation framework. GMF should allow for constraints to be enforced using this or similar framework. [M][M1][114189]
- Provide support for the Object Constraint Language (OCL). [M][M+][114193]
- Expressions
- Diagram elements may not map directly to domain model elements, but rather be a derived value of some expression or query. For example, a hierarchical or flat view representation of a UML class as defined in "The UML Profile for Framework Architectures" requires information from an entire class hierarchy for representation on a diagram. [M][M+][114194]
- Validation
- Multiple constraint/query/expression languages (e.g. XPath/XQuery, BSH, Groovy, Java, OCL, etc.) should supported through well-defined interfaces and/or extension points. [?] [L][M+][114190]
- Constraints [?]
- Templates
- A number of templates should be provided to jumpstart Graphical DSL development. [L][114195]
- Model synchronicity
|
|
Generation Framework |
- Generation Model
- Runtime Definition
- A generator model should allow for the definition of those code generation options supported, such as package namespace, RCP option, etc. [H][M1][114191]
- Runtime Definition
- Generation
- Generation of code from model definition(s) should maximize plug-in extensibility. [H][M+][114201]
- Generation option to target RCP application. [L][M+][114200]
- Generation option to target an Eclipse view, in addition to editor. [H][M+][114202]
- Utilize EMF.Edit commands (and others) to greatest extent possible. [H][M1][114204]
- Undo/Redo functionality should be respected. [H][M1][114205]
- Regeneration of code should not overwrite customizations. [H][M1][114203]
- Unit tests for the plug-in should be optionally generated. [L][M+][114206]
- Eclipse builders should be utilized as appropriate to generate incrementally. [L][M+][114209]
- When working with domain models, the generation of EMF model, edit, and editor plug-ins should optionally accompany diagram plug-in generation. [L][M1][114208]
- Method of generation should be flexible. [?]
|
|
Runtime Framework |
- Editor
- The runtime environment should support the following capabilities:
- Palette
- Properties [H][M1][114246]
- Overview (bird's eye view) [H][M1][114213]
- Zoom +/- [M][M1][114215]
- Navigator [M][M+][114214]
- Outline [H][M1][114211]
- Decorators [M][M1][114212]
- Keyboard bindings [L][M+][114216]
- Direct editing [H][M1][114219]
- Drag and drop [H][M1][114224]
- Layout [L][M1][114238]
- A number of layout strategies may be appropriate for a particular diagram and the runtime framework should provide for this and for the addition of layout plug-ins to be added via extension point.
- Alignment [L][M1][114236]
- Support standard graphical editor facilities (actions, rulers, guides) provided by GEF. [L][M1][114221]
- Provide support for compartments/subcompartments. [M][M1][114228]
- Feedback (in status line) for constraint violation, advice, etc. [M][M+]
- Filter views [L][M+][114225]
- The runtime environment should support the following capabilities:
- Persistence
- Delete behavior (diagram, domain, both?) [L][M1][114231]
- Export
- Printing [M][M1][114222]
- Image [M][M1][114227]
- Raster: jpeg, gif, bmp, etc.
- Vector: emf, wmf, svg, eps, etc.
- General transformation
- Interchange
- UML via Diagram Interchange Specification [L][M+][114229]
- Interchange
- Team integration [M][M+][114223]
- The runtime should provide functionality for use with non-generated editors. [H][M1][114241]
| Exemplary Tools | |
|
A number of potential GMF-based applications are appropriate to illustrate the framework and become exemplary tools in their own right. Below are a number of recommendations, with the first two as mentioned in the Project Proposal. Some of these are also used in the usage scenarios. |
|
|
|
UML2 Modeling |
- This application of GMF will provide a visual diagramming capability for the UML2 metamodel implementation in Eclipse.
|
|
ECore Modeling |
- To allow for visual domain model (DSL) creation using ECore as a metamodel, a GMF-generated diagram surface is planned. This capability will serve as a reasonable first implementation for GMF and ease the development of EMF models.
|
|
BPEL4WS Modeling |
- BPEL4WS has a defined XSD which can be imported to EMF. There is no associated notation provided, while mappings exist from BPMN and BPDM. One of these or a proprietary notation could be mapped to the XSD, possibly combining aspects of WSDL to provide a rich BPEL4WS modeling environment.
|
|
Business Rules Modeling |
- Business rules have no standard notation, although many examples exist. Furthermore, many rule engine models are possible for implementation in EMF, as one is shown here .
| Usage Scenarios | |
|
The following scenarios illustrate the planned capabilities of GMF, as outlined above. In these scenarios, a 'toolsmith' is someone in an organization that uses GMF to develop tooling utilized by a 'user' (or 'end user'). |
|
|
|
BPEL4WS |
|
A toolsmith is interested in creating a visual modeling tool for BPEL4WS. The specification provides no visual notation, but does come with an XSD which will make short work of creating a domain model using EMF. The toolsmith is aware that BPMN provides a mapping to BPEL4WS and is itself a general notation for modeling business processes. However, the specification does not come with a formal definition. |
|
|
|
|
|
Business Rules Modeling |
|
To complement the new BPEL4WS modeling environment, the toolsmith is now interested in creating a visual modeling tool for business rules. |
|
|
|
|
|
Mind Map |
|
A toolsmith is interested in adding a Mind Map capability to Eclipse, but with the added ability to switch the representation to either a Gantt chart view, or a dependency view. In this scenario, the toolsmith is starting from a blank slate, with no existing domain model or notation definition. |
|
|
| Interoperability | |
|
The GMF project has the potential to interoperate with or leverage capabilities from several Eclipse projects, most notably the Graphical Editing Framework (GEF) and Eclipse Modeling Framework (EMF) projects. It is anticipated that the GMF team will work closely with these other teams and potentially contribute to them in order to meet the goals of the project. GMF should not duplicate functionality, nor add functionality which is more appropriately housed in another Eclipse project. Each of those anticipated to be complementary or a dependency of GMF is listed below: |
|
|
|
EMF (Eclipse Modeling Framework) |
- EMF models are planned to be the primary source of mapped domain models for use in defining diagrams in GMF. Furthermore, diagram definitions and mapping models are themselves to be based on EMF.
- Diagram persistence is to leverage EMF's XML/XMI mechanism, while alternative persistence may be desireable. Persistence to a relational database is likely to be required, as found in MDR, and as possible using CDO. SDO capabilities are already available in EMF.
- EMF currently has no facility for model constraint definition, using OCL for example. This is a known limitation and a discussion item on the EMF newsgroup. On this topic, the University of Kent has an EMF facility for their OCL library.
- EMF currently employs just the JET (Java Emitter Template) engine for code generation. A goal of GMF is to provide a flexible means by which alternative template engines may be used.
|
|
GEF (Graphical Editing Framework) |
- The GEF project will serve as the base of GMF's Runtime Framework and be the target for the generator. It is likely that work done in GMF will be donated to the GEF project.
|
|
UML2 (Unified Modeling Language) |
- The UML2 project represents one popular domain model requested for use in GMF. This project will require the use of the Diagram Interchange Specification for diagram persistence, which is also under consideration as the general diagram definition model for GMF.
|
|
GMT (Generative Model Transformer) |
- The GMT project may provide the necessary means by which to transform models, should it be determined such capabilities are required for GMF.
|
|
VE (Visual Editor) |
- There has been interest expressed in the newsgroup in providing WYSIWYG capabilities in GMF using the VE project.
- The VE project team has expressed interest in working with GMF, as they have developed capabilities that are similar in function to what GMF requires, including a common diagram model. This will require further investigation, and is planned.
|
|
ECF (Eclipse Communication Framework) |
- The ECF project already supports the shared editing of EMF/SDO models, which should potentially be leveraged as an option in GMF.
|
|
MDDi (Model Driven Development Integration) Proposed |
- The MDDi project aims to introduce dynamic aspects to EMF models, it can potentially be leveraged by GMF for required semantic descriptions.
- GMF is already referenced by the MDDi project as complementing its "methodological integration view" where generation of MDDi-specific elements could be provided by GMF.
|
|
- It is conceivable that the Mylar degree-of-interest (DOI) model can extend beyond the navigation views of a model and to the graphical (GEF-based) models as well. This will require further investigation.
In addition to interoperability with other Eclipse projects, a number of other interchange/integration possibilities exist for GMF, such as:
|
|
OMG (Object Management Group) |
- A number of specifications are likely to be adhered with in GMF and its associated projects. The UML, OCL, DIS, etc. all provide an opportunity for GMF to promote OMG specifications.
|
|
- A potential to transform and leverage diagram and domain model definitions in both GMF and Microsoft's DSL Tools exist.
| Outstanding Items | |
|
The following items are in need of discussion and resolution:
|
|


