Skip to content

Commit c3ceb64

Browse files
Add machine-readable module verification report need type
Adds the mod_ver_report need type to the metamodel with an evidence extra link, documents the tool requirement, and adds option tests. Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent ad9844e commit c3ceb64

3 files changed

Lines changed: 138 additions & 0 deletions

File tree

docs/internals/requirements/requirements.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ This section provides an overview of current process requirements and their clar
4646
Req, 'tool_req__docs' in id and implemented == "YES" and "Requirements" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Requirements" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Requirements" in tags and status == "valid", 'tool_req__docs' in id and "Requirements" in tags and status != "valid"
4747
Arch, 'tool_req__docs' in id and implemented == "YES" and "Architecture" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Architecture" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Architecture" in tags and status == "valid", 'tool_req__docs' in id and "Architecture" in tags and status != "valid"
4848
DDesign, 'tool_req__docs' in id and implemented == "YES" and "Detailed Design & Code" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Detailed Design & Code" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Detailed Design & Code" in tags and status == "valid", 'tool_req__docs' in id and "Detailed Design & Code" in tags and status != "valid"
49+
Verif, 'tool_req__docs' in id and implemented == "YES" and "Verification Evidence" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Verification Evidence" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Verification Evidence" in tags and status == "valid", 'tool_req__docs' in id and "Verification Evidence" in tags and status != "valid"
4950
TVR, 'tool_req__docs' in id and implemented == "YES" and "Tool Verification Reports" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Tool Verification Reports" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Tool Verification Reports" in tags and status == "valid", 'tool_req__docs' in id and "Tool Verification Reports" in tags and status != "valid"
5051
Other, 'tool_req__docs' in id and implemented == "YES" and "Process / Other" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Process / Other" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Process / Other" in tags and status == "valid", 'tool_req__docs' in id and "Process / Other" in tags and status != "valid"
5152
SftyAn, 'tool_req__docs' in id and implemented == "YES" and "Safety Analysis" in tags and status == "valid", 'tool_req__docs' in id and implemented == "PARTIAL" and "Safety Analysis" in tags and status == "valid", 'tool_req__docs' in id and implemented == "NO" and "Safety Analysis" in tags and status == "valid", 'tool_req__docs' in id and "Safety Analysis" in tags and status != "valid"
@@ -820,6 +821,28 @@ Testing
820821
Docs-AS-Code shall provide a way to gather statistics on linkages to implementation(source_code_links) & tests(testlink) for all needs.
821822
It shall also be possible to filter these by type and use the provided statistics in the documentation (via diagrams drawn from it etc.)
822823

824+
🔎 Verification Evidence
825+
########################
826+
827+
.. tool_req:: Support machine-readable module verification reports
828+
:id: tool_req__docs_verification_report_need
829+
:tags: Verification Evidence
830+
:implemented: YES
831+
:version: 1
832+
:satisfies: gd_req__verification_reporting[version==1]
833+
:parent_covered: NO: process wording is broader than the currently modeled report artifact.
834+
835+
Docs-as-Code shall support a machine-readable module verification report need type.
836+
837+
The need type shall:
838+
839+
* use ``mod_ver_report`` as directive type
840+
* classify the report by ``safety``, ``security``, ``status`` and ``verification_method``
841+
* link the report to the verified module via ``belongs_to``
842+
* allow links to contained verification evidence via ``contains``
843+
* allow links to covered artifacts via ``covers``
844+
* allow links to backing documents or work products via ``evidence`` and ``realizes``
845+
823846
🧪 Tool Verification Reports
824847
############################
825848

src/extensions/score_metamodel/metamodel.yaml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -933,6 +933,39 @@ needs_types:
933933
fully_verifies: ANY
934934
partially_verifies: ANY
935935

