Otimização multiobjetivo usando algoritmos evolutivos na alocação de times ágeis
Data
2019Autor
Caldeira, Júnea Eliza Brandão
xmlui.mirage2.itemSummaryView.MetaData
Mostrar registro completoResumo
O desenvolvimento de software é uma atividade dinâmica e complexa, que não é determinada apenas pela escolha adequada das tecnologias e metodologias, mas também pelo conhecimento e habilidades das pessoas envolvidas. Garantir que o time atenda aos requisitos dos projetos é essencial para assegurar a qualidade do produto disponibilizado no mercado e consequentemente o sucesso do projeto. Neste contexto, o estudo avaliou três técnicas de otimização de problemas da Engenharia de Software, NSGAII, SPEA2 e MOCell, quanto a capacidade de apoiar os gestores de projetos na composição dos times ágeis de desenvolvimento de software. Inicialmente foi realizada uma revisão sistemática de literatura para identificar as técnicas adequadas, no domínio da SBSE, para o problema proposto e posteriormente as técnicas selecionadas foram testadas em um experimento realizado em uma empresa de desenvolvimento de software, em que foram avaliados quatro projetos executados recentemente pela empresa. A abordagem levou em consideração as características das atividades do projeto, os recursos humanos disponíveis, o perfil dos recursos humanos, as restrições do projeto (escopo e tempo para execução) e as restrições estabelecidas pela organização. As técnicas estudadas retornaram soluções com o número de recursos necessários para a realização do projeto, bem como os recursos como mais qualificação para projeto, levando ao resultado de menor custo e produtividade adequada para o prazo estabelecido pelo cliente. Uma ferramenta de apoio à decisão foi implementada e usada no experimento. Os resultados mostraram que as três técnicas avaliadas apresentaram desempenhos consistentes. O NSGAII e o SPEA2 tiveram resultados e comportamento bem similares. Já o MOCell mostrou um melhor desempenho em esforço computacional e necessitou de uma população maior para sua saturação. Software development is a dynamic and complex activity that is determined not only by the appropriate choice of technologies and methodologies but also by the knowledge and skills of the people involved. Ensuring that the team meets the requirements of the projects is essential to ensure the quality of the product available in the market and consequently the success of the project. In this context, the study evaluated three techniquesforoptimizingsoftwareengineeringproblems,NSGAII,SPEA2andMOCell,so that they can support project managers in the composition of agile software development teams. Initially, a systematic literature review was carried out to identify the appropriate techniques for the proposed problem, and later the selected techniques were tested in an experiment carried out in a software development company, in which four projects recently executed by the company were evaluated. The approach took into account the characteristicsoftheprojectactivities,availablehumanresources,humanresourceprofile, project constraints (scope and time for execution) and constraints established by the organization. As a result, the techniques returned solutions with the number of resources needed to carry out the project, as well as resources such as more project qualification, lower cost and productivity adequate for the term established by the client. A decision support tool was implemented and used in the experiment. The results showed that the three techniques evaluated presented consistent performances. NSGAII and SPEA2 had very similar results and behavior. Already the MOCell showed a better performance in computational effort and needed a larger population for its saturation.