our change/task tracking tool, and our version-control tool, and the interface we use to edit code, models, requirements, etc., then:
- The IDE could easily know what kind of artifact we're working on (requirement, design, code, test
- Operations in the IDE and the version-control tool would be able broadcast "events" that know my current context (my task, my artifact type, my operation) and could automatically create a "traceability link" in the appropriate place.
CASE tools and protocols like Sun's ToolTalk and HP's SoftBench tried to do this over a decade ago, but we didn't have agile methods quite so formalized then and weren't necessarily working in a TDD/TBD fashion. This is what Event-Based Traceability (EBT) is trying to help achieve. If we had (and/or created) the appropriate tool plug-ins (e.g., for Eclipse, or MS TeamSystem) and if we used TDD/BDD with TBD in this IDE, we might just be able to get EBT for free! (Or at least come pretty darn close!).
Search-based Traceability - Traceability without Tracing
Event-based traceability can be incredibly powerful and easy to use because it eliminates most of the manual tracing we would otherwise have to make ourselves between artifacts and (meta)data across the multiple lifecycle phases and repositories. Within a set of phase-specific artifacts, we could use a simple (or hi-tech) tool that makes it very convenient to place linkages between items in the same artifact and/or of the same type (such as with simple cross-references, and item structuring/decomposition).
Search-based traceability is one of the more recent "hot topics" in traceability research. It does not require manual (or even automatic) insertion of traces between related pieces of information. Instead it relies and smart, probabilistic and context-sensitive searching of a project's information, assets and data to dynamically infer linkages and report them based on the specific set of search keywords used.
Event-based and tool-integration-based tracing may still be more convenient and effective for relating together information about who did what, when, and where. But Search-based traceability can be more powerful, convenient, and effective at tracing information across the lifecycle and the value-chain, particularly when it comes to answering questions like "WHY?" and analyzing impacts and relationships of logical items and terms across a project's knowledgebase (including across less formally structured information such as project blogs, mail-lists, wikis, etc.).
In its most advanced form, search-based traceability utilizes information retrieval methods such as the vector space model, semantic indexing, or probabilistic network models to dynamically generate traces at runtime. According to Jane Cleland Huang in " Just Enough Requirements Traceability ":
The effectiveness of automated traceability is measured using the standard metrics of recall and precision, where recall measures the number of correct links that are retrieved by the tool, and precision measures the number of correct links out of the total number of retrieved links. Numerous experiments, conducted using both experimental data sets as well as industry and government data sources, have consistently shown that when recall levels of 90-95% are targeted precision of 10-35% is generally obtainable. [Recall indicates how many of the items that should have been found, are effectively extracted. Precision indicates how many of the extracted items are correct. Usually there is a trade off of recall against precision.]
This means that automated traceability methods require a human analyst to manually evaluate the candidate links returned by the tool and to filter out the incorrect ones. Automated trace retrieval, while no silver-bullet, is increasingly recognized by industry as a potential traceability solution. Prototype tools such as Poirot are used in industrial pilot studies. The new Center of Excellence in Traceability has been established