Dependency Rank: Método de priorização de requisitos baseado nas relações de dependência identificadas por PLN
Resumo
Currently, the most commonly used software requirements prioritization techniques are highly dependent on human effort to achieve them. Facing this problem, this paper presents an automated prioritization method based on dependency relationships between features. The proposed method sought to reduce the amount of effort employed by automating part of this task in an attempt to provide greater agility and reliability to the process. Thus, we used the project requirements documentation as a basis for extracting these relationships. A prototype using natural language processing tools was developed, its application aimed to recognize candidate classes contained in software requirements specification documents, written as user stories, thereby enabling the identification of existing links between the features. After this analysis, a suggested ranking, which employs as main criterion the prioritization of the requirements with the largest number of dependencies, is generated. The method was tested in an experiment and its validation was assisted by professionals. The results showed that the strategy implemented to identify candidate classes reached an F1 score of 0.857. This index helped the prototype to classify up to 70% of the requirements within equivalent intervals to those obtained by human judgment, having as main challenge for future developments the increase of the subjectivity load of the method.
Referências
Wiegers, Karl. "First things first: prioritizing requirements." Software Development 7.9 (1999): 48-53.
Pressman, Roger, and Bruce Maxim. Engenharia de Software-8a Edição. McGraw Hill Brasil, 2016.
Indurkhya, Nitin, and Fred J. Damerau, eds. Handbook of natural language processing. Vol. 2. CRC Press, 2010.
Cambria, Erik, and Bebo White. "Jumping NLP curves: A review of natural language processing research." IEEE Computational intelligence magazine 9.2 (2014): 48-57.
Shao, Fei, et al. "DRank: A semi-automated requirements prioritization method based on preferences and dependencies." Journal of Systems and Software 126 (2017): 141-156.
Petersen, Kai, Sairam Vakkalanka, and Ludwik Kuzniarz. "Guidelines for conducting systematic mapping studies in software engineering: An update." Information and Software Technology 64 (2015): 1-18.
Alzyoudi, Ruba, Khaled Almakadmeh, and Hutaf Natoureah. "A Probability Algorithm for Requirement Selection In Component-Based Software Development." Proceedings of the International Conference on Intelligent Information Processing, Security and Advanced Communication. ACM, 2015.
Zhang, Zhang. Specifying Functional Requirements Dependency in the REWiki. MS thesis. 2013.
Deshpande, Dhanraj and Joshi S. D. “Textual requirement analysis for UML diagram extraction by using NLP.” International journal of computer applications, v. 50. 2012.
Dahlstedt, Asa G., and Anne Persson. "Requirements interdependenciesmoulding the state of research into a research agenda." Proceedings of Ninth International Workshop on Requirements Engineering: Foundation for Software Quality. 2003.
Bourque, Pierre, and Richard E. Fairley. Guide to the software engineering body of knowledge (SWEBOK (R)): Version 3.0. IEEE Computer Society Press, 2014.
Schweinberger, Martin. Part-Of-Speech Tagging with R. < http:// martinschweinberger.de/docs/articles/PosTagR.pdf>, 2016.