The cutting-edge Python-based tool for Automated Analysis of Feature Models using UVL and more
Easily extensible
Plugin generator
Simplifies the process of creating new plugins with a semi-automatic generator, making customization and expansion straightforward.
Variability modelling in the wild
Initially supports cardinality-based feature models, with the flexibility to easily incorporate other types like attributed feature models.
Robust solver support
PySAT integration
Utilizes the PySAT metasolver, offering access to more than ten distinct solvers. This diversity allows for optimal solution finding across various complex scenarios.
BDD integration
Utilizes the CU-BDD metasolver, offering efficient variability model analysis for some operations.
Easy to use, easy to integrate
Easy-to-use python facade
Designed with capabilities to analyse modes in Python with just a line of code.
Command line direct use
Easy to integrate in any ecosystem.
WASM support
Run analysis in your browser. Currently, both flamapy and PySAT are WASM compatible. Enable analysis with 0 configuration process.
REST / SWAGGER available
Integrate the tool in yours by means of a robust backend Rest API.
Large set of operations
Examples of operations include:
Dead features
Identifies features that cannot be included in any valid configuration due to constraints and dependencies in the model.
Core features
Identifies features that are present in all valid configurations of the feature model.
Estimated number of configurations
Provides an estimate of the total number of different configurations that can be produced from a feature model by considering all possible combinations of features.
Atomic Sets
This operation identifies atomic sets in a feature model. An atomic set is a group of features that always appear together across all configurations of the model.
Filter
This operation filters and selects a subset of configurations based on specified criteria. It helps in narrowing down the possible configurations to those that meet certain requirements.
Entities involved
Changelog
Detailed changes for each release are documented in the release notes.
Contributing
When contributing to this repository, please first read contributing.