Mapeo sistemático de la literatura sobre los malos olores en los requisitos de desarrollo de software
Resumen
Una de las actividades responsables del éxito en los proyectos de desarrollo de software es la especificación de requisitos, cuyo propósito es asegurar que los deseos o necesidades del cliente representan de forma precisa lo que ellos esperan. Un proceso claro y estructurado durante la especificación de requisitos permite evitar reprocesos en etapas posteriores del ciclo de vida del proyecto, generando un beneficio en términos de estimación de tiempos para nuevas tareas, costo y esfuerzo. En este sentido, es importante contar con mecanismos o técnicas que permitan identificar y mitigar posibles errores durante la especificación de requisitos. En particular, la ingeniería de software propone el término “olor”, que se puede definir como un síntoma concreto que puede generar defectos en un requisito. Con el objetivo de establecer un estado del conocimiento más amplio en torno a la identificación, clasificación de olores presentes durante la especificación de requisitos y su impacto en la generación de un fenómeno conocido como deuda de requisitos, este artículo presenta los resultados obtenidos después de realizar un mapeo sistemático de la literatura, en el cual se describen las propuestas, iniciativas, resultados, herramientas tecnológicas, beneficios y desafíos en torno a la identificación y gestión de olores en la etapa de levantamiento de requisitos durante el desarrollo de soluciones software.
Palabras clave
Requisito oloroso, deuda de requisitos, desarrollo de software, ingeniería de software, ingeniería de requisitos
Citas
- M. K. Habib, S. Wagner, D. Graziotin, “Detecting Requirements Smells with Deep Learning: Experiences, Challenges and Future Work,” IEEE International Conference on Requirements Engineering, vol. 2021, pp. 153–156, 2021. https://doi.org/10.1109/REW53955.2021.00027 DOI: https://doi.org/10.1109/REW53955.2021.00027
- Junta de Andalucía, Ingeniería de requisitos | Marco de Desarrollo de la Junta de Andalucía, 2021. https://www.juntadeandalucia.es/servicios/madeja/contenido/subsistemas/ingenieria/ingenieria-requisitos
- H. Femmer, “Reviewing Natural Language Requirements with Requirements Smells-A Research Proposal,” in 11th International Doctoral Symposium on Empirical Software Engineering, 2013.
- H. Femmer, D. Méndez Fernández, S. Wagner, S. Eder, “Rapid Quality Assurance with Requirements Smells,” Journal of Systems and Software, vol. 123, pp. 190-213. https://doi.org/10.1016/j.jss.2016.02.047 DOI: https://doi.org/10.1016/j.jss.2016.02.047
- K. Petersen, S. Vakkalanka, L. Kuzniarz, “Guidelines for conducting systematic mapping studies in software engineering: An update,” Information and Software Technology, vol. 64, pp. 1–18, 2015. https://doi.org/10.1016/j.infsof.2015.03.007 DOI: https://doi.org/10.1016/j.infsof.2015.03.007
- K. Petersen, R. Feldt, S. Mujtaba, M. Mattsson, “Systematic Mapping Studies in Software,” International Journal of Software Engineering & Knowledge Engineering, vol. 17, no. 1, pp. 33–55, 2007. DOI: https://doi.org/10.14236/ewic/EASE2008.8
- B. Kitchenham, S. Charters, “Guidelines for performing Systematic Literature Reviews in Software Engineering, Version 2.3,” EBSE Technical Report, Keele University, 2007. https://doi.org/10.1145/1134285.1134500 DOI: https://doi.org/10.1145/1134285.1134500
- D. Budgen, M. Turner, P. Brereton, B. Kitchenham, “Using Mapping Studies in Software Engineering,” Lecture Notes in Business Information Processing, vol. 32, pp. 441–442, 2009. https://doi.org/10.1007/978-3-642-02152-7_36 DOI: https://doi.org/10.1007/978-3-642-02152-7_36
- V. R. Basili, G. Caldiera, “The Goal Question Metric Paradigm,” Encyclopedia of Software Engineering, vol. 2, pp. 528–532, 2000.
- R. Wieringa, N. Maiden, N. Mead, C. Rolland, “Requirements engineering paper classification and evaluation criteria: A proposal and a discussion,” Requirements Engineering, vol. 11, no. 1, pp. 102–107, 2006. https://doi.org/10.1007/s00766-005-0021-6 DOI: https://doi.org/10.1007/s00766-005-0021-6
- Anonym, State of Agile Report | State of Agile, 2020. https://digital.ai/resource-center/analyst-reports/state-of-agile-report#ufh-c-7027494-state-of-agile
- T. Dybå, T. Dingsøyr, “Strength of Evidence in Systematic Reviews in Software Engineering,” in Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement, 2008, pp. 178–187. https://doi.org/10.1145/1414004.1414034 DOI: https://doi.org/10.1145/1414004.1414034
- L. Yang et al., “Quality Assessment in Systematic Literature Reviews: A Software Engineering Perspective,” Information and Software Technology, vol. 130, e106397, 2021. https://doi.org/10.1016/j.infsof.2020.106397 DOI: https://doi.org/10.1016/j.infsof.2020.106397
- M. Ivarsson, T. Gorschek, “A method for evaluating rigor and industrial relevance of technology evaluations,” Empirical Software Engineering, vol. 16, no. 3, pp. 365–395, 2011. https://doi.org/10.1007/S10664-010-9146-4/figures/5 DOI: https://doi.org/10.1007/s10664-010-9146-4
- SCImago, Scimago Journal & Country Rank, 2022. https://www.scimagojr.com/
- CORE Inc, Core Conference Ranks, 2022. http://portal.core.edu.au/conf-ranks
- S. Jalali, C. Wohlin, “Systematic literature studies: Database searches vs. backward snowballing,” International Symposium on Empirical Software Engineering and Measurement, 2012, pp. 29–38. https://doi.org/10.1145/2372251.2372257 DOI: https://doi.org/10.1145/2372251.2372257
- H. Femmer, D. M. Fernández, E. Juergens, M. Klose, I. Zimmer, J. Zimmer, “Rapid requirements checks with requirements smells: Two case studies,” in 1st International Workshop on Rapid Continuous Software Engineering, 2014, pp. 10–19. https://doi.org/10.1145/2593812.2593817 DOI: https://doi.org/10.1145/2593812.2593817
- V. Lenarduzzi, D. Fucci, D. Mendéz, “On the Perceived Harmfulness of Requirement Smells: An Empirical Study,” in 26th International Working Conference on Requirement Engineering: Foundation for Software Quality, 2020.
- A. Beer, M. Junker, H. Femmer, M. Felderer, “Initial investigations on the influence of requirement smells on test-case design,” in IEEE 25th International Requirements Engineering Conference Workshops, 2017, pp. 323–326. https://doi.org/10.1109/REW.2017.43 DOI: https://doi.org/10.1109/REW.2017.43
- A. T. Seidel Calazans et al., “Quality requirements and the requirements quality: The indications from Requirements Smells in a Financial Institution Systems,” in ACM International Conference Proceeding Series, 2019, pp. 472–480. https://doi.org/10.1145/3350768.3350782 DOI: https://doi.org/10.1145/3350768.3350782
- R. Nascimento, E. Aranha, U. Kulesza, M. Lucena, “Requirements Smells as indicators of poor quality in requirement specification: A systematic mapping of literature,” in 21st Workshop em Engenharia de Requisitos, 2018.
- R. Nascimento, E. Guimarães, M. Lucena, “Requirements Smells como Indicador de Qualidade para Histórias de Usuários: Estudo Exploratório,” in WER, 2021.
- D. Šenkýř, P. Kroha, “Problem of incompleteness in textual requirements specification,” in Proceedings of the 14th International Conference on Software Technologies, 2019, pp. 323–330. DOI: https://doi.org/10.5220/0007978003230330
- A. Ferrari, A. Esuli, “An NLP approach for cross-domain ambiguity detection in requirements engineering,” Automated Software Engineering, vol. 26, no. 3, pp. 559–598, 2019. https://doi.org/10.1007/S10515-019-00261-7 DOI: https://doi.org/10.1007/s10515-019-00261-7
- H. Femmer, J. Mund, D. M. Fernandez, “It’s the Activities, Stupid! A New Perspective on RE Quality,” in 2nd International Workshop on Requirements Engineering and Testing, 2015, pp. 13–19. https://doi.org/10.1109/RET.2015.11 DOI: https://doi.org/10.1109/RET.2015.11
- A. Alzayed, A. Al-Hunaiyyan, “A Bird’s Eye View of Natural Language Processing and Requirements Engineering,” International Journal of Advanced Computer Science and Applications, vol. 12, no. 5, pp. 81–90, 2021. DOI: https://doi.org/10.14569/IJACSA.2021.0120512
- M. Unterkalmsteiner, T. Gorschek, “Requirements Quality Assurance in Industry: Why, What and How?,” Lecture Notes in Computer Science, vol. 10153, pp. 77–84, 2017. https://doi.org/10.1007/978-3-319-54045-0_6 DOI: https://doi.org/10.1007/978-3-319-54045-0_6
- L. Garm, F. Dalpiaz, J. Van Der Werf, S. Brinkkemper, “Improving agile requirements: the Quality User Story framework and tool,” Requireriments Engineering, vol. 21, no. 3, pp. 383–403, 2016. https://doi.org/10.1007/s00766-016-0250-x DOI: https://doi.org/10.1007/s00766-016-0250-x
- H. Femmer, M. Unterkalmsteiner, T. Gorschek, “Which requirements artifact quality defects are automatically detectable? A case study,” in IEEE 25th International Requirements Engineering Conference Workshops, 2017, pp. 400–406. https://doi.org/10.1109/REW.2017.18 DOI: https://doi.org/10.1109/REW.2017.18
- Y. Al-Kasabera, W. Alzyadat, A. Alhroob, S. al Showarah, A. Thunibat, “An automated approach to validate requirements specification,” International Journal of Advanced Computer Technology, vol. 9, no. 2, pp. 3578–3585, 2020.
- J. Fischbach, J. Frattini, D. Mendez, M. Unterkalmsteiner, H. Femmer, A. Vogelsang, “How Do Practitioners Interpret Conditionals in Requirements?,” in 22nd International Conference on Product-Focused Software Process Improvement, 2021. https://doi.org/10.1007/978-3-030-91452-3_6 DOI: https://doi.org/10.1007/978-3-030-91452-3_6
- A. Ferrari, S. Gnesi, G. O. Spagnolo, “PURE: A Dataset of Public Requirements Documents,” in IEEE 25th International Requirements Engineering Conference, 2017, pp. 502-505. https://doi.org/10.1109/RE.2017.29 DOI: https://doi.org/10.1109/RE.2017.29
- E. Sarmiento-Calisaya, E. H. Cárdenas, V. Cornejo-Aparicio, G. S. Alzamora, “Towards the improvement of natural language requirements descriptions: The C&&L tool,” in Proceedings of the ACM Symposium on Applied Computing, 2020, pp. 1405–1413. https://doi.org/10.1145/3341105.3374028 DOI: https://doi.org/10.1145/3341105.3374028
- A. Rani, G. Aggarwal, “Algorithm for automatic detection of ambiguities from software requirements,” International Journal of Innovative Technology and Exploring Engineering, vol. 8, no. 9, pp. 878–882, 2019. https://doi.org/10.35940/ijitee.I1141.0789S19 DOI: https://doi.org/10.35940/ijitee.I1141.0789S19
- M. Q. Riaz, W. H. Butt, S. Rehman, “Automatic Detection of Ambiguous Software Requirements: An Insight,” in 5th International Conference on Information Management, 2019, pp. 1–6. https://doi.org/10.1109/INFOMAN.2019.8714682 DOI: https://doi.org/10.1109/INFOMAN.2019.8714682
- M. H. Osman, M. F. Zahrin, “Ambi Detect: An Ambiguous Software Requirements Specification Detection Tool,” Turkish Journal of Computer and Mathematics Education, vol. 12, no. 3, pp. 2023–2028, 2021. https://doi.org/10.17762/TURCOMAT.V12I3.1066 DOI: https://doi.org/10.17762/turcomat.v12i3.1066
- A. O. J. Sabriye, W. M. N. Wan Zainon, “An approach for detecting syntax and syntactic ambiguity in software requirement specification,” Journal of Theoretical and Applied Information Technology, vol. 96, no. 8, pp. 2275–2284, 2018. DOI: https://doi.org/10.1109/ICITECH.2017.8080002
- B. Gleich, O. Creighton, L. Kof, “Ambiguity detection: Towards a tool explaining ambiguity sources,” Lecture Notes in Computer Science, vol. 6182, pp. 218–232, 2010. https://doi.org/10.1007/978-3-642-14192-8_20/ DOI: https://doi.org/10.1007/978-3-642-14192-8_20
- E. Juergens et al., “Can clone detection support quality assessments of requirements specifications?,” in International Conference on Software Engineering, 2010, pp. 79–88. https://doi.org/10.1145/1810295.1810308 DOI: https://doi.org/10.1145/1810295.1810308
- V. Antinyan, M. Staron, “Rendex: A method for automated reviews of textual requirements,” Journal of Systems and Software, vol. 131, pp. 63–77, 2017. https://doi.org/10.1016/J.JSS.2017.05.079 DOI: https://doi.org/10.1016/j.jss.2017.05.079
- N. Carlson, P. Laplante, “The NASA automated requirements measurement tool: a reconstruction,” Innovations in Systems and Software Engineering, vol. 10, no. 2, pp. 77–91, 2013. https://doi.org/10.1007/S11334-013-0225-8 DOI: https://doi.org/10.1007/s11334-013-0225-8
- ISO, ISO - ISO/IEC/IEEE 29148:2011 - Systems and software engineering — Life cycle processes — Requirements engineering, 2011. https://www.iso.org/standard/45171.html
- G. Mendez, Especificación de Requisitos según el estándar de IEEE 830, 2008. https://www.fdi.ucm.es/profesor/gmendez/docs/is0809/ieee830.pdf
- W. Bill, INVEST in Good Stories, and SMART Tasks - XP123, 2003. https://xp123.com/articles/invest-in-good-stories-and-smart-tasks/