DEVhaitam / acapulco

Eclipse-based tool for optimal configuration of software product lines

Home Page:https://github.com/acapulco-spl/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Acapulco

Acapulco is a tool to support Product Line configuration using genetic algorithms and consistency-preserving configuration operators.

Installation

For the moment Acapulco is to be launched from an Eclipse workspace and not as an update site or similar.

Requirements

  • Java JDK 13+
  • Eclipse 2020 (4.18.0)+

In your eclipse installation, install

  • FeatureIDE framework for feature-oriented software development. Tested with version 3.8.1 and 3.9.3.
  • Xtend framework. Some acapulco source code uses Xtend instead of Java, so once you will import the acapulco plugins in the workspace, the automatic build of the source code will create some needed Java classes in the xtend-gen package of the acapulco project. Tested with version 2.31

Clone or download the Eclipse Henshin repository Eclipse Henshin. Import the plugin org.eclipse.emf.henshin.model in the Eclipse workspace. File -> Import -> General -> Projects from Folder or Archive (import only the project and not the whole folder as a project). Tested with version 1.9.0.

Clone or download this repository. Import the acapulco plugins (plugins folder of this repository) in the Eclipse workspace. File -> Import -> General -> Projects from Folder or Archive (import only the project and not the whole folder as a project). Then right click the plugin and select Run As -> Eclipse Application. A new instance of Eclipse will be opened with the Acapulco functionality.

Getting started

  • Right click a feature model (in the Package Explorer or Project Explorer) and click on Acapulco prepare. A set of resources will be generated with a message about how to perform the Acapulco launch. When launching, a window to configure the parameters for the optimization will appear. The pareto front configurations and a CSV file with their objectives' values will be generated at the end of the process.

The video below shows a demo of Acapulco.

Acapulco.Video.mp4

Optimization objectives and extensibility

  • Objectives for the optimization can be contributed through the acapulco.objective extension point.
  • Predefined generic objectives already included are: Total sum of numeric feature attributes in a CSV file, Number of features in the configuration, or Number of generated files after deriving the configuration through the Product Line.

Other resources

  • A comparison of a version of Acapulco with other two tools is available in a replication package. The first version of Acapulco is a refactoring of this other repository.

About

Eclipse-based tool for optimal configuration of software product lines

https://github.com/acapulco-spl/


Languages

Language:Java 81.5%Language:Xtend 18.4%Language:HTML 0.1%