Um framework de apoio à instanciação de técnicas de seleção de tecnologias de software baseadas em estratégias de busca - Grande, Aurélio da Silva (Universidade Federal do Amazonas, 2015)
A qualidade de um projeto de software está diretamente relacionada com as decisões tomadas durante suas diversas fases, pois decisões equivocadas podem causar danos significativos no projeto. Entre as decisões de um engenheiro de software, pode ser citada a escolha de tecnologias a serem aplicadas em um projeto de software. Geralmente estas decisões são tomadas levando-se em conta a experiência dos profissionais envolvidos nas tarefas. Assim, deixa-se de explorar outras soluções mais adequadas para tal cenário, algo que uma abordagem científica de apoio a tal seleção poderia oferecer. O trabalho apresenta um framework para instanciação de técnicas de seleção de tecnologias de software baseado em estratégias de busca. Para isso, o Problema de Seleção de Tecnologias de Software, do inglês Software Technologies Selection Problem (STSP) foi modelado como um problema de otimização combinatória (Conjunto Dominante Mínimo) com o objetivo de atender diferentes cenários reais de Engenharia de Software. O framework proposto para STSP foi idealizado como um mecanismo de apoio aos engenheiros de software que possuiriam dificuldades em usar outros frameworks de otimização genéricos durante um projeto de software, devido a prazos curtos e recursos limitados. Tal framework foi desenvolvido para ser integrado com os principais frameworks de meta-heurística de otimização identificados na literatura técnica, como JMetal e Opt4J, que implementam um grande número de meta-heurísticas. Para analisar a viabilidade da modelagem proposta para o STSP e do framework desenvolvido, foram realizados dois estudos de casos em problemas de otimização do mundo real: (i) seleção de técnicas de teste baseado em modelos; (ii) seleção de técnicas de elicitação de requisitos para sistemas embarcados. Os estudos foram realizados utilizando diferentes meta-heurísticas. Os resultados indicam sua viabilidade de apoio à seleção de tecnologias de software.