Abstract
Several software maintenance tasks, such as regression testing, require that the requirements traceability should be up-to-date. Generating requirements traceability consumes a lot of time and is error-prone. Currently most available tools do not offer the automated recovery of traceability links. In the approach presented in this paper, we formulate requirements traceability recovery as a search problem using Genetic Algorithms. Our approach takes as input the software system and a requirement set and produces a set of traces between the classes of the system and the requirements introduced in the input as output. A solution consists of assigning each requirement to one or many classes of the system that should maximize as much as possible the textual similarity between the description of the requirements and the name of code elements, API documentation, and comments. The validation results on three different open source projects show that our approach is effective in correctly generating the traces between the requirements and classes in the source code with a precision of 86% and a recall of 83%, both on average.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Cleland-Huang, J., et al.: Trace queries for safety requirements in high assurance systems. In: Regnell, B., Damian, D. (eds.) Proceedings on Requirements Engineering: Foundation for Software Quality: 18th International Working Conference, (REFSQ 2012), Essen, Germany, pp. 179–193. Springer, Heidelberg (2012)
Hayes, J., et al.: REquirements TRacing On target (RETRO): improving software maintenance through traceability recovery. Innov. Syst. Softw. Eng. 3(3), 193–202 (2007)
Brodén, L.: Requirements Traceability Recovery. Lund University, Lund (2011)
Goldberg, E.D.: Genetic Algorithms in Search Optimization and Machine Learning, p. 372. Addison-Wesley Longman Publishing Co., Inc., Reading (1989)
Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: trends, techniques and applications. ACM Comput. Surv. 45(1), 1–61 (2012)
Standish, CHAOS Manifesto: Think Big Act Small (2013)
Lyytinen, K.J., et al. (eds.): Design Requirements Engineering: A Ten-Year Perspective. Lecture Notes in Business Information Processing. Springer, Heidelberg (2009)
Pete Sawyer, B.P., Heymans, P.: Requirements engineering: foundation for software quality. In: 13th International Working Conference (REFSQ 2007), Trondheim, Norway, vol. 386. Springer, Heidelberg (2007)
ISO/IE-26702, IEEE Standard for Application and Management of the Systems Engineering Process. IEEE Std. 1220-2005 (Revision of IEEE Std. 1220-1998), p. 0_1–87 (2005)
Andersson, J., et al.: Modeling dimensions of self-adaptive software systems. In: Cheng, B.C., et al. (eds.) Software Engineering for Self-adaptive Systems, pp. 27–47. Springer, Heidelberg (2009)
Ghannem, A., El Boussaidi, G., Kessentini, M.: Model refactoring using interactive genetic algorithm. In: Ruhe, G., Zhang, Y. (eds.) Search Based Software Engineering, pp. 96–110. Springer, Heidelberg (2013)
Mitchell, M.: An Introduction to Genetic Algorithms, p. 209. MIT Press, Cambridge (1998)
Kirkpatrick, S., Gelatt, C.D., Vecchi, M.P.: Optimization by simulated annealing. Science 220(4598), 671–680 (1983)
Koza, R.J.: Genetic Programming: On the Programming of Computers by Means of Natural Selection, p. 680. MIT Press, Cambridge (1992)
Deb, K., et al.: A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans. Evol. Comput. 6(2), 182–197 (2002)
Howe, C.D.: RiTa: creativity support for computational literature. In: Proceedings of the 7th ACM Conference on Creativity and Cognition, pp. 205–210. ACM, Berkeley (2009)
Antoniol, G., et al.: Recovering traceability links between code and documentation. IEEE Trans. Softw. Eng. (TSE) 28(10), 970–983 (2002)
Gethers, M., et al.: On integrating orthogonal information retrieval methods to improve traceability recovery. In: 27th IEEE International Conference on Software Maintenance (ICSM 2011) (2011)
Challenge, T.: Proceedings of the 6th International Workshop on Traceability in Emerging Forms of Software Engineering. ACM, Waikiki (2011)
Nattoch Dag, J., et al.: A linguistic-engineering approach to large-scale requirements management. IEEE Softw. 22(1), 32–39 (2005)
Jun, L., et al.: Poirot: a distributed tool supporting enterprise-wide automated traceability. In: 14th IEEE International Conference Requirements Engineering (RE 2006) (2006)
Lormans, M., van Deursen, A.: Can LSI help reconstructing requirements traceability in design and test? In: Proceedings of the 10th European Conference on Software Maintenance and Reengineering (CSMR 2006) (2006)
Marcus, A., Xie, X., Poshyvanyk, D.: When and how to visualize traceability links? In: Proceedings of the 3rd International Workshop on Traceability in Emerging Forms of Software Engineering, pp. 56–61. ACM, Long Beach (2005)
De Lucia, A., et al.: ADAMS re-trace: a traceability recovery tool. In: 9th European Conference on Software Maintenance and Reengineering (CSMR 2005) (2005)
Zhang, Y., et al.: Ontological approach for the semantic recovery of traceability links between software artefacts. IET Softw. 2(3), 185–203 (2008)
Spanoudakis, G., et al.: Rule-based generation of requirements traceability relations. J. Syst. Softw. (JSS) 72(2), 105–127 (2004)
Evans, M.W.: The Software Factory. Wiley, New York (1989)
Bouillon, E., Mäder, P., Philippow, I.: A survey on usage scenarios for requirements traceability in practice. In: Doerr, J., Opdahl, A. (eds.) Requirements Engineering: Foundation for Software Quality, pp. 158–173. Springer, Heidelberg (2013)
Jackson, J.: A keyphrase based traceability scheme. In: IEEE Colloquium on Tools and Techniques for Maintaining Traceability During Design (1991)
Gotel, O.C.Z., Finkelstein, A.C.W.: An analysis of the requirements traceability problem. In: Proceedings of the First International Conference on Requirements Engineering (RE 1994) (1994)
Deerwester, S., et al.: Indexing by latent semantic analysis. J. Am. Soc. Inf. Sci. 41(6), 391–407 (1990)
Grechanik, M., McKinley, K.S., Perry, D.E.: Recovering and using use-case-diagram-to-source-code traceability links. In: Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 95–104. ACM, Dubrovnik (2007)
Asuncion, H.U., Asuncion, A.U., Taylor, R.N.: Software traceability with topic modeling. In: ACM/IEEE 32nd International Conference on Software Engineering (ICSE 2010) (2010)
Xiaofan, C., Grundy, J.: Improving automated documentation to code traceability by combining retrieval techniques. In: 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011) (2011)
Armstrong, B.T.: Can clustering improve requirements traceability? A tracelab-enabled study. Computer Science, Faculty of California Polytechnic State University San Luis Obispo (2013)
Acknowledgements
This work was made possible by NPRP Grant# [7-662-2-247] from Qatar Research Fund (a member of Qatar Foundation). The findings achieved herein are solely the responsibility of the authors.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
Cite this paper
Ghannem, A., Hamdi, M.S., Kessentini, M., Ammar, H.H. (2018). Search-Based Requirements Traceability Recovery. In: Bi, Y., Kapoor, S., Bhatia, R. (eds) Proceedings of SAI Intelligent Systems Conference (IntelliSys) 2016. IntelliSys 2016. Lecture Notes in Networks and Systems, vol 15. Springer, Cham. https://doi.org/10.1007/978-3-319-56994-9_11
Download citation
DOI: https://doi.org/10.1007/978-3-319-56994-9_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-56993-2
Online ISBN: 978-3-319-56994-9
eBook Packages: EngineeringEngineering (R0)