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

  1. BDD metamodel plugin of flamapy framework
    1. Features of the BDD Metamodel Plugin
    2. Installation instructions
    3. Links
  2. Operations
  3. Transformations supported
    1. Model to text transformations
    2. Text to model transformations
    3. Model to model transformations

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

  1. 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.
  2. Metamodel Classes
    • Provides necessary classes to represent BDD-based feature models.
    • Supports various transformations and operations to facilitate detailed analysis.
  3. 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.
  4. 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:

  1. Install Python: Ensure that Python 3.9 or later is installed on your system.

  2. 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
      

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:

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:

Model to text transformations

Text to model transformations

Model to model transformations