ORIGINAL ARTICLE Reusing functional software requirements in small-sized software enterprises: a model oriented to the catalog of requirements C. Pacheco 1 • I. Garcia 1 • J. A. Calvo-Manzano 2 • M. Arcilla 3 Received: 12 May 2014 / Accepted: 28 December 2015 Ó Springer-Verlag London 2016 Abstract 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 produc- tivity 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 soft- ware engineering community has not adequately explored a more proper approach in the context of small-sized soft- ware enterprises. The use of a software requirements cat- alog 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 soft- ware 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. Keywords Requirements engineering Requirements reuse process Functional requirements catalog Small-sized software enterprises 1 Introduction The requirements engineering (RE) process is performed at the beginning of the software development life cycle, and it involves the analysis and negotiation of what capabilities, features, and functionalities a proposed system needs to possess. Thus, RE is the process of discovering, docu- menting, and managing the requirements for a computer- based system. In this sense, the goal of RE is to produce a set of quality software requirements which, as far as pos- sible, is complete, consistent, relevant, and reflects what the customer actually wants [37]. The relevance of requirements engineering increased by the necessity to obtain high-quality requirements to improve the software quality. Within the RE discipline, the process of reusing requirements has highlighted as an alternative solution for reducing the development costs and time to market and improving the quality of requirements and productivity of the requirements engineers [10]. According to Goldin and Berry [9], reusability of requirements has been widely suggested to be a key issue/topic for improving software development produc- tivity and quality. In fact, it has been further argued that & I. Garcia ivan@mixteco.utm.mx C. Pacheco leninca@mixteco.utm.mx J. A. Calvo-Manzano jacalvo@fi.upm.es M. Arcilla marcilla@issi.uned.es 1 Universidad Tecnologica de la Mixteca, Huajuapan de Leo´n, Mexico 2 Universidad Politecnica de Madrid, Madrid, Spain 3 Universidad Nacional de Educacion a Distancia, Madrid, Spain 123 Requirements Eng DOI 10.1007/s00766-015-0243-1