sysand add mbse4u/pleml
SysML v2 library for Model-Based Product Line Engineering (MBPLE). PLEML (Product Line Engineering Modeling Language) is an extension for SysML v2 to model product line features, feature trees, feature configurations, and constraints between features.
Source: github.com/mbse4u/pleml
Sysand project: sysand.com/projects/mbse4u/pleml — Sysand is a package registry for publishing, versioning, and discovering reusable SysML v2 libraries.
PLEML is based on the paper by Tim Weilkiens, Marco Forlingieri, and Vince Molnar, "Next Generation MBPLE with SysML v2: Feature Modeling, Variability Modeling, and API Potentials", presented at the INCOSE Symposium 2025: https://doi.org/10.1002/iis2.70058
PLEML provides the semantic metadata and structural constructs to represent variations, configurations, and constraints of a product line in SysML v2:
name, bindingTime, externalRepresentation (for proxy features), and the derived isAuthoritativeRequiresConstraint (requiresFeatures) and XORConstraint (xorFeatures, aka conflict constraint), both evaluated against a feature configurationDevelopment, Production, and Operation#featureModel, #featureTree, #feature, and #featureConfiguration for clean model notation@FB (FeatureBinding) binds elements of shared assets to features, @FCFGB (FeatureConfigurationBinding) binds a product model to a feature configuration. DeriveFeatureName derives the feature name from a dependencyAll elements are documented with doc comments in PLEML.sysml.
Import the library into your SysML v2 model:
package MyProductLine {
private import PLEML::*;
#featureModel occurrence def MyFeatureModel {
#featureTree occurrence myFeatureTree :> featureTrees {
#feature occurrence optionalFeature[0..1] default null;
#feature occurrence otherFeature[0..1] default null {
assert constraint :>> requiresFeatures {
in #feature occurrence :>> requiredFeatures = (optionalFeature);
}
}
}
#featureConfiguration occurrence myProduct :> myFeatureTree, featureConfigurations {
#feature occurrence :>> optionalFeature[1];
#feature occurrence :>> otherFeature[1];
}
}
}
The Drone product line example shows the complete approach.
PLEML.sysml # The PLEML library
Examples/ # Drone Product Line example
MBPLE-Example-DroneProductLine-PLEML-SysMLv2-FeatureModel.sysml # Feature tree and feature configurations
MBPLE-Example-DroneProductLine-PLEML-SysMLv2-SharedAssets.sysml # Shared assets linked to features
MBPLE-Example-DroneProductLine-PLEML-SysMLv2-ProductModel.sysml # Product model of a member product
Test/PLEML-Test-Constraints.sysml contains valid and violating feature configurations for the XORConstraint and RequiresConstraint, with the expected verdict documented. Evaluating the constraints requires a tool that supports suboccurrences and the binding of the featureConfiguration; OpenSysML v0.9.2 loads the models but does not evaluate the constraints conclusively.
Contributions are welcome — please submit issues or pull requests.