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

doc: safety: Requirment repo and guidelines #71953

Merged
merged 1 commit into from
Jun 13, 2024

Conversation

simhein
Copy link
Collaborator

@simhein simhein commented Apr 25, 2024

Add documentation to point to the requirements repository and give the contributors a guideline how to add requirements to that repository.

@simhein simhein force-pushed the doc_safety_req branch 2 times, most recently from c504c13 to 1140f41 Compare April 30, 2024 12:16
=========================================
* System Requirements

.. note::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do you need the note here? drop it, should be just a normal paragraph


* Software Requirements

.. note::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto

@simhein simhein marked this pull request as ready for review May 7, 2024 13:48
System requirements describe the behaviour of the Zephyr RTOS (= the system here).
They describe the functionality of the Zephyr RTOS of a very high level point of view,
without going into details of the functionality itself.
The target of the system requirements is to get an overview of the included features of

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The target of the system requirements is to get an overview of the included features of
The target of the system requirements is to get an overview of the currently implemented features of

doc/safety/safety_requirements.rst Show resolved Hide resolved
`EARS
<https://alistairmavin.com/ears/>`__ Syntax for writing requirements.
But we also accept contributions in other formats as long as the characteristics
of a requirement from above are met.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Elevate note to a section:

Syntax

  • Use of a recognized Requirements Syntax is recommended.
  • EARS <https://alistairmavin.com/ears/> is a good reference.
    Particularly if you are unfamiliar with requirements writing.
  • Other formats accepted as long as the characteristics
    of a requirement from above are met.

.. note::
If you want to contribute to the requirements effort but don't know how to write requirements
or if you are new to writing requirements, we recommend to look into the
EARS <https://alistairmavin.com/ears/>__ Syntax for writing requirements.
But we also accept contributions in other formats as long as the characteristics
of a requirement from above are met.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could not figure out how to replace multiple lines.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could not figure out how to replace multiple lines.

no problem I got your point here.

@simhein simhein linked an issue May 14, 2024 that may be closed by this pull request
5 tasks
@simhein simhein requested a review from a team May 14, 2024 11:43
Guidelines
**********
Following are the guidelines for the requirements repository and what the safety committee
expects when new requirements are added to the repository

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: the word 'new' might be misleading as the previous paragraph made the explicit statement that no new requirements are to be created. I think "when requirements are added to the repository is" is sufficient


Scope
=====
The scope of the requirements are the **KERNEL** functionality.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

polish: "are the KERNEL functionalities" or "is the KERNEL functionality

doc/safety/safety_requirements.rst Show resolved Hide resolved
doc/safety/safety_requirements.rst Show resolved Hide resolved

#. Don't add a requirement UID filed for new requirements
#. After finishing work on the new Requirements execute strictDoc manage auto-uid
#. Add linking of the requirements with the new distributed UIDs

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue: This step isn't clear to me. Where are links needed and what exactly do you mean with "new distributed UIDs?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recall the discussion on how to manage UIDs and do not recall the details.
Is there a reference in the StrictDoc "Users Guide" covering this? I hope.
Is there a StrictDoc "Users Guide"?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue: This step isn't clear to me. Where are links needed and what exactly do you mean with "new distributed UIDs?

with links the links between requirements are meant. Added the missing information.
I mean with new distributed UIDs the UIDs which are generated by the tool itself.

I recall the discussion on how to manage UIDs and do not recall the details. Is there a reference in the StrictDoc "Users Guide" covering this? I hope. Is there a StrictDoc "Users Guide"?

The discussion was on the mailing list, how to manage UIDs. This was actual my proposal how to handle UIDs there was no objections against it and no counter proposal. The proposal uses commands which are provided and handled by the stricDoc tool. The user guide can be found here: https://strictdoc.readthedocs.io/en/stable/strictdoc_01_user_guide.html


Requirement Types:
==================
* Functional

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Perhaps elaborate a bit on what makes requirements functional vs non-functional. I guess the main distinction is whether they can be verified by testing or not, see my comment above

doc/safety/safety_requirements.rst Show resolved Hide resolved
Characteristics of a good requirement:
======================================
* Unambiguous
* Testable (verifiable)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick: Testable is one verification strategy but not all verification happens through testing. IMHO make this read Verifiable (testable) or even Verifiable (e.g. testable for functional requirements)

doc/safety/safety_requirements.rst Show resolved Hide resolved
doc/safety/safety_requirements.rst Outdated Show resolved Hide resolved

Scope
=====
The scope of the requirements are the **KERNEL** functionalities.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The scope of the requirements are the **KERNEL** functionalities.
The scope of the requirements covers the KERNEL functionalities.

Comment on lines 8 to 11
The safety committee drive the effort to gather requirements to reflect the **actual** state of the
implementation in requirements form, because of the route 3s approach of the projects safety
effort. It is **NOT** the intention to create a new set of requirements to add them into the project
to request new features.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The safety committee drive the effort to gather requirements to reflect the **actual** state of the
implementation in requirements form, because of the route 3s approach of the projects safety
effort. It is **NOT** the intention to create a new set of requirements to add them into the project
to request new features.
The safety committee leads the effort to gather requirements that reflect the **actual** state of the
implementation, following the route 3s approach of the project's safety effort. The goal is **NOT**
to create new requirements to request additional features for the project.

