While traceability plays a key role in the software development process for many groups it presents as a high impact burden. Modern software tools can simplify the traceability process however it all begins with the requirements.
Why is traceability important?
The objective of traceability is to ensure that requirements are met in the final product. This is achieved by the creation of traceability “check-ins” at each stage of the development process. A check-in serves two purposes. First, they ensure that the design process does not “drift” too far from the requirements. Second, they provide formal documentation of adherence to the defined development processes.
How do we “check-in?”
Check-ins should be an automated processes where information is cross checked between the current state of the models and the requirements. If the requirements are written in a testable format than the check in consists of running the tests and a human verification of the test result. If they are not written in a testable format or the complexity is such that automated testing is not possible then a manual review is required.
Check-in deliverables
The primary deliverable of the check-in is a traceability report. It documents that at each step in the process the model and related artifacts were validated against the requirements.
Final thoughts
Traceability is one of the core activities of a safety critical software design process. Implementation of automated requirements tracing is greatly simplified in a Model-Based Design environment that includes simulation capabilities.