Advertisement

Empirical Software Engineering

, Volume 22, Issue 6, pp 2719–2762 | Cite as

Requirements reuse and requirement patterns: a state of the practice survey

  • Cristina Palomares
  • Carme Quer
  • Xavier FranchEmail author
Article

Abstract

Requirements engineering is a discipline with numerous challenges to overcome. One of these challenges is the implementation of requirements reuse approaches. Although several theoretical proposals exist, little is known about the practices that are currently adopted in industry. Our goal is to contribute to the investigation of the state of the practice in the reuse of requirements, eliciting current practices from practitioners, and their opinions whenever appropriate. Besides reuse in general, we focus on requirement patterns as a particular strategy to reuse. We conducted an exploratory survey based on an online questionnaire. We received 71 responses from requirements engineers with industrial experience in the field, which were analyzed in order to derive observations. Although we found that a high majority of respondents declared some level of reuse in their projects (in particular, non-functional requirements were identified as the most similar and recurrent among projects), it is true that only a minority of them declared such reuse as a regular practice. Larger IT organizations and IT organizations with well-established software processes and methods present higher levels of reuse. Ignorance of reuse techniques and processes is the main reason preventing wider adoption. From the different existing reuse techniques, the simplest ones based on textual copy and subsequent tailoring of former requirements are the most adopted techniques. However, participants who apply reuse more often tend to use more elaborate techniques. Opinions of respondents about the use of requirement patterns show that they can be expected to mitigate problems related to the quality of the resulting requirements, such as lack of uniformity, inconsistency, or ambiguity. The main reasons behind the lack of adoption of requirement patterns by practitioners (in spite of the increasing research approaches proposed in the community) are related to the lack of a well-defined reuse method and involvement of requirement engineers. The results of our paper are interesting for practitioners since we highlight relevant observations from the survey participants’ experiences when deciding to implement requirements reuse practices. We also suggest future lines of research based on the needs pointed out in the results.

Keywords

Requirements engineering Requirements reuse Requirement patterns Empirical studies Surveys Online questionnaire 

Notes

Acknowledgments

We want to thank Claudia Ayala and Birgit Penzenstadler for their comments and suggestions. This work has been partially funded by the Spanish project TIN2013-44641-P.

