- Simon Urli : urli [at] i3s [dot] unice [dot] fr
SpineFM is a tooled approach which aims to describe a software product line with a domain model related to multiple interrelated feature models. It uses a propagation algorithm of configuration actions in order to provide a free-order process for product derivation. Reading our SPLC'14 paper is a good first step before starting use this tool.
- Maven version 3
- Java 1.7 or up
- Eclipse Modeling Tool with maven integration
! Work in progress
- In a console, go to the spinefm root directory and type the following command:
cd spinefm-p2 && mvn clean install
- Open eclipse modeling tool in a new workspace project and install maven integration if it's not done yet ![Install maven integration](https://raw.githubusercontent.com/surli/spinefm/master/documentation/images/1-install-maven-integration.png =250x)
- Import maven project in eclipse and select directory spinefm (the root of this repository)
- Open spinefm-root project and open file target.target inside it
- Click on "Set as target platform" (link in the top right of target definition view) and wait for eclipse to resolve dependencies
- Test the setup by launching spinefm-core tests: all tests must pass (be careful that you must use java 1.7 to launch tests)
- Create a new project in eclipse and create a directory "model"
- Open the file "MetamodelSpineFM.ecore" contained in directory "model" of project spinefm-core
- Open the hierarchy spinefm/MSPLModel, select "MultipleSoftwareProductLine" right click, select "Create dynamic instance" and create the instance inside your new project under directory "model"
- Open your newly created model with the Ecore editor view and display property view
- Give an ID to the MultipleSoftwareProductLine concept
In the next steps we are trying to create the following domain model :
-
Select the MSPL instance, right click, go in "New child" menu and select "Domain element"
-
Define the ID of the newly created domain element
-
Define a multiplicity element of the concept, by right clicking on it, and by selected "multiplicity element" in "New Child" menu
-
The current implementation of SpineFM only support the following multiplicities :
- [0..1]
- [1..1]
- [1..*]
- [0..*]
Lower and upper bound properties of the multiplicity elements are used to define the range.
Please note that the *
is considered with the value -1
.