Comment on lines 20 to 21
Following are the guidelines for the requirements repository and what the safety committee
expects when requirements are added to the repository
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Following are the guidelines for the requirements repository and what the safety committee
expects when requirements are added to the repository
Below are the guidelines for the requirements repository and the expectations of the safety
committee when adding requirements to the repository.


Consistency
===========
Consistency across all requirements. The language and choice of words shall be consistent.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Consistency across all requirements. The language and choice of words shall be consistent.
Maintain consistency across all requirements. The language and choice of words shall be consistent.

* System Requirements:

System requirements describe the behaviour of the Zephyr RTOS (= the system here).
They describe the functionality of the Zephyr RTOS of a very high level point of view,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
They describe the functionality of the Zephyr RTOS of a very high level point of view,
They describe the functionality of the Zephyr RTOS from a high-level perspective,

Comment on lines 34 to 37
* System Requirements:

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* System Requirements:
System Requirements

Comment on lines 44 to 45
* Software Requirements:

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Software Requirements:
Software Requirements

Comment on lines 53 to 56
For the requirements management the tool `strictDoc
<https://strictdoc.readthedocs.io/en/stable/>`__
is used, therefore the UID (Unique identifier) handling shall be handled by the tool and this can be achived by Following
handling:
Copy link
Collaborator

@kartben kartben May 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For the requirements management the tool `strictDoc
<https://strictdoc.readthedocs.io/en/stable/>`__
is used, therefore the UID (Unique identifier) handling shall be handled by the tool and this can be achived by Following
handling:
The tool used to manage requirements, strictDoc <https://strictdoc.readthedocs.io/en/stable/>_, is
responsible for handling the Unique Identifier (UID) associated with each requirement. To manage
UIDs, follow these steps:

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it intended to add the ``` after steps? This change cause doc build errors.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely not intended, sorry!

is used, therefore the UID (Unique identifier) handling shall be handled by the tool and this can be achived by Following
handling:

#. Don't add a requirement UID filed for new requirements
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#. Don't add a requirement UID filed for new requirements
#. Don't fill in the requirement UID when creating new requirements

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this case the complete filed don't need to be added for a requirement,

Comment on lines 109 to 112
* `EARS
<https://alistairmavin.com/ears/>`__ is a good reference.
Particularly if you are unfamiliar with requirements writing.
* Other formats accepted as long as the characteristics
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make these two bullet points sub-bullet points of "Use of a recognized..."

tobiaskaestner
tobiaskaestner previously approved these changes May 24, 2024
doc/safety/safety_requirements.rst Show resolved Hide resolved
doc/safety/safety_requirements.rst Outdated Show resolved Hide resolved

Introduction
************
The safety committee drive the effort to gather requirements to reflect the **actual** state of the

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

praise:

Suggested change
The safety committee drive the effort to gather requirements to reflect the **actual** state of the
The safety committee drives the effort to gather requirements to reflect the **actual** state of the

Introduction
************
The safety committee drive the effort to gather requirements to reflect the **actual** state of the
implementation in requirements form, because of the route 3s approach of the projects safety

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: route 3S is a 61508 specific term, perhaps worth adding a comment or reference to the glossary. I am pretty sure not everybody will immediately know what this means.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will ad a linkt to : https://docs.zephyrproject.org/latest/safety/safety_overview.html#general-safety-scope where the route 3s is described.

@simhein
Copy link
Collaborator Author

simhein commented Jun 3, 2024

@kartben can you take another look, all comments should have been addressed

@kartben
Copy link
Collaborator

kartben commented Jun 10, 2024

pushed minor updates to fix formatting for definition list as I figured it would be quicker than another roundtrip of request for changes, Almost messed up your PR in the process though, sorry @simhein :)

LGTM, thanks!

Add documentation to point to the requirements repository
and give the contributors a guideline how to add requirements
to that repository.

Signed-off-by: Simon Hein <Shein@baumer.com>
@simhein
Copy link
Collaborator Author

simhein commented Jun 10, 2024

pushed minor updates to fix formatting for definition list as I figured it would be quicker than another roundtrip of request for changes, Almost messed up your PR in the process though, sorry @simhein :)

LGTM, thanks!

Thanks for taking a look again and saving the roundtrip 😄

@simhein
Copy link
Collaborator Author

simhein commented Jun 10, 2024

@nashif and @tobiaskaestner can you have another look as well?

Copy link

@tobiaskaestner tobiaskaestner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, whatever isn't addressed in this PR we can follow up within subsequent PRs.

@nashif nashif merged commit 02577af into zephyrproject-rtos:main Jun 13, 2024
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Documentation Safety Tracked by the Safety WG
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

Define how to add new Requierements
5 participants