Aplicando Extreme Learning Machine para Estimativa de Esforço em Projeto de Software (EEDS)
##plugins.themes.bootstrap3.article.main##
Resumo
Contexto: O processo de gerenciamento de projetos é utilizado na área de Engenharia de Software para apoiar os gerentes de projetos (PRESSMAN; MAXIM, 2016). Em Engenharia de Software a obtenção de uma estimativa confiável e precisa do esforço de desenvolvimento de software sempre foi um grande desafio para os gerentes. A medição é uma atividade importante no processo de desenvolvimento de software para melhorar a qualidade e controlar os custos. Segundo Saraiva et al., (2020), medição de software é o processo de definir números ou símbolos para os atributos de entidades de software (por exemplo, tamanho de atributo, manutenção e eficiência). Problema: A falta de entendimento das medidas (por exemplo: tamanho do software, complexidade, número de defeitos) e não saber usá-las corretamente faz com que 80% das iniciativas de medições falhem nos primeiros meses. De acordo com Fenton e Bieman (2015), a maioria das inciativas concentra-se em dados convenientes e fáceis de análise, sem nenhuma preocupação se os dados são úteis ou não, ocasionando as falhas. Ou seja, as incertezas sobre os requisitos do sistema e a estimativa inadequada do esforço, custo e equipe necessária para desenvolver o projeto são as principais razões para o fracasso dos projetos de software (RANKOVIC et al., 2021). Portanto, a fim de apoiar os gerentes de projetos nas estimativas de esforço durante o ciclo de desenvolvimento de software, nos últimos anos técnicas de Machine Learning (ML), dentre as quais, K-Nearest Neighbors (KNN), Linear Regression (LR), Support Vector Machine (SVR), Multi-Layer Perceptron (MLP) e Extreme Learning Machine (ELM), têm sido usadas para prever Estimativa de Esforço em Projeto de Software (EEDS) (ALI; GRAVINO, 2019). Objetivos: Investigar o uso do modelo ELM para EEDS, a fim de atinge melhor desempenho, tempo de execução e acurácia comprando com modelos da literatura, resultando em melhores estimativas de tempo e custo. Metodologia: Na fase experimental foram utilizados um conjunto de dados reais com 64 projetos. Todos os projetos seguiram as fases do processo: Análise de Requisitos, Desenvolvimento, Teste e Homologação. Cada projeto tem 8 atributos, dos quais seis são numéricos: Key, Perfil Assigner, Complexidade, PF, Sold Hours e Effort, e dois categóricos: Assigner e Componente. O conjunto de dados foi dividido em treinamento e testes na proporção de 67% e 33%, respectivamente. Em todas as simulações, as entradas foram normalizadas no intervalo [0,15; 0,85], e os dados foram atribuídos aleatoriamente a um conjunto de dados em treinamento e teste para obtenção dos resultados, evitando viés. Os modelos foram comparados através das métricas, Mean Absolute Error (MAE), uma medida de quão longe as estimativas está dos valores reais, é a média sobre a amostra de teste das diferenças absolutas entre a previsão e a observação real, onde todas as diferenças individuais têm peso igual e Mean Square Error (MSE), onde é calculado a partir da diferença entre o esforço real e o esforço estimado. Para todos os conjuntos de dados foram analisadas a Média (M) e o Desvio Padrão (DP) para todas as métricas, considerando 500 simulações realizadas em cada conjunto de dados. A abordagem proposta (Modelo ELM) e os testes realizados nesse trabalho, foram implementados utilizando a linguagem de programação Python. Resultados: Para todas as técnicas foram analisadas a M e o DP para todas as métricas avaliadas e comparado com modelos utilizados no trabalho de Shukla (2019). Os valores obtidos do MAE pelos modelos utilizando em Shukla (2019) foram: KNN M(0,14030) e DP(0,01831), LR M(0,13610) e DP(0,02232), SVR M(0,12876) e DP(0,01392), e MLP M(0,15135) e DP(0,02328). Já o modelo ELM (proposto) obteve média 0,1074 e DP de 0,00358. Outra métrica para avaliação dos modelos foi o MSE. Novamente, o modelo ELM aplicado no contexto EEDS obteve o melhor resultado com média igual a 0,01886 e DP de 0,00105 em comparação com os outros modelos: KNN (M-0,02944, DP-0,00707), LR (M-0,02849, DP-0,01366), SVR (M-0,02330, DP-0,00532) e MLP (M-0,03597, DP-0,01671). Além da avaliação dos erros, também analisamos a variabilidade através de gráfico de boxplot. A maioria dos modelos apresentaram outliers. O modelo ELM apresentou menores variabilidades na caixa quando comparado aos outros modelos. Os modelos KNN e SVR apresentaram um comportamento bem parecidos apresentando sem outliers, já os modelos LR e MLP apresentaram uma grande quantidade de outliers. Mediante o exposto, é possível destacar a eficiência do modelo ELM para previsão de EEDS quando comparado as outras técnicas da literatura aqui estudados. Além disso, realizamos avaliação do desempenho dos modelos estudados em nossa pesquisa comparando os tempos de execução de cada um deles. Todas as simulações dos algoritmos são realizadas utilizando pacotes desenvolvidos em linguagem Python e executados no ambiente Jupyter Notebook, rodando numa máquina Intel(R) Core (TM) i7 2.1 GHz CPU, 8 GB RAM. Para avaliar o consumo de tempo dos algoritmos, todas as simulações foram realizadas com 500 iterações. O algoritmo ELM foi mais rápido que os modelos KNN e MLP, executando as 500 iterações em torno de 1,8 segundos. Já os modelos LR e SVR executaram em média 1,6 segundos. Quando comparamos o ELM (1,8s) com o modelo MLP no qual a execução levou 5,5 segundos, o modelo ELM foi 3 vezes mais rápido que o algoritmo de backpropagation, MLP. Conclusão: Com base nos experimentos realizados, observa-se que o modelo ELM apresentou bons desempenhos, melhor capacidade de generalização e menor custo computacional para prever a EEDS em comparação as demais técnicas avaliadas. Desta forma, o uso de técnicas de Aprendizado de Máquina no processo de estimativa de esforço pode aumentar as chances de sucesso na precisão das estimativas de tempo e custos do projeto. Como trabalhos futuros, propomos a utilização de um modelo combinado (ensemble) utilizando o algoritmo ELM para EEDS e comparar com os modelos da literatura.
Downloads
Não há dados estatísticos.
##plugins.themes.bootstrap3.article.details##
Seção
Engenharia da Computação e Sistemas