How important is requirements traceability?

Requirements tracing can prevent you from overlooking a planned requirement during implementation. However, requirements must be written carefully, expert Karl Wiegers says.

Is requirements traceability important? If so, what's a good way to get started with traceability?

Requirements tracing is the process of recording logical links between individual requirements and other system elements. You can trace a single functional requirement backward to its origin, such as a use case, product feature or business rule. You can also trace that functional requirement forward into the bits of design, code and tests that were created because of that requirement.

Collecting requirements traceability information as development progresses makes it almost impossible to inadvertently overlook a planned requirement during implementation. Reliable traceability data facilitates making changes correctly and completely during maintenance, which improves the team's productivity. For example, suppose you have traced a business rule into various functional requirements that implement the rule. If that rule ever changes, the maintainers can follow those links to quickly make the necessary software modifications. You can also use traceability data when certifying a safety-critical product to show that all requirements were implemented and that all requirements are covered by specific tests.

To do requirements traceability, the analyst must write requirements in a fine-grained fashion and give every requirement a unique and stable identifier. (No bullets!) Most people start performing traceability by linking functional requirements to individual tests that verify the correct implementation of those requirements. On a small project you can do this manually using a spreadsheet to identify which tests connect logically to which requirements. However, larger projects need automated support for traceability, such as using a commercial requirements management tool. As tracing requirements becomes established in your organization, you can begin to record the design elements and code segments that satisfy each requirement to make your traceability data richer and more valuable.

Next Steps

How user story mapping aids requirements gathering in Agile

How to tame ever-changing requirements in software development

Dig Deeper on Topics Archive