Evolving software trace links between requirements and source code

Traceability provides support for diverse software engineering activities including safety analysis, compliance verification, test-case selection, and impact prediction. However, in practice, there is a tendency for trace links to degrade over time as the system continually evolves. This is especially true for links between source-code and upstream artifacts such as requirements – because developers frequently refactor and change code without updating the links. In this paper we present TLE (Trace Link Evolver), a solution for automating the evolution of bidirectional trace links between source code classes or methods and requirements. TLE depends on a set of heuristics coupled with refactoring detection tools and informational retrieval algorithms to detect predefined change scenarios that occur across contiguous versions of a software system. We first evaluate TLE at the class level in a controlled experiment to evolve trace links for revisions of two Java applications. Second, we comparatively evaluate several variants of TLE across six releases of our in-house Dronology project. We study the results of integrating human analyst feed back in the evolution cycle of this emerging project. Additionally, in this system, we compare the efficacy of class-level versus method-level evolution of trace links. Finally, we evaluate TLE in a larger scale across 27 releases of the Cassandra Database System and show that the evolved trace links are significantly more accurate than those generated using only information retrieval techniques.

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

[2]  DekhtyarAlex,et al.  Advancing Candidate Link Generation for Requirements Tracing , 2006 .

[3]  LuciaAndrea De,et al.  Recovering traceability links in software artifact management systems using information retrieval methods , 2007 .

[4]  Jonathan I. Maletic,et al.  Automatically identifying changes that impact code-to-design traceability during evolution , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[5]  Alistair Mavin,et al.  Listens Learned (8 Lessons Learned Applying EARS) , 2016, 2016 IEEE 24th International Requirements Engineering Conference (RE).

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

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

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

[9]  Jane Cleland-Huang,et al.  A comparative evaluation of two user feedback techniques for requirements trace retrieval , 2012, SAC '12.

[10]  Daniel Sundmark,et al.  A Comparative Study of Manual and Automated Testing in Industrial Embedded Software , 2016, ICTSS 2016.

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

[12]  Dietmar Pfahl,et al.  Proceedings of the Software process, 2008 international conference on Making globally distributed software development a success story , 2008 .

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

[14]  Juan Li,et al.  Requirement-Centric Traceability for Change Impact Analysis: A Case Study , 2008, ICSP.

[15]  Yi Zhang,et al.  Strategic Traceability for Safety-Critical Projects , 2013, IEEE Software.

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

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

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

[19]  Jonathan I. Maletic,et al.  An XML based approach to support the evolution of model-to-model traceability links , 2005, TEFSE '05.

[20]  John A. Swets,et al.  Information Retrieval Methods , 2014 .

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

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

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

[24]  Roel Wieringa,et al.  Probing for Requirements Knowledge to Stimulate Architectural Thinking , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

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

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

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

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

[29]  Bashar Nuseibeh,et al.  Weaving Together Requirements and Architectures , 2001, Computer.

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

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

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

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

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

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

[36]  Jonathan I. Maletic,et al.  srcML: An Infrastructure for the Exploration, Analysis, and Manipulation of Source Code: A Tool Demonstration , 2013, 2013 IEEE International Conference on Software Maintenance.

[37]  Atif M. Memon,et al.  Designing and comparing automated test oracles for GUI-based software applications , 2007, TSEM.

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

[39]  Suzanne Robertson,et al.  Mastering the Requirements Process , 1999 .

[40]  Robert L. Nord,et al.  Software Product Lines , 2004, Lecture Notes in Computer Science.

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

[42]  Jameleddine Hassine,et al.  Change impact analysis for requirement evolution using use case maps , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

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

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

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

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

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

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

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

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

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

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

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

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

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

[56]  Stephan Diehl,et al.  Identifying Refactorings from Source-Code Changes , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[57]  Jonathan I. Maletic,et al.  Proceedings of the 3rd international workshop on Traceability in emerging forms of software engineering , 2005 .

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

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

[60]  Forrest Shull,et al.  Getting an Intuition for Big Data , 2013, IEEE Softw..

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

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

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

[64]  Jonathan I. Maletic,et al.  Automatically identifying changes that impact code-to-design traceability during evolution , 2010, Software Quality Journal.

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

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

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

[68]  João Pimentel,et al.  Towards Requirements and Architecture Co-evolution , 2012, CAiSE Workshops.

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

[70]  James Robertson,et al.  Mastering the Requirements Process: Getting Requirements Right , 2012 .

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