FeatureIDE

FeatureIDE

An extensible framework for feature-oriented software development

You like FeatureIDE or you are interested in updates? Star or watch us on GitHub. Follow us on Twitter. Subscribe to our YouTube channel. Follow new publications at Google Scholar. Mark us as favorite in the Eclipse Marketplace.

Quick links to Update Site, GitHub, Issues, Change log

Jump below to Publications, Documentation, Download, FAQ, Contact, Statistics, Related Downloads

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 product-line development. A major problem of product-line engineering is still the missing tool support. The vision is an integrated development environment (IDE) that brings all phases of the development process together, consistently and in a user-friendly manner.

FeatureIDE is an Eclipse-based IDE that supports all phases of feature-oriented software development for the development of SPLs: domain analysis, domain design, domain implementation, requirements analysis, software generation, and quality assurance. Different SPL implementation techniques are integrated such as feature-oriented programming (FOP), aspect-oriented programming (AOP), preprocessors, and plug-ins.

FeatureIDE is under constant development. The following features have been implemented since 2004:

Numerous other tools have been built on top of the FeatureIDE architecture:

Since 2007 we received support request from the following cities:

Publications

In the following, we only report selected publications with the main aim to demonstrate or describe FeatureIDE's functionality. For a more complete list of publications on the FeatureIDE functionality, we refer to Google Scholar.

Documentation

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

Examples can be found using New > Examples > FeatureIDE.

We prepared slides as documentation for FeatureIDE:

  1. FeatureIDE: Background - Short overview of Feature-Oriented Software Development
  2. FeatureIDE: Overview - Description of FeatureIDE's Functionality
  3. FeatureIDE: Get Started - How to install FeatureIDE and retrieve example projects
  4. FeatureIDE: Development - How to extend FeatureIDE, i.e., how is the SVN organized and which plug-in implements which functionalities

Please check out the tutorial by Jörg Liebig based on material by Don Batory including videos explaining the usage.

Download

Drag to your running Eclipse workspace to install FeatureIDE

Marketplace

You can download FeatureIDE in the Eclipse Marketplace by dragging the install button (on the right side) into your Eclipse or using Help > Eclipse Marketplace and then searching for FeatureIDE.

Prepackaged Versions

As there are many dependencies and installation is not always straightforward, we prepared special versions of Eclipse with all necessary plug-ins installed. In most cases, we took an existing Eclipse with JDT and then installed CDT, AJDT, and FeatureIDE. For a 32Bit version, Java 32Bit is required (even possible on a 64Bit machine). For a 64Bit version, Java 64Bit is required (only possible on a 64Bit machine).

ℹ️ Since Eclipse 2020-09 (4.17), Eclipse requires at least Java 11 to launch. This affects the prepackages of FeatureIDE starting with v3.6.4. However, FeatureIDE requires only Java 8 for now and can therefore be installed into older Eclipse versions (we recommend Eclipse 4.16) via the Eclipse Marketplace or the Update Site. Consult the Wiki for more information on these installation methods.

ℹ️ On Windows, extracting the ZIP files below may sometimes cause problems with long file paths due to Eclipse. If you encounter such problems, extracting the ZIP file to the root of your filesystem (e.g., C:\) should fix the problem.

