TraceRefiner: An Automated Technique for Refining Coarse-Grained Requirement-to-Class Traces

Requirement-to-code traces reveal the code location(s) where a requirement is implemented. Traceability is essential for code evolution and understanding. However, creating and maintaining requirement-to-code traces is a tedious and costly process. In this paper, we introduce TraceRefiner, a novel technique for automatically refining coarse-grained requirement-to-class traces to fine-grained requirement-to-method traces. The inputs of TraceRefiner are (1) the set of requirement-to-class traces, which are easier to create as there are far fewer traces to capture, and (2) information about the code structure (i.e., method calls). The output of TraceRefiner is the set of requirement-to-method traces (providing additional, fine-grained information to the developer). We demonstrate the quality of TraceRefiner on four case study systems (7-72KLOC) and evaluated it on over 230,000 requirement-to-method predictions. The evaluation demonstrates TraceRefiner's ability to refine traces even if many requirement-to-class traces are undefined (incomplete input). The obtained results show that the proposed technique is fully automated, tool-supported, and scalable.

[1]  Atif Mashkoor,et al.  A Traceability Dataset for Open Source Systems , 2021, 2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR).

[2]  Atif Mashkoor,et al.  On the effect of incompleteness to check requirement-to-method traces , 2021, SAC.

[3]  J. Cleland-Huang,et al.  Evolving software trace links between requirements and source code , 2018, 2019 IEEE/ACM 10th International Symposium on Software and Systems Traceability (SST).

[4]  Bonita Sharif,et al.  Eye movements in software traceability link recovery , 2017, Empirical Software Engineering.

[5]  Jane Cleland-Huang,et al.  Semantically Enhanced Software Traceability Using Deep Learning Techniques , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[6]  Jane Cleland-Huang,et al.  Evolving Requirements-to-Code Trace Links across Versions of a Software System , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[7]  Renaud Pawlak,et al.  SPOON: A library for implementing analyses and transformations of Java source code , 2016, Softw. Pract. Exp..

[8]  Jane Cleland-Huang,et al.  Detecting, Tracing, and Monitoring Architectural Tactics in Code , 2016, IEEE Transactions on Software Engineering.

[9]  Alexander Egyed,et al.  Do developers benefit from requirements traceability when evolving and maintaining a software system? , 2014, Empirical Software Engineering.

[10]  Bonita Sharif,et al.  Capturing software traceability links from developers' eye gazes , 2014, ICPC 2014.

[11]  Yann-Gaël Guéhéneuc,et al.  Trustrace: Mining Software Repositories to Improve the Accuracy of Requirement Traceability Links , 2013, IEEE Transactions on Software Engineering.

[12]  Collin McMillan,et al.  When and How Using Structural Information to Improve IR-Based Traceability Recovery , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[13]  Alexander Egyed,et al.  Code patterns for automatically validating requirements-to-code traces , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[14]  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).

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

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

[17]  Ivan Kurtev,et al.  Tool support for generation and validation of traces between requirements and architecture , 2010, ECMFA-TW '10.

[18]  Jane Cleland-Huang,et al.  A machine learning approach for tracing regulatory codes to product specific requirements , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[19]  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.

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

[21]  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.

[22]  L. Williams,et al.  Work in Progress: Exploring Security and Privacy Concepts through the Development and Testing of the iTrust Medical Records System , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

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

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

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

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

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

[28]  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.

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

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