RAMOS, F. B. A.; http://lattes.cnpq.br/3071265324776966; RAMOS, Felipe Barbosa Araújo.
Resumo:
Agile software development focuses on quick delivery and flexibility to requirements change. Despite being effective in delivering quality functional requirements, agile practices tend to neglect non-functional requirements until the later stages of software development. However, neglecting non-functional requirements during requirements analysis can result in project failure ranges of 60% or higher. In this thesis, we propose a solution to assist agile project team members in the definition of non-functional requirements during the requirement engineering process. The proposed solution is based on a memory-based recommendation system that is enabled by an adaptation of the Scrum method, which aims to structure project information through the assignment of tags. To validate the solution, we conducted off-line experiments with data collected from 13 Scrum-based projects from a Brazilian software company. We performed the experiments according to the leave-p-out cross-validation protocol. As a result, our proposed recommendation system showed a Fmeasure rate of up to 79%. In addition, we conducted a user evaluation through a case study with four teams from the same company previously mentioned to evaluate the practical use of a tool that implements the proposed solution and the precision of the non-functional requirements predictions. Overall, the four teams considered the tool useful for the management of non-functional requirements, and our solution achieved a precision rate of 81.8% of the recommendations. Thus, we conclude that the recommendation system is capable of predicting non-functional requirements with satisfactory effectiveness, and hence, it is useful to support the decision making in Scrum-based projects.