-
Notifications
You must be signed in to change notification settings - Fork 4
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
Template for requirements #119
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Hadrian Zbarcea <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems there may be some confusion about the intent of this task, so I'd like to clarify a few points.
It's considered good practice to reference the issue or action that a PR addresses. This helps others understand the context and purpose of the PR, improves record-keeping, and clearly distinguishes related or alternative solutions.
For example, assuming this PR is a follow-up to an action from the LWS WG 2025-01-27 meeting, it should state something like:
"Resolves ACTION to define a requirements template for the lws-ucs repository."
If that's the intention, I don't believe this PR aligns with the ACTION's goal. The template proposed here resembles a template for conformance clauses in a specification, which differs from a template to help derive functional and non-functional requirements from use cases - what the ACTION is meant to address.
(This ACTION arose because issues referenced in #117 presented requirements framed as use cases without linking back to the actual use cases.)
Solution-centric references have no place in a UCR document.
Ensure that functional/non-functional requirements are traceable back to their corresponding use cases. Requirements in a specification respond to these, with conformance clauses representing possible solutions - there can be multiple solutions to the same requirements in a UCR document.
For reference, see:
- https://www.w3.org/TR/ldp-ucr/
- https://www.w3.org/TR/did-use-cases/
- https://solid.github.io/notifications-panel/notifications-ucr (focus on the structure, not the content)
- ...
Note how the last two include a Requirements Matrix for clarity.
Thanks for your thoughts @csarven. I am aware of the documents you link, I reviewed them last year. Out of all three, I like ldp-ucr, the most. But even that uses the term "shall" in the requirements extensively and pretty much follows the format I chose. I struggled a bit with with the term "component" and I was sure somebody will come up with a better phrasing. I am looking forward to the conversations in the group to best decide how to phrase this and everything will flow from there. I also liked the dependency diagram in did-use-cases and plan to incorporate something like that in this doc. |
+1
the LDP-UCR document uses the term "shall" indeed, but without any reference to [RFC2119]. It is used in lowercase, and not contrasted with must / should / may ... |
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | ||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and | ||
"OPTIONAL" in this document are to be interpreted as described in | ||
RFC 2119. | ||
|
||
[RFC2119](https://www.rfc-editor.org/rfc/rfc2119.txt), [RFC8174](https://www.rfc-editor.org/rfc/rfc8174.txt) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | |
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and | |
"OPTIONAL" in this document are to be interpreted as described in | |
RFC 2119. | |
[RFC2119](https://www.rfc-editor.org/rfc/rfc2119.txt), [RFC8174](https://www.rfc-editor.org/rfc/rfc8174.txt) | |
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | |
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and | |
"OPTIONAL" in this document are to be interpreted as described in | |
RFC 2119. | |
[RFC2119](https://www.rfc-editor.org/rfc/rfc2119.txt), [RFC8174](https://www.rfc-editor.org/rfc/rfc8174.txt) |
As discuss, requirements are not conformance clauses (and anyway, the UCR document is non-normative)
--- | ||
name: Requirement | ||
about: Use this template to propose an LWS requirement. | ||
title: "[REQ] <<brief description of requirement>>" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we have two "sub-tags" for functional / non-functional requirements?
e.q. [REQ-F] / [REQ-NF]
NOTE | ||
<< additional notes>> | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Supporting use-case(s): | |
- [link to use-case issue] | |
- ... |
**A [component],** | ||
**[MUST,SHOULD,MAY...] <<description or requirement>>** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- as suggested, I believe that normative language must not be used here
- the proposal below also aims at giving a little more guidance (my 2¢)
**A [component],** | |
**[MUST,SHOULD,MAY...] <<description or requirement>>** | |
[component / actor] shall [behave like this | have that property] |
No description provided.