Requirements quality research: a harmonized theory, evaluation, and roadmap

Springer Science and Business Media LLC - Tập 28 - Trang 507-520 - 2023
Julian Frattini1, Lloyd Montgomery2, Jannik Fischbach3,4, Daniel Mendez1,4, Davide Fucci1, Michael Unterkalmsteiner1
1Blekinge Institute of Technology Valhallavägen 1, Karlskrona, Sweden
2University of Hamburg Mittelweg 177, Hamburg, Germany
3Netlight Consulting GmbH Sternstraße 5, Munich, Germany
4Fortiss GmbH Guerickestrasse 25, Munich, Germany

Tóm tắt

High-quality requirements minimize the risk of propagating defects to later stages of the software development life cycle. Achieving a sufficient level of quality is a major goal of requirements engineering. This requires a clear definition and understanding of requirements quality. Though recent publications make an effort at disentangling the complex concept of quality, the requirements quality research community lacks identity and clear structure which guides advances and puts new findings into an holistic perspective. In this research commentary, we contribute (1) a harmonized requirements quality theory organizing its core concepts, (2) an evaluation of the current state of requirements quality research, and (3) a research roadmap to guide advancements in the field. We show that requirements quality research focuses on normative rules and mostly fails to connect requirements quality to its impact on subsequent software development activities, impeding the relevance of the research. Adherence to the proposed requirements quality theory and following the outlined roadmap will be a step toward amending this gap.

Tài liệu tham khảo

