FeatureIDE


Latest Version March 3rd, 2010

Description

Software product lines (SPL) have a long tradition and will gain momentum in the future. Today's research tries to move software development to a new quality of industrial production. Several solutions concerning different phases of the software development process have been proposed in order to cope with different problems of program family development. A major problem of program family engineering is still the missing tool support. The vision is an IDE that brings all phases of the development process together consistently and in a user-friendly manner. FeatureIDE currently provides tool support for AHEAD (a prominent design methodology and architectural model for feature-based program families), FeatureC++ and FeatureHouse, .

FeatureIDE is an Eclipse-based IDE that supports building program families following the AHEAD architecture model. It provides tools for the feature oriented design process and the implementation of software product lines. It integrates AHEAD, FeatureC++ and FeatureHouse tools like composition tools, compilers and more.

FeatureIDE is under constant development. The following features are implemented or planned for the near future:

Screenshots

NEW: Please check out our new screencast of FeatureIDE 2.3.6.

Publications

Related Publications

Installation

You can download and test the current version of FeatureIDE using the Eclipse Update Mechanism. If you do not have Eclipse installed, you might choose the "Eclipse IDE for Java Developers" in the current version.
Java 1.6 is required!

Eclipse Ganymede/Galileo (3.4/3.5), Java 1.6

  1. Open Eclipse and go to "Help > Software Updates... > Available Software > Add Site..."
  2. Add the following remote site: http://wwwiti.cs.uni-magdeburg.de/iti_db/research/featureide/deploy/
  3. Select the FeatureIDE Feature and continue with "Install..."

Eclipse Europa (3.3), Java 1.6

  1. Open Eclipse and go to "Help > Software Updates > Find and Install ... > Search for new features to install".
  2. Create following remote sites:
  3. Select the FeatureIDE feature, push "Select required" and finish the installation.

Nighly Builds

For nightly builds, use the following update site: http://wwwiti.cs.uni-magdeburg.de/iti_db/research/featureide/deploy/nightly/p2-updateSite/

Source Code

FeatureIDE is released under GPL license. The source code is available in the following SVN repository: https://faracvs.cs.uni-magdeburg.de/svn/tthuem-FeatureIDE. See also our Bug Tracker and Wiki.

FeatureIDE is still under development and will be updated frequently. We advice all users to enable the auto-update on Eclipse start ("Window > Preferences... > Install/Update > Automatic Updates").
We are currently preparing a major release that includes several new features and will be released as open source. Until then, source code can be requested by email (see below).

Usage

For a current step-by-step tutorial see the FeatureIDE cheat sheet in Eclipse (help menu).

1. Create a Feature Project

Use the wizard to create a new Feature Project.

2. Edit the Feature Model

Open the model.m file and edit the graphical (Feature Diagram) or textual version (Source). You can add or delete features using the context menu and rename using simple click. Features can be moved along the diagram using drag and drop. Double click on features or connections will change the feature to optional/mandantory or the connection type to And/Or/Alternative.

Support for editing is provided by the Feature Model Edit View which can be opened at "Window > Show View > Other...". This view calculates if the changed you made to the model.m file will cause addition or deletion of products. Additionally, an example product (added/deleted) is given if it exists.

3. Create Equation files

Use the wizard to create new Equation files in the folder "equations". Features can be selected/deselected by a double click. An equation that is not allowed along to the feature model gets an error marker.

If there is more than one Equation file, only the one you have selected using right click and "Set as current equation" is build.

4. Create Jak files

Use the wizard to create new Jak files and add your code.

Hint: Static methods cannot be refined in AHEAD.

Hint: AHEAD forces that only Java 1.4 constructs are used.

Hint: Use of state machines in Jak files is not recommend.

5. Create Run Configurations

  1. "Run > Open Run Dialog..."
  2. Double click on Layered Application
  3. Select project and main class
  4. Use Apply to save the configuration

Related Downloads/Research

FeatureIDE is extended for "An Homogeneous Feature-based Approach" separating and linking different variability spaces: http://modalis.polytech.unice.fr/softwares/hfm. Have a look!

We generated 2000 feature models for our current research which are available for download. There are 200 models in ten different sizes: 10, 20, 50, 100, 200, 500, 1000, 2000, 5000 and 10000 features. All feature models contain cross-tree constaints growing with the number of features and are not void, i.e., they contain at least one product.

Guidsl jar file: guidsl.jar

Contact

FeatureIDE is developed mainly at the University of Magdeburg, Germany. It is open source, to acquire the source code see SVN repository and bug tracker above. For information about the project, please contact the development team via . For technical questions and bug reports contact . You can also use our bug tracker.

FeatureIDE Project Members: