Feature Diagram Editor

Aus SDQ-Wiki
Outdated
The Feature Diagram Editor has become part of the official Eclipse EMF Feature Model project: http://wiki.eclipse.org/EMF_Feature_Model/Feature_Diagram_Editor. However, it has been archived and is no longer maintained. The editor is not compatbile with recent Eclipse versions anymore.
Example Feature Diagram

Feature Diagrams are an established, graphical notation for feature models. They use a hierarchical tree structure to present features and their child features as well as their cardinality. One of the most adopted syntax has been established by Czarnecki and Eisenecker [1]

We have developed a Feature Diagram Editor as an Eclipse Plugin based on the EMF Feature Model and the Graphiti framework. This page lists the required resources and provides a guideline how to use the editor.

Installation

  1. Install a basic Eclipse Modelling package from http://www.eclipse.org/downloads/packages/eclipse-modeling-tools/indigosr2
  2. Choose Help -> Install new Software
  3. Install the Feature Diagram Editor from the Update site (see below)
  4. There you go ...

Note that this update site contains the required EMF Feature Model plugins from the svn trunk. The current official EMF Feature Model update site contains a bug that will block the editor. Because of this bug, you should also make sure that you do not have the EMF Feature Model installed previously.

Update Sites

Note: The nightly update site is build from the svn trunk and might be broken once a while.

Quick Start

There is a new Diagram Wizard. Just choose New -> Other.. -> Feature Diagram to create a new feature model and diagram. The diagram editor will open and one can simply drop new features on the editor canvas or on other features to create a new Child Feature in a new FeatureGroup, or you can drop it on an existing Parent/Child relationship to add the new feature to the existing group.

Changing a Parent-Child-Relationship can simply be done with a right click on the group graphic (the line or the curve) and choose OR/XOR or mandatory/optional from the context menu.

Used Notation

To provide a clear and intuitive notation of the feature diagrams, we have decided for the following conventions:

  1. FeatureGroups with one child use a single line between Child and Parent and marks the cardinality by the disc notation. In this notation, an empty circle at the end means a mandatory feature and a filled disc an optional one.
  2. FeatureGroups with more than one child use a polygone presenting a circular arc between the lines of the outer most child features. A filled polygone identifies am OR FeatureGroup and an empty one identifies an XOR FeatureGroup

Mandatory/optional respectively, the XOR/OR characteristics are not explicitly in the meta model but interpreted from the lower and upperbound definitions of the FeatureGroup relationships.

Layout

The feature diagram editor provides a layout algorithm which arranges the features in a hirarchical tree from top to bottom. If a new diagram is generated from an existing featuremodel, this layouting is applied automatically. In addition, it can be triggered manually in the right click context menu by selecting "Layout". However, a manual arrangement is always possible.

Graphical Export

A graphical export is available for pixel graphics (png, gif, bmp, jpg) and vector graphics (svg). This can be done by a right click anywhere on the editor canvas and selecting "Export Diagram..." in the context menu or by pressing "CTRL+O".

Contact and License

The initial contribution has been developed within the Software Engineering Department of the FZI [2] (Contact: Benjamin Klatt).
Many thanks to Alexander Moor, who has invested a lot of work into this editor.

The editor is availble under the EPL (eclipse public license) and is in preparation to be published as part of the official Eclipse EMF Feature Model project.

Resource

Continous Integration

The feature diagram editor is build by the Palladio Jenkins build server:

Git

The source code is publicly available in the Palladio Github organization:

Links

Release Notes

0.1.1 (current nightly)

  • Collapse / Expand subtrees (context menu options)
  • Autoresizing of inner label when feature rectangle is resized by the user

0.1.0

  • Basic editor for features and feature groups
  • svn export
  • context menu switch for mandatory/optional respectively OR/XOR feature group relationships
  • Hirachical layout manager
  • Feature Diagram create wizard
  • Context menu to create diagram based on existing featuremodel file