Keith Collyer
1 min readJan 9, 2024

--

As always, great stuff from Karl Wiegers. I would add a couple of thoughts:

- I would not recommend manually creating and populating a table such as Table 1 because of the many-many relationships at each step. It also doesn't allow for the fact that different branches in the tree might have different numbers of levels, depending how deep your subsystems are nested. Such a table can be useful if automatically created from defined relationships. Tables such as that in Figure 3 are much easier to use and maintain (ideally automatically).

- Most requirements management tools allow you to create relationships by defining links, often using drag-and-drop. Sophisticated ones will also enforce the nature of the link so, for example referring to Figure 2, a link between "Business rule" and "Functional requirement" can only be "is origin of".

- Create the traceability relationships as you define the data. When you write a functional requirement you know which user requirement(s) it links to, so it takes a trivial amount of time to create the relationship(s) and update them as things change.

- Most requirements management tools allow you to create traceability matrices as reports on the relationships rather than as entities in their own right. Manually created and maintained traceability matrices are always wrong.

--

--

Keith Collyer
Keith Collyer

Written by Keith Collyer

I’m a husband, father, grandfather, retired Systems Engineer, bassist, cyclist and will write on any and all of those things as the urge takes me.

Responses (1)