Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: initial draft of requirement process #377

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .vscode/restructuredtext.code-snippets
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"stkh_req_directive": {
"prefix": "stkh_req_t",
"body": [
".. stkh_req:: $1",
" :id: stkh_req__$2",
" :reqtype: ${3|Functional, Interface, Process, Legal, Non-Functional|}",
" :safety: ${4|QM, ASIL_B, ASIL_D|}",
" :rationale: $5",
" :status: ${6|valid,invalid|}\n",
" $7"
],
"description": "Generate an stakeholder directive need with all needed option types",
},
"feat_req_directive": {
"prefix": "feat_req_t",
"body": [
".. feat_req:: $1",
" :id: feat_req__$2",
" :reqtype: ${3|Functional, Interface, Process, Legal, Non-Functional|}",
" :security: ${4|YES,NO|}",
" :safety: ${5|QM, ASIL_B, ASIL_D|}",
" :satisfies: stkh_req__$6",
" :status: ${7|valid,invalid|}\n",
" $8"
],
"description": "Generate an feature directive need with all needed option types",
},
"comp_req_directive": {
"prefix": "comp_req_t",
"body": [
".. comp_req:: $1",
" :id: comp_req__$2",
" :reqtype: ${3|Functional, Interface, Process, Legal, Non-Functional|}",
" :security: ${4|YES,NO|}",
" :safety: ${5|QM, ASIL_B, ASIL_D|}",
" :satisfies: feat_req__$6",
" :status: ${7|valid,invalid|}\n",
" $8"
],
"description": "Generate an component requirement directive need with all needed option types",
},
"aou_directive": {
"prefix": "aou_req_t",
"body": [
".. aou_req:: $1",
" :id: aou_req__$2",
" :reqtype: ${3|Functional, Interface, Process, Legal, Non-Functional|}",
" :security: ${4|YES,NO|}",
" :safety: ${5|ASIL_B, ASIL_D|}",
" :satisfies: $6",
" :status: ${7|valid,invalid|}\n",
" $8"
],
"description": "Generate an AoU directive need with all needed option types",
},
}
2 changes: 2 additions & 0 deletions docs/process/guidance/branch/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
Branches
##########

.. _branch_naming:

*******************
Naming Convention
*******************
Expand Down
2 changes: 1 addition & 1 deletion docs/process/guidance/general/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ can be in a different order.
<feature_name>/ -> Folder containing all sub-folders corresponding to one feature and the contribution request [WP_CONT_REQUEST]
docs/ -> Documentation of the feature consisting of ...
architecture/ -> ... Feature architecture [WP_FEATURE_ARCHITECTURE].
requirements/ -> ... Feature requirements [WP_FEATURE_REQ].
requirements/ -> ... Feature requirements [wp__requirements__feat].
safety_analysis/ -> ... Safety analysis on feature level [WP_FEATURE_SAFETY_ANALYSES]
safety_planning/ -> ... the feature specific safety workproducts planning
verification/ -> ... Feature verification report (reporting all feature verifications) [WP_PLATFORM_SW_VERIFICATION_REPORT]
Expand Down
2 changes: 2 additions & 0 deletions docs/process/guidance/git/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

.. _git_guidelines:

################
Git Guidelines
################
Expand Down
1 change: 0 additions & 1 deletion docs/process/guidance/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,3 @@
feature_flags/index.rst
general/index.rst
contribution_request/index.rst
requirements/index.rst
25 changes: 0 additions & 25 deletions docs/process/guidance/requirements/index.rst

This file was deleted.

119 changes: 0 additions & 119 deletions docs/process/guidance/requirements/requirement_template.rst

This file was deleted.

13 changes: 13 additions & 0 deletions docs/process/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,19 @@ Process Model
The SCORE process model is described by workflows, executed by roles and is creating work products.
Workflow activities are supported by guidances.


Process Areas
~~~~~~~~~~~~~

The process description for the SCORE project (e.g. requirements, architecture, safety management) can be found here:

.. toctree::
:maxdepth: 1
:glob:

process_areas/requirements_engineering/index.rst


Process Role definition
~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
..
# *******************************************************************************
# Copyright (c) 2025 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

.. _requirement inspection checklist:

Requirement Inspection Checklist
================================

.. gd_chklst:: Requirements Inspection Checklist Template
:id: GD_CHKLST__req__inspection
:status: valid
:tags: requirements_engineering

