EMF Facet/JunoReview

From Eclipsepedia

< EMF Facet
Revision as of 11:14, 20 March 2013 by David.idsia.ch (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This page provides the required docuware for the EMF Facet v0.2.0 Release Review, as part of the upcoming Juno Simultaneous Release.

Contents

Overview

EMF Facet provides a generic and extensible MDE framework to support meta-model extension and model customization.

It is an Eclipse Modeling Framework Technology (EMFT) project, inside the Eclipse Modeling Project (EMP).

Features

In this release

For the second time, EMF Facet is part of an Eclipse Simultaneous Release. The different features provided by EMF Facet v0.2.0, as part of Juno, are of four categories.

  • A query abstraction mechanism allowing language-independent querying on models;
  • The facet mechanism for dynamically extending the meta-models;
  • A model customization mechanism allowing to change the rendering of model element in function of their state.
  • Customizable widget

Query, Facet and customization

The query, facet and customization mechanism have been copied from MoDisco. A re-factoring of those components has been done to improve their usability and extensibility. Because of a lack of time, the editors for the new query, facet and customization meta-models are not available. Reflexive editors have to be used to edit EMF Facet models.

To avoid API break the old version of the query, facet and customization components are still available, but hidden by a capability. MoDisco components have been marked has deprecated (cf. bug 361617)

In addition to the main re-factoring, 2 enhancements have been implemented :

  • Bug 371367 - Hierarchical FacetSets (Core)
  • Bug 376941 - [EFacet] Facet operation arguments in Facet model

Customizable Table Widget

The EMF Facet's table widget has been refactored to improve the maintainability and to use the new version of the query, facet and customization components.

To avoid any API break the version 0.1.0 of the table is still available, but it is hidden by a capability.

6 enhancements have been implemented :

  • Bug 366367- To be able to change the "CanBePresentedInTheTable" query
  • Bug 367218 - [UICore] Be able to disable the external resource overlay
  • Bug 371367 - Hierarchical FacetSets (GUI)
  • Bug 372626 - Aggregates
  • Bug 374941 - To be able to customize overlay icons on EClass

Accordance with project plan themes and priorities

Restructuring

The EMF Facet project plan has not be totally achieved. We were expecting to deprecate the MoDisco features and to enable the EMF Facet ones. This has been done at the API level but we didn't had enough time to implement editor dedicated to the new EMF Facet meta-models.

Here is the list of the planned but not achieved enhancements :

  • 364325 - [Restructuring] The user must be able to navigate into a model using the Facet.
  • 352718 - [Restructuring] Facet feature v0.2
  • 364601 - [Restructuring] org.eclipse.emf.facet.efacet.ui has to be refactored
  • 352774 - [Restructuring] getStructuralFeatures(EObject eObject, List<Facet> appliedFacets) in an utility class
  • 365726 - [Restructuring] Setting of a FacetReference/FacetAttribute owned by a Facet

Service, Support and Maintenance

Unit Test Failures

We meet this year a large amount of unit test failures. The main part of those failures is not caused by a behaviour regression. We have too many unit tests :

  • which don't support small UI changes ,
  • which have a random behavior (unit tests using SWTBot).

To not spend to many time to solve unit test failures, we will delete the unit tests having a random behavior. The same strategy will be applied to the SWTBot unit tests requiring too many efforts to be fixed.

Other bugs

We still have 110 other bugs to fix.

Non-Code Aspects

All the documentation is embedded in help plug-ins and is also available at http://help.eclipse.org/.

The complete EMF Facet documentation is available from the EMF Facet head documentation. This documentation is generated from the help plug-ins.

The EMF Facet website provides a direct access to all the related resources.

APIs

The current EMF Facet API situation is detailed by the API report build on the version 0.2.0 RC2.

No illegal API use have been identified.

Architecture

The EMF Facet architecture document is currently not available.

Testing & Packaging

EMF Facet uses a Buckminster-based system to build and promote versions. We plan to move to Tycho for the next version and for the service release.
Each new build is tested at least with Eclipse 4.2 (Juno).
Core plug-ins are provided with dedicated test plug-ins checking their valid behavior.
EMF Facet is integrated into the Juno Release Train.

Tool Usability

EMF Facet is a solution to extend existing Ecore meta-models without having to modify them.

The idea is to provide non-intrusive mechanisms to add new features (types, attributes, operations and references) to a meta-model and to customize the existing features by adding extra properties (icons, labels, etc.)

For example, EMF Facet is used by :

  • MoDisco, to adapt source code meta-models to specific use cases (eg. Java code pattern matching);
  • Papyrus to present UML models in tabular views.

End-of-Life

Each API deprecation is tracked by a bug tagged [Deprecated].

Elements copied from MoDisco have been deprecated, cf. bug 361617.

The first version of the EMF Facet table widget has been deprecated cf. deprecation bugs. This table has been deprecated because it is based on the facet and customization features imported from MoDisco.

Bugzilla

EMF Facet Opened bugs by severity 20120604.png

In the 132 bugs declared in for the version 0.2.0 we have 36 enhancement requests and 37 unit test failures (potentially false positives), so we can assume that we have 59 bugs that the users may fall on.

  • Fixed bugs (snapshot taken on the 4th of June 2012):

EMF Facet Bugs 20120604.png

EMF Facet Enhancement requests-20120604.png

The summer (July to September) has been dedicated to bug fixing (16 bugs fixed). During the autumn (October to December) we worked on the new version (restructuring) of eFacet and customization features (meta-models and API). The end of the winter and the beginning of the spring has been dedicated to the implementation of features required by the Papyrus team. Enhancements have been committed after M6, whereas according to the modelling project ramp down policy the M7 period is reserved to the bug fixing. We have chosen to commit those enhancements because they are requested and used by the Papyrus project.

According to the last table we can imagine that an enhancement will be provided in the service release. This is not the case: the development has been done for 0.2.0 but some documentation was missing. This documentation will be added in the service release.

143 bugs are still opened. We already have started to work on bug fixing for the service release.

Standards

The EMF Facet does not implement any standards.

UI Usability

EMF Facet intends to conform to the User Interface Guidelines but some UI Usability issues have been found.

Schedule

EMF Facet is a "+2" project in the simultaneous release

M1	08/16/2011
M2	09/27/2011
M3	11/28/2011
M4	12/13/2011
M5	01/31/2012	
M6	03/20/2012	API freeze
M7	05/09/2012	Feature Freeze
RC1	05/22/2012	
RC2	05/30/2012	
RC3	06/05/2012	
RC4	06/12/2012		
Juno	06/27/2012

Communities

  • The EMF Facet table widget is used by Papyrus.

Committer Changes

No change.

IP Issues

The Eclipse (MDT) MoDisco project leadership verifies that:

  • the about files and use licenses are in place as per the Guidelines to Legal Documentation.
  • all contributions (code, documentation, images, etc) have been committed by individuals who are either Members of the Foundation, or have signed the appropriate Committer Agreement. In either case, these are individuals who have signed, and are abiding by, the Eclipse IP Policy.
  • all significant contributions have been reviewed by the Foundation's legal staff.
  • all non-Committer code contributions, including third-party libraries, have been documented in the release and reviewed by the Foundation's legal staff.
  • all Contribution Questionnaires have been completed.
  • the "provider" field of each plug-in is set to "Eclipse Modeling Project“.
  • the "copyright" field of each feature is set to the copyright owner (the Eclipse Foundation is rarely the copyright owner).
  • any third-party logos or trademarks included in the distribution (icons, help file logos, etc) have been licensed under the EPL.
  • any fonts or similar third-party images included in the distribution (e.g. in PDF or EPS files) have been licensed under the EPL.

The EMF Facet IP Log is up to date. The IP log of the release 0.2.0 has been approved.

Some third-party libraries are used (cf. corresponding validated CQs)

All EMF Facet content is released under EPL.

Project Plan

For the next version of EMF Facet, we plan to:

  • fix the "major" bugs;
  • finish the restructuring;
  • fix "normal" bugs;
  • implement editors for the facet set and the customization.