From 2589ee606d73f1d4adceacd5500e7e92132c838c Mon Sep 17 00:00:00 2001 From: Jochen Hoenle Date: Thu, 25 Jun 2026 16:55:37 +0200 Subject: [PATCH] [rules score] enable linking of multiple guidewords --- .../docs/user_guide/dependability_analysis.md | 2 +- .../sample_fmea_failure_modes.trlc | 2 +- .../trlc/config/score_requirements_model.rsl | 29 +++---------------- 3 files changed, 6 insertions(+), 27 deletions(-) diff --git a/bazel/rules/rules_score/docs/user_guide/dependability_analysis.md b/bazel/rules/rules_score/docs/user_guide/dependability_analysis.md index 6241f22a..e666d499 100644 --- a/bazel/rules/rules_score/docs/user_guide/dependability_analysis.md +++ b/bazel/rules/rules_score/docs/user_guide/dependability_analysis.md @@ -78,7 +78,7 @@ package MySeooc import ScoreReq ScoreReq.FailureMode FM_001 { - guideword = ScoreReq.GuideWord.LossOfFunction + guideword = [ScoreReq.GuideWord.LossOfFunction] description = "Key-value store returns stale data after power loss" failureeffect = "Incorrect system state at startup" safety = ScoreReq.Asil.B diff --git a/bazel/rules/rules_score/examples/seooc/safety_analysis/sample_fmea_failure_modes.trlc b/bazel/rules/rules_score/examples/seooc/safety_analysis/sample_fmea_failure_modes.trlc index 745e0860..0afd8df7 100644 --- a/bazel/rules/rules_score/examples/seooc/safety_analysis/sample_fmea_failure_modes.trlc +++ b/bazel/rules/rules_score/examples/seooc/safety_analysis/sample_fmea_failure_modes.trlc @@ -15,7 +15,7 @@ package SampleLibrary import ScoreReq ScoreReq.FailureMode SampleFailureMode{ - guideword = ScoreReq.GuideWord.LossOfFunction + guideword = [ScoreReq.GuideWord.LossOfFunction] description = "SampleFailureMode takes over the world" failureeffect = "The world as we know it will end" version = 1 diff --git a/bazel/rules/rules_score/trlc/config/score_requirements_model.rsl b/bazel/rules/rules_score/trlc/config/score_requirements_model.rsl index 2c554777..84f8f34a 100644 --- a/bazel/rules/rules_score/trlc/config/score_requirements_model.rsl +++ b/bazel/rules/rules_score/trlc/config/score_requirements_model.rsl @@ -28,7 +28,7 @@ enum Status { /////////////////////////////// abstract type Requirement "Base type for all S-CORE requirements." { - description "The normative requirement text. Must express an obligation (shall/should)." + description "Detailed description of this element." Markup_String version "Monotonically increasing version counter. Increment on every content change." Integer @@ -145,15 +145,13 @@ enum GuideWord "HAZOP-style guide words used to categorize failure mode." { } -type FailureMode "A potential failure of a system function, described using a HAZOP guide word." extends ScoreReq.RequirementSafety { - guideword "HAZOP guide word classifying the nature of this failure." - GuideWord +type FailureMode "A potential failure of a system function, described using one or more HAZOP guide words." extends ScoreReq.RequirementSafety { + guideword "One or more HAZOP guide words classifying the nature of this failure." + GuideWord[1 .. *] failureeffect "Description of the consequence of this failure mode on the system or its users." String rationale "Explanation of why this failure mode is considered relevant." optional String - potentialcause "Description of the root cause or triggering condition for this failure mode." - optional String interface "The system interface or signal that is affected by this failure mode." optional String } @@ -181,22 +179,3 @@ type AoU "Assumption of Use — a safety-relevant condition that a caller must f // abstract type StdReq extends Requirement { // } - - -/////////////////////////////// -// Checks -/////////////////////////////// - -checks Requirement { - - not matches(description, "(shall|should)"), - warning "The description must include (shall|should)", - description - -} - -checks AssumedSystemReq { - - rationale != null implies len(rationale) >= 5, "rationale too short" - -}