Skip to content
Luca Gherardi edited this page Mar 25, 2014 · 40 revisions

HyperFlex is a collection of Eclipse plugins that support the development of robotics software product lines, a family of similar applications that are built reusing a set of software components and share the same reference architecture. The SPL life cycle consists in three main phases: domain analysis, product line development, and product derivation.

More information about HyperFlex and the development process can be found in [1].

  • Domain Analysis: HyperFlex provides a graphical tool for the analysis and the modeling of the variability in terms of Feature Models.

  • Product line Development: HyperFlex provides a set of graphical tools, which allow the design of software product line reference architectures (aka the Template System Model) for ROS, Orocos and Rapyuta. Additionally HyperFlex provides a tool for defining variability resolution patterns (aka the Resolution Model).

    • HyperFlex is also integrated with BRIDE, which can be used for designing the Template System Model. In order to use HyperFlex with BRIDE it is necessary to checkout the specific branch.
  • Product Derivation HyperFlex provides a tool for selecting the desired functionalities of an application and automatically generating its architectural model (aka the Configured System Model).

How to design Robotics Software Product Lines with HyperFlex

  1. Create a New HyperFlex Project.
  2. Use the Feature Editor for designing the Feature Model, which describes the functional variability of the product line.
  3. Use the Architecture Editor for designing the Template System Model, which describes the variability of the Product Line reference architecture.
  4. Use the Resolution Editor for designing the Resolution Model, which describes how the architectural variability has to be resolved according to a selection of functionalities (i.e. how a set of variation points in the architectural model have to be resolved according the variant(s) selected for a certain variation point of the feature model).
  5. Use the Feature Selector for defining a selection of features, which should reflect the requirements of the desired application.
  6. Use the System Resolution Engine for generating the Configured System Model, which describes the architecture of the desired application.
  7. Use the Architecture Editor for viewing the resulting model and generating the XML file usable for the application deployment (e.g. ROS launch)

The process is depicted below.

It has to be noted that the Feature Models editor and the Architectural Model editors can be used also independently.

How to install the Plugins

The easiest way to install the plugins is using the Makefile

  • Open the shell
  • Download the archive (wget http://lucagherardi.it/projects/HyperFlex/HyperFlexSetup.zip)
  • Unzip it in a folder called HyperFlex (unzip HyperFlexSetup.zip -d HyperFlex)
  • Access the folder (cd HyperFlex) and type make
    • If the installation fails because yaml is not installed:
      • sudo apt-get install python-pip (on Mac sudo easy_install pip)
      • sudo pip install pyyaml
  • The process installs Eclipse and all the required plugins
  • After that you can run it from the folder eclipse located in the same folder of the Makefile

Alternativelly the plugin can be installed from source, by accessing the github repository, or by means of the update site (if no plugins are showed try to unflag Groups item by category).

The manual installation requires to setup the following environment:

Developers

Luca Gherardi (lucagh at ethz dot ch), Institute for Dynamic Systems and Control, ETH Zurich.

In collaboration with: Davide Brugali, University of Bergamo.

More information

More information can be found on the following papers:

Clone this wiki locally