**Purpose**
The purpose of this requirement inspection template is to collect the topics to be checked during requirements inspection.
It will be filled out within the github "inspection" pull request review of every requirement type.

**Checklist**

.. list-table:: Requirement Inspection Checklist
:header-rows: 1
:widths: 10,30,50,6,6,8

* - Review ID
- Acceptance Criteria
- Guidance
- Passed
- Remarks
- Issue link
* - REQ_01_01
- Is the requirement sentence template used?
- see :need:`GD_TEMP__req__formulation`, this includes the use of "shall".
-
-
-
* - REQ_02_01
- Is the requirement description *comprehensible* ?
- If you think the requirement is hard to understand, comment here.
-
-
-
* - REQ_02_02
- Is the requirement description *unambiguous* ?
- Especially search for "weak words" like "about", "etc.", "relevant" and others (see the internet documentation on this). This check shall be supported by tooling.
-
-
-
* - REQ_02_03
- Is the requirement description *atomic* ?
- A good way to think about this is to consider if the requirement may be tested by one (positive) test case or needs more of these. The sentence template should also avoid being non-atomic already. Note that there are cases where also non-atomic requirements are the better ones, for example if those are better understandable.
-
-
-
* - REQ_02_04
- Is the requirement description *feasible* ?
- Expectation is that at the time of the inspection the requirement has already some implementation. This can be checked via traces, but also :need:`GD_REQ__req__attr_impl` shows this. In case the requirement is not mature enough at the time of inspection (i.e. not implemented at least as "proof-of-concept"), a development expert should be invited to the Pull-Request review to explicitly check this item.
-
-
-
* - REQ_02_05
- Is the requirement description *independent from implementation* ?
- This checkpoint should improve requirements definition in the sense that the "what" is described and not the "how" - the latter should be described in architecture/design derived from the requirement. But there can also be a good reason for this, for example we would require using a file format like JSON and even specify the formatting standard already on stakeholder requirement level because we want to be compatible. A finding in this checkpoint does not mean there is a safety problem in the requirement.
-
-
-
* - REQ_03_01
- For stakeholder requirements: Is the *rationale* correct?
- Rationales explain why the top level requirements were invented. Do those cover the requirement?
-
-
-
* - REQ_03_02
- For other requirements: Is the *linkage to the parent requirement* correct?
- Linkage to correct levels and ASIL attributes is checked automatically, but it needs checking if the child requirement implements (at least) a part of the parent requirement.
-
-
-
* - REQ_04_01
- Is the requirement *internally and externally consistent*?
- Does the requirement contradict other requirements within the same or higher levels? One may restrict the search to the feature for component requirements, for features to other features using same components.
-
-
-
* - REQ_05_01
- Do the software requirements consider *timing constraints of the parent requirement*?
- This bullet point encourages to think about timing constraints even if those are not explicitly mentioned in the parent requirement. If the reviewer of a requirement already knows or suspects that the implementation will be time consuming, one should think of the expectation of a "user".
-
-
-
* - REQ_06_01
- Does the Requirement consider *external interfaces*?
- The SW platform's external interfaces (to the user) are defined in the Feature Architecture, so the Feature and Component Requirements should determine the data consumed and set on these interfaces. Are output values completely defined?
-
-
-
* - REQ_07_01
- Is the *ASIL Attribute* set correctly?
- Derived requirements are checked automatically, see :need:`GD_REQ__req__linkage_safety`. But for the top level requirements this needs to be checked for correctness. Also AoU from external components need check for correct ASIL as those are the "origin" of safety requirements towards the SW platform.
-
-
-
* - REQ_07_02
- Is the attribute *security* set correctly?
- Stakeholder requirements security attribute should be set based on Threat Analysis and Risk Assessment (TARA) (process is TBD). Checklist item is supported by automated check: "Every requirement which satisfies a requirement with security attribute set to YES inherits this". Expectation is that the feature/component requirements/architecture may also be subject to a Software Security Criticality Analysis (process is TBD).
-
-
-
* - REQ_08_01
- Is the requirement *verifiable*?
- Expectation is that at the time of the inspection already tests are created for the requirement. This can be checked via traces, but also :need:`GD_REQ__req__attr_test_covered` shows this. In case the requirement is not mature enough at the time of inspection (i.e. missing test cases), a test expert should be invited to the Pull-Request review to explicitly check this item.
-
-
-


Loading