References

  1. Arnuphaptrairong T (2011) Top ten lists of software project risks: evidence from the literature survey. In: Proceedings of the international multiconference of engineers and computer scientists (IMECS), Hong Kong, pp 16–18Google Scholar
  2. Bakar NH, Kasirun ZM (2014) Exploring software practitioners perceptions and experience in requirements reuse an empirical study in Malaysia. Int J Softw Eng Technol 1(2)Google Scholar
  3. Beecham S, Hall T, Rainer A (2003) Software process improvement problems in twelve software companies: an empirical analysis. Empir Softw Eng. doi: 10.1023/A:1021764731148 zbMATHGoogle Scholar
  4. Boehm BW, Basili V (2001) Software defect reduction top 10 list. Journal Computer 34(1). doi: 10.1109/2.962984
  5. Boone HN, Boone DA (2012) Analyzing Likert data. J Ext 50(2):1–5Google Scholar
  6. Bosch J (2000) Design & use of software architectures. Addison-WesleyGoogle Scholar
  7. Calleam Consulting (2015) Why do projects fail. 101 Common Causes. Last access on: February 2016. http://calleam.com/WTPF/?pageid=2338
  8. Carrillo-de-Gea JM, Nicolás J, Alemán JLF, Toval A, Vizcaíno A, Ebert C (2013) Reusing requirements in global software engineering. Managing requirements knowledge. Springer, Berlin. doi: 10.1007/978-3-642-34419-0_8 Google Scholar
  9. Carvallo JP, Franch X, Quer C (2006) Managing Non-technical requirements in COTS components selection. In: Proceedings of the 14th IEEE international conference requirements engineering (RE), Minneapolis, pp 323–326Google Scholar
  10. Chen J, Xiao J, Wang Q, Osterweil JL (2015) Perspectives on refactoring planning and practice: an empirical study. Empir Softw Eng. doi: 10.1007/s10664-015-9390-8 Google Scholar
  11. Chen K, Zhang W, Zhao H, Mei H (2005) An Approach to constructing feature models based on requirements clustering. In: Proceedings of the 13th IEEE international conference on requirements engineering (RE), Paris, pp 31–40Google Scholar
  12. Chernak Y (2012) Requirements reuse: the state of the practice. In: Proceedings of the IEEE international conference on software science, technology and engineering (SWSTE), Herzelia, pp 46–53Google Scholar
  13. Chung L, Supakkul S (2006) Capturing and reusing functional and non-functional requirements knowledge: a goal-object pattern approach. In: Proceedings of the IEEE international conference on information reuse and integration (IRI), Waikoloa, pp 539–544Google Scholar
  14. Cox K, Niazi M, Verner J (2009) Empirical study of Sommerville and Sawyer’s requirements engineering practices. IET Softw 3(5):339–355. doi: 10.1049/iet-sen.2008.0076 CrossRefGoogle Scholar
  15. Daramola O, Sindre G, Stalhane T (2012) Pattern-based Security requirements specification using ontologies and boilerplates. In: Proceedings of the IEEE second international workshop on requirements patterns (RePa), Chicago, pp 54–59Google Scholar
  16. de Mello RM, Da Silva PC, Travassos GH (2015) Investigating probabilistic sampling approaches for large-scale surveys in software engineering. Journal of Software Engineering Research and Development 3(1). doi: 10.1186/s40411-015-0023-0
  17. Dietrich J, Jezek K, Brada P (2015) What Java developers know about compatibility, and why this matters. Empir Softw Eng. doi: 10.1007/s10664-015-9389-1 Google Scholar
  18. Dillman DA, Smyth JD, Christian LM (2014) Internet, phone, mail, and mixed-mode surveys: the tailored design method. WileyGoogle Scholar
  19. Duggan M (2015) The demographics of social media users. Last access on July 2016. http://www.pewinternet.org/
  20. Dyba T (2003) Factors of software process improvement success in small and large organizations: an empirical study in the scandinavian context. ACM SIGSOFT Software Engineering Notes 28(5):148–157CrossRefGoogle Scholar
  21. Dyba T (2005) An empirical investigation of the key factors for success in software process improvement. IEEE Trans Softw Eng 31(5). doi: 10.1109/TSE.2005.53
  22. Eriksson M, Börstler J, Borg K (2009) Managing requirements specifications for product lines–An approach and industry case study. J Syst Softw. doi: 10.1016/j.jss.2008.07.046 Google Scholar
  23. Evans JR, Mathur A (2005) The value of online surveys. Internet Research 15(2). doi: 10.1108/10662240510590360
  24. Filipovikj P, Nyberg M, Rodriguez-Navas G (2014) Reassessing the pattern-based approach for formalizing requirements in the automotive domain. In: Proceedings of the 22th IEEE international requirements engineering conference (RE), Karlskrona, pp 444–450Google Scholar
  25. Franch X, Quer C, Renault S, Guerlain C, Palomares C (2013a) Constructing and using software requirement patterns. Managing requirements knowledge. Springer, Berlin. doi: 10.1007/978-3-642-34419-05
  26. Franch X (2013b) Software requirement patterns. In: Tutorial Summary in Proceedings of the 35th International Conference on Software Engineering (ICSE), San Francisco, pp 1499–1501Google Scholar
  27. Galorath D (2012) Software Project Failure Costs Billions-Better Estimation & Planning Can Help. Galorath Incorporated. Last access on February 2016. http://galorath.com/wp/software-project-failure-costs-billions-better-estimation-planning-can-help/
  28. Goldin L, Berry DM (2013) Reuse Of requirements reduced time to market at one industrial shop: a case study. Requir Eng 20(1). doi: 10.1007/s00766-013-0182-7
  29. Haeng-Kon K (2014) Effective domain modeling for mobile business AHMS (adaptive human management systems) requirements. In: International conference on software engineering, artificial intelligence, networking and parallel/distributed computing (SNPD)Google Scholar
  30. Hall T, Beecham S, Rainer A (2002) Requirements problems in twelve software companies: an empirical analysis. IEE Proceedings-Software 149(5). doi: 10.1049/ip-sen:20020694
  31. Hauksdottir D, Vermehren A, Savolainen J (2012) Requirements reuse at Danfoss. In: Proceedings of the 20th IEEE international conference on requirements engineering (RE), Chicago, pp 309–314Google Scholar
  32. Hoffmann A, Sollner M, Hoffmann H, Leimeister JM (2012) Towards trust-based software requirement patterns. In: Proceedings of the IEEE Second International Workshop on Requirements Patterns (RePa), Chicago, pp 7–11Google Scholar
  33. Hoffmann A, Janzen A, Hoffmann H, Leimeister JM (2013), Success Factors for Requirement Patterns Approaches Exploring Requirements Analysts’ Opinions and Whishes. Sozio-technisches Systemdesign im Zeitalter des Ubiquitous Computing (SUBICO) im Rahmen der InformatikGoogle Scholar
  34. Hull E, Jackson K, Dick J (2011) Requirements engineering, 3rd edition. Springer Publishing Company, IncorporatedGoogle Scholar
  35. IEEE Computer Society. Software Engineering Standards Committee and IEEE-SA Standards Board (2009) IEEE recommended practice for software requirements specifications. Institute of Electrical and Electronics EngineersGoogle Scholar
  36. Iqbal J, Ahmad R, Nizam MH, Nasir M, Noor MA (2013) Significant requirements engineering practices for software development outsourcing. In: Proceedings of the 22nd Australian software engineering conference (ASWEC), Melbourne, pp 137–144Google Scholar
  37. Issa AA, Al-Ali A (2010) Use case patterns driven requirements engineering. In: Proceedings of the second international conference on computer research and development (ICCRD), Kuala Lumpur, pp 307–313Google Scholar
  38. Jamieson S (2004) Likert scales: how to (ab) use them. Med Educ 38 (12). doi: 10.1111/j.1365-2929.2004.02012.x
  39. Jensen J, Tondel IA, Jaatun MG, Meland PH, Andresen H (2009) Reusable security requirements for healthcare applications. In: Proceedings of the international conference on availability, reliability and security (ARES), Fukuoka, pp 380–385Google Scholar
  40. Jones C (2014) Scoring and evaluating software methods, practices, and results. Version 12.0. Last access on February 2016. http://Namcookanalytics.com
  41. Karatas EK, Iyidir B, Birturk A (2014) Ontology-based software requirements reuse: case study in fire control software product line domain. In: Proceedings of the IEEE international conference on data mining workshop (ICDMW), Shenzhen, pp 832–839Google Scholar
  42. Khankaew S, Riddle S (2014) A review of practice and problems in requirements engineering in small and medium software enterprises in Thailand. In: Proceedings of the 2014 IEEE fourth international workshop on empirical requirements engineering (EmpiRE), Karlskrona, pp 1–8Google Scholar
  43. Kitchenham B, Pfleeger SL (2003) Principles of survey research part 6: data analysis. ACM SIGSOFT Software Engineering Notes 28(2):24–27CrossRefGoogle Scholar
  44. Konrad S, Cheng BH (2002) Requirements patterns for embedded systems. In: Proceedings of the IEEE Joint International Conference on Requirements Engineering (RE), Essen, pp 127–136Google Scholar
  45. Konrad S, Cheng BH (2005) Real-time specification patterns. In: Proceedings of the 27th International Conference on Software engineering (ICSE), St. Louis, pp 372–381Google Scholar
  46. Krippendorff K (2012) Content analysis: An introduction to its methodology, 3rd edn. Sage Publications, Thousand OaksGoogle Scholar
  47. Lam W (1998) A case-study of requirements reuse through product families. Ann Softw Eng 5(1). doi: 10.1023/A:1018912105115
  48. Lam W, McDermid JA, Vickers AJ (1997) Ten steps towards systematic requirements reuse. Requir Eng 2(2). doi: 10.1109/ISRE.1997.566834
  49. Lethbridge TC, Sim SE, Singer J (2005) Studying software engineers: Data collection techniques for software field studies. Empir Softw Eng 10(3). doi: 10.1007/s10664-005-1290-x
  50. Li Y, Pelties C, Kaser M, Nararan N (2012) Requirements patterns for seismology software applications. In: Proceedings of the IEEE Second International Workshop on Requirements Patterns (RePa), Chicago, pp 12–16Google Scholar
  51. Lo D, Nagappan N, Zimmermann T (2015) How Practitioners Perceive the Relevance of Software Engineering Research. In: Proceedings of the 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE), Bergamo, pp 415–425Google Scholar
  52. Mannion M, Kaindl H (2008) Using parameters and discriminants for product line requirements. Syst Eng 11(1). doi: 10.1002/sys.20086
  53. Massonet P, Van Lamsweerde A (1997) Analogical reuse of requirements frameworks. In: Proceedings of the Third IEEE International Symposium on Requirements Engineering (RE), Annapolis, pp 26–37Google Scholar
  54. Matloff N (2009) From Algorithm to Z-Scores: Probabilistic and Statistical Modeling in Computer Science. Last access on: February 2016. http://heather.cs.ucdavis.edu/~matloff/probstatbook.html
  55. Matulevicius R (2005) Survey of Requirements Engineering Practice in Lithuanian Software Development Companies. Information Systems Development. Springer, USGoogle Scholar
  56. Méndez D., Wagner S (2015) Naming the pain in requirements engineering: A design for a global family of surveys and first results from Germany. Inf Softw Technol 57(1). doi: 10.1016/j.infsof.2014.05.008
  57. Mich L, Franch M, Novi IP (2004) Market research for requirements analysis using linguistic tools. Requir Eng 9(2). doi: 10.1007/s00766-004-0195-3
  58. Milewski AE (2007) Global and task effects in information-seeking among software engineers. Empir Softw Eng 12(3). doi: 10.1007/s10664-007-9036-6
  59. Naish J, Zhao L (2011) Towards a generalised framework for classifying and retrieving requirements patterns. In: Proceedings of the First International Workshop on Requirements Patterns (RePa), Trento, pp 42– 51Google Scholar
  60. Neill CJ, Laplante PA (2003) Requirements engineering: the state of the practice. IEEE Softw 20(6). doi: 10.1109/MS.2003.1241365
  61. Niazi M, Cox K, Verner J (2008) A measurement framework for assessing the maturity of requirements engineering process. Softw Qual J 16(2). doi: 10.1007/s11219-007-9033-4
  62. Niazi M, El-Attar M, Usman M, Ikram N (2012) An empirical study identifying high perceived value requirements engineering practices in global software development projects. In: Proceedings of the 7th International Conference on Software Engineering Advances (ICSEA), Lisbon, pp 283–288Google Scholar
  63. Nikula U, Sajaniemi J, Kälviäinen H (2000) A State-of-the-practice Survey on Requirements Engineering in Small-and Medium-sized Enterprises. Research Report. Lappeenranta University of Technology, FinlandGoogle Scholar
  64. Nuseibeh B, Easterbrook S (2000) Requirements Engineering: A Roadmap. In: Proceedings of the Conference on The Future of Software Engineering (FOSE), International Conference on Software Engineering (ICSE), Limerick, pp 35–46Google Scholar
  65. Pacheco CL, Garcia IA, Calvo-Manzano JA (2015) A proposed model for reuse of software requirements in requirements catalog. Journal of Software: Evolution and Process,  10.1002/smr.1698
  66. Palomares C, Franch X, Quer C (2014a) Requirements reuse and patterns: a survey. In Requirements Engineering: Foundation for Software Quality. In: Proceedings of the 20th International Working Conference on Requirements Engineering: Foundation for Sofware Quality (REFSQ), Essen, pp 301– 308Google Scholar
  67. Palomares C, Quer C, Franch X (2014b) Requirements Reuse with the PABRE Framework. Requirements Engineering Magazine 2014(1). IREBGoogle Scholar
  68. Palomares C, Quer C, Franch X, Renault S, Guerlain C (2013) A catalogue of functional software requirement patterns for the domain of content management systems. In: Proceedings of the 28th Annual ACM Symposium on Applied Computing (SAC), Coimbra, pp 1260–1265Google Scholar
  69. Panis MC (2015) Reuse of Architecturally Derived Standards Requirements. IEEE International Requirements Engineering Conference (RE), Ottawa, pp 296–304Google Scholar
  70. Pohl K (2010) Requirements engineering: fundamentals, principles, and techniques. Springer Publishing Company, IncorporatedGoogle Scholar
  71. Post A, Menzel I, Podelski A (2011) Applying restricted English grammar on automotive requirements?does it work? A case study. In: Proceedings of the 17th International Working Conference on Requirements Engineering: Foundation for Software Quality (REFSQ), Essen, pp 166–180Google Scholar
  72. Procaccino JD, Verner JM, Overmyer SP, Darter ME (2002) Case study: factors for early prediction of software development success. Inf Softw Technol 44(1). doi: 10.1016/S0950-5849(01)00217-8
  73. Renault S, Méndez O, Franch X, Quer C (2009) A Pattern-based Method for building Requirements Documents in Call-for-tender Processes. Int J Comput Sci Appl 6(5):175–202Google Scholar
  74. Rine DC, Nada N (2000) An empirical study of a software reuse reference model. Inf Softw Technol 42(1). doi: 10.1016/S0950-5849(99)00055-5
  75. Robertson J, Robertson S (2000) Volere Requirements Specification Template. Atlantic System Guild, Last access on February 2016. http://www.volere.co.uk/template.htm
  76. Sadraei E, Aurum A, Beydoun G, Paech B (2007) A field study of the requirements engineering practice in Australian software industry. Requir Eng 12(3). doi: 10.1007/s00766-007-0042-4
  77. Salini P, Kanmani S (2012) A knowledge-oriented approach to security requirements for an E-voting system. Int J Comput Appl 49(11). doi: 10.5120/7671-0953
  78. Sawyer P, Sommerville I, Viller S (1997) Requirements process improvement through the phased introduction of good practice. Software Process: Improvement and Practice 3(1). doi: 10.1002/(SICI)1099-1670(199703)3:1%3C19::AID-SPIP66%3E3.0.CO;2-X
  79. Schirpenbach J (2014) Re-Use of Requirements via Libraries: Opportunities & Approaches. Requirements Engineering Magazine 2. IREBGoogle Scholar
  80. Shahrokni A, Feldt R (2010) Towards a framework for specifying software robustness requirements based on patterns. In: Proceedings of the 16th International Working Conference on Requirements Engineering: Foundation for Software Quality (REFSQ), Göteborg, pp 79–84Google Scholar
  81. Solemon B, Sahibuddin S, Ghani AAA (2009) Requirements engineering problems and practices in software companies: An industrial survey. Advances in Software Engineering. Springer Berlin HeidelbergGoogle Scholar
  82. Solemon B, Sahibuddin S, Ghani AAA (2010) Adoption of requirements engineering practices in Malaysian software development companies. Advances in Software Engineering. Springer Berlin HeidelbergGoogle Scholar
  83. Solinski A, Petersen K (2014) Prioritizing agile benefits and limitations in relation to practice usage. Softw Qual J. doi: 10.1007/s11219-014-9253-3 Google Scholar
  84. Sommerville I, Sawyer P (1997) Requirements engineering: a good practice guide. John Wiley & Sons, IncGoogle Scholar
  85. Sommerville I, Ransom J (2005) An empirical study of industrial requirements engineering process assessment and improvement. ACM Trans Softw Eng Methodol 14 (1). doi: 10.1145/1044834.1044837
  86. Souag A, Mazo R, Salinesi C, Comyn-Wattiau I (2015) Reusable knowledge in security requirements engineering: a systematic mapping study. Requir Eng. doi: 10.1007/s00766-015-0220-8 Google Scholar
  87. Srivastava S (2013) A Repository of Software Requirement Patterns for Online Examination System. Int J Comput Sci 10(3)Google Scholar
  88. Supakkul S, Hill T, Chung L, Tun TT, Sampaio do Prado Leite JC (2010) An NFR pattern approach to dealing with NFRs. In: Proceedings of the 18th IEEE International Requirements Engineering Conference (RE), Sydney, pp 179–188Google Scholar
  89. SwissQ (2012a) SwissQ Requirements Trends & Benchmarks Switzerland 2012. Last access on: October 2016. http://www.slideshare.net/swissq/agile-and-requirements-trends-benchmarks-2012-englisch
  90. SwissQ (2012b) SwissQ Agile Trends & Benchmarks Switzerland 2012. Last access on: October 2016. http://www.mcpa.biz/wp-content/uploads/2015/09/SwissQ_Agile_Trends_2012_Web_EN-1.pdf
  91. Schär B, Jüngling S, Thönssen B (2015) Towards an Agile Requirements Engineering Process Combining HERMES 5 and SCRUM. In: Proceedings of the International Conference on Enterprise Systems (ES), BaselGoogle Scholar
  92. Tahir A, Ahmad R (2010) Requirement engineering practices-an empirical study. In: Proceedings of the International Conference on Computational Intelligence and Software Engineering (CiSE), Wuhan, pp 1–5Google Scholar
  93. Tiwana A (2004) An empirical study of the effect of knowledge integration on software development performance. Inf Softw Technol 46(13). doi: 10.1016/j.infsof.2004.03.006
  94. Toval A, Nicolás J, Moros B, García F. (2002) Requirements reuse for improving information systems security: a practitioner’s approach. Requir Eng 6(4). doi: 10.1007/PL00010360
  95. Trochim WM, Donnelly JP (2006) Research methods knowledge base. Last access on February 2016, http://www.socialresearchmethods.net/kb/
  96. Umarji M, Sim SE (2013) Archetypal Internet-Scale Source Code Searching. Finding Source Code on the Web for Remix and Reuse. Springer, New YorkGoogle Scholar
  97. VersionOne (2016) The 10th Anual State of AgileTM Report. Last access on October 2016. http://stateofagile.versionone.com/ (by subscription)
  98. von Knethen A, Paech B, Kiedaisch F, Houdek F (2002) Systematic requirements recycling through abstraction and traceability. In: Proceedings of the IEEE Joint International Conference on Requirements Engineering (RE), Essen, pp 273–281Google Scholar
  99. Wiegers K, Beatty J (2013) Software requirements. Microsoft PressGoogle Scholar
  100. Withall S (2007) Software requirement patterns. Microsoft PressGoogle Scholar
  101. Wohlin C, Runeson P, Host M, Ohlsson MC, Regnell B, Wesslen A (2012) Experimentation in software engineering: an introduction. Kluwer Academic Publishers Norwell, MA, USACrossRefzbMATHGoogle Scholar
  102. Wright KB (2005) Researching Internet-based populations: Advantages and disadvantages of online survey research, online questionnaire authoring software packages, and web survey services. J Comput-Mediat Commun 10(3). doi: 10.1111/j.1083-6101.2005.tb00259.x
  103. Young R (2015) The Main Thing is Keeping the Main Thing the Main Thing. Requirements Engineering Magazine 2015(1). IREBGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  1. 1.Group of Software and Service Engineering (GESSI)Universitat Politècnica de Catalunya (UPC)BarcelonaSpain
  2. 2.Group of Software and Service Engineering (GESSI)Universitat Politècnica de Catalunya (UPC)BarcelonaSpain
  3. 3.Group of Software and Service Engineering (GESSI)Universitat Politècnica de Catalunya (UPC)BarcelonaSpain

Personalised recommendations