Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Design Directives

This page lists out our design directives for the library.


Table of Contents

  1. fm-v2

fm-v2

  1. 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.
  2. 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.
  3. 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.
  4. Supports to arbitrary constraints with complex operators (e.g., \(\wedge\), \(\vee\), \(\neg\), \(\rightarrow\), \(\leftrightarrow\)).
  5. Supports common feature model formats found in the literature, i.e., SPLOT, FeatureIDE.