Feature model plugin
The feature model plugin provides the metaclases required to work with feature models.
Table of contents
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:
-
Install Python: Ensure that Python 3.9 or later is installed on your system.
-
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
- Using pip, the Python package manager, you can install the
Links
- PyPI: fm_metamodel on PyPI
- GitHub Repository: fm_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:
- Atomic Sets
- Average Branching Factor
- Core Features
- Count Leafs
- Estimated Number of Configurations
- Feature Ancestors
- Leaf Features
- Max Depth
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: