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