On the effect of incompleteness to check requirement-to-method traces

Requirement-to-method traces reveal the code location(s) where a requirement is implemented. This is helpful to software engineers when they have to perform tasks such as software maintenance or bug fixing. Indeed, being aware of the method(s) that implement a requirement saves engineers' time, as it pinpoints the exact code region that needs to be edited to perform a bug fix or a maintenance task. Engineers produce traces manually as well as automatically. Nevertheless, traces are incomplete. This limits the amount of information that could be used by an automated technique to check further traces. Therefore, since traces are incomplete, we would like to study the effect of incompleteness on the automated assessment of requirement-to-method traces. In this paper, we apply machine learning on either incomplete or complete tracing information and we evaluate the effect of incompleteness on checking trace information. We demonstrate that the use of complete traces might yield a higher precision but yields a lower recall. Also, the use of incomplete traces yields a higher recall but a lower precision.

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

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

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

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

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

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

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

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

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

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

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

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

[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 Cleland-Huang,et al.  Detecting, Tracing, and Monitoring Architectural Tactics in Code , 2016, IEEE Transactions on Software Engineering.

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

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

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

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

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

[21]  Jane Cleland-Huang,et al.  Evolving software trace links between requirements and source code , 2017, Empirical Software Engineering.

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

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

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

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

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

[27]  Leo Breiman,et al.  Random Forests , 2001, Machine Learning.