Hi Vince,
Thank you for the detailed and thoughtful response — it really helped clarify how one should think about specialization and decomposition as the primary “downstream” mechanisms in SysML v2.
I had a couple of follow‑up thoughts/questions that I’d love your perspective on.
1. Modularity and packages for multi‑level requirements
You mentioned that using package‑level requirement usages (and, more generally, managing requirements across packages) is usually not recommended. I understand the concern about complexity and unintuitive structures, especially when derivation is involved.
That said, coming from a large‑scale systems background, I’ve always seen modularity as one of the strongest advantages. In practice, we often want to:
-
Separate stakeholder / system / subsystem / software requirements into different packages,
-
Allow teams to own and evolve their part of the requirement model independently,
-
Enable reuse or substitution of whole requirement sets.
From that angle, having requirements organized in different packages feels quite natural and even desirable. I’m curious whether your recommendation is mainly about:
-
Avoiding requirement usages at the package level, or
-
A more general caution against distributing requirement hierarchies across packages?
In other words, is the concern more about how the relationships are modeled, rather than about modular packaging itself?
2. RequirementDef vs RequirementUsage (especially at the top level)
Another topic I wanted to ask about is RequirementDef vs RequirementUsage.
In the Advent of SysML v2 videos, there is a strong emphasis on using requirement definitions for requirements. This made me wonder whether a pattern like the following would actually be preferable, especially at the highest level:
-
Define a RequirementDef for a type of requirement (e.g., StakeholderRequirement), which:
-
Captures what a stakeholder requirement “should look like”
-
Defines common structure, parameters, attributes, and constraints
-
Then create the actual first stakeholder requirements as usages of that definition
Conceptually, this feels similar to defining a well‑typed requirement schema first, and only then instantiating concrete requirements from it — which seems very aligned with SysML v2’s emphasis on strong typing and semantics.
Do you see this as a recommended pattern in practice, or do you generally prefer treating even top‑level requirements directly as definitions? Are there trade‑offs (tooling, readability, scalability) that make one approach more pragmatic than the other?
Thanks again for the guidance — this discussion has been extremely helpful in reshaping how I think about requirements beyond the traditional DOORS mindset.
Best regards,
Abhishek