Requirements quality research: a harmonized theory, evaluation, and roadmap
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