Coder Social home page Coder Social logo

spinefm's Introduction

SpineFM Build status

Author

About

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.

Requirements

How to use it?

! Work in progress

Setup Eclipse

  1. In a console, go to the spinefm root directory and type the following command: cd spinefm-p2 && mvn clean install
  2. 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)
  3. Import maven project in eclipse and select directory spinefm (the root of this repository)
  4. Open spinefm-root project and open file target.target inside it
  5. Click on "Set as target platform" (link in the top right of target definition view) and wait for eclipse to resolve dependencies Set as target platform
  6. 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 your own domain model

Creation of the domain model

  1. Create a new project in eclipse and create a directory "model"
  2. Open the file "MetamodelSpineFM.ecore" contained in directory "model" of project spinefm-core
  3. Open the hierarchy spinefm/MSPLModel, select "MultipleSoftwareProductLine" right click, select "Create dynamic instance" and create the instance inside your new project under directory "model" Create new model
  4. Open your newly created model with the Ecore editor view and display property view Open Ecore editor Open Property View
  5. Give an ID to the MultipleSoftwareProductLine concept Set MSPL ID

In the next steps we are trying to create the following domain model : Domain Model

Definition of concepts

  1. Select the MSPL instance, right click, go in "New child" menu and select "Domain element" Create new concept

  2. Define the ID of the newly created domain element

  3. Define a multiplicity element of the concept, by right clicking on it, and by selected "multiplicity element" in "New Child" menu Create new concept

  4. 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. Create new concept

Definition of associations

Definition of restrictions

Use your domain model

Via a Java program

Via TOCSIN configuration interface

Via the RESTlike API

spinefm's People

Contributors

surli avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

spinefm's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.