FeatureIDE Eclipse Eclipse with FeatureIDE, JDT, CDT, and AJDT Eclipse with Feature Modeling FeatureIDE Library
v3.11.1 4.28.0 Windows 64Bit (861MB), MacOS 64Bit (770MB), Linux 64Bit (888MB) Windows 64Bit (169MB), MacOS 64Bit (169MB), Linux 64Bit (168MB) FeatureIDE jar (1.8MB), Attributes jar (157KB), and possibly needed jars
v3.10.0 4.24.0 Windows 64Bit (734MB), MacOS 64Bit (744MB), Linux 64Bit (745MB) Windows 64Bit (159MB), MacOS 64Bit (158MB), Linux 64Bit (158MB) FeatureIDE jar (1.79MB), Attributes jar (157KB), and possibly needed jars
v3.9.3 4.24.0 Windows 64Bit (736MB), MacOS 64Bit (742MB), Linux 64Bit (743MB) Windows 64Bit (159MB), MacOS 64Bit (158MB), Linux 64Bit (157MB) FeatureIDE jar (1.79MB), Attributes jar (157KB), and possibly needed jars
v3.9.2 4.20.0 Windows 64Bit (666MB), MacOS 64Bit (766MB), Linux 64Bit (701MB) Windows 64Bit (159MB), MacOS 64Bit (158MB), Linux 64Bit (157MB) FeatureIDE jar (1.79MB), Attributes jar (157KB), and possibly needed jars
v3.9.1 4.20.0 Windows 64Bit (665MB), MacOS 64Bit (668MB), Linux 64Bit (634MB) Windows 64Bit (159MB), Linux 64Bit (155MB) FeatureIDE jar (1.79MB), Attributes jar (157KB), and possibly needed jars
v3.9.0 4.20.0 Windows 64Bit (670MB), Linux 64Bit (669MB) Windows 64Bit (159MB), Linux 64Bit (155MB) FeatureIDE jar (1.79MB), Attributes jar (157KB), and possibly needed jars
v3.8.3 4.20.0 Windows 64Bit (669MB), MacOS 64Bit (672MB), Linux 64Bit (673MB) Windows 64Bit (162MB), MacOS 64Bit (159MB), Linux 64Bit (159MB) FeatureIDE jar (1.76MB), Attributes jar (157KB), and possibly needed jars
v3.8.2 4.20.0 Windows 64Bit (669MB), MacOS 64Bit (672MB), Linux 64Bit (673MB) Windows 64Bit (162MB), MacOS 64Bit (159MB), Linux 64Bit (159MB) FeatureIDE jar (1.76MB), Attributes jar (157KB), and possibly needed jars
v3.8.1 4.20.0 Windows 64Bit (658MB), MacOS 64Bit (662MB), Linux 64Bit (661MB) Windows 64Bit (162MB), MacOS 64Bit (159MB), Linux 64Bit (159MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.8.0 4.20.0 Windows 64Bit (655MB), MacOS 64Bit (657MB), Linux 64Bit (658MB) Windows 64Bit (162MB), MacOS 64Bit (159MB), Linux 64Bit (159MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.7.2 4.20.0 Windows 64Bit (671MB), MacOS 64Bit (673MB), Linux 64Bit (674MB) Windows 64Bit (162MB), MacOS 64Bit (159MB), Linux 64Bit (159MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.7.1 4.20.0 Windows 64Bit (671MB), MacOS 64Bit (673MB), Linux 64Bit (674MB) Windows 64Bit (163MB), MacOS 64Bit (160MB), Linux 64Bit (160MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.7.0 4.17.0 Windows 64Bit (643MB), MacOS 64Bit (646MB), Linux 64Bit (648MB) Windows 64Bit (158MB), MacOS 64Bit (158MB), Linux 64Bit (158MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.6.4 4.17.0 Windows 64Bit (633MB), MacOS 64Bit (636MB), Linux 64Bit (651MB) Windows 64Bit (149MB), MacOS 64Bit (149MB), Linux 64Bit (148MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.6.3 4.15.0 Windows 64Bit (615MB), MacOS 64Bit (613MB), Linux 64Bit (612MB) Windows 64Bit (148MB), MacOS 64Bit (145MB), Linux 64Bit (145MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.6.2 4.13.0 Windows 64Bit (603MB), MacOS 64Bit (607MB), Linux 64Bit (604MB) Windows 64Bit (147MB), MacOS 64Bit (145MB), Linux 64Bit (144MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.6.1 4.13.0 Windows 64Bit (597MB), MacOS 64Bit (601MB), Linux 64Bit (595MB) Windows 64Bit (147MB), MacOS 64Bit (145MB), Linux 64Bit (144MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.6.0 4.12.0 Windows 64Bit (563MB), MacOS 64Bit (562MB), Linux 64Bit (561MB) Windows 64Bit (144MB), MacOS 64Bit (142MB), Linux 64Bit (141MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.5.5 4.8.0 Windows 64Bit (561MB), MacOS 64Bit (561MB), Linux 64Bit (559MB) Windows 64Bit (149MB), MacOS 64Bit (150MB), Linux 64Bit (149MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.5.4 4.8.0 Windows 64Bit (559MB), MacOS 64Bit (558MB), Linux 64Bit (556MB) Windows 64Bit (149MB), MacOS 64Bit (149MB), Linux 64Bit (149MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.5.3 4.7.3 Windows 64Bit (556MB), MacOS 64Bit (555MB), Linux 64Bit (554MB) Windows 64Bit (151MB), MacOS 64Bit (151MB), Linux 64Bit (151MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.5.2 4.7.3 Windows 64Bit (561MB), MacOS 64Bit (555MB), Linux 64Bit (555MB) Windows 64Bit (150MB), MacOS 64Bit (151MB), Linux 64Bit (150MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.5.1 4.7.3 Windows 64Bit (557MB), MacOS 64Bit (557MB), Linux 64Bit (556MB) Windows 64Bit (151MB), MacOS 64Bit (152MB), Linux 64Bit (151MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.5.0 4.7.3 Windows 64Bit (554MB), MacOS 64Bit (554MB), Linux 64Bit (552MB) Windows 64Bit (150MB), MacOS 64Bit (150MB), Linux 64Bit (150MB) FeatureIDE jar (2MB), Attributes jar (1MB), and possibly needed jars
v3.4.3 4.7.2 Windows 64Bit (548MB), MacOS 64Bit (564MB), Linux 64Bit (545MB) Windows 64Bit (149MB), MacOS 64Bit (150MB), Linux 64Bit (149MB) FeatureIDE jar (2MB) and possibly needed jars
v3.4.2 4.7.2 Windows 64Bit (545MB), MacOS 64Bit (545MB), Linux 64Bit (541MB) Windows 64Bit (147MB), MacOS 64Bit (148MB), Linux 64Bit (146MB) FeatureIDE jar (2MB) and possibly needed jars
v3.4.1 4.7.1a Windows 64Bit (541MB), MacOS 64Bit (542MB), Linux 64Bit (416MB) Windows 64Bit (146MB), MacOS 64Bit (280MB), Linux 64Bit (218MB) FeatureIDE jar (2MB) and possibly needed jars
v3.3.0 4.6.3 Windows 32Bit (482MB), Windows 64Bit (482MB) Windows 32Bit (143MB), Windows 64Bit (143MB) FeatureIDE jar (1MB) and possibly needed jars
v3.2.0 4.6.1 Windows 32Bit (487MB), Windows 64Bit (487MB) Windows 32Bit (176MB), Windows 64Bit (176MB) FeatureIDE jar (1MB) and possibly needed jars
v3.1.0 4.5.2 Windows 32Bit (643MB), Windows 64Bit (642MB) Windows 32Bit (180MB), Windows 64Bit (180MB)  
v3.0.0 4.5.2 Windows 32Bit (502MB), Windows 64Bit (502MB), Linux 64Bit (446MB), Mac 64Bit (446MB) Windows 32Bit (137MB), Windows 64Bit (137MB)  
v2.7.5 4.4.2 Windows 32Bit (550MB)    
v2.7.4 4.4.2 Windows 32Bit (556MB), Windows 64Bit (557MB) Windows 32Bit (170MB), Windows 64Bit (170MB)  
v2.7.3 4.4.2 Windows 32Bit (450MB), Windows 64Bit (543MB) Windows 32Bit (144MB), Windows 64Bit (144MB)  
v2.7.2 4.2 Windows 32Bit    
v2.7.1 4.2 Windows 32Bit    
v2.7.0 4.2 Windows 32Bit    
v2.6.5 4.2 Windows 32Bit    
v2.6.4 3.6 Windows 32Bit    
v2.6.3 3.6 Windows 32Bit    
v2.6.2 3.6 Windows 32Bit    
v2.6.1 3.6 Windows 32Bit, Linux 32Bit, and Linux 64Bit    
v2.6.0 3.6 Windows 32Bit    
v2.5.1 3.6 Windows 32Bit    
v2.5.0 3.6 Windows 32Bit    

Download with Update Site

  1. Open Eclipse and go to Help > Install New Software… (Eclipse 3.5 and older: Help > Software Updates… > Available Software > Add Site…)
  2. Add one of update sites below:
  3. Select the features FeatureIDE, Feature Modeling, and the required FeatureIDE extensions. You may need to add further update sites to install FeatureIDE extensions. See table below.
  4. Continue with Install…

Supported Java and Eclipse Versions

Java 1.8 or higher is required since FeatureIDE v3.6.0. FeatureIDE v2.7.3 to v3.5.5 require at least Java 1.7. FeatureIDE v2.7.2 and earlier versions do only require Java 1.6.

If you do not have Eclipse installed, you might choose the Eclipse IDE for Java Developers in the current version. If you intend to extend Eclipse or FeatureIDE, we recommend Eclipse for Committers instead.

Compatibility of FeatureIDE plug-ins and Eclipse versions. The table contains links to the update sites of additional required plug-ins. As most extensions require JDT, it is omitted below.

Feature Modeling FeatureIDE AHEAD FeatureHouse FeatureC++ AspectJ Antenna Munge Colligens / CPP DeltaJ
Eclipse 4.8 (Photon) Yes Yes Yes Yes Yes CDT 9.5 AJDT 4.8 dev builds available, but too buggy Yes Yes Yes CDT 9.5 No
Eclipse 4.7 (Oxygen) Yes Yes Yes Yes Yes CDT 9.3, CDT 9.4 Yes, AJDT 4.7 dev builds seem to work Yes Yes Yes CDT 9.3, CDT 9.4 No
Eclipse 4.6 (Neon) Yes Yes Yes Yes Yes CDT 9.1 Yes, AJDT 4.6 dev builds seem to work Yes Yes Yes CDT 9.1 No
Eclipse 4.5 (Mars) Yes Yes Yes Yes Yes CDT 8.8.1 Yes, AJDT 4.5 dev builds seem to work Yes Yes Yes CDT 8.8.1 No
Eclipse 4.4 (Luna) Yes Yes Yes Yes Yes CDT 8.6 Yes, AJDT 4.4 dev builds seem to work Yes Yes Yes CDT 8.6 No
Eclipse 4.3 (Kepler) Yes Yes Yes Yes Yes CDT Yes AJDT Yes Yes Yes CDT No
Eclipse 4.2 (Juno) Yes Yes Yes Yes Yes CDT Yes AJDT Yes Yes Yes CDT Yes Xtext-2.3.1*, XTypeS
Eclipse 3.7 (Indigo) Yes Yes Yes Yes Yes CDT Yes AJDT Yes Yes Yes CDT Yes Xtext-2.3.1*, XTypeS

* Depending on pre-installed plugins, there can be problems with installing Xtext. Check which version of Google Inject you have installed in your plugins folder: com.google.inject_3.0.0.no_aop.jar works, com.google.inject_3.0.0.v201203063045.jar does not work.

T-wise generation with CASA is currently only available on Windows systems. If you however need to use it, contact us so we can find a solution.

All functionalities are tested under Windows, Mac, and Linux. However, FeatureIDE is mainly developed under Windows. If you have problems with FeatureIDE on your operating system, please do not hesitate to contact us or to use our bug tracker.

Source Code

FeatureIDE is released under L-GPL license v3. The source code is available on GitHub. See also our bug tracker and wiki.

When importing the FeatureIDE plug-ins, a) deselect the checkbox for nested projects, and b) type 'plugins' into the filter. Then you can import the projects you need.

Before switching to Git and GitHub, we used to work with SVN (deprecated) and Trac (deprecated). This FeatureIDE website has also been published on other domains, such as http://wwwiti.cs.uni-magdeburg.de/iti_db/research/featureide/, http://featureide.cs.ovgu.de/, http://fosd.de/featureide, http://fosd.de/fide, http://fosd.net/featureide, http://fosd.net/fide.

Miscellaneous

How to install FeatureIDE and retrieve example projects? FeatureIDE: Get Started

Open the FeatureIDE perspective in the right upper corner of the Eclipse window. You also may want to open the FeatureIDE cheat sheet using Help > Cheat Sheets... > FeatureIDE.

FAQ

Why are the symbols in cross-tree constraints below the feature diagram are not displayed correctly?

Please make sure that the font Arial Unicode MS is installed on your operating system so that FeatureIDE can use it to display the cross-tree constraints.

How can I use external jar files in my FeatureIDE project?

For FeatureIDE 2.4 and older: Please create a folder named lib at the project root and insert all jar files which you intent to reference. The jar files are detected by the compiler and added as parameters if you run your FeatureIDE application.
For FeatureIDE 2.5 and newer: Right click the jar files in package explorer and add them to the Java build path.

How can I compare two different feature models in FeatureIDE?

  1. Prepare two FeatureIDE projects (A and B) that contain the feature models you want to compare. Either edit them using FeatureIDE or import them from other formats, e.g., GUIDSL.
  2. Open the feature model of project A, switch to the tab Source, and copy the whole document.
  3. Open the feature model of project B, switch to the tab Source, and paste the clipboard.
  4. Switch back to the tab Feature Diagram in editor of project B and the feature model edit view will show the results.
Checkout this video to see how to do it.

How can I import/export the feature model from/to other tools?

Select the file model.xml in Package Explorer and open the context menu, then choose FeatureIDE > Import/Export ...

How can I store my feature model to a bitmap graphic or PDF file?

Select or open your feature model and then choose File > Save As or File > Print. The latter option requires that you have a PDF printer installed and have a program to crop PDFs (such as Adobe Acrobat).
Note, that you can change the layout of the feature model since FeatureIDE 2.6 using Set Layout in the context menu of the feature model editor. There are pre-defined layouts, but you can also manually move features for compact positioning.

Contact

For more information about the project, support requests, and technical questions, do not hesitate to contact the FeatureIDE development team. For bug reports, you can use our bug tracker.

FeatureIDE development team:

Further contributors and former project members:

Statistics

Since 2007, FeatureIDE is being used by lecturers at numerous universities: