Saturday, October 31, 2009

What is "traceability" in software systems?

Traceability is concerned with the relationships between requirements, their
sources, and the system design. Regardless of the process model, documentation and code traceability is paramount. A high level of traceability ensures that the software requirements flow down through the design and code and then can be traced back up at every stage of the process. This would ensure, for example, that a coding decision can be traced back to a design decision to satisfy a corresponding requirement. [Source]

Traceability is becoming a necessary quality of any modern software system. The complexity in modern systems is such that, if we cannot rely on good techniques and tools it becomes an unsustainable burden, where software artifacts can hardly be linked to their initial requirements. Modern software systems are composed by a many artifacts (models, code, etc.). Any change in one of them may have repercussions on many components. The assessment of this impact usually comes at a high cost and is highly error-prone. This complexity inherent to software development increases when it comes to Software Product Line Engineering. Traceability aims to respond to this challenge, by linking all the software artifacts that are used, in order to reason about how they influence each others.[Source]

Implementing Traceability In Agile Software Development - This report focuses on how traceability can be added to the agile methods and what the potential costs and benefits there will be.
Traceability In Agile Software Development

Also See:

Requirement Traceability Matrix
Functional Requirement Specification