Understanding Where Requirements are Implemented The Relationship between Requirements Traces and Method Calls in Code
Authors: Benedikt Burgstaller and Alexander Egyed
Trace links between requirements and code reveal
where requirements are implemented. Such trace links are
essential for code understanding and change management. The
lack thereof is often cited as a key reason for software
engineering failure. Unfortunately, the creation and
maintenance of requirements-to-code traces
remains a largely manual and error prone
task due to the informal nature of requirements. This
paper demonstrates that reasoning about requirements-to-code
traces can be done, in part, by considering the calling
relationships within the source code (call graph). We
observed that requirements-to-code traces
form regions along calling dependencies.
Better knowledge about these regions has several
direct benefits. For example, erroneous traces become
detectable if a method inside a region
does not trace to a requirement. Or, a
missing trace (incompleteness) can be identified. Knowledge of
requirement regions can also be used to help guide developers in
establishing requirements-to-code traces in a more efficient
manner. This paper discusses requirement regions and sketches
their benefits.
Download PDF here!