Design Directives
This page lists out our design directives for the library.
Table of Contents
fm-v2
- Provides a generic mechanism that helps to easily obtain custom feature models, e.g., attribute-based feature models, cardinality-based feature models, anomaly-aware feature models, etc.
- Base classes (e.g.,
Feature
,Relationship
,CTConstraint
, etc.) are immutable. Mutable versions of these classes should be implemented in other packages to keep this package clean. - Supports only to basic feature models, i.e., feature models with four relationships (mandatory, optional, or, and alternative) and two cross-tree constraints (requires and excludes). Other types of feature models should be implemented in other packages to keep this package simple.
- Supports to arbitrary constraints with complex operators (e.g., \(\wedge\), \(\vee\), \(\neg\), \(\rightarrow\), \(\leftrightarrow\)).
- Supports common feature model formats found in the literature, i.e., SPLOT, FeatureIDE.