936+
# req-Id: tool_req__docs_verification_report_need
937+
mod_ver_report:
938+
title: Module Verification Report
939+
prefix: mod_vrep__
940+
mandatory_options:
941+
# req-Id: tool_req__docs_common_attr_safety
942+
safety: ^(QM|ASIL_B)$
943+
# req-Id: tool_req__docs_common_attr_security
944+
security: ^(YES|NO)$
945+
# req-Id: tool_req__docs_common_attr_status
946+
status: ^(valid|invalid)$
947+
# req-Id: tool_req__docs_verification_report_need
948+
verification_method: ^.*$
949+
optional_options:
950+
requirements_coverage_percent: ^(100|[1-9]?[0-9])$
951+
structural_coverage_percent: ^(100|[1-9]?[0-9])$
952+
branch_coverage_percent: ^(100|[1-9]?[0-9])$
953+
verdict: ^(pass|fail|open)$
954+
report_version: ^.*$
955+
release_baseline: ^.*$
956+
mandatory_links:
957+
# req-Id: tool_req__docs_verification_report_need
958+
belongs_to: mod
959+
optional_links:
960+
# req-Id: tool_req__docs_verification_report_need
961+
contains: ANY
962+
evidence: ANY
963+
covers: ANY
964+
realizes: workproduct
965+
tags:
966+
- verification_report
967+
parts: 3
968+
936969

937970
# https://eclipse-score.github.io/process_description/main/permalink.html?id=gd_temp__change_decision_record
938971
dec_rec:
@@ -1068,6 +1101,10 @@ needs_extra_links:
10681101
incoming: partially_verified_by
10691102
outgoing: partially_verifies
10701103

1104+
evidence:
1105+
incoming: evidence_for
1106+
outgoing: evidence
1107+
10711108

10721109
##############################################################
10731110
# Graph Checks
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
..
2+
# *******************************************************************************
3+
# Copyright (c) 2026 Contributors to the Eclipse Foundation
4+
#
5+
# See the NOTICE file(s) distributed with this work for additional
6+
# information regarding copyright ownership.
7+
#
8+
# This program and the accompanying materials are made available under the
9+
# terms of the Apache License Version 2.0 which is available at
10+
# https://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# SPDX-License-Identifier: Apache-2.0
13+
# *******************************************************************************
14+
#CHECK: check_options
15+
16+
17+
.. Base architecture and requirement objects used by verification report tests
18+
19+
.. feat:: Verification Feature
20+
:id: feat__verification_feature
21+
:security: YES
22+
:safety: ASIL_B
23+
:status: valid
24+
25+
.. comp:: Verification Component
26+
:id: comp__verification_component
27+
:security: YES
28+
:safety: ASIL_B
29+
:status: valid
30+
:belongs_to: feat__verification_feature
31+
32+
.. mod:: Verification Module
33+
:id: mod__verification_module
34+
:security: YES
35+
:safety: ASIL_B
36+
:status: valid
37+
:includes: comp__verification_component
38+
39+
.. comp_req:: Verification Requirement
40+
:id: comp_req__verification__sample
41+
:reqtype: Functional
42+
:security: YES
43+
:safety: ASIL_B
44+
:status: valid
45+
46+
Requirement text for verification report tests.
47+
48+
49+
.. Valid machine-readable verification report need
50+
#EXPECT-NOT[+2]: does not follow pattern
51+
52+
.. mod_ver_report:: Verification Report Valid
53+
:id: mod_vrep__verification__valid
54+
:safety: ASIL_B
55+
:security: YES
56+
:status: valid
57+
:verification_method: test_and_inspection
58+
:requirements_coverage_percent: 95
59+
:structural_coverage_percent: 90
60+
:branch_coverage_percent: 85
61+
:verdict: pass
62+
:report_version: 1.0.0
63+
:release_baseline: main
64+
:belongs_to: mod__verification_module
65+
:covers: comp_req__verification__sample
66+
67+
68+
.. Invalid verdict value in module verification report
69+
#EXPECT[+2]: mod_vrep__verification__bad_verdict.verdict (pending): does not follow pattern
70+
71+
.. mod_ver_report:: Verification Report Invalid Verdict
72+
:id: mod_vrep__verification__bad_verdict
73+
:safety: ASIL_B
74+
:security: YES
75+
:status: invalid
76+
:verification_method: inspection
77+
:verdict: pending
78+
:belongs_to: mod__verification_module

0 commit comments

Comments
 (0)