METAHEURÍSTICAS APLICADAS AO PROBLEMA DO PRÓXIMO
RELEASE EM EMPRESAS DE DESENVOLVIMENTO ÁGIL DE
SOFTWARE
Mariana Alves Moura¹², Victor José Aguiar Teixeira de Melo França¹², Silvana
Bocanegra¹, Ana Cristina Rouiller¹
¹Departamento de Estatística e Informática - Universidade Federal Rural de Pernambuco
Rua Dom Manuel de Medeiros, s/n, Dois Irmãos, Recife - PE, Brasil
²SWQuality Consultoria e Sistemas
Rua do Apolo, 202, Recife Antigo, Recife - PE, Brasil
[email protected], [email protected], [email protected],
[email protected]
Um problema comum para as empresas que trabalham com evolução e manutenção de
produtos de software desenvolvidos para vários clientes é priorizar o que será implementado no
próximo release do software. Diversos fatores podem influenciar nessa escolha, como por
exemplo, crescente demanda dos clientes por melhorias nos softwares, dependência de
desenvolvimento entre os requisitos, valor de negócio que cada cliente representa para a
organização, quantidade de tempo e esforço diferenciados que cada requisito demandará da
equipe de desenvolvimento. Avaliar manualmente cada um desses parâmetros é uma tarefa árdua
e muitas vezes as empresas realizam suas escolhas baseando-se apenas em experiências do
gerente e da equipe. A área de pesquisa conhecida como Engenharia de Software Baseada em
Buscas tem usado modelos e métodos de otimização para resolver problemas deste tipo. O
modelo de otimização usado para representar esse problema é conhecido como Problema do
Próximo Release e consiste em selecionar um conjunto ideal de requisitos que irá compor a
próxima release de um software, buscando maximizar a satisfação dos clientes, sujeito a
restrições como a capacidade da equipe de desenvolvimento e a dependência entre os requisitos.
Este trabalho aborda as metaheurísticas Simulated Annealing e Algoritmo Genético aplicadas a
uma adaptação do Problema do Próximo Release para empresas que utilizam desenvolvimento
ágil de software baseado na metodologia SCRUM. Esta metodologia divide a gestão do
desenvolvimento total em partes menores e de mesma duração, conhecidas como sprints, que
representam um ciclo de trabalho. A cada sprint um conjunto de requisitos é implementado,
tendo como resultado um incremento do produto que está sendo desenvolvido. Os requisitos
devem ser selecionados da melhor maneira para compor um ciclo de trabalho do SCRUM, de tal
forma que o valor de negócio dos requisitos selecionados seja maximizado. O problema está
sujeito às restrições de limitação da capacidade de desenvolvimento da equipe, que é determinada
pelo tempo pré-fixado da Sprint, e das relações de precedência entre os requisitos. Os algoritmos
Simulated Annealing e Algoritmo Genético foram adaptados para atender os objetivos e
restrições do problema e validados por meio da aplicação em uma instância de um caso com
dados reais. Em seguida eles foram aplicados a dados de uma empresa de desenvolvimento e
manutenção de software de Recife e seus resultados foram comparados em termos de melhor
solução encontrada e tempo de execução. As metaheurísticas também foram aplicadas em
instâncias aleatórias a fim de observar seus desempenhos aumentando o tamanho dessas
instâncias. A partir deste estudo, foi possível concluir que a aplicação de otimização pode ser
uma alternativa promissora para resolver este problema da Engenharia de Software de maneira
automatizada, se modelado de forma a adequar-se às necessidades e restrições da organização.
PALAVARAS CHAVE. Scrum, Otimização, Problema do Próximo Release.
Área Principal: Metaheurísticas.
Download

141941