add stakeholder need - #1243
Conversation
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Co-authored-by: Chuck Wolber <chuckwolber@gmail.com> Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
|
@nicpappler @chuckwolber @kestewart Here is the update based on Friday's june 5 meeting. Thoughts? |
Co-authored-by: Arthit Suriyawongkul <arthit@gmail.com> Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
|
We may like to update the description of 2nd paragraph of
|
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
| @@ -0,0 +1,19 @@ | |||
| SPDX-License-Identifier: Community-Spec-1.0 | |||
|
|
|||
| # statement | |||
There was a problem hiding this comment.
I'm a bit worried this name will be overloaded (others may want to use the term), may want something a bit more specific as a property name.
There was a problem hiding this comment.
Why can't "Need" which is a statement cover this this?
| - republishedBy: Designates a `from` /Security/Vulnerability's details were tracked, aggregated, and/or enriched to improve context (i.e. NVD) by each `to` Agent. | ||
| - resolved: The `to` /SupplyChain/OutOfSpecAction is resolved in the `from` /SupplyChain/ResolutionAction. | ||
| - runsOn: The `from` Element (the instructions) runs on each `to` /Hardware/Hardware (processing element), during a LifecycleScopeType period. | ||
| - satisfies: The `from` Requirement satisfies `to` /FunctionalSafety/Need. Note: The Requirement is not generally intended to singularly satisfy a particular Need. It is more likely that a set of higher level Requirements is required to achieve a reasonable satisfaction of an expressed /FunctionalSafety/Need. |
There was a problem hiding this comment.
I'm thinking may be "satisfies" may be useful beyond requiement class. Specification for example.
| @@ -0,0 +1,28 @@ | |||
| SPDX-License-Identifier: Community-Spec-1.0 | |||
|
|
|||
| # DesignRelationship | |||
There was a problem hiding this comment.
NAK
Not completely clear why we need to artifically restrict this down. The design elements may be in core, FUSA, software, hardware, data, etc.
We've already discussed having status as a property on a requirement, putting it on the relationship will just confuse things.
Let's keep avoid commiting this for now and let folks use standard files for capturing information - we'll need this as a transition from 3.0 where folks are using SPDX already.
Would rather see this modeled as a "RelationshipType" than a new class.
There was a problem hiding this comment.
We agreed in the call that a Design is just a form of Requirement. What we need to document in a different setting is "Decision". We did not even start the discussion of decision. Discussed this with both the Elisa and the Zephyr community, all agree that Design is just a form of Requirement (or Specification, if you use a Bundle to group these design Requirements to be used in a document). Lifecycle management tools and process descriptions out there also treat the design as something that is created the same way as requirements, just with describing the requirements of a component (e.g. a set of .c/h. files, a function, a single .c file) instead of the (e.g. functional) requirements to it.
nicpappler
left a comment
There was a problem hiding this comment.
This has not been discussed this way in the safety calls, it does not always reflect, how the Needs concept is used in engineering, and it makes things too complicated.
| @@ -0,0 +1,28 @@ | |||
| SPDX-License-Identifier: Community-Spec-1.0 | |||
|
|
|||
| # DesignRelationship | |||
There was a problem hiding this comment.
We agreed in the call that a Design is just a form of Requirement. What we need to document in a different setting is "Decision". We did not even start the discussion of decision. Discussed this with both the Elisa and the Zephyr community, all agree that Design is just a form of Requirement (or Specification, if you use a Bundle to group these design Requirements to be used in a document). Lifecycle management tools and process descriptions out there also treat the design as something that is created the same way as requirements, just with describing the requirements of a component (e.g. a set of .c/h. files, a function, a single .c file) instead of the (e.g. functional) requirements to it.
|
|
||
| ## Description | ||
|
|
||
| A Need represents the high-level intent expressed by Role during the Needs Analysis phase of the life cycle. It defines the problem space or desired capability before it is translated into verifiable system requirements. |
There was a problem hiding this comment.
I would not call it "Need Analysis Phase". There is no specific need analysis phase, this kind of analysis happens whenever one want to specify the requirements to a component. E.g. if your system consists of a microconcoller (that already comes with its abstraction layer etc.) and you have the application software, you still want an RTOS. Here you take what you need to integrate your uC, its abstraction and your application software together - so you specify the needs you have on an RTOS. This usually happens when you specify your system/software architecture. But for sure there are other architectural or design phases in your system (or service) where you specify what you need.
|
|
||
| A Need represents the high-level intent expressed by Role during the Needs Analysis phase of the life cycle. It defines the problem space or desired capability before it is translated into verifiable system requirements. | ||
|
|
||
| This entity captures the natural language expression of the Need via the statement property, ensuring the Role's voice is preserved in the model. Role Needs are distinct from System Requirements; while requirements must be technically verifiable, needs express the underlying value or necessity that justifies the system's existence. Traceability from derived requirements back to Needs is essential to ensure alignment with stakeholder expectations with the RelationshipType 'satisfies'. |
There was a problem hiding this comment.
Needs also must be verifiable, otherwise you will get into contractual issues. A tier 1 supplier has to prove that they met all the needs the OEM has specified for them to implement.
|
|
||
| The statement property captures the natural language articulation of a Need during the Needs Analysis phase. It represents the primary input for the Requirements Engineering process, preserving the role's original intent before transformation into verifiable system requirements. | ||
|
|
||
| While derived requirements must adhere to strict verification criteria, the statement within a Need may initially be qualitative or subjective. This property serves as the foundational traceability link, ensuring that downstream system capabilities can be traced back to the original role intent. The use of xsd:string accommodates the unstructured nature of early elicitation, allowing for the recording of raw role input prior to refinement. |
There was a problem hiding this comment.
I also don't get why we need this "statement" - the description sounds very much like a "comment".
| @@ -0,0 +1,17 @@ | |||
| SPDX-License-Identifier: Community-Spec-1.0 | |||
|
|
|||
There was a problem hiding this comment.
We already use status within Requirement now, which was agreed with and requested by the safety communities (Elisa, Zephyr, Xen) - we also discussed this in the safety call this way. It is important we do not have a conflict here.
| @@ -0,0 +1,21 @@ | |||
| SPDX-License-Identifier: Community-Spec-1.0 | |||
|
|
|||
| # StatusType | |||
There was a problem hiding this comment.
Same request to not create a conflict with what we agreed on in the Requirement status discussion.
| - hasHost: The `from` /Build/Build was run on the `to` Element during a LifecycleScopeType period (e.g. the host that the build runs on). | ||
| - hasInput: The `from` /Build/Build, DefinedProcess or Action element has each `to` Element as an input. | ||
| - hasMetadata: Every `to` Element is metadata about the `from` Element (`from` hasMetadata `to`). | ||
| - hasNeed: The `from` Role has the `to` /FunctionalSafety/Need. |
There was a problem hiding this comment.
I do not agree that a Role is the only thing that can have a "Need". Sometime you have a Need, that results from an assumption of another system component. It can also come from a contract. And in these cases you would have to make up a Role, just to satisfy this statement. I'd suggest to not use "Role", but "Element".
This is a stakeholder need class and definition for review
added hasStakeholderNeed, requirementRefinesStakeholderNeed Relationship Type
added class of StakeholderNeed