Enabling the Reuse of Software Development Assets Through a Taxonomy for User Stories

Context - Agile Software Development (ASD) and Reuse-Driven Software Engineering (RDSE) are well-accepted strategies to improve the efficiency of software processes. A challenge to integrate both approaches is that ASD relies mostly on tacit knowledge, hampering the reuse of software development assets. An opportunity to enable RDSE for ASD is by improving the traceability between user stories (USs), the most used notation to register product requirements in ASD. Having enough link semantics between USs could enable defining similarity between them and, consequently, promote RDSE for ASD. However, this is an open challenge. Objective - To propose a taxonomy for adding link semantics between USs, focusing on easing the task of identifying similar ones. Such links, with support of traceability tools, enable the reuse of USs and their related assets. Method: We constructed a taxonomy for types of US focusing on Web Information Systems. The taxonomy is used to classify the US, given two facets: module and operation. Such information is used to infer the similarity between USs using link rules. We developed the taxonomy based on an empirical analysis of five product backlogs, containing a total of 118 USs. Afterward, we validated the taxonomy in terms of its potential to enable the reuse of US-related assets. First, we executed an offline validation by applying it to classify 530 USs from 26 already ended projects. Finally, we applied the taxonomy in a case study with two ongoing projects (59 USs). Results: The proposed taxonomy for USs is composed of two sub-facets, namely, module and operation, which have, respectively, three and 18 terms. In terms of coverage, for the offline study and case study, we classified 90.17% of the USs with the proposed taxonomy. For the case study, we classified all the USs analyzed. Conclusion: We concluded that it is possible to use our approach to compare USs and, consequently, retrieve their related assets. Our results regarding its practical utility have shown that users considered the taxonomy a useful approach to ease the process of assessing the similarity between user stories.

[1]  G. R. Wheaton,et al.  DEVELOPMENT OF A TAXONOMY OF HUMAN PERFORMANCE: A REVIEW OF CLASSIFICATORY SYSTEMS RELATING TO TASKS AND PERFORMANCE , 1968 .

[2]  A Straw,et al.  Guide to the Software Engineering Body of Knowledge , 1998 .

[3]  Carme Quer,et al.  Constructing and Using Software Requirement Patterns , 2013, Managing Requirements Knowledge.

[4]  John C. Grundy,et al.  The Rise and Evolution of Agile Software Development , 2018, IEEE Software.

[5]  John Favaro,et al.  Opportunities for software reuse in an uncertain world: From past to emerging trends , 2019, J. Softw. Evol. Process..

[6]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[7]  Juan Garbajosa,et al.  A study to support agile methods more effectively through traceability , 2011, Innovations in Systems and Software Engineering.

[8]  Fred D. Davis A technology acceptance model for empirically testing new end-user information systems : theory and results , 1985 .

[9]  Sabrina Marczak,et al.  A systematic literature review on agile requirements engineering practices and challenges , 2015, Comput. Hum. Behav..

[10]  Ivan A. Garcia,et al.  A proposed model for reuse of software requirements in requirements catalog , 2015, J. Softw. Evol. Process..

[11]  Claes Wohlin,et al.  An empirically based terminology and taxonomy for global software engineering , 2014, Empirical Software Engineering.

[12]  Didar Zowghi,et al.  An investigation into the notion of non-functional requirements , 2010, SAC '10.

[13]  Mike Cohn,et al.  User Stories Applied: For Agile Software Development , 2004 .

[14]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[15]  Sjaak Brinkkemper,et al.  Extracting conceptual models from user stories with Visual Narrator , 2017, Requirements Engineering.

[16]  Said Ghoul,et al.  CLASSIFYING SOFTWARE FOR REUSABILITY , 2001 .

[17]  Daniela Cruzes,et al.  Recommended Steps for Thematic Synthesis in Software Engineering , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[18]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[19]  Jaiteg Singh,et al.  Systematic Literature Review on Software Effort Estimation Using Machine Learning Approaches , 2017, 2017 International Conference on Next Generation Computing and Information Systems (ICNGCIS).

[20]  B. Lundman,et al.  Qualitative content analysis in nursing research: concepts, procedures and measures to achieve trustworthiness. , 2004, Nurse education today.

[21]  Carme Quer,et al.  Requirements reuse and requirement patterns: a state of the practice survey , 2017, Empirical Software Engineering.

[22]  Stephen Clark,et al.  Best Practices for Automated Traceability , 2007, Computer.

[23]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[24]  Rubén Prieto-Díaz Implementing faceted classification for software reuse , 1991, CACM.

[25]  Thirachit Saenphon An Analysis of the Technology Acceptance Model in Understanding University Student's Awareness to Using Internet of Things , 2017, ICEEG 2017.

[26]  Robert Amor,et al.  Understanding Knowledge Management in Agile Software Development Practice , 2017, KSEM.

[27]  Andrea Zisman,et al.  Rule-based generation of requirements traceability relations , 2004, J. Syst. Softw..

[28]  Roel Wieringa,et al.  Design science methodology: principles and practice , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[29]  Jie Sun,et al.  The Role of Requirements Engineering Practices in Agile Development: An Empirical Study , 2014, APRES.

[30]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[31]  Emilia Mendes,et al.  Taxonomies in software engineering: A Systematic mapping study and a revised taxonomy development method , 2017, Inf. Softw. Technol..

[32]  Vanda Broughton,et al.  The need for a faceted classification as the basis of all methods of information retrieval , 2006, Aslib Proc..

[33]  Jonas Paul Winkler,et al.  Optimizing for Recall in Automatic Requirements Classification: An Empirical Study , 2019, 2019 IEEE 27th International Requirements Engineering Conference (RE).

[34]  Davide Dell'Anna,et al.  Requirements Classification with Interpretable Machine Learning and Dependency Parsing , 2019, 2019 IEEE 27th International Requirements Engineering Conference (RE).

[35]  Rasha Osman,et al.  Towards Requirements Reuse by Implementing Traceability in Agile Development , 2017, 2017 IEEE 41st Annual Computer Software and Applications Conference (COMPSAC).