Méndez Fernández D, Wagner S, Kalinowski M, Felderer M, Mafra P, Vetrò A, Conte T, Christiansson M-T, Greer D, Lassenius C et al (2017) Naming the pain in requirements engineering: contemporary problems, causes, and effects in practice. Empir Softw Eng 22(5):2298–2338 Wagner S, Méndez Fernández D, Felderer M, Vetrò A, Kalinowski M, Wieringa R, Pfahl D, Conte T, Christiansson M-T, Greer D et al (2019) Status quo in requirements engineering: a theory and a global family of surveys. ACM Trans Softw Eng Methodol (TOSEM) 28(2):1–48 Damian D, Chisan J (2006) An empirical study of the complex relationships between requirements engineering processes and other processes that lead to payoffs in productivity, quality, and risk management. IEEE Trans Softw Eng 32(7):433–453 Boehm BW, Papaccio PN (1988) Understanding and controlling software costs. IEEE Trans Softw Eng 14(10):1462–1477 Méndez Fernández D, Böhm W, Vogelsang A, Mund J, Broy M, Kuhrmann M, Weyer T (2019) Artefacts in software engineering: a fundamental positioning. Softw Syst Model 18(5):2777–2786 Montgomery L, Fucci D, Bouraffa A, Scholz L, Maalej W (2021) Empirical research on requirements quality: a systematic mapping study. Requir Eng 27:183–209 Frattini J, Montgomery L, Fischbach J, Unterkalmsteiner M, Mendez D, Fucci D (2022) A live extensible ontology of quality factors for textual requirements. arXiv preprint arXiv:2206.05959 Franch X, Mendez D, Vogelsang A, Heldal R, Knauss E, Oriol M, Travassos G, Carver JC, Zimmermann T (2020) How do practitioners perceive the relevance of requirements engineering research? IEEE Trans Softw Eng 48(6):1947–1964 Berry D, Gacitua R, Sawyer P, Tjong SF (2012) The case for dumb requirements engineering tools. In: International working conference on requirements engineering: foundation for software quality. Springer, pp 211–217 Femmer H (2018) Requirements quality defect detection with the Qualicen requirements scout. In: REFSQ workshops Phalp KT, Vincent J, Cox K (2007) Assessing the quality of use case descriptions. Softw Qual J 15(1):69–97 Lindland OI, Sindre G, Solvberg A (1994) Understanding quality in conceptual modeling. IEEE Softw 11(2):42–49 Pohl K (1993) The three dimensions of requirements engineering. In: International Conference on advanced information systems engineering. Springer, Berlin, pp 275–292 Broy M, Deißenböck F, Pizka M (2005) A holistic approach to software quality at work. In: Proceedings of the 3rd world congress for software quality (3WCSQ) Deissenboeck F, Wagner S, Pizka M, Teuchert S, Girard J-F (2007) An activity-based quality model for maintainability. In: 2007 IEEE international conference on software maintenance. IEEE, pp. 184–193 King P, Naughton P, DeMoney M, Kanerva J, Walrath K, Hommel S (2021) Code conventions for the Java programming language. Technical report, Sun Microsystems, Inc., Mountain View, CA, USA 1999 Broy M, Deissenboeck F, Pizka M (2006) Demystifying maintainability. In: Proceedings of the 2006 international workshop on software quality, pp 21–26 Albrecht AJ, Gaffney JE (1983) Software function, source lines of code, and development effort prediction: a software science validation. IEEE Trans Softw Eng 6:639–648 McCabe TJ (1976) A complexity measure. IEEE Trans Softw Eng 4:308–320 Rosenberg J (1997) Some misconceptions about lines of code. In: Proceedings Fourth international software metrics symposium, pp. 137–142. IEEE Khoshgoftaar TM, Munson JC (1990) The lines of code metric as a predictor of program faults: a critical analysis. In: Proceedings fourteenth annual international computer software and applications conference. IEEE Computer Society, pp 408–409 Shepperd M (1988) A critique of cyclomatic complexity as a software metric. Softw Eng J 3(2):30–36 McCall JA (1977) Factors in software quality. US Rome Air development center reports Boehm BW, Brown JR, Lipow M (1976) Quantitative evaluation of software quality. In: proceedings of the 2nd international conference on software engineering, pp 592–605 Kitchenham B, Linkman S, Pasquini A, Nanni V (1997) The squid approach to defining a quality model. Softw Qual J 6(3):211–233 Basili VR, Caldiera G, Rombach HD (1994) The goal question metric approach. Encyclopedia Softw Eng 1:528–532 Marinescu R, Ratiu D (2004) Quantifying the quality of object-oriented design: the factor-strategy model. In: 11th working conference on reverse engineering. IEEE, pp 192–201 Deissenboeck F, Juergens E, Lochmann K, Wagner S (2009) Software quality models: Purposes, usage scenarios and requirements. In: 2009 ICSE workshop on software quality. IEEE, pp 9–14 Boehm BW, Brown JR, Kaspar H, Lipow M, MacLeod G (1978) Merritt: characteristics of software quality. North Holland, Amsterdam Winter S, Wagner S, Deissenboeck F (2007) A comprehensive model of usability. In: IFIP international conference on engineering for human–computer interaction. Springer, Berlin, pp 106–122 Wagner S, Fernandez DM, Islam S, Lochmann K (2009) A security requirements approach for web systems. In: Workshop quality assessment in web (QAW 2009) Goeb A, Lochmann K (2011) A software quality model for SOA. In: Proceedings of the 8th international workshop on software quality, pp 18–25 Wagner S, Lochmann K, Heinemann L, Kläs M, Trendowicz A, Plösch R, Seidi A, Goeb A, Streit J (2012) The Quamoco product quality modelling and assessment approach. In: 2012 34th international conference on software engineering (ICSE). IEEE, pp 1133–1142 Wagner S, Lochmann K, Winter S, Deissenboeck F, Juergens E, Herrmannsdoerfer M, Heinemann L, Kläs M, Trendowicz A, Heidrich J et al (2012) The quamoco quality meta-model Deissenboeck F, Juergens E, Hummel B, Wagner S, y Parareda BM, Pizka M (2008) Tool support for continuous quality control. IEEE Softw 25(5):60–67 Deissenboeck F, Heinemann L, Herrmannsdoerfer M, Lochmann K, Wagner S (2011) The quamoco tool chain for quality modeling and assessment. In: 2011 33rd international conference on software engineering (ICSE). IEEE, pp 1007–1009 Steidl D, Deissenboeck F, Poehlmann M, Heinke R, Uhink-Mergenthaler B (2014) Continuous software quality control in practice. In: 2014 IEEE international conference on software maintenance and evolution. IEEE, pp 561–564 Lochmann K, Ramadani J, Wagner S (2013) Are comprehensive quality models necessary for evaluating software quality? In: Proceedings of the 9th international conference on predictive models in software engineering, pp 1–9 Garvin DA (1984) What does product quality really mean. Sloan Manag Rev 25:25–43 Kläs M, Lochmann K, Heinemann L (2011) Evaluating a quality model for software product assessments-a case study. In: Proceedings of SQMB 11 Wagner S, Goeb A, Heinemann L, Kläs M, Lampasona C, Lochmann K, Mayr A, Plösch R, Seidl A, Streit J et al (2015) Operationalised product quality models and assessment: the Quamoco approach. Inf Softw Technol 62:101–123 Wagner S (2010) A Bayesian network approach to assess and predict software quality using activity-based quality models. Inf Softw Technol 52(11):1230–1241 Femmer H, Kučera J, Vetrò A (2014) On the impact of passive voice requirements on domain modelling. In: Proceedings of the 8th ACM/IEEE international symposium on empirical software engineering and measurement, pp 1–4 Ferrari A, Gori G, Rosadini B, Trotta I, Bacherini S, Fantechi A, Gnesi S (2018) Detecting requirements defects with NLP patterns: an industrial experience in the railway domain. Empir Softw Eng 23(6):3684–3733 Habib MK, Wagner S, Graziotin D (2021) Detecting requirements smells with deep learning: Experiences, challenges and future work. In: 2021 IEEE 29th international requirements engineering conference workshops (REW). IEEE, pp 153–156 Femmer H, Fernández DM, Wagner S, Eder S (2017) Rapid quality assurance with requirements smells. J Syst Softw 123:190–213 Berry DM, Bucchiarone A, Gnesi S, Lami G, Trentanni G (2006) A new quality model for natural language requirements specifications. In: Proceedings of the international workshop on requirements engineering: foundation of software quality (REFSQ) Lucassen G, Dalpiaz F, van der Werf JME, Brinkkemper S (2017) Improving user story practice with the Grimm method: a multiple case study in the software industry. In: International working conference on requirements engineering: foundation for software quality. Springer, Berlin, pp 235–252 Parra E, Dimou C, Llorens J, Moreno V, Fraga A (2015) A methodology for the classification of quality of requirements using machine learning techniques. Inf Softw Technol 67:180–195 Wilson WM, Rosenberg LH, Hyatt LE (1997) Automated analysis of requirement specifications. In: Proceedings of the 19th international conference on software engineering, pp 161–171 Yang H, De Roeck A, Gervasi V, Willis A, Nuseibeh B (2011) Analysing anaphoric ambiguity in natural language requirements. Requir Eng 16(3):163–189 Femmer H, Mund J, Fernández DM (2015) It’s the activities, stupid! A new perspective on re quality. In: 2015 IEEE/ACM 2nd international workshop on requirements engineering and testing. IEEE, pp 13–19 Femmer H, Vogelsang A (2018) Requirements quality is quality in use. IEEE Softw 36(3):83–91 Gregor S (2006) The nature of theory in information systems. MIS Q 30:611–642 Mund J, Fernandez DM, Femmer H, Eckhardt J (2015) Does quality of requirements specifications matter? Combined results of two empirical studies. In: 2015 ACM/IEEE international symposium on empirical software engineering and measurement (ESEM), pp. 1–10. IEEE Juergens E, Deissenboeck F (2010) How much is a clone. In: Proceedings of the 4th international workshop on software quality and maintainability, pp 79–88 Deissenboeck F, Pizka M (2007) The economic impact of software process variations. In: International conference on software process. Springer, Berlin, pp 259–271 Antinyan V, Staron M, Sandberg A, Hansson J (2016) A complexity measure for textual requirements. In: 2016 joint conference of the international workshop on software measurement and the international conference on software process and product measurement (IWSM-MENSURA). IEEE, pp 148–158 Sommerville I (2005) Integrated requirements engineering: a tutorial. IEEE Softw 22(1):16–23 Fischbach J, Frattini J, Vogelsang A, Mendez D, Unterkalmsteiner M, Wehrle A, Henao PR, Yousefi P, Juricic T, Radduenz J et al (2023) Automatic creation of acceptance tests by extracting conditionals from requirements: NLP approach and case study. J Syst Softw 197:111549 Petersen K, Wohlin C (2009) Context in industrial software engineering research. In: 2009 3rd international symposium on empirical software engineering and measurement. IEEE, pp 401–404 Cohn M (2004) User stories applied: for agile software development. Addison-Wesley Professional, Boston Molléri JS, Petersen K, Mendes E (2020) An empirically evaluated checklist for surveys in software engineering. Inf Softw Technol 119:106240 Holsti OR (1969) Content analysis for the social sciences and humanities. (Content analysis). Addison-Wesley, Reading, MA Feng GC (2015) Mistakes and how to avoid mistakes in using intercoder reliability indices. Methodol: Eur J Res Methods Behav Soc Sci 11(1):13 Bennett EM, Alpert R, Goldstein A (1954) Communications through limited-response questioning. Public Opin Q 18(3):303–308 Femmer H, Unterkalmsteiner M, Gorschek T (2017) Which requirements artifact quality defects are automatically detectable? A case study. In: 2017 IEEE 25th international requirements engineering conference workshops (REW). IEEE, pp 400–406 Kamata MI, Tamai T (2007) How does requirements quality relate to project success or failure? In: 15th IEEE international requirements engineering conference (RE 2007). IEEE, pp 69–78 Sinpang JS, Sulaiman S, Idris N (2017) Detecting ambiguity in requirements analysis using Mamdani fuzzy inference. J Telecommun Electron Comput Eng (JTEC) 9(3–4):157–162 Chantree F, Nuseibeh B, De Roeck A, Willis A (2006) Identifying nocuous ambiguities in natural language requirements. In: 14th IEEE international requirements engineering conference (RE’06). IEEE, pp 59–68 Din CY, Rine D (2008) Requirements content goodness and complexity measurement based on NP chunks. VDM Publishing, Saarbrücken Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2012) Experimentation in software engineering. Springer, Berlin Landhaußer M, Korner SJ, Tichy WF, Keim J, Krisch J (2015) Denom: a tool to find problematic nominalizations using NLP. In: 2015 IEEE second international workshop on artificial intelligence for requirements engineering (AIRE), pp 1–8. IEEE Mackenzie JL (1985) Nominalization and valency reduction. Predicates and terms in Functional Grammar. Dordrecht/Cinnaminson, Foris, pp 31–51 Méndez Fernández D, Penzenstadler B, Kuhrmann M, Broy M (2010) A meta model for artefact-orientation: fundamentals and lessons learned in requirements engineering. In: International conference on model driven engineering languages and systems. Springer, Berlin, pp 183–197 Méndez Fernández D, Penzenstadler B (2015) Artefact-based requirements engineering: the Amdire approach. Requir Eng 20(4):405–434 Méndez Fernández D, Wieringa R (2013) Improving requirements engineering by artefact orientation. In: International conference on product focused software process improvement. Springer, Berlin, pp 108–122 Sharp H, Finkelstein A, Galal G (1999) Stakeholder identification in the requirements engineering process. In: Proceedings. Tenth international workshop on database and expert systems applications. DEXA 99. IEEE, pp 387–391 Zhao L, Alhoshan W, Ferrari A, Letsholo KJ, Ajagbe MA, Chioasca E-V, Batista-Navarro RT (2021) Natural language processing for requirements engineering: a systematic mapping study. ACM Comput Surv (CSUR) 54(3):1–41 McElreath R (2020) Statistical rethinking: a Bayesian course with examples in R and Stan. Chapman & Hall/CRC, Boca Raton Dybå T, Sjøberg DI, Cruzes DS (2012) What works for whom, where, when, and why? On the role of context in empirical software engineering. In: Proceedings of the ACM-IEEE international symposium on empirical software engineering and measurement, pp 19–28 Briand L, Bianculli D, Nejati S, Pastore F, Sabetzadeh M (2017) The case for context-driven software engineering research: generalizability is overrated. IEEE Softw 34(5):72–75 Montgomery L, Lüders C, Maalej W (2022) An alternative issue tracking dataset of public jira repositories. In: Proceedings of the 19th International Conference on Mining Software Repositories, pp. 73–77