Seleção de requisitos de software utilizando métodos meta-heurísticos - Basniak, Rodrigo (2019)
The software requirements selection is an important step in any software development software and bad decisions can cause the project to fail. This makes reasearches on techniques to aid the professionals on the decision making process also be important. One existing approach is to model the problem as an optimization problem an solve it using meta-heristic thecniques. A systematic literature review was done to help identify the problems existent in this research field. The review found that the proposed solutions interpret the problem as a binary problem and simplifies it removing all interdependencies that exists between the requirements and use randomly generated datasets. Just a few researches take the full set of interdependencies in account and when they do they use repair operators to fix invalid solutions. With a goal of proposing a more robust solution, the problem that is inherently binary, is treated as a continuous space problem and with all interdependencies between the requirements. Meta-heuristic techniques are then used to solve the requirements selection problem with the help of a new solution encoding, developed to solve exactly this type of problem. With this approach the search space surface gets smoother and the meta-heuristic techniques can find better solutions. Three algorithms were selected to solve the problem: differential evolution, particle swarm optimization and genetic algorithms. Results obtained with experiments using the proposed encoding were compared to the results obtained using the traditional binary encoding. The proposed technique is superior to the traditional one when the interdependencies between the requirements are considered, since in projects with more than 32 requirements the traditional approach can’t even find any valid solutions. The projects used in this paper were generated based on three real world software development projects. All these data were made publicly available together with a prototype software tool to run the algorithms developed in this paper. Using the proposed encoding the three algorithms performed similarly when comparing the quality of theirs results but, the differential evolution algorithmwas superior when observing the number of fitness evaluations needed to find the best solutions.