BDD plugin
The BDD model plugin provides the metaclases required to work with SAT models and to transform feature models into BDD.
Table of contents
Official repository
https://www.github.com/flamapy/bdd_metamodel
BDD metamodel plugin of flamapy framework
The bdd_metamodel
plugin is an integral part of the
flamapy
framework, designed to support Binary Decision Diagrams (BDDs) representations for feature models. This plugin enhances the framework’s capability to handle complex feature model analyses using BDDs, which are efficient for various computational tasks.
Features of the BDD Metamodel Plugin
- BDD Integration
- Utilizes the
dd
library to manipulate BDDs. - Efficiently represents and processes feature models using BDDs, which can handle large and complex models effectively.
- Utilizes the
- Metamodel Classes
- Provides necessary classes to represent BDD-based feature models.
- Supports various transformations and operations to facilitate detailed analysis.
- Operations
- Implements numerous operations such as counting the number of configurations, sampling configurations, and calculating feature inclusion probabilities.
- Supports partial configurations for more targeted analyses.
- Transformations
- Text-to-Model (T2M): Reads feature models from textual representations.
- Model-to-Model (M2M): Transforms feature models into BDD representations for analysis.
- Model-to-Text (M2T): Serializes BDD representations into different formats, including PNG, SVG, and DDDMP.
This plugin could be installed in a different version that enables the analysis of colosal feature models. Use at your own risk (pip install flamapy-bdd==2.0.0.colosal) by taking a look to the pypi repo and choosing the most appropiaded version
https://www.github.com/flamapy/bdd_metamodel, uned branch
Installation instructions
To install the bdd_metamodel
plugin, follow these steps:
-
Install Python: Ensure that Python 3.9 or later is installed on your system.
-
Install the BDD Metamodel Plugin:
- Using pip, the Python package manager, you can install the
bdd_metamodel
plugin directly from PyPI:pip install flamapy-bdd
- Using pip, the Python package manager, you can install the
Links
- PyPI: bdd_metamodel on PyPI
- GitHub Repository: bdd_metamodel on GitHub
Operations
Currently, this plugin enables the following operations. Note that these operations are executed without a backend solver which makes them scalable and fast while having some limitations:
- Configuration Distribution
- Feature Inclusion Probability
- Homogeneity
- Sampling
- Unique Features
- Variability
- Variant Features
Transformations supported
Currently this plugins enables a set of TextToModel transformations (a.k.a Parsers) and ModelToText transformations (a.k.a serializations) for the most common variability serializations found in the literatures. Concretely we support: