Skip to content

Commit 0c6062e

Browse files
committed
process: include review findings
Ref: closes #102
1 parent eaf3bd5 commit 0c6062e

File tree

3 files changed

+84
-24
lines changed

3 files changed

+84
-24
lines changed

src/extensions/score_metamodel/metamodel.yaml

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -509,15 +509,16 @@ needs_types:
509509
title: DFA
510510
prefix: feat_plat_saf_dfa__
511511
mandatory_options:
512-
id: ^gd_guidl__dfa_failure_initiators__[0-9a-z_]*$
512+
id: ^feat_plat_saf_dfa__[0-9a-z_]+$
513513
violation_id: ^.*$
514514
violation_cause: ^.*$
515-
mitigation_issue: ^https://github.com/.*$
516515
sufficient: ^(yes|no)$
517516
status: ^(valid|invalid)$
518-
mandatory_links:
519-
mitigates: ^(feat_req__.*|aou_req__.*|)$
520-
verifies: ^feat_arc_sta__[0-9a-z_]*$
517+
mandatory_links:
518+
mitigates: ^(feat_req__.*|aou_req__.*)$
519+
verifies: ^feat_arc_dyn__[0-9a-z_]*$
520+
optional_links:
521+
mitigation_issue: ^https://github.com/.*$
521522

522523
feat_saf_dfa:
523524
title: DFA
@@ -526,56 +527,59 @@ needs_types:
526527
id: ^feat_saf_dfa__[0-9a-z_]+$
527528
violation_id: ^.*$
528529
violation_cause: ^.*$
529-
mitigation_issue: ^https://github.com/.*$
530530
sufficient: ^(yes|no)$
531531
status: ^(valid|invalid)$
532-
mandatory_links:
533-
mitigates: ^(feat_req__.*|aou_req__.*|)$
534-
verifies: ^feat_arc_sta__[0-9a-z_]*$
532+
mandatory_links:
533+
mitigates: ^(feat_req__.*|aou_req__.*)$
534+
verifies: ^feat_arc_dyn__[0-9a-z_]*$
535+
optional_links:
536+
mitigation_issue: ^https://github.com/.*$
535537

536538
comp_saf_dfa:
537539
title: DFA
538540
prefix: comp_saf_dfa__
539541
mandatory_options:
540-
id: ^gd_guidl__dfa_failure_initiators__[0-9a-z_]*$
542+
id: ^comp_saf_dfa__[0-9a-z_]+$
541543
violation_id: ^.*$
542544
violation_cause: ^.*$
543-
mitigation_issue: ^https://github.com/.*$
544545
sufficient: ^(yes|no)$
545546
status: ^(valid|invalid)$
546-
mandatory_links:
547-
mitigates: ^(comp_req__.*|aou_req__.*|)$
548-
verifies: ^comp_arc_sta__[0-9a-z_]*$
547+
mandatory_links:
548+
mitigates: ^(comp_req__.*|aou_req__.*)$
549+
verifies: ^comp_arc_dyn__[0-9a-z_]*$
550+
optional_links:
551+
mitigation_issue: ^https://github.com/.*$
549552

550553
# # Safety Analysis FMEA
551554
feat_saf_fmea:
552555
title: FMEA
553556
prefix: feat_saf_fmea__
554557
mandatory_options:
555-
id: ^gd_guidl__fault_models__[0-9a-z_]*$
558+
id: ^feat_saf_fmea__[0-9a-z_]+$
556559
violation_id: ^.*$
557560
violation_cause: ^.*$
558-
mitigation_issue: ^https://github.com/.*$
559561
sufficient: ^(yes|no)$
560562
status: ^(valid|invalid)$
561-
mandatory_links:
562-
mitigates: ^(feat_req__.*|aou_req__.*|)$
563+
mandatory_links:
564+
mitigates: ^(feat_req__.*|aou_req__.*)$
563565
verifies: ^feat_arc_dyn__[0-9a-z_]*$
566+
optional_links:
567+
mitigation_issue: ^https://github.com/.*$
564568

565569
comp_saf_fmea:
566570
title: FMEA
567571
prefix: comp_saf_fmea__
568572
mandatory_options:
569-
id: ^gd_guidl__fault_models__[0-9a-z_]*$
573+
id: ^comp_saf_fmea__[0-9a-z_]+$
570574
violation_id: ^.*$
571575
violation_cause: ^.*$
572-
mitigation_issue: ^https://github.com/.*$
573576
sufficient: ^(yes|no)$
574-
argument: ^.+$
575577
status: ^(valid|invalid)$
576-
mandatory_links:
577-
mitigates: ^(comp_req__.*|aou_req__.*|)$
578+
mandatory_links:
579+
mitigates: ^(comp_req__.*|aou_req__.*)$
578580
verifies: ^comp_arc_dyn__[0-9a-z_]*$
581+
optional_links:
582+
mitigation_issue: ^https://github.com/.*$
579583

580584
# Extra link types, which shall be available and allow need types to be linked to each other.
581585
# We use a dedicated linked type for each type of a connection, for instance from
@@ -653,6 +657,10 @@ needs_extra_links:
653657
mitigates:
654658
incoming: mitigated by
655659
outgoing: mitigates
660+
661+
verifies:
662+
incoming: verified by
663+
outgoing: verifies
656664
##############################################################
657665
# Graph Checks
658666
# The graph checks focus on the relation of the needs and their attributes.
@@ -701,4 +709,3 @@ graph_checks:
701709
condition: safety == ASIL_B
702710
check:
703711
mitigates: safety != QM
704-

src/extensions/score_metamodel/tests/rst/graph/test_metamodel_graph.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
:safety: ASIL_D
3434
:status: valid
3535

36+
3637
.. Positive Test: Child requirement QM. Parent requirement has the correct related safety level. Parent requirement is `QM`.
3738
#EXPECT-NOT: feat_req__child__1: parent need `feat_req__parent__QM` does not fulfill condition `safety == QM`.
3839

src/extensions/score_metamodel/tests/rst/options/test_options_options.rst

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,25 @@
6868
.. stkh_req:: Parent requirement
6969
:id: stkh_req__abcd
7070

71+
.. List of elements which an attribute safety. Preparation of a test that actually could be need to ensure that ASIL_D is not used.
72+
.. doc__
73+
.. stkh_req__
74+
.. feat_req__
75+
.. comp_req__
76+
.. tool_req__
77+
.. aou_req__
78+
.. feat_arc_sta__
79+
.. feat_arc_dyn__
80+
.. logic_arc_int__
81+
.. logic_arc_int_op__
82+
.. comp_arc_sta__
83+
.. comp_arc_dyn__
84+
.. real_arc_int__
85+
.. real_arc_int_op__
86+
.. dd_sta__
87+
.. dd_dyn__
88+
.. sw_unit__
89+
7190
7291
.. Test if the `sufficient` option for Safety Analysis (FMEA and DFA) follows the pattern `^(yes|no)$`
7392
#EXPECT: feat_saf_fmea__test__bad_1.sufficient (QM): does not follow pattern `^(yes|no)$`.
@@ -159,3 +178,36 @@
159178
.. comp_saf_dfa:: This is a test
160179
:id: comp_saf_dfa__test__15
161180
:sufficient: no
181+
182+
.. Test that the `sufficient` option is case sensitive and does not accept values other than `yes` or `no`
183+
#EXPECT: feat_saf_fmea__test__bad_16.sufficient (yEs): does not follow pattern `^(yes|no)$`.
184+
185+
.. feat_saf_fmea:: This is a test
186+
:id: feat_saf_fmea__test__bad_16
187+
:sufficient: yEs
188+
189+
190+
191+
.. comp_req:: Child requirement ASIL_B
192+
:id: comp_req__child__ASIL_B
193+
:safety: ASIL_B
194+
:status: valid
195+
196+
197+
.. Negative Test: Linked to a non-allowed requirement type.
198+
#EXPECT: feat_saf_fmea__child__25.mitigates (['comp_req__child__ASIL_B']): does not follow pattern `^(feat_req__.*|aou_req__.*)$`.
199+
200+
.. feat_saf_fmea:: Child requirement 25
201+
:id: feat_saf_fmea__child__25
202+
:safety: ASIL_B
203+
:status: valid
204+
:mitigates: comp_req__child__ASIL_B
205+
206+
.. Negative Test: Linked to a non-allowed requirement type.
207+
#EXPECT: feat_saf_fmea__child__26.verifies (['comp_req__child__ASIL_B']): does not follow pattern `^feat_arc_dyn__[0-9a-z_]*$`.
208+
209+
.. feat_saf_fmea:: Child requirement 26
210+
:id: feat_saf_fmea__child__26
211+
:safety: ASIL_B
212+
:status: valid
213+
:verifies: comp_req__child__ASIL_B

0 commit comments

Comments
 (0)