Advertisement

Requirements Engineering

, Volume 22, Issue 2, pp 275–287 | Cite as

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

  • C. Pacheco
  • I. GarciaEmail author
  • J. A. Calvo-Manzano
  • M. Arcilla
Original Article

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 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.

Keywords

Requirements engineering Requirements reuse process Functional requirements catalog Small-sized software enterprises 

References

  1. 1.
    Benitti FBV, da Silva RC (2013) Evaluation of a systematic approach to requirements reuse. J Univers Comput Sci 19(2):254–280Google Scholar
  2. 2.
    Chernak Y (2012) Requirements reuse: the state of the practice. Proceedings of 2012 IEEE international conference on software science, technology and engineering. IEEE Computer Society Press, Herzlia, pp 46–53CrossRefGoogle Scholar
  3. 3.
    CMMI Product Team (2010) CMMI for Development (CMMI-DEV) (version 1.3), CMU/SEI-2010-TR-033, Software Engineering Institute, Carnegie Mellon UniversityGoogle Scholar
  4. 4.
    Cybulski JL (1996) Reusing requirements specifications: review of methods and techniques. In: Proceedings of 1st Australian requirements engineering workshop. Melbourne, Australia, pp 2.1–2.17Google Scholar
  5. 5.
    De Gea JMC, Nicolás J, Fernández JL, Toval A, Ebert C, Vizcaíno A (2011) Requirements engineering tools. IEEE Softw 28(4):86–91CrossRefGoogle Scholar
  6. 6.
    De Gea JMC, Nicolás J, Fernández JL, Toval A, Ebert C, Vizcaíno A (2012) Requirements engineering tools: capabilities, survey and assessment. Inf Softw Technol 54(10):1142–1157CrossRefGoogle Scholar
  7. 7.
    De Gea JMC, Nicolás J, Fernández JL, Toval A, Vizcaíno A, Ebert C (2013) Reusing requirements in global software engineering. In: Maalej W, Thurimella AK (eds) Managing requirements knowledge. Springer, Berlin, pp 171–197CrossRefGoogle Scholar
  8. 8.
    De Lucia A, Qusef A (2010) Requirements engineering in agile software development. J Emerg Technol Web Intell 2(3):212–220Google Scholar
  9. 9.
    Goldin L, Berry DM (2015) Reuse of requirements reduced time to market at one industrial shop: a case study. Requir Eng 20(1):23–44CrossRefGoogle Scholar
  10. 10.
    Hauksdóttir D, Mortensen NH, Nielsen PE (2014) Identified adjustability dimensions when generating a product specific requirements specification by requirements reuse. Comput Ind 65(6):952–966CrossRefGoogle Scholar
  11. 11.
    Hummel O, Atkinson C (2007) Supporting agile reuse through extreme harvesting. In: Concas G, Damiani E, Scotto M, Succi G (eds) Agile processes in software engineering and extreme programming. Springer, Berlin, pp 28–37CrossRefGoogle Scholar
  12. 12.
    IEEE (1990) Standard glossary of software engineering terminology. In: IEEE Std. 610.12-1990. IEEE Press, Piscataway, NJGoogle Scholar
  13. 13.
    IEEE (1998a) Recommended practice for software requirements specifications. In: IEEE Std. 830-1998. IEEE Press, Piscataway, NJGoogle Scholar
  14. 14.
    IEEE (1998b) Guide for developing system requirements specifications. In: IEEE Std. 1233-1998. IEEE Press, Piscataway, NJGoogle Scholar
  15. 15.
    Insfran E, Chastek G, Donohoe P, Leite JC (2014) Requirements engineering in software product line engineering. Requir Eng 19(4):331–332CrossRefGoogle Scholar
  16. 16.
    Kassab M, Neill C, Laplante P (2013) State of practice in requirements engineering: contemporary data. Innov Syst Softw Eng 10(4):235–241CrossRefGoogle Scholar
  17. 17.
    Krueger CW (1992) Software reuse. ACM Comput Surv 24(2):131–183CrossRefGoogle Scholar
  18. 18.
    Laguna MA, García FJ, López O (2002) Reutilización de requisitos de usuario: El modelo mecano [User requirements reuse: Meccano model]. Rev Colomb Comput 3(2):45–62Google Scholar
  19. 19.
    Lam W, McDermid JA, Vickers AJ (1997) Ten steps towards systematic requirements reuse. Requir Eng 2(2):102–113CrossRefGoogle Scholar
  20. 20.
    Lauesen S (2002) Software requirements, styles and techniques. Pearson Education, HarlowGoogle Scholar
  21. 21.
    Leite JC, Yu Y, Liu L, Yu E, Mylopoulos J (2005) Quality-based software reuse. In: Pastor O, Cunha FJ (eds) Advanced information systems engineering. Springer, Berlin, pp 535–550CrossRefGoogle Scholar
  22. 22.
    Lethbridge T, Sim SE, Singer J (2005) Studying software engineers: data collection techniques for software field studies. Empir Softw Eng 10(3):311–341CrossRefGoogle Scholar
  23. 23.
    Mannion M, Kaindl H (2008) Using parameters and discriminants for product line requirements. Syst Eng 11(1):61–80CrossRefGoogle Scholar
  24. 24.
    McCarey F, Cinnéide MÓ, Kushmerick N (2005) Rascal: a recommender agent for agile reuse. Artif Intell Rev 24(3–4):253–276CrossRefGoogle Scholar
  25. 25.
    Miles MB, Huberman AM (1994) Qualitative data analysis: an expanded sourcebook. Sage, CA, USAGoogle Scholar
  26. 26.
    Ministerio de las Administraciones Públicas. (2005). METRICAV.3 Metodología de Planificación, Desarrollo y Mantenimiento de Sistemas de Información [Methodology of planning, development and maintenance of information system]. Madrid, EspañaGoogle Scholar
  27. 27.
    Moros B, Vicente-Chicote C, Toval A (2008) Metamodeling variability to enable requirements reuse. In: Proceedings of 13th international workshop on exploring modeling methods for systems analysis and design. Montpellier, France, pp 140–154Google Scholar
  28. 28.
    Moros B, Toval A, Rosique F, Sánchez P (2013) Transforming and tracing reused requirements models to home automation models. Inf Softw Technol 55(6):941–965CrossRefGoogle Scholar
  29. 29.
    Nicolás J (2010) Una propuesta de gestión integrada de modelos y requisitos en líneas de productos software [A proposal for integrated management of models and requirements in software product lines]. Tesis Doctoral, Facultad de informática, Universidad de MurciaGoogle Scholar
  30. 30.
    Northrop L, Clements P (2007) A framework for software product line practice (version 5.0). Carnegie Mellon University, Pittsburgh, USA, Software Engineering InstituteGoogle Scholar
  31. 31.
    O’Leary P, McCaffery F, Thiel S, Richardson I (2012) An agile process model for product derivation in software product line engineering. J Softw Evolut Process 24(5):561–571CrossRefGoogle Scholar
  32. 32.
    Palomares C, Franch X, Quer C (2014) Requirements reuse and patterns: a survey. In: Salinesis C, van de Weerd I (eds) Requirements engineering: foundation for software quality. Springer, Berlin, pp 301–308CrossRefGoogle Scholar
  33. 33.
    Perry JM (1998) Perspective on software reuse (Technical report CMU/SEI-88-TR-22). Carnegie-Mellon University Pittsburgh, USA, Software Engineering InstituteGoogle Scholar
  34. 34.
    Ramesh B, Jarke M (2001) Toward reference models for requirements traceability. IEEE Trans Softw Eng 27(1):57–93CrossRefGoogle Scholar
  35. 35.
    Robertson J (2006) Mastering the requirements process, 6th edn. Pearson Education, USAGoogle Scholar
  36. 36.
    Runeson P, Höst M (2009) Guidelines for conducting and reporting case study research in software engineering. Empir Softw Eng 14(2):131–164CrossRefGoogle Scholar
  37. 37.
    Sommerville I, Sawyer P (1997) Requirements engineering. A good practice guide. Wiley, LondonzbMATHGoogle Scholar
  38. 38.
    Toval A, Moros B, Nicolás J, Lasheras J (2008) Eight key issues for an effective reuse-based requirements process. J Comput Syst Sci Eng 23(5):1–13Google Scholar
  39. 39.
    Wiegers K (1999) First things first: prioritizing requirements. Softw Dev 7(9):48–53Google Scholar
  40. 40.
    Wohlin C, Höst M, Henningsson K (2003) Empirical research methods in software engineering. In: Conradi R, Wang AI (eds) Empirical methods and studies in software engineering—experiences from ESERNET. Springer, Berlin, pp 7–23CrossRefGoogle Scholar

Copyright information

© Springer-Verlag London 2016

Authors and Affiliations

  • C. Pacheco
    • 1
  • I. Garcia
    • 1
    Email author
  • J. A. Calvo-Manzano
    • 2
  • M. Arcilla
    • 3
  1. 1.Universidad Tecnologica de la MixtecaHuajuapan de LeónMexico
  2. 2.Universidad Politecnica de MadridMadridSpain
  3. 3.Universidad Nacional de Educacion a DistanciaMadridSpain

Personalised recommendations