The importance of traceability is well understood in the software engineering community and adopted across numerous software development standards. Industries are often compelled to implement traceability practices by government regulations. For example, the U.S. Food and Drug Administration (FDA) states that traceability analysis must be used to verify that a software design implements all of its specified software requirements, that all aspects of the design are traceable to software requirements, and that all code is linked to established specifications and established test procedures. Other examples are found in the U.S. Federal Aviation Administration (FAA) that states that software developers need to have ways of demonstrating traceability between design and requirements, and in the Capability Maturity Model Integration (CMMI) standard that requires similar traceability practices.
Traceability supports numerous activities such as demonstrating that a product meets the stakeholders’ stated requirements, and that it complies with a set of government regulations. Traceability is also used to establish and understand the relationships between requirements and downstream work products such as design documents, source code, and test cases. In this context, it supports tasks such as impact analysis which helps developers understand how a proposed change impacts the current system, code verification which identifies superfluous and unwanted features by tracing all elements of the source code back to specific requirements, and safety analysis. Traceability can also support reuse of parts of a software system by identifying the parts that match (new) requirements, and the evolution of software systems.
In practice, traceability links are typically created and maintained either through the use of a requirements management tool, or else in a spreadsheet or Word document directly. However, there are numerous issues that make it difficult to achieve successful traceability in practice. These issues include social ones related to communication between project stakeholders, as well as technical issues related to physically creating, maintaining, and using thousands of interrelated and relatively brittle traceability links. As a result, many organisations struggle to implement and maintain traceability links, even though it is broadly recognised as a critical element of the software development life cycle.
Click on any of the buttons on the right hand side - to learn about specific areas of Traceability