Seleção de requisitos de software utilizando métodos meta-heurísticos
Ano de defesa: | 2019 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | , , , |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Tecnológica Federal do Paraná
Curitiba |
Programa de Pós-Graduação: |
Programa de Pós-Graduação em Computação Aplicada
|
Departamento: |
Não Informado pela instituição
|
País: |
Brasil
|
Palavras-chave em Português: | |
Área do conhecimento CNPq: | |
Link de acesso: | http://repositorio.utfpr.edu.br/jspui/handle/1/4656 |
Resumo: | A seleção de requisitos de software é muito importante para qualquer projeto de software e decisões ruins nesta etapa podem atrapalhar ou até mesmo impedir seu sucesso. Isto faz com que estudos sobre a aplicação de técnicas para auxiliar na tomada de decisão na seleção de requisitos também sejam importantes. Uma das abordagens utilizadas na literatura é modelar a seleção de requisitos como um problema de otimização e utilizar métodos meta-heurísticos para resolvê-lo. Um mapeamento sistemático de literatura foi realizado com o objetivo de identificar os problemas existentes nas soluções já propostas e as lacunas desta área de pesquisa. Este mapeamento constatou que as soluções propostas tratam o problema de forma binária e simplificado, ignorando as interdependências entre os requisitos e utilizando dados de problemas gerados aleatoriamente. Poucos trabalhos consideram todos os tipos de interdependências existentes entre os requisitos e quando o fazem, a solução é utilizar operadores de reparação. Com o intuito de propor uma solução mais robusta, o problema que é inerentemente binário, é tratado como um problema de variáveis contínuas e com interdependências entre os requisitos. Técnicas meta-heurísticas são utilizadas para a encontrar a solução e com auxílio de uma codificação desenvolvida especificamente para o problema de seleção de requisitos com interdependências. Desta forma, a superfície do espaço de busca fica mais suave e as meta-heurísticas conseguem chegar nas melhores soluções mais facilmente. Três algoritmos foram selecionados para o estudo: otimização por enxame de partículas, evolução diferencial e algoritmos genéticos. Experimentos foram realizados com a codificação proposta e com uma codificação binária, que é mais comum na literatura. Os resultados mostram que a abordagem proposta é superior à tradicional quando são consideradas as interdependências entre os requisitos, pois em projetos com mais 32 requisitos a abordagem tradicional não consegue resolver os problemas utilizados neste trabalho. Os dados dos problemas foram gerados a partir de projetos reais de desenvolvimento de software e foram disponibilizados publicamente, juntamente com uma ferramenta protótipo para execução dos algoritmos. Com a codificação proposta, os três algoritmos tiveram uma performance parecida em relação à qualidade dos resultados, mas o algoritmo de evolução diferencial se mostrou superior em relação ao número de avaliações da função de fitness. |