Code patterns for automatically validating requirements-to-code traces

Traces between requirements and code reveal where requirements are implemented. Such traces are essential for code understanding and change management. Unfortunately, traces are known to be error prone. This paper introduces a novel approach for validating requirements-to-code traces through calling relationships within the code. As input, the approach requires an executable system, the corresponding requirements, and the requirements-to-code traces that need validating. As output, the approach identifies likely incorrect or missing traces by investigating patterns of traces with calling relationships. The empirical evaluation of four case study systems covering 150 KLOC and 59 requirements demonstrates that the approach detects most errors with 85-95% precision and 82-96% recall and is able to handle traces of varying levels of correctness and completeness. The approach is fully automated, tool supported, and scalable.

[1]  Jane Huffman Hayes,et al.  How do we trace requirements: an initial study of analyst behavior in trace validation tasks , 2011, CHASE.

[2]  Jane Huffman Hayes,et al.  Advancing candidate link generation for requirements tracing: the study of methods , 2006, IEEE Transactions on Software Engineering.

[3]  Julia Rubin,et al.  Model traceability , 2006, IBM Syst. J..

[4]  Václav Rajlich,et al.  Case Study of Feature Location Using Dependence Graph, after 10 Years , 2010, 2010 IEEE 18th International Conference on Program Comprehension.

[5]  Alfred V. Aho,et al.  CERBERUS: Tracing Requirements to Source Code Using Information Retrieval, Dynamic Analysis, and Program Analysis , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[6]  Alexander Egyed,et al.  Observations on the connectedness between requirements-to-code traces and calling relationships for trace validation , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[7]  Stephen Clark,et al.  Best Practices for Automated Traceability , 2007, Computer.

[8]  Betty H. C. Cheng,et al.  Retrieval by Construction: a Traceability Technique to Support Verification and Validation of Uml Formalizations , 2005, Int. J. Softw. Eng. Knowl. Eng..

[9]  Arie van Deursen,et al.  Identifying Crosscutting Concerns Using Fan-In Analysis , 2006, TSEM.

[10]  Giuliano Antoniol,et al.  Recovering Traceability Links between Code and Documentation , 2002, IEEE Trans. Software Eng..

[11]  Collin McMillan,et al.  Combining textual and structural analysis of software artifacts for traceability link recovery , 2009, 2009 ICSE Workshop on Traceability in Emerging Forms of Software Engineering.

[12]  Paolo Tonella,et al.  Using a Concept Lattice of Decomposition Slices for Program Understanding and Impact Analysis , 2003, IEEE Trans. Software Eng..

[13]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[14]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[15]  Martin P. Robillard,et al.  How effective developers investigate source code: an exploratory study , 2004, IEEE Transactions on Software Engineering.

[16]  Alexander Egyed,et al.  Do software engineers benefit from source code navigation with traceability? — An experiment in software change management , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[17]  Andrian Marcus,et al.  Recovering documentation-to-source-code traceability links using latent semantic indexing , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[18]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[19]  Bogdan Dit,et al.  Feature location in source code: a taxonomy and survey , 2013, J. Softw. Evol. Process..

[20]  Lionel C. Briand,et al.  Automated traceability analysis for UML model refinements , 2009, Inf. Softw. Technol..

[21]  Norman Wilde,et al.  Software Feature Understanding in an Industrial Setting , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[22]  Denys Poshyvanyk,et al.  Using Traceability Links to Assess and Maintain the Quality of Software Documentation , 2007 .

[23]  Alexander Egyed,et al.  Effort and Quality of Recovering Requirements-to-Code Traces: Two Exploratory Experiments , 2010, 2010 18th IEEE International Requirements Engineering Conference.