Abstract
Poorly executed requirements engineering activities profoundly affect the deliverables’ quality and project’s budget and schedule. High-quality requirements reuse through requirement patterns has been widely discussed to mitigate these adverse outcomes. Requirement patterns aggregate similar applications’ behaviors and services into well-defined templates that can be reused in later specifications. The abstraction capabilities of metamodeling have shown promising results concerning the improvement of the requirement specifications’ quality and professionals’ productivity. However, there is a lack of research on requirement patterns beyond requirements engineering, even using metamodels as the underlying structure. Besides, most companies often struggle with the cost, rework, and delay effects resulting from a weak alignment between requirements and testing. In this paper, we present a novel metamodeling approach, called Software Pattern MetaModel (SoPaMM), which aligns requirements and testing through requirement patterns and test patterns. Influenced by well-established agile practices, SoPaMM describes functional requirement patterns and acceptance test patterns as user stories integrated with executable behaviors. Another novelty is the evaluation of SoPaMM’s quality properties against a metamodel quality evaluation framework. We detail the evaluation planning, discuss evaluation results, and present our study’s threats to validity. Our experience with the design and evaluation of SoPaMM is summarized as lessons learned.




Similar content being viewed by others
Notes
Terminal models are metamodel instances as defined in the Meta-Object Facility (MOF) architecture [33].
ID consists of an abbreviated alphabetic code with the initial letter in uppercase of the quality characteristic followed by two letters representing the sub-characteristic and an ordinal number of the sequential order within a quality sub-characteristic. For instance, the UAp-2 represents the second measure of appropriateness recognizability (Ap), which is sub-characteristic of Usability (U).
Ecore is the core metamodel of the Eclipse Modeling Framework and describes models and runtime support for them. Available at https://wiki.eclipse.org/Ecore.
References
Amorndettawin M, Senivongse T (2019) Non-functional requirement patterns for agile software development. In: Proceedings of the 2019 3rd International Conference on Software and E-Business, ICSEB 2019, pp 66–74. Association for Computing Machinery, New York, NY, USA. https://doi.org/10.1145/3374549.3374561
Taciana N. Kudo, Renato F. Bulcão-Neto, Auri M.R. Vincenzi (2019) A Conceptual Metamodel to Bridging Requirement Patterns to Test Patterns. In: Proceedings of the XXXIII Brazilian Symposium on Software Engineering, SBES 2019, pp. 155–160. ACM, Salvador, Brazil. https://doi.org/10.1145/3350768.3351300
Taciana N. Kudo, Renato F. Bulcão-Neto, Auri M.R. Vincenzi (2020) Toward a Metamodel Quality Evaluation Framework: Requirements, Model, Measures, and Process. In: Proceedings of the XXXIV Brazilian Symposium on Software Engineering, SBES 2020, pp. 102–107. ACM, Natal, Brazil. https://doi.org/10.1145/3422392.3422461
Taciana N. Kudo, Renato F. Bulcão-Neto, Auri M.R. Vincenzi (2020) Uma Ferramenta para Construção de Catálogos de Padrões de Requisitos com Comportamento. In: Workshop em Engenharia de Requisitos, WER 2020, pp. 1–14. Editora PUC-Rio, São José dos Campos, Brazil. http://wer.inf.pucrio.br/WERpapers/artigos/artigos_WER20/12_WER_2020_paper_16.pdf
Taciana N. Kudo, Renato F. Bulcão-Neto, Auri M.R. Vincenzi (2020) Metamodel Quality Requirements and Evaluation (MQuaRE). CoRR abs/2008.09459. arxiv.org/abs/2008.09459
Taciana N. Kudo, Renato F. Bulcão-Neto, Auri M.R. Vincenzi (2020) Requirement patterns: a tertiary study and a research agenda. IET Softw 14(1):18–26. https://doi.org/10.1049/iet-sen.2019.0016
Taciana N. Kudo, Renato F. Bulcão-Neto, Auri M.R. Vincenzi, Alessandra A. Macedo (2019) A revisited systematic literature mapping on the support of requirement patterns for the software development life cycle. J. Softw. Eng. Res. Dev. 7:9. https://doi.org/10.5753/jserd.2019.458
Baudry B, Nebut C, Traon YL (2007) Model-driven engineering for requirements analysis. In: 11th IEEE international enterprise distributed object computing conference (EDOC 2007), p 459
Beckers K, Côté I, Goeke L (2014) A catalog of security requirements patterns for the domain of cloud computing systems. In: Proceedings of the ACM symposium on applied computing, pp 337–342. ACM, Gyeongju, Republic of Korea
Bjarnason E, Borg M (2017) Aligning requirements and testing: working together toward the same goal. IEEE Softw 34(1):20–23. https://doi.org/10.1109/MS.2017.14
Chelimsky D, Astels D, Helmkamp B, North D, Dennis Z, Hellesoy A (2010) The RSpec book: behaviour driven development with Rspec, cucumber, and friends, 1st edn. Pragmatic Bookshelf, Raleigh, NC
Cheng BHC, Atlee JM (2009) Current and future research directions in requirements engineering. In: Lyytinen K, Loucopoulos P, Mylopoulos J, Robinson B (eds) Design requirements engineering: a ten-year perspective. Springer, Berlin, pp 11–43
Chernak Y (2012) Requirements reuse: the state of the practice. In: 2012 IEEE international conference on software science. Technology and Engineering, SWSTE 2012, Herzlia, Israel, June 12–13, 2012. IEEE Computer Society, Los Alamitos, CA, USA, pp 46–53
Costal D, Franch X, López L, Palomares C, Quer C (2019) On the use of requirement patterns to analyse request for proposal documents. In: Laender AHF, Pernici B, Lim E, de Oliveira JPM (eds) conceptual modeling—38th international conference, ER 2019, Salvador, Brazil, November 4–7, 2019, Proceedings. Lecture Notes in Computer Science, vol. 11788, pp. 549–557. Springer . https://doi.org/10.1007/978-3-030-33223-5_45
Ebert C, Ray R (2021) Test-driven requirements engineering. IEEE Softw 38(1):16–24. https://doi.org/10.1109/MS.2020.3029811
Franch X (2015) Software requirements patterns: a state of the art and the practice. In: Proceedings of the 37th international conference on software engineering, vol 2, ICSE’15, pp 943–944. IEEE Press, Piscataway
Franch X, Palomares C, Quer C (2020) Industrial practices on requirements reuse: an interview-based study. In: Madhavji NH, Pasquale L, Ferrari A, Gnesi S (eds) Requirements engineering: foundation for software quality—26th international working conference, REFSQ 2020, Pisa, Italy, March 24–27, 2020, Proceedings [REFSQ 2020 was postponed], Lecture Notes in Computer Science, vol 12045, pp 78–94. Springer. https://doi.org/10.1007/978-3-030-44429-7_6
Franch X, Palomares C, Quer C, Renault S, De Lazzer F (2010) A metamodel for software requirement patterns. In: Wieringa R, Persson A (eds) Requirements engineering: foundation for software quality. Springer, Berlin, pp 85–90
Fricker S, Grau R, Zwingli A (2015) Requirements engineering: best practice, pp 25–46. Springer, Berlin
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman, Boston
Haskins C (2003) Using patterns to share best results—a proposal to codify the Sebok. INCOSE Int Symp 13(1):15–23
Irshad M, Petersen K, Poulding S (2018) A systematic literature review of software requirements reuse approaches. Inf Softw Technol 93(C):223–245
ISO/IEC: ISO/IEC 9126-1:2001 Software engineering—product quality—Part 1: quality model. ISO/IEC 9126-1:2001 1:1–25 (2001)
ISO/IEC: ISO/IEC 25000:2014 Systems and software engineering—systems and software Quality Requirements and Evaluation (SQuaRE)—Guide to SQuaRE. ISO/IEC 25000:2014 2:1–27 (2014)
ISO/IEC: ISO/IEC 25023:2016 systems and software engineering—systems and software quality requirements and evaluation (SQuaRE)—measurement of system and software product quality. ISO/IEC 25023:2016 1:1–45 (2016)
Leotta M, Clerissi D, Ricca F, Spadaro C (2013) Improving test suites maintainability with the page object pattern: an industrial case study. In: ICST workshops, pp 108–113. IEEE Computer Society, Washington, DC
Ma H, Shao W, Zhang L, Ma Z, Jiang Y (2004) Applying OO metrics to assess UML meta-models. In: Baar T, Strohmeier A, Moreira A, Mellor SJ (eds) UML 2004—the unified modeling language. Modeling languages and applications, pp 12–26. Springer, Berlin
Ma Z, He X, Liu C (2013) Assessing the quality of metamodels. Front Comput Sci 7(4):558
Macasaet RJ, Noguera M, Rodríguez ML, Garrido JL, Supakkul S, Chung L (2019) Micro-business requirements patterns in practice: remote communities in developing nations. J Univ Comput Sci 25(7):764–787. http://www.jucs.org/jucs_25_7/micro_business_requirements_patterns
Meszaros G (2006) XUnit test patterns: refactoring test code. Prentice Hall, Upper Saddle River
Moreira RMLM, Paiva ACR (2014) A GUI modeling DSL for pattern-based GUI testing—PARADIGM. In: ENASE 2014—Proceedings of the 9th international conference on evaluation of novel approaches to software engineering, Lisbon, Portugal, 28–30 April, 2014, pp 126–135. IEEE, Lisbon, Portugal
Oliveira G, Marczak S, Moralles C (2019) How to evaluate BDD scenarios’ quality? In: do Carmo Machado I, Souza R, Maciel RSP, Sant’Anna C (eds) Proceedings of the XXXIII Brazilian symposium on software engineering, SBES 2019, Salvador, Brazil, September 23–27, pp 481–490. ACM. https://doi.org/10.1145/3350768.3351301
OMG: Meta object facility (mof) specification, version 1.4. Object Management Group, Inc. (2002)
OMG: Structured patterns metamodel standard. OMG—Object Management Group (2017)
Palomares C, Quer C, Franch X (2011) Pabre-man: management of a requirement patterns catalogue. In: RE 2011, 19th IEEE international requirements engineering conference, Trento, Italy, August 29 2011–September 2, 2011, pp 341–342. IEEE Computer Society. https://doi.org/10.1109/RE.2011.6051666
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 ’13, pp 1260–1265. ACM, New York
Rising L (1999) Patterns: a way to reuse expertise. IEEE Commun Mag 37(4):34–36
Rocco J, Di Ruscio D, Iovino L, Pierantonio A (2014) Mining metrics for understanding metamodel characteristics. In: Proceedings of the 6th international workshop on modeling in software engineering (MiSE 2014), pp 55–60. ACM, New York
Rook P (1986) Controlling software projects. Softw Eng J 1:7
Smart JF (2014) BDD in action: behavior-driven development for the whole software lifecycle, 1st edn. Manning Publications
de Souza Cunha H, do Prado Leite JCS, Duboc L, Werneck V (2013) The challenges of representing transparency as patterns. In: Third IEEE International Workshop on Requirements Patterns, RePa 2013, Rio de Janeiro, Brazil, July 16, 2013, pp 25–30. IEEE Computer Society . https://doi.org/10.1109/RePa.2013.6602668
Stocco A, Leotta M, Ricca F, Tonella P (2015) Why creating web page objects manually if it can be done automatically? In: Proceedings of the 10th international workshop on automation of software test, AST ’15, pp 70–74. IEEE Press, Piscataway
Strahonja V (2007) The evaluation criteria of workflow metamodels. In: 29th international conference on information technology interfaces, pp 553–558. IEEE, New York
Tockey S (2015) Insanity, hiring, and the software industry. Computer 48:96–101
Videira C, da Silva AR (2005) Patterns and metamodel for a natural-language-based requirements specification language. In: Belo O, Eder J, Cunha JF, Pastor O (eds) The 17th conference on advanced information systems engineering (CAiSE ’05), Porto, Portugal, 13–17 June, 2005, CAiSE Forum, Short Paper Proceedings, CEUR Workshop Proceedings, vol 161. CEUR-WS.org. http://ceur-ws.org/Vol-161/FORUM_31.pdf
Withall S (2007) Software requirement patterns. Best practices. Microsoft Press, Redmond
Wohlin C, Runeson P, Hst M, Ohlsson MC, Regnell B, Wessln A (2012) Experimentation in software engineering. Springer, Berlin
Xuan X, Wang Y, Li S (2014) Privacy requirements patterns for mobile operating systems. In: Zhao L, do Prado Leite JCS, Supakkul S, Chung L, Wang Y (eds) 4th IEEE international workshop on requirements patterns, RePa 2014, Karlskrona, Sweden, August 26, 2014, pp. 39–42. IEEE Computer Society. https://doi.org/10.1109/RePa.2014.6894842
Ya’u B, Nordin A, Salleh N (2016) Software requirements patterns and meta model: a strategy for enhancing requirements reuse (rr). In: 2016 6th international conference on information and communication technology for the muslim world, pp 188–193. ICT4M, Jakarta, Indonesia
Acknowledgements
The work described in this manuscript has not been published before. It is not also under consideration for publication anywhere else. Besides, its publication has been approved by all co-authors.
Funding
Partial financial support was received from the Coordenação de Aperfeiçoamento de Pessoal de Nível Superior−Brazil (CAPES)−Finance Code 001.
Author information
Authors and Affiliations
Contributions
Taciana Novo Kudo, Renato de Freitas Bulcão-Neto were involved in conceptualization and writing—original draft preparation. Taciana Novo Kudo, Renato de Freitas Bulcão-Neto, Valdemar Vicente Graciano Neto contributed to methodology. All authors were involved in results analysis and threats to validity. Renato de Freitas Bulcão-Neto, Auri Marcelo Rizzo Vincenzi contributed to writing—review and editing. Taciana Novo Kudo was involved in funding acquisition. Auri Marcelo Rizzo Vincenzi contributed to supervision.
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no conflict of interest.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Kudo, T.N., Bulcão-Neto, R.d.F., Neto, V.V.G. et al. Aligning requirements and testing through metamodeling and patterns: design and evaluation. Requirements Eng 28, 97–115 (2023). https://doi.org/10.1007/s00766-022-00377-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-022-00377-5