Evolving Requirements-to-Code Trace Links across Versions of a Software System

Trace links provide critical support for numeroussoftware engineering activities including safety analysis, compliance verification, test-case selection, and impact prediction. However, as the system evolves over time, there is a tendency forthe quality of trace links to degrade into a tangle of inaccurateand untrusted links. This is especially true with the links between source-code and upstream artifacts such as requirements–because developers frequently refactor and change code withoutupdating the links. We present TLE (Trace Link Evolver), asolution for automating the evolution of trace links as changesare introduced to source code. We use a set of heuristics, open source tools, and information retrieval methods to detectcommon change scenarios across different versions of software. Each change scenario is then associated with a set of linkevolution heuristics which are used to evolve trace links. Weevaluate our approach through a controlled experiment and alsothrough applying it across 27 releases of the Cassandra DatabaseSystem. Results show that the trace links evolved using ourapproach are significantly more accurate than those generatedusing information retrieval alone.

[1]  Matthias Jarke,et al.  Toward Reference Models of Requirements Traceability , 2001, IEEE Trans. Software Eng..

[2]  Jane Cleland-Huang,et al.  Improving trace accuracy through data-driven configuration and composition of tracing features , 2013, ESEC/FSE 2013.

[3]  Patrick Mäder,et al.  Breaking the big-bang practice of traceability: Pushing timely trace recommendations to project stakeholders , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

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

[5]  Richard N. Taylor,et al.  Software traceability with topic modeling , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[6]  Jane Huffman Hayes,et al.  Technique Integration for Requirements Assessment , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[7]  Jonathan I. Maletic,et al.  Lightweight Transformation and Fact Extraction with the srcML Toolkit , 2011, 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation.

[8]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[9]  Nenad Medvidovic,et al.  Obtaining ground-truth software architectures , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[10]  Stefan Winkler,et al.  Trace retrieval for evolving artifacts , 2009, 2009 ICSE Workshop on Traceability in Emerging Forms of Software Engineering.

[11]  Ralph E. Johnson,et al.  Automated Detection of Refactorings in Evolving Components , 2006, ECOOP.

[12]  Mehrdad Sabetzadeh,et al.  A SysML-based approach to traceability management and design slicing in support of safety certification: Framework, tool support, and case studies , 2012, Inf. Softw. Technol..

[13]  Peng Xu,et al.  Improving change management in software development: Integrating traceability and software configuration management , 2008, Decis. Support Syst..

[14]  Stas Negara,et al.  A Comparative Study of Manual and Automated Refactorings , 2013, ECOOP.

[15]  Michael Eichberg,et al.  Supporting the Evolution of Software Product Lines , 2008 .

[16]  Shinpei Hayashi,et al.  Refactoring edit history of source code , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[17]  Carl K. Chang,et al.  Event-Based Traceability for Managing Evolutionary Change , 2003, IEEE Trans. Software Eng..

[18]  Klaus Pohl,et al.  Adapting traceability environments to project-specific needs , 1998, CACM.

[19]  Ilka Philippow,et al.  traceMaintainer - Automated Traceability Maintenance , 2008, 2008 16th IEEE International Requirements Engineering Conference.

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

[21]  Andrea Zisman,et al.  XTraQue: traceability for product line systems , 2009, Software & Systems Modeling.

[22]  Andrew P. Black,et al.  How we refactor, and how we know it , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[23]  Matthias Jarke,et al.  PRIME—toward process-integrated modeling environments: 1 , 1999, TSEM.

[24]  Ilka Philippow,et al.  Getting back to basics: Promoting the use of a traceability information model in practice , 2009, 2009 ICSE Workshop on Traceability in Emerging Forms of Software Engineering.

[25]  Genny Tortora,et al.  Recovering traceability links in software artifact management systems using information retrieval methods , 2007, TSEM.

[26]  Patrick Mäder,et al.  Towards automated traceability maintenance , 2012, J. Syst. Softw..

[27]  Miryung Kim,et al.  An Empirical Study of RefactoringChallenges and Benefits at Microsoft , 2014, IEEE Transactions on Software Engineering.

[28]  Carl K. Chang,et al.  Supporting event based traceability through high-level recognition of change events , 2002, Proceedings 26th Annual International Computer Software and Applications.

[29]  Patrick Mäder,et al.  Mind the gap: assessing the conformance of software traceability to relevant guidelines , 2014, ICSE.

[30]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[31]  Patrick Mäder,et al.  Software traceability: trends and future directions , 2014, FOSE.

[32]  Jane Cleland-Huang,et al.  Patterns of co-evolution between requirements and source code , 2015, 2015 IEEE Fifth International Workshop on Requirements Patterns (RePa).

[33]  Olly Gotel,et al.  Contribution structures [Requirements artifacts] , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

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

[35]  Barbara G. Ryder,et al.  Constructing the Call Graph of a Program , 1979, IEEE Transactions on Software Engineering.

[36]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[37]  Nicolas Anquetil,et al.  A model-driven traceability framework for software product lines , 2010, Software & Systems Modeling.

[38]  Prashant Malik,et al.  Cassandra: a decentralized structured storage system , 2010, OPSR.

[39]  Didar Zowghi,et al.  Supporting traceability through affinity mining , 2014, 2014 IEEE 22nd International Requirements Engineering Conference (RE).

[40]  Thomas Olsson,et al.  Supporting traceability and inconsistency management between software artifacts , 2002, ICSE 2002.

[41]  Houari A. Sahraoui,et al.  Multiobjective Optimization for Software Refactoring and Evolution , 2014, Adv. Comput..

[42]  Nan Niu,et al.  On the role of semantics in automated requirements tracing , 2014, Requirements Engineering.

[43]  Jane Huffman Hayes,et al.  Application of swarm techniques to requirements tracing , 2011, Requirements Engineering.

[44]  Andrea De Lucia,et al.  Information Retrieval Methods for Automated Traceability Recovery , 2012, Software and Systems Traceability.

[45]  Jane Cleland-Huang,et al.  Guidelines for Benchmarking Automated Software Traceability Techniques , 2015, 2015 IEEE/ACM 8th International Symposium on Software and Systems Traceability.

[46]  Samuel Ajila,et al.  Using traceability mechanisms to support software product line evolution , 2004, Proceedings of the 2004 IEEE International Conference on Information Reuse and Integration, 2004. IRI 2004..

[47]  Patrick Mäder,et al.  Achieving lightweight trustworthy traceability , 2014, SIGSOFT FSE.