Skip to content

add stakeholder need - #1243

Open
stevenc-stb wants to merge 65 commits into
spdx:developfrom
stevenc-stb:stevenc-add-StakeholderNeed
Open

add stakeholder need #1243
stevenc-stb wants to merge 65 commits into
spdx:developfrom
stevenc-stb:stevenc-add-StakeholderNeed

Conversation

@stevenc-stb

Copy link
Copy Markdown
Collaborator

This is a stakeholder need class and definition for review
added hasStakeholderNeed, requirementRefinesStakeholderNeed Relationship Type
added class of StakeholderNeed

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>
@stevenc-stb stevenc-stb added Profile:FuSa FunctionalSafety profile and related matters labels Apr 2, 2026
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Co-authored-by: Chuck Wolber <chuckwolber@gmail.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
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>
@stevenc-stb
stevenc-stb requested review from chuckwolber and kestewart and removed request for chuckwolber June 6, 2026 13:58
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
Signed-off-by: stevenc-stb <steven@smarttalkbeacon.com>
@stevenc-stb

Copy link
Copy Markdown
Collaborator Author

@nicpappler @chuckwolber @kestewart Here is the update based on Friday's june 5 meeting. Thoughts?

Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Comment thread model/FunctionalSafety/Classes/Need.md Outdated
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
Comment thread model/Core/Vocabularies/RelationshipType.md Outdated
stevenc-stb and others added 3 commits June 6, 2026 08:53
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>
@stevenc-stb
stevenc-stb requested a review from bact June 6, 2026 15:13
@bact

bact commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

We may like to update the description of Requirement too, as it refer to "need" and we introduce Need here.

2nd paragraph of Requirement's description:

A requirement element is a distinct unit that defines an expectation, need, behavior, or design intent of an item that either already exists or is to be created in accordance with this requirement.

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>
@stevenc-stb
stevenc-stb marked this pull request as ready for review August 7, 2026 14:35
@@ -0,0 +1,19 @@
SPDX-License-Identifier: Community-Spec-1.0

# statement

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

@kestewart kestewart Aug 7, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 nicpappler left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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'.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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".

@goneall goneall added this to the 3.1-rc3 milestone Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Profile:FuSa FunctionalSafety profile and related matters

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants