When it comes to software engineering, convoluted code can behave in ways that seemingly make no apparent sense. Engineering software often lacks interconnection among existing requirements, the source of these requirements, and the underlying system infrastructure. This results in frustration for users, developers, and software engineers.
Traceability in software engineering describes the extent to which documentation or code can be traced back to its point of origin. The goal of traceability is to provide better quality and consistency of product development. It brings the ability to verify the history, location, and application of an item by means of documented identification.
In complex system industries like aerospace or defense, traceability is often a legal constraint to prove standard compliance of deliverables from stakeholder requirements to the qualified products. Not only is traceability mandated for safety-critical systems but without it, it is difficult to maintain consistency from early user requirements to the final phase of tested and delivered products.
Requirements traceability in Software Engineering
Increased usage of modeling in engineering makes traditional approaches less relevant as surrogate assets are imported from authoring tools.
Using requirement tooling as the only focal point of traceability implies flattening authored models and counterproductive mass conversions during design phases. By formally recording the relationships between all elements in the engineering process, we can identify the impact a change in one element will have across the entire project. This impact analysis immediately identifies which parts of the architecture, design, tests, or software need to be changed in order to adapt to a requested or mandated change.
Very often a project is forced to retroactively, and manually, recreate traceability at the end of a project in order to deliver. This task requires engineers to stop all other engineering activities, or may even require hiring external bodies, to create Excel spreadsheets (or other documents) to capture the links across engineering artifacts and software. Not only does this make the engineering team less effective and responsive rather than proactive, but it typically results in unexpected supplementary expenses. Traceability allows teams to benefit from early impact analysis.
Characteristics of quality traceability
Any type of traceability is better than no traceability. However, there's a broad spectrum here, with some companies leveraging standards spreadsheets as tracing matrices while others opt for third-party solutions. Despite this variation, there are several characteristics that describe quality traceability solutions:
- Origin Points — Who proposed specific requirements? When were they implemented? Tying current requirements back to their origin points provides the framework for critical cross-linking and references.
- Key Associations — How are requirements interrelated? How does changing or adding code impact overall software functionality? Quality traceability details any dependent associations between existing requirements and ensures new requirements are similarly detailed.
- Forward and Back — In practice, this means that existing requirements tie back to preceding requirements, effectively creating a "chain" to origin points, while also ensuring previous requirements "fall forward" to describe next-in-line requirements.
- Technical Specificity — In addition to basic descriptions, quality traceability solutions must include connections to relevant code sections, their location, and any critical testing performed.
- Auditability — Ultimately, traceability must provide assurances that stakeholder expectations have been met and that no unspecified features have been added to (current) end results.
Finding a solution to achieve requirements traceability in software engineering
It’s time that we increase engineering productivity while enabling standards compliance.
Traditional engineering software lacks interconnection and traceability amongst several components of the engineering process. SodiusWillert takes on this challenge by creating innovative traceability solutions and products. We believe in enabling the digital thread and are ready to become partners with you to push the industry forward.
Looking for a solution for requirements traceability? Check out how our OSLC Connect products can help you connect your repositories to achieve traceability across artifacts, tools, and projects.