Feature model plugin

The feature model plugin provides the metaclases required to work with feature models.

Table of contents

  1. fm_metamodel plugin of flamapy framework
    1. Features of the fm_metamodel Plugin
      1. Metamodel Classes
      2. Operations
      3. Transformations
    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/fm_metamodel

fm_metamodel plugin of flamapy framework

The fm_metamodel plugin is a crucial component of the flamapy framework, providing the concrete classes and operations necessary for working with feature models. This plugin encapsulates the core functionalities required for defining, transforming, and analyzing feature models, making it a fundamental part of the flamapy ecosystem.

Features of the fm_metamodel Plugin

Metamodel Classes

  • Defines the structure and constraints of feature models.
  • Supports multiple feature model formats, ensuring compatibility and flexibility.

Operations

  • Implements various operations specific to feature models, such as counting leaf features, estimating the number of valid configurations, and identifying core features.
  • Provides robust mechanisms for performing detailed analyses on feature models.

Transformations

  • Supports Text-to-Model (T2M) transformations to read feature models from various textual representations.
  • Enables Model-to-Model (M2M) transformations to convert feature models into different formats or computational paradigms for advanced analysis.
  • Facilitates Model-to-Text (M2T) transformations to serialize in-memory feature models back into text formats for storage and sharing.

Installation instructions

To install the fm_metamodel plugin, follow these steps:

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

  2. Install the fm_metamodel Plugin:

    • Using pip, the Python package manager, you can install the fm_metamodel plugin directly from PyPI:
      pip install flamapy-fm
      

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