textual-notation-of-model/packages/methods/de4sdv/de4sdv_product_line.sysml
0 view(s) · 12 declared member(s) view source on GitHub
Source
1/*2 * DE4SDV reusable product-line semantic kernel.3 *4 * This package keeps product-line vocabulary out of feature-specific slices.5 * It follows the DE4SDV/ISO 26580-aligned distinction that common capabilities6 * are not features unless they distinguish member products.7 *8 * SysML v2 variability is modeled with native `variation` / `variant` notation:9 * a variation marks the varying definition or usage, and its owned variant10 * usages enumerate allowed choices. Do not introduce a project-local11 * variation-point part definition in place of native SysML v2 variation semantics.12 */1314package DE4SDV_ProductLine {15 part def ProductLine {16 doc /* Family of related member products managed through shared assets and controlled variability. */17 }1819 part def SDVProductLine :> ProductLine {20 doc /* Software-defined vehicle product line managed through DE4SDV product-line semantics. */21 }2223 part def ProductLineMemberProduct {24 doc /* Configured product or product variant belonging to a product line. */25 }2627 part def ProductLineCharacteristic {28 doc /* Product-line classification concept for common capabilities, feature candidates, deferred scope, and native SysML v2 variation choices. */29 }3031 part def CommonProductLineCapability :> ProductLineCharacteristic {32 doc /* Capability required across member products; not a feature unless it distinguishes member products. */33 }3435 part def ProductLineFeatureCandidate :> ProductLineCharacteristic {36 doc /* Candidate distinguishing characteristic; must not be accepted as a feature until member-product variability is shown. */37 }3839 part def DeferredProductLineScope :> ProductLineCharacteristic {40 doc /* Scope deliberately deferred from the current increment. */41 }4243 part def ProductLineVariantChoice :> ProductLineCharacteristic {44 doc /* Descriptive project vocabulary for variant choices in YAML/Markdown traces. Concrete SysML variant usages should be represented with native `variant` membership and should not rely on this type as a substitute for variation semantics. */45 }4647 part def DeferredVariantChoice :> ProductLineVariantChoice {48 doc /* Descriptive vocabulary for unresolved variant choices outside a concrete SysML variation body; not an accepted product configuration choice. */49 }5051 /*52 * Generic native variation definition for unresolved product-line choices.53 *54 * SysML v2 requires the owned members of a variation definition/usage to be55 * variant usages. Keep the body limited to `variant` usages.56 */57 variation part def DeferredProductLineVariation {58 variant part deferredChoice;59 }60}61