Reusing functional software requirements in small-sized software enterprises: a model oriented to the catalog of requirements

Software reuse can be defined as the process of creating software products from the existing ones rather than developing software from scratch. Thus, software reuse is normally proposed to increase software productivity and quality and leads to economic benefits. In this sense, the reuse of software requirements has received important attention because it provides a solid support to develop quality software through obtaining and reusing quality software requirements [i.e., software product line (SPL) approach used in large-sized software enterprises]. However, the small-sized enterprises—which represent up to 85 % of all software organizations in many countries around the world—cannot implement a SPL approach because it does not fit with the context, properties, and complexity of their software projects. Moreover, the software engineering community has not adequately explored a more proper approach in the context of small-sized software enterprises. The use of a software requirements catalog could be this proper approach. In this context, the aim of this paper was to introduce the requirements reuse model for software requirements catalog (RRMSRC). Also, a set of guidelines to perform the main activities defined for reusing functional requirements within small-sized software enterprises is provided. As evidence of its feasibility, RRMSRC has been used in an industrial context, and the obtained results and learned lessons are summarized.

[1]  Fabiane Barreto Vavassori Benitti,et al.  Evaluation of a Systematic Approach to Requirements Reuse , 2013, J. Univers. Comput. Sci..

[2]  Aurora Vizcaíno,et al.  Reusing Requirements in Global Software Engineering , 2013, Managing Requirements Knowledge.

[3]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[4]  Aurora Vizcaíno,et al.  Requirements engineering tools: Capabilities, survey and assessment , 2012, Inf. Softw. Technol..

[5]  S. Lauesen Software Requirements Styles and Techniques , 2001 .

[6]  Paul Clements,et al.  A framework for software product line practice - version 2 , 1999 .

[7]  Linda M. Northrop,et al.  A Framework for Software Product Line Practice , 1999, ECOOP Workshops.

[8]  Niels Henrik Mortensen,et al.  Identified adjustability dimensions when generating a product specific requirements specification by requirements reuse , 2014, Comput. Ind..

[9]  John A. McDermid,et al.  Ten steps towards systematic requirements reuse , 2008, Requirements Engineering.

[10]  Aurora Vizcaíno,et al.  Requirements Engineering Tools , 2011, IEEE Software.

[11]  Ursula Faber,et al.  Requirements Engineering A Good Practice Guide , 2016 .

[12]  Matthew B. Miles,et al.  Qualitative Data Analysis: An Expanded Sourcebook , 1994 .

[13]  José Ambrosio Toval Álvarez,et al.  Transforming and tracing reused requirements models to home automation models , 2013, Inf. Softw. Technol..

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

[15]  Patrick Donohoe,et al.  Requirements engineering in software product line engineering , 2014, Requirements Engineering.

[16]  Standard Glossary of Software Engineering Terminology , 1990 .

[17]  Fergal McCaffery,et al.  An agile process model for product derivation in software product line engineering , 2012, J. Softw. Evol. Process..

[18]  J. M. Perry,et al.  Perspective on Software Reuse , 1988 .

[19]  Colin Atkinson,et al.  Supporting Agile Reuse Through Extreme Harvesting , 2007, XP.

[20]  Yijun Yu,et al.  Quality-Based Software Reuse , 2005, CAiSE.

[21]  Carme Quer,et al.  Requirements Reuse and Patterns: A Survey , 2014, REFSQ.

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

[23]  Karl E. Wiegers First Things First: Prioritizing Requirements , 1999 .

[24]  Reidar Conradi,et al.  Empirical Methods and Studies in Software Engineering: Experiences from Esernet , 2003 .

[25]  Hermann Kaindl,et al.  Space systems verification program and management process: Importance of Implementing a Distributed-Verification Program with Standardized Modular-Management Process , 2008 .

[26]  Claes Wohlin,et al.  Empirical Research Methods in Software Engineering , 2003, ESERNET.

[27]  Janice Singer,et al.  Studying Software Engineers: Data Collection Techniques for Software Field Studies , 2005, Empirical Software Engineering.

[28]  Ambrosio Toval,et al.  Metamodeling Variability to Enable Requirements Reuse , 2008, EMMSAD.

[29]  RameshBalasubramaniam,et al.  Toward Reference Models for Requirements Traceability , 2001 .

[30]  Pete Sawyer,et al.  Requirements Engineering: A Good Practice Guide , 1997 .

[31]  Rainer Grau Requirements Engineering in Agile Software Development , 2012 .

[32]  Joaquín Nicolás,et al.  Eight key issues for an effective reuse-based requirements process , 2008, Comput. Syst. Sci. Eng..

[33]  Yuri Chernak,et al.  Requirements Reuse: The State of the Practice , 2012, 2012 IEEE International Conference on Software Science, Technology and Engineering.

[34]  Claes Wohlin Agile Processes in Software Engineering and Extreme Programming , 2012, Lecture Notes in Business Information Processing.

[35]  Colin J. Neill,et al.  State of practice in requirements engineering: contemporary data , 2014, Innovations in Systems and Software Engineering.

[36]  Soren Lauesen,et al.  Software Requirements: Styles & Techniques , 2002 .

[37]  J. N. Ros Una Propuesta de Gestión Integrada de Modelos y Requisitos en Líneas de Productos Software , 2009 .

[38]  Francisco J. García-Peñalvo,et al.  Reutilización de Requisitos de usuario: El modelo Mecano , 2002, Rev. Colomb. de Computación.

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

[40]  Daniel M. Berry,et al.  Reuse of requirements reduced time to market at one industrial shop: a case study , 2013, Requirements Engineering.

[41]  Mel Ó Cinnéide,et al.  Rascal: A Recommender Agent for Agile Reuse , 2005, Artificial Intelligence Review.