Requirements should trace to code.
By hand, it costs too much.
REQUIREMENT · REQ-07
The EST server shall authenticate the client before it issues a certificate.
?
SOURCE · est_server.c
int est_server_auth(...)
if (!cert_verify(ctx)) ...
LINK THRESHOLD
Ten techniques. Ten opinions.
Automated tracers score text similarity, each its own way.
Which one do you trust?
On a new project with no known links, there’s no way to tell in advance.
Introducing
Comet
Every signal → one probability of a link
COMET · HIERARCHICAL BAYESIAN NETWORK
REQ-07est_server.c
Unsure
10 IR/ML scores
Developer vote
Transitive links
Fuse the evidence.
Ten IR/ML similarity scores become observations in one Bayesian model. No single technique to bet on.
Normalized scores set the trace-link prior; inference estimates the posterior.
Ask a developer.
A one-click Likert vote reshapes the prior, and the probability updates on the spot.
Strongly disagree0.0
Disagree0.25
Unsure0.5
Agree0.75
Strongly agree1.0
Follow the neighbors.
When similar requirements trace to the same file, that transitive evidence raises the odds.
Evaluated with
0
Cisco developers in a case study
≈0%
higher average precision than optimally configured baselines, best case
≈5%average-precision gain across all subjects
6 of 6subjects where holistic Comet beats the median baseline
0.52 → 0.96AP on LibEST links given simulated developer feedback
Case study · Cisco Systems · Comet Jenkins plugin
“Being able to provide feedback is useful and seeing it update the percentage immediately was nice.”
— LibEST developer, after using Comet
Improving the Effectiveness of Traceability Link Recovery using Hierarchical Bayesian Networks
Kevin Moran · David N. Palacio · Carlos B. Cárdenas · Daniel McCrystal · Denys Poshyvanyk · Chris Shenefiel · Jeff Johnson
ICSE 2020 · IEEE/ACM International Conference on Software Engineering