Skip to content

memo_rules_crosslayer

SysML API

Public namespace memo::rules::crosslayer
Declared package memo_rules_crosslayer
Source src/rules/crosslayer/cross_layer_rules.sysml

Namespace hierarchy

memomemo::rulesmemo::rules::crosslayer

Packages

Package
memo_rules_crosslayer

Imports

Visibility Target
private ScalarValues::*
private memo_core_consistency_rules::*
private memo_core_enumerations::*

Declarations

Name SysML kind Description Specializes
RiskToReqTraceRule constraint def Constraint that checks risk to req trace rule. MemoConsistencyRule
ReqToArchTraceRule constraint def Constraint that checks req to arch trace rule. MemoConsistencyRule

RiskToReqTraceRule

constraint def RiskToReqTraceRule :> MemoConsistencyRule
Property Value
Description Constraint that checks risk to req trace rule.
Kind constraint def
Abstract No
Specializes MemoConsistencyRule
Owning package memo_rules_crosslayer

ReqToArchTraceRule

constraint def ReqToArchTraceRule :> MemoConsistencyRule
Property Value
Description Constraint that checks req to arch trace rule.
Kind constraint def
Abstract No
Specializes MemoConsistencyRule
Owning package memo_rules_crosslayer

Source

rules/crosslayer/cross_layer_rules.sysml
// Cross-layer traceability constraints evaluated from their ontology-owned
// predicate expressions.
package memo_rules_crosslayer {
    private import ScalarValues::*;

    private import memo_core_consistency_rules::*;
    private import memo_core_enumerations::*;

    constraint def RiskToReqTraceRule :> MemoConsistencyRule {
        attribute id = "XL-001";
        attribute tailoring = RuleTailoringKind::assurance;
        attribute appliesTo = "Hazard";
        attribute severity = RuleSeverityKind::warning;
        attribute rationaleText = "Risk-requirement traceability required for regulatory submissions.";
        attribute predicateExpression = "derivesFrom->size() >= 1";
        constraint { true }
    }

    constraint def ReqToArchTraceRule :> MemoConsistencyRule {
        attribute id = "XL-002";
        attribute tailoring = RuleTailoringKind::assurance;
        attribute appliesTo = "Requirement[requirementKind=system]";
        attribute severity = RuleSeverityKind::warning;
        attribute rationaleText = "Requirements-to-architecture traceability per IEC 62304.";
        attribute predicateExpression = "satisfiedBy->size() >= 1";
        constraint { true }
    }

}