Skip to main content
Jump to: navigation, search

Difference between revisions of "EMF Feature Model/Feature Diagram Editor"

Line 1: Line 1:
 
[[Image:feature-diagram-eshop.png|350px|thumb|right|Example Feature Diagram]]
 
[[Image:feature-diagram-eshop.png|350px|thumb|right|Example Feature Diagram]]
 
[[File:feature-diagram-eshop.png|350px|thumb|right|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 [http://en.wikipedia.org/wiki/Feature_model#Basic_feature_models]
 
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 [http://en.wikipedia.org/wiki/Feature_model#Basic_feature_models]

Revision as of 09:01, 7 September 2013

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.

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 filled circle at the end means a mandatory feature and an empty 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 an OR FeatureGroup and an empty one identifies an XOR (Alternative) 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.

The editor allows to show the cardinalities of those groups. This can be (de-)activate in the context menu by a right click on the diagram stage.

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

Initial Contribution and Credentials

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

Back to the top