textual-notation-of-model/packages/features/aebs/aebs_override_verification.sysml

0 view(s) · 50 declared member(s) view source on GitHub

Source

1/* INC-AEBS-009D conscious-override matrix; planned System 2 executable contracts. */2package DE4SDV_AEBS009DVerification {3  private import VerificationCases::*;4  private import VerificationMethodKind::*;5  private import DE4SDV_AEBSNeedsRequirements::Features::AEBS::NeedsRequirements::*;67  enum def ScenarioIdentity009D {8    freshFalseControl;9    freshTrueOverride;10    staleOverride;11    missingOverride;12    malformedOverride;13    futureStampedOverride;14  }15  enum def EvidenceOutcome009D {16    passBoundedScenario;17    failObservedBehavior;18    inconclusiveCoverage;19    errorEvidence;20  }21  item def Retained009DObservationSet;22  item def Replayed009DEvaluation {23    attribute scenario : ScenarioIdentity009D;24    attribute outcome : EvidenceOutcome009D;25  }26  calc def Map009DOutcomeToVerdict {27    in outcome : EvidenceOutcome009D;28    return verdict : VerdictKind =29      if outcome == EvidenceOutcome009D::passBoundedScenario? VerdictKind::pass30      else if outcome == EvidenceOutcome009D::failObservedBehavior? VerdictKind::fail31      else if outcome == EvidenceOutcome009D::errorEvidence? VerdictKind::error32      else VerdictKind::inconclusive;33  }3435  part def OverrideMatrixBench009D {36    attribute scenario : ScenarioIdentity009D;37  }38  requirement def EvidenceContract009D;39  requirement evidenceContract009DClosedOverrideScenario : EvidenceContract009D {40    subject bench : OverrideMatrixBench009D;41    require constraint { doc /* The bench shall bind exactly one closed override scenario identity. */ }42  }43  requirement evidenceContract009DOverrideFreshnessReplay : EvidenceContract009D {44    subject bench : OverrideMatrixBench009D;45    require constraint { doc /* The bench shall replay source stamp, receipt time, value validity, exact diagnostic-source authorization, and the scenario-specific suppression, release, or degraded disposition. */ }46  }47  requirement evidenceContract009DIndependentVerdict : EvidenceContract009D {48    subject bench : OverrideMatrixBench009D;49    require constraint { doc /* The bench shall retain separate observations, evaluation, provenance, and verdict for each scenario; observer failure shall not pass. */ }50  }5152  part overrideFalseControlBench009D : OverrideMatrixBench009D {53    attribute :>> scenario = ScenarioIdentity009D::freshFalseControl;54  }55  part overrideTrueBench009D : OverrideMatrixBench009D {56    attribute :>> scenario = ScenarioIdentity009D::freshTrueOverride;57  }58  part overrideStaleBench009D : OverrideMatrixBench009D {59    attribute :>> scenario = ScenarioIdentity009D::staleOverride;60  }61  part overrideMissingBench009D : OverrideMatrixBench009D {62    attribute :>> scenario = ScenarioIdentity009D::missingOverride;63  }64  part overrideMalformedBench009D : OverrideMatrixBench009D {65    attribute :>> scenario = ScenarioIdentity009D::malformedOverride;66  }67  part overrideFutureStampedBench009D : OverrideMatrixBench009D {68    attribute :>> scenario = ScenarioIdentity009D::futureStampedOverride;69  }7071  verification def ConsciousOverrideVerification009D {72    subject verifiedBench : OverrideMatrixBench009D;73    objective evidenceObjective009D {74      verify evidenceContract009DClosedOverrideScenario;75      verify evidenceContract009DOverrideFreshnessReplay;76      verify evidenceContract009DIndependentVerdict;77    }78    action collectData {79      @VerificationMethod{ kind = test; }80      out item retainedObservations : Retained009DObservationSet;81    }82    action processData {83      @VerificationMethod{ kind = analyze; }84      in scenarioIdentity : ScenarioIdentity009D = verifiedBench.scenario;85      in item retainedObservations : Retained009DObservationSet = collectData.retainedObservations;86      out item replayedEvaluation : Replayed009DEvaluation;87    }88    action evaluateData {89      @VerificationMethod{ kind = analyze; }90      in item replayedEvaluation : Replayed009DEvaluation = processData.replayedEvaluation;91      out verdict : VerdictKind = Map009DOutcomeToVerdict(replayedEvaluation.outcome);92    }93    return verdict : VerdictKind = evaluateData.verdict;94  }95  verification overrideFalseControlVerification009D : ConsciousOverrideVerification009D {96    @VerificationMethod{ kind = (test, analyze); }97    subject verifiedBench :> overrideFalseControlBench009D;98  }99  verification overrideTrueVerification009D : ConsciousOverrideVerification009D {100    @VerificationMethod{ kind = (test, analyze); }101    subject verifiedBench :> overrideTrueBench009D;102  }103  verification overrideStaleVerification009D : ConsciousOverrideVerification009D {104    @VerificationMethod{ kind = (test, analyze); }105    subject verifiedBench :> overrideStaleBench009D;106  }107  verification overrideMissingVerification009D : ConsciousOverrideVerification009D {108    @VerificationMethod{ kind = (test, analyze); }109    subject verifiedBench :> overrideMissingBench009D;110  }111  verification overrideMalformedVerification009D : ConsciousOverrideVerification009D {112    @VerificationMethod{ kind = (test, analyze); }113    subject verifiedBench :> overrideMalformedBench009D;114  }115  verification overrideFutureStampedVerification009D : ConsciousOverrideVerification009D {116    @VerificationMethod{ kind = (test, analyze); }117    subject verifiedBench :> overrideFutureStampedBench009D;118  }119  part verificationSystem009D {120    perform overrideFalseControlVerification009D;121    perform overrideTrueVerification009D;122    perform overrideStaleVerification009D;123    perform overrideMissingVerification009D;124    perform overrideMalformedVerification009D;125    perform overrideFutureStampedVerification009D;126  }127128  dependency overrideEvidenceRelevantToOverrideCandidate129    from evidenceContract009DOverrideFreshnessReplay to reqAllowDriverOverride;130}131