- 
                Notifications
    
You must be signed in to change notification settings  - Fork 3
 
Home
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).
 
- Create a New HyperFlex Project.
 - Use the Feature Editor for designing the Feature Model, which describes the functional variability of the product line.
 - Use the Architecture Editor for designing the Template System Model, which describes the variability of the Product Line reference architecture.
 - 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).
 - Use the Feature Selector for defining a selection of features, which should reflect the requirements of the desired application.
 - Use the System Resolution Engine for generating the Configured System Model, which describes the architecture of the desired application.
 - 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.
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 typemake- If the installation fails because 
yamlis not installed:- 
sudo apt-get install python-pip(on Macsudo easy_install pip) sudo pip install pyyaml
 - 
 
 - If the installation fails because 
 - The process installs Eclipse and all the required plugins
 - After that you can run it from the folder 
eclipselocated in the same folder of theMakefile 
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:
- Download Eclipse Modeling Tools version from Eclipse website
 - Install the Graphical Modeling Tooling plugin from this update site
 - Install the Epsilon plugin from this update site
 
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 can be found on the following papers:
- [1] L. Gherardi. Variability modeling and resolution in component-based robotics systems. PhD Thesis, April 2013.
 - [2] L. Gherardi, D. Brugali. An eclipse-based Feature Models toolchain. In Proc. of the 6th Workshop of the Italian Eclipse Community (Eclipse-IT 2011), September 22-23, 2011, Milano, Italy.
 - [3] L. Gherardi, D. Brugali. Modeling and Reusing Robotic Software Architectures: the HyperFlex toolchain. In Proc. of the IEEE International Conference on Robotics and Automation (ICRA 2014), May 31 - June 7, 2014, Hong Kong, China.