Getting started
Table of contents
Overview
flamapy provides an ecosystem to build up automated analysis tools AAFM. While the framework support any kind of variability model, it provides easy use and extensibility in the case of feature models.
Installation
To analyze feature models, you can rely on the flamapy
distribution. It requires Python >= 3.9.
It’s recommended to use a virtual environment (venv) for installation to avoid conflicts with other packages. Here’s how you can set it up:
python -m venv flamapyenv && source flamapyenv/bin/activate
Install the distribution:
pip install flamapy
Basic operations
To test some basic operations, you need UVL models. Several are available at UVLHub. If you prefer, you can download a test one:
wget -q "https://raw.githubusercontent.com/flamapy/flamapy/main/resources/models/simple/valid_model.uvl"
wget -q "https://raw.githubusercontent.com/flamapy/flamapy/main/resources/configurations/valid_configuration.csvconf"
Now we will present some examples of operations so you can check if the tool is working as expected, but first, let’s see which operations are available using the flamapy
command line.
flamapy --help
Validate the model
To check if the model is valid, run:
flamapy satisfiable ./valid_model.uvl
Get all configurations depicted in a model
To generate all possible configurations from the model, use:
flamapy configurations ./valid_model.uvl
Validate a configuration
To verify if a specific configuration is valid, run:
flamapy satisfiable_configuration ./valid_model.uvl ./valid_configuration.csvconf
I want to use more feature models analysis operations:
flamapy
runs on a framework based on Core / Plugins
architecture. If you are interested in more feature model operations, check the flamapy as a tool
Option 1: using the feature models distribution
We have prepared flamapy
to provide support by default to the most used operations in a ready and easy way of using. You can execute it using an easy-to-use facade, a cli o directly using the framework. You can see how to execute each operation and which interface are available in the [operations] documentation.
Option 2: using the framework as it is
You can choose not to use the distribution. In that case, yo have to select the most suitable plugins for your variability model analysis. Therefore you have to install the core and the corresponding plugins.
You can check the rest of plugins.