Escolar Documentos
Profissional Documentos
Cultura Documentos
Recebido em 18 de junho de 2023, aceito em 26 de julho de 2023, data de publicação em 23 de agosto de 2023, data da versão atual em 28 de agosto de 2023.
Este trabalho foi apoiado pelo Programa Operacional Regional Norte de Portugal (NORTE 2020), no âmbito do Acordo de Parceria Portugal
2020, através do Fundo Europeu de Desenvolvimento Regional (FEDER) no âmbito do Projeto PROMESSA-NORTE-01-0247-FEDER-039887.
RESUMO A estimativa de software é uma atividade de gerenciamento de projetos vital, porém desafiadora. Vários métodos, desde empíricos
até algorítmicos, foram desenvolvidos para se adequarem a diferentes contextos de desenvolvimento, desde orientados a planos até ágeis.
Recentemente, as técnicas de aprendizado de máquina mostraram potencial neste domínio, mas ainda são pouco exploradas, especialmente
para estimativa de tarefas individuais. Investigamos o uso de técnicas de aprendizado de máquina na previsão do esforço e da duração das
tarefas em projetos de software para avaliar sua aplicabilidade e eficácia em ambientes de produção, identificar os algoritmos de melhor
desempenho e identificar as principais variáveis de entrada (recursos) para previsões. Realizamos experimentos com conjuntos de dados de
diversos tamanhos e estruturas exportados de três ferramentas de gerenciamento de projetos utilizadas por empresas parceiras. Para cada
conjunto de dados, treinamos modelos de regressão para prever o esforço e a duração de tarefas individuais usando oito algoritmos de
aprendizado de máquina. Os modelos foram validados usando validação cruzada k-fold e avaliados com diversas métricas. Algoritmos de
conjunto como Random Forest, Extra Trees Regressor e XGBoost superaram consistentemente os não-ensemble nos três conjuntos de dados.
No entanto, a precisão da estimativa e a importância dos recursos variaram significativamente entre os conjuntos de dados, com uma magnitude
média do erro relativo (MMRE) variando de 0,11 a 9,45 nos conjuntos de dados e nas variáveis de destino. No entanto, mesmo no conjunto de
dados com pior desempenho, as estimativas de esforço agregadas ao nível do projeto mostraram boa precisão, com MMRE = 0,23. Algoritmos
de aprendizado de máquina, especialmente aqueles de conjunto, parecem ser uma opção viável para estimar o esforço e a duração de tarefas
individuais em projetos de software.
No entanto, a qualidade das estimativas e as características relevantes podem depender em grande parte das características dos conjuntos de
dados disponíveis e dos projetos subjacentes. No entanto, mesmo quando a precisão das estimativas individuais é fraca, as estimativas
agregadas ao nível do projeto podem apresentar uma boa precisão devido à compensação de erros.
TERMOS DE INDEXAÇÃO Estimativa de esforço, estimativa de duração, aprendizado de máquina, estimativa de tarefas, projetos de software.
I. INTRODUÇÃO As crucial como base para determinar os custos do projeto e prever datas de
equipes de desenvolvimento de software geralmente dividem seu trabalho em entrega. Isso ajuda a otimizar a alocação de recursos, estabelecer prazos
unidades de trabalho menores, como tarefas ou problemas. Estimar o esforço e realistas e, em última análise, entregar um produto de alta qualidade dentro do
o tempo (duração) necessários para concluí-los é prazo.
No entanto, elaborar essas estimativas durante as fases iniciais de
O editor associado que coordena a revisão deste manuscrito e planejamento, quando são mais valiosas, é um desafio devido às incertezas
quem aprovou para publicação foi Tyson Brooks . inerentes ao desenvolvimento de software.
Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-NãoComercial-SemDerivações 4.0.
VOLUME 11, 2023 Para obter mais informações, consulte https://creativecommons.org/licenses/by-nc-nd/4.0/ 89933
Machine Translated by Google
AO Sousa et al.: Aplicação de ML para estimar o esforço e a duração de tarefas individuais
(como incerteza nos requisitos) e confiança nas experiências anteriores da • Exploração de ML para estimativa de software em nível de tarefa:
equipe. Uma equipe sem experiência suficiente no domínio do negócio, nas Exploramos algoritmos de ML para prever o esforço e a duração de
tecnologias envolvidas ou nas técnicas de estimativa provavelmente tarefas individuais em projetos de software, enquanto a maioria dos
produzirá estimativas ruins. Além disso, a estimativa de software pode ser estudos anteriores analisou apenas o projeto como um todo. Isso
demorada e sujeita a distorções e variações humanas significativas. contribui para um crescente corpo de literatura sobre aplicações de
ML em engenharia de software. • Avaliação empírica
Por esse motivo, vários métodos de estimativa, desde empíricos até de algoritmos de ML para estimativa de software em nível de tarefa:
algorítmicos, foram desenvolvidos ao longo dos anos para ajudar comparamos empiricamente oito algoritmos de ML em três conjuntos
desenvolvedores e gestores na estimativa de software em diferentes de dados fornecidos por duas empresas usando quatro métricas de
contextos, desde orientados a planos até ágeis. Recentemente, técnicas avaliação. Mostramos que algoritmos de conjunto, como Random
baseadas em aprendizado de máquina (ML), particularmente métodos de Forest, Extra Trees Regressor e XGBoost, superam os não-ensemble
conjunto, mostraram potencial para estimativa de software (ver seção II). para estimar a duração e o esforço de tarefas individuais. Isso
Essas técnicas combinam dois ingredientes necessários para qualquer fornece informações úteis sobre quais algoritmos apresentam melhor
método de estimativa bem-sucedido: usar dados históricos, para reduzir desempenho para esta aplicação específica.
vieses, e combinar estimativas múltiplas, para reduzir a variância.
Entretanto, eles ainda são pouco explorados para estimativa de tarefas • Informações sobre a precisão das estimativas: mostramos que a
individuais, como pretendemos fazer aqui. precisão das estimativas dos modelos pode variar significativamente
Para enfrentar os desafios e limitações mencionados acima, entre conjuntos de dados, dependendo de fatores como o tamanho
desenvolvemos três módulos de software, aproveitando algoritmos de ML do conjunto de dados e o grau de variância da variável alvo, entre
para estimar o esforço e o tempo (duração) necessários para lidar com outros. Mesmo quando a precisão das estimativas individuais é fraca,
novas tarefas ou problemas em diferentes ferramentas de gerenciamento mostramos que as estimativas agregadas ao nível do projeto ainda
de projetos: SCRAIM da Strongstep, Project Control do Fraunhofer AICOS podem ser precisas devido à compensação de erros.
e JIRA também utilizado pelo Fraunhofer AICOS. Esses módulos fazem Isso melhora nossa compreensão de como as especificidades do
parte de uma iniciativa maior – PROject Management Intelligent aSSis-tAnt, projeto e dos dados influenciam a precisão das estimativas das
ou PROMESSA – que visa facilitar tarefas como priorização de projetos, tarefas e como interpretamos e aplicamos essas
alocação de recursos, análise de risco e estimativa de esforço usando estimativas. • Insights sobre a importância dos recursos: descobrimos
técnicas de ML. Esses módulos oferecem serviços para treinar modelos de que as variáveis de entrada (recursos) importantes para uma
estimativa baseados em dados históricos, extraídos dos repositórios de estimativa precisa das tarefas variam significativamente entre os
ferramentas, e prever o esforço e a duração de novas tarefas ou problemas conjuntos de dados, possivelmente devido a diferenças no escopo
usando esses modelos. de gerenciamento de projetos (macro ou micro), tipos de projetos e
práticas de coleta de dados. Isto poderia ajudar os profissionais a
Este artigo tem como objetivo apresentar e discutir os resultados obtidos concentrar os esforços de recolha de dados nas variáveis mais
com os três módulos de software desenvolvidos, bem como comparar e importantes e a informar a concepção de futuros modelos de ML para esta tarefa.
discutir as diferenças entre eles, visto que o modelo de cada módulo foi
As seções restantes deste artigo estão estruturadas da seguinte forma.
treinado com um conjunto de dados diferente. Ao fazer isso, pretendemos
Uma revisão de trabalhos relacionados sobre o uso de ML para estimativa
identificar as características mais relevantes no treinamento de modelos de
de software é apresentada na seção II. Na seção III são descritos os
ML focados em estimar o esforço e a duração de problemas ou tarefas em
conjuntos de dados utilizados para treinar os modelos e apresentados os
um projeto de desenvolvimento de software. Ao testar os mesmos algoritmos
métodos utilizados para pré-processamento e teste.
de ML em três conjuntos de dados diferentes extraídos das ferramentas
A Seção IV apresenta os resultados dos algoritmos testados em cada um
mencionadas anteriormente, podemos avaliar se algum algoritmo tem um
dos módulos do software desenvolvido, bem como uma interpretação
desempenho consistentemente melhor, apesar das variações nos dados
desses resultados. Por fim, a seção V apresenta as conclusões extraídas
de entrada. Por último, as descobertas fornecerão informações sobre o
com base no trabalho desenvolvido e nos resultados obtidos, e aponta
desempenho dos métodos de estimativa baseados em ML em relação aos
métodos tradicionais. possíveis trabalhos futuros.
TABELA 1. Resumo dos estudos sobre a utilização de ML para estimativa de esforço e duração em projetos de software.
Usando vários algoritmos de ML, Pospieszny et al. [5] obtiveram examinaram e compararam a precisão dos modelos RNA e regressão
modelos preditivos com desempenho muito bom para estimar o esforço linear (LR) para previsões de esforço e duração em um conjunto de
total e a duração do projeto, em um conjunto de dados fornecido pelo dados IBSG e um conjunto de dados israelense, usando tamanho do
International Software Benchmarking Standards Group (ISBSG). Após produto, produtividade histórica e complexidade do produto
a limpeza, o conjunto de dados consistia em 1.192 projetos. Usando (complexidade funcional) como independentes variáveis. Ambos
Máquinas de Vetores de Suporte (SVM), eles alcançaram pontuações concluíram que a RNA superou os demais modelos testados, embora
de Erro Relativo de Magnitude Média (MMRE) de 0,13 e 0,15 e os resultados sejam diferentes entre eles. Também é importante notar
pontuações PRED(30) de 81,2% e 81,6% nos modelos de esforço e que na pesquisa de Berlim, foi utilizada uma transformação logarítmica
duração, respectivamente, onde PRED(30) representa o porcentagem das variáveis de entrada e saída para melhorar a precisão.
de amostras com Magnitude de Erro Relativo (MRE) ÿ 0,30. Como
entrada, eles usaram 11 variáveis que descrevem as características Mais um exemplo dessa discrepância de resultados é o trabalho de
gerais do projeto (setor da indústria, tipo de aplicação, tipo de López-Martin [9], que se concentrou em comparar a precisão da
desenvolvimento, plataforma de desenvolvimento, tipo de linguagem, predição entre diferentes tipos de redes neurais na estimativa de
personalização de pacotes, tamanho relativo, arquitetura, uso de esforço e normalização de variáveis dependentes. Como variável de
métodos ágeis, metodologia usada e nível de recurso). ), incluindo o entrada, utilizaram os pontos de função ajustados (AFP) de cada
tamanho relativo do projeto em pontos de função agrupados em projeto, que mede a complexidade funcional ajustada por diversos
categorias. fatores. MAE (erro absoluto médio), MdAE (erro absoluto mediano) e
Uma pesquisa extensa e abrangente foi feita por Wen et al. [6], R2 (coeficiente de determinação) foram utilizados como métricas de
revisando 84 estudos sobre métodos de ML para estimativa de esforço avaliação. Nesta pesquisa, a Rede Neural de Função de Base Radial
de software. De acordo com seus resultados, nas últimas duas (RBFNN) teve melhor desempenho com um alto nível de confiança,
décadas, os pesquisadores concentraram sua atenção principalmente embora, por exemplo, na pesquisa de Pospieszny a MLP-ANN tenha
na adaptação de algoritmos individuais para melhor desempenho, sido preferida [5].
como Redes Neurais Artificiais (RNA), modelos de Raciocínio Baseado Rhaman e Islam [10] compararam diferentes tipos de RNA e árvores
em Casos (CBR) e Árvores de Decisão (DT). de decisão (DTs) usando a raiz do erro quadrático médio (RMSE)
A partir desta pesquisa, também ficou claro que os modelos ML como métrica de avaliação e o tamanho do produto como variável
tiveram melhor desempenho do que outros modelos tradicionais e independente, e concluíram que as DTs foram mais eficazes em
estatísticos, com MMRE variando de 0,35 a 0,55 e PRED(25) de 45 a pequenas empresas. conjuntos de dados medianos, enquanto as
75%. Os pesquisadores também observaram que, dependendo do RNAs apresentaram melhor precisão em conjuntos de dados maiores.
conjunto de dados e da abordagem de pré-processamento, os Outros trabalhos interessantes, como Minku e Yao [11], sobre a
algoritmos de ML podem ter um desempenho muito diferente devido sensibilidade dos métodos de ML ao ruído dentro dos conjuntos de
a valores discrepantes, valores ausentes ou problemas de ajuste dados, apoiaram a noção de que os modelos não deveriam depender
excessivo. Uma atualização recente da pesquisa de Wen et al. foi de algoritmos individuais, mas sim de um grupo deles, o que deveria
publicado por Cabral et al. [24], envolvendo uma revisão de 30 estudos. aumentar a precisão da previsão e fortalecer o modelos para lidar com
Suas descobertas reforçam resultados anteriores e mostram que as dados ruidosos e, como resultado, problemas de overfitting. Outras
técnicas de aprendizagem em conjunto superaram os modelos individuais. publicações apoiam esta ideia, como Kocaguneli et al. [12], que
A discrepância nos resultados e abordagens para a construção de propuseram vários métodos de conjunto, como técnicas de boosting,
modelos de ML é ainda mais perceptível quando se analisam estudos bagging e amostragem aleatória complexa. Embora as técnicas de
individuais, como o trabalho de Tronto et al. [7], onde a precisão das ensemble possam apresentar vantagens, Azhar et al. [13] afirmaram
abordagens de RNA foi comparada com modelos de regressão múltipla que esses métodos podem introduzir sobrecarga substancial de
para estimativa de esforço usando o conjunto de dados COCOMO, desempenho se aplicados excessivamente. Com isso em mente, Ho
com MMRE e PRED como métricas de avaliação, e tamanho do [14] concluiu que um conjunto de algoritmos diferentes, mas limitados,
produto e vários direcionadores de custo como variáveis independentes. e abordagens de conjunto simples, como a média das estimativas
Outro exemplo é o trabalho de Berlin et al. [8], que
obtido, deve ser usado para construir modelos de ML para previsão de esforço Eles usaram um conjunto de dados com 8.498 relatórios de bugs extraídos da
e duração. instalação do Bugzilla do LiveCode. O tempo de resolução de um bug foi
Outra pesquisa extensa, porém mais genérica, foi feita por Fernández- calculado como o tempo decorrido entre a data em que o relatório de bug foi
Delgado et al. [15], onde foi feita uma revisão de 77 modelos de regressão atribuído pela primeira vez e a data em que o status do bug foi definido como
populares pertencentes a 19 famílias de algoritmos. Todos eles foram treinados 'resolvido'. O problema de prever o tempo de resolução de um bug ('lento' ou
usando 83 conjuntos de dados diferentes, dividindo os dados em 50% para 'rápido') é formulado como uma tarefa de categorização de texto supervisionada,
treinamento, 25% para ajuste de parâmetros e os últimos 25% para teste. Foi baseada na descrição e comentários do bug e em um modelo de linguagem pré-
utilizada uma estratégia inteligente de pré-processamento e validação cruzada, treinado (BERT). No entanto, eles não tentaram prever o tempo (ou duração)
e MAE, RMSE e R2 foram utilizados para avaliar e comparar as diferentes real da resolução como pretendemos fazer aqui.
famílias de algoritmos. Esta revisão classificou cada algoritmo entre conjuntos
de dados de tamanhos diferentes e concluiu que os algoritmos mais eficazes Em [22], os autores também tentam prever o tempo de resolução de
para os vários problemas de regressão estavam na seguinte ordem: regras de problemas recém-relatados, representando solicitações de recursos, relatórios
regressão cubistas e M5, máquinas de aumento de gradiente (GBM), árvores de bugs, etc. Eles usaram algoritmos genéticos para gerar iterativamente
extremamente randomizadas, máquinas de vetores de suporte (SVM), Redes modelos candidatos e procurar o modelo ideal para estimar o tempo de
Neurais, Busca de Projeto (PPR) e Vizinhos Mais Próximos. Além disso, um resolução de problemas. . Eles usaram um conjunto de dados com 8.260
conjunto de modelos MARS teve um desempenho decente. Também foi problemas de cinco grandes projetos de código aberto, calculando o tempo de
realizada uma comparação de tempo e erro (em termos de memória e erros de resolução de cada problema subtraindo o tempo “resolvido” do tempo “criado”.
tempo), e a conclusão foi que as regras de regressão e os conjuntos de reforço Em comparação com linhas de base (baseadas em média e mediana) e técnicas
eram mais rápidos e menos propensos a erros, enquanto SVMs e Redes de última geração (como Random Forest), eles alcançaram valores MAE e
Neurais eram mais propensos a erros e mais lentos. Precisão Padronizada (SA) significativamente melhores. SA avalia a eficácia de
um modelo de estimativa em relação à adivinhação aleatória.
pesquisa [22] para prever o tempo de resolução de problemas ou bugs segundo conjunto de dados, fornecido pelo Fraunhofer AICOS, é
recentemente relatados, principalmente durante os estágios de manutenção. significativamente maior, consistindo em um conjunto inicial de 11.798 amostras
(problemas) em 68 projetos no JIRA, com as variáveis mais relevantes indicadas
Em [21], os autores alcançam pontuações de exatidão, precisão, recall e F1 na Tabela 2 .
superiores a 0,9 na previsão se o tempo de resolução de um bug recém-relatado Este conjunto de dados incluía muitas amostras que não puderam ser usadas
estará abaixo ('rápido') ou acima (''lento') da resolução mediana tempo no para treinar os modelos devido a valores ausentes em variáveis de destino ou
conjunto de dados de treinamento. recursos de treinamento importantes. Além disso, os valores discrepantes foram
TABELA 2. Resumo das variáveis mais relevantes selecionadas para estimativa de esforço e duração e características dos conjuntos de dados.
identificados e, consequentemente, removidos também. Com isso, o número cada tarefa, com base em atributos de tarefa ou atributos derivados de
de amostras utilizadas para os modelos de estimativa de esforço e duração entidades relacionadas disponíveis no momento do planejamento.
caiu para 3.435 e 4.094, respectivamente. Este conjunto de dados é o nosso maior conjunto de dados; também é
único, pois fornece informações sobre tarefas de macrogestão, proporcionando
uma perspectiva mais ampla sobre o gerenciamento de projetos.
FIGURA 1. Fluxo de trabalho de processamento seguido para cada combinação de conjunto de dados, variável de destino e algoritmo.
DE DADOS Quanto às tarefas de pré-processamento de dados comuns se à proporção de variância na variável alvo que pode ser explicada
a todos os projetos, as variáveis categóricas foram codificadas por meio pelas variáveis independentes utilizadas [2]. Um valor mais elevado
de codificação one-hot. Esta técnica representa cada classe da variável significa que uma proporção igualmente maior da variância acima
categórica através de um novo atributo com valor 0 ou 1, onde 0 indica a mencionada pode ser explicada pelas variáveis independentes.
ausência daquela classe e 1 indica sua presença. Isso foi usado, por
exemplo, nas variáveis Tipo, Status e Prioridade do segundo conjunto de n 2
eu = 1 (Yi - Y eu)
dados. R2=1ÿ n (1)
2
eu = 1 (Yi - Y eu)
O escalonamento de recursos foi usado para dimensionar o intervalo
de valores de variáveis independentes quantitativas, como a variável • Erro Médio Absoluto (MAE) - média da diferença entre os valores
#Participants no primeiro conjunto de dados ou #Sprints e #Links no previstos e os reais. Pode ser usado para verificar a que distância
segundo conjunto de dados. Esta é uma etapa importante no fluxo de as previsões feitas estavam dos resultados reais [3].
trabalho de pré-processamento de dados porque, se o intervalo de valores
n
de um atributo diferir significativamente do intervalo de valores de outro 1
atributo, o primeiro se tornará dominante em modelos que usam medidas MAE = Yi - Sim eu (2)
n
eu=1
de distância, por exemplo, K-vizinhos mais próximos, afetando
negativamente o desempenho preditivo desses modelos. • Root Mean Square Error (RMSE) - esta métrica dá mais peso aos
A tokenização foi aplicada aos campos de texto, nomeadamente à erros com valores absolutos maiores, penalizando a variância no
descrição da tarefa no primeiro conjunto de dados. É usado para conjunto de dados como resultado [4]. Um valor mais baixo de
transformar cada descrição de tarefa em um vetor de contadores de RMSE indica melhores resultados. A maioria dos algoritmos de ML
palavras. O vetor contém uma entrada para cada palavra que ocorre no que usamos (incluindo todos os de conjunto) tentam minimizar o
conjunto de todas as descrições de tarefas no conjunto de dados, RMSE, por padrão.
ignorando palavras irrelevantes e sinais de pontuação. Antes da
n
tokenização, as palavras eram reduzidas à sua forma raiz (stemming). 1
REQM = 2
(Yi - Y eu) (3)
n
eu=1
2) AJUSTE DE HIPERPARÂMETROS
• Magnitude Média do Erro Relativo (MMRE) - medida da diferença
Antes de executar os testes para os diferentes algoritmos, foi realizado
entre os valores reais e os valores previstos, em relação aos
o ajuste de hiperparâmetros com o objetivo de obter o melhor conjunto
valores reais.
de hiperparâmetros para cada algoritmo, conjunto de dados e variável
Um valor mais baixo de MMRE indica melhor desempenho preditivo.
alvo (num total de 48 combinações). Os hiperparâmetros diferem dos
É uma métrica independente de escala, adequada para comparação
parâmetros internos de um algoritmo porque não podem ser aprendidos
entre diferentes conjuntos de dados. Mas também tem sido criticado
a partir dos dados durante a fase de treinamento [1].
devido à sua extrema sensibilidade a previsões individuais com
Esse processo foi realizado no conjunto de validação (contendo uma 1
MREs excessivamente grandes [23].
amostra aleatória de 25% dos dados) com o uso de validação cruzada de
n
5 vezes, pesquisa em grade e RMSE como métrica para otimizar. Como 1 Yi - Sim eu
MMRE = (4)
exemplo, o número ideal de vizinhos obtido para o algoritmo KNN foi 3 n Sim
eu=1
para ambas as variáveis alvo no conjunto de dados do Project Control.
Essas métricas fornecem informações diversas, portanto, a análise de
seus resultados fornece muitos insights sobre a qualidade das previsões
3) AVALIAÇÃO DO MODELO feitas pelos modelos desenvolvidos.
Para avaliar a qualidade dos modelos treinados, foram utilizadas diversas 1No caso de subestimativas, o MRE pode variar de 0 a 1, enquanto
métricas de avaliação: no caso de superestimativas pode variar de 0 a ÿ.
TABELA 3. Resultados da avaliação do modelo de duração da tarefa SCRAIM TABELA 5. Resultados da avaliação do modelo de duração de problemas do
com diferentes algoritmos. JIRA com diferentes algoritmos.
TABELA 4. Resultados da avaliação do modelo de estimativa de esforço SCRAIM TABELA 6. Resultados da avaliação do modelo de estimativa de esforço JIRA
com diferentes algoritmos. com diferentes algoritmos.
diferentes. Então, deixando um grupo diferente para teste, todos os 1) ESTIMATIVA DE DURAÇÃO COM O DATASET JIRA A
grupos restantes juntamente com o conjunto de validação são utilizados Tabela 5 mostra os resultados dos testes realizados para o modelo
para treinamento. Isto é repetido 5 vezes deixando um grupo diferente de duração do problema treinado com o dataset JIRA.
dos cinco para teste (processo de validação cruzada). O algoritmo XGBoost apresenta as melhores pontuações para R2
(0,37), MAE (125,52) e RMSE (162,87). Support Vector Regressions
apresenta a melhor pontuação para MMRE (9,45).
4. RESULTADOS E DISCUSSÃO A. CONJUNTO DE No geral, os algoritmos de conjunto superam as outras métricas algo-
DADOS SCRAIM Os ritmos relativos à , MAE e RMSE. Apoiar
1) ESTIMATIVA DE DURAÇÃO COM O DATASET SCRAIM O regressão vetorial R2 apresentam o melhor MMRE, mas com pontuações
conjunto de dados SCRAIM foi utilizado para treinar o modelo de duração significativamente piores para as restantes métricas, pelo que os
da tarefa. Os resultados são apresentados na Tabela 3. algoritmos ensemble parecem ser as melhores opções com este conjunto de dados.
A melhor pontuação R2 (0,37) e melhor pontuação RMSE (3,23) foram Não incluímos a descrição do problema nas funcionalidades de
obtidas pelo Random Forest, a melhor pontuação MAE (1,88) foi treinamento, pois os resultados de desempenho com seu uso não
alcançada pelo XGBoost e a melhor pontuação MMRE (0,56) foi melhoraram, para uma maior complexidade de processamento. Utilizando
alcançada pela Regressão de Vetores de Suporte. a descrição do problema, as melhores pontuações para R2 (0,35), MAE
No geral, os algoritmos de conjunto são as melhores opções para este (126,20) e RMSE (165,20) e MMRE (9,45) são piores do que aquelas
conjunto de dados específico em relação , Métricas MAE e RMSE. obtidas sem o uso da descrição do problema (Tabela 5).
ao R2. A regressão vetorial de suporte apresenta o melhor MMRE, mas com
um R2 significativamente pior , ,então os algoritmos de conjunto parecem ser 2) ESTIMATIVA DE ESFORÇO COM O DATASET JIRA A
as melhores opções com este conjunto de dados. Tabela 6 mostra os resultados dos testes realizados para o modelo de
esforço do problema treinado com o dataset JIRA.
2) ESTIMATIVA DE ESFORÇO COM O DATASET SCRAIM O Desta vez, Random Forest apresenta as melhores pontuações para
modelo de estimativa de esforço foi treinado utilizando o conjunto de dados R2 (0,36) e RMSE (9,23), enquanto sua pontuação MAE ficou atrás
SCRAIM. A Tabela 4 apresenta os resultados. apenas do XGBoost. Mais uma vez, Support Vector Regressions
As melhores pontuações de R2 (0,51), MAE (2,61) e RMSE (5,29) são apresenta a melhor pontuação para MMRE (2,65).
apresentadas pelo algoritmo Random Forest. XGBoost apresenta o Mais uma vez, os algoritmos de conjunto superam os outros algoritmos
melhor MMRE (0,64). ,
em relação às métricas R2 MAE e RMSE.
A Regressão do Vetor de Suporte apresenta a melhor pontuação no MMRE, TABELA 7. Resultados da avaliação do modelo de duração da tarefa de Controle de
Projeto com diferentes algoritmos.
mas com pontuações significativamente piores para as demais métricas.
Não incluímos a descrição do problema nas funcionalidades de
treinamento, por motivos semelhantes aos apresentados para o modelo de
estimativa de duração. Utilizando a descrição do problema, as melhores
pontuações para R2 (0,26), MAE (5,58) e RMSE (10,82) e MMRE (0,92) nos
modelos de estimativa de esforço, são piores que as melhores pontuações
obtidas sem usar a descrição do problema (Tabela 6 ) . A única exceção é
uma melhoria significativa no MMRE (0,94) com Rede Neural, mas com
pontuações muito piores nas demais métricas.
CONJUNTO DE DADOS
modelo definidos por Jorgeensen e Shepperd [20]: MMRE ÿ 0,25 e PRED(0,3)
ÿ 75%. O modelo Extra Trees Regres-sor tem melhor desempenho nessas A Tabela 9 mostra a classificação de importância do recurso dada por um
métricas, com MMRE = Random Forest Regressor para a variável de destino de duração da tarefa
TABELA 9. Avaliação da importância do recurso para a variável alvo de duração da TABELA 11. Avaliação da importância do recurso para a variável alvo de duração do
tarefa no conjunto de dados do Project Control (6 principais). problema no conjunto de dados JIRA (6 principais).
A Tabela 10 mostra a classificação de importância do recurso dada por um Random como proprietários de produtos, podem criar tarefas mais amplas, enquanto
Forest Regressor para a variável alvo do esforço da tarefa no mesmo conjunto de desenvolvedores ou pessoal de controle de qualidade geralmente criam tarefas
dados. A duração da tarefa é a variável mais importante, seguida pela duração do mais curtas; •
pacote de trabalho e pelo número de sequência. Mais uma vez, as variáveis relacionadas #Sprints: questões vinculadas a mais sprints geralmente exigem maior esforço e
com a duração são consideradas as mais importantes. Usar a duração planejada da tempo. Os motivos podem incluir extensão de tarefas, reabertura de problemas,
tarefa para prever o esforço da tarefa é válido devido à abordagem de planejamento etc., necessitando de reestimativa de esforço no início de cada sprint. Esse efeito
seguida (a duração da tarefa é estimada antes do esforço). é esperado, pois nosso conjunto de dados tem como alvo o esforço e a duração
total do problema, e não por sprint; • Status Resolvido: normalmente, problemas
O esforço necessário para uma tarefa (por exemplo, duas pessoas por mês) é o 'Resolvidos' – aqueles resolvidos,
resultado de uma alocação de recursos (por exemplo, uma pessoa em meio período) mas que aguardam testes – registram menos tempo e esforço em comparação com
pela duração da tarefa (por exemplo, quatro meses). Dado o potencial para que as aqueles em estágios subsequentes, como 'Concluído' ou 'Fechado'. Treinar um
alocações de recursos exibam um grau de uniformidade entre as tarefas, a compreensão modelo usando problemas 'Resolvidos' pode ser útil se os desenvolvedores
da duração de uma tarefa e do seu pacote de trabalho correspondente provavelmente quiserem prever o tempo e o esforço necessários até a resolução, em vez do
oferecerá informações valiosas sobre o espectro de valores de esforço considerados encerramento final, que pode depender de outro pessoal; • Tipo Bug: problemas
aceitáveis para a tarefa. do tipo 'Bug' tendem a exigir significativamente menos tempo e esforço para
serem corrigidos do que outros tipos de problemas (por exemplo, 'Novo
recurso').
duas variáveis de destino. Como a tokenização substitui a descrição da tarefa por um grande número de recursos
As Tabelas 11 e 12 mostram a classificação de importância do recurso dada por um de treinamento (um por palavra), não é prático analisar a importância do recurso da
Random Forest Regressor para as variáveis alvo de duração e esforço, respectivamente. mesma forma que nos conjuntos de dados anteriores.
E. COMPARAÇÃO COM TRABALHOS RELACIONADOS E EFEITO DE Em geral, obter estimativas precisas de esforço e duração ao nível de
GRANULARIDADE DA ESTIMAÇÃO tarefas ou questões individuais é muito mais desafiante e muito poucos
Tal como salientado na secção II, a maioria dos estudos existentes procura trabalhos abordam tais desafios.
fazer estimativas ao nível do projeto, e não ao nível de tarefas ou questões Na prática, estimativas de esforço individuais com pouca precisão, mas com
individuais, como fazemos neste artigo, pelo que os resultados de um bom equilíbrio entre estimativas excessivas e subestimadas, podem
desempenho não são diretamente comparáveis. Além disso, a maioria dos levar a estimativas precisas ao nível do projeto – as mais importantes para
estudos aproveita estimativas de tamanho ou complexidade como entrada assumir compromissos com os clientes.
para o esforço do projeto e estimativa de duração, embora não assumamos Esse fenômeno pode ser observado mesmo em nosso conjunto de dados
a existência de quaisquer estimativas de tamanho ou complexidade (por que apresentou desempenho inferior na estimativa de esforço - o conjunto
exemplo, pontos de história) para ajudar a prever o esforço. ou duração de dados JIRA, conforme ilustrado nas Figuras 2 e 3.
exigida por uma tarefa ou problema. A Figura 2 ilustra a correlação entre os valores de esforço reais e aqueles
Por exemplo, Pospieszny et al. [5] obtiveram pontuações muito boas no previstos por um Random Forest Regressor em um conjunto de dados de
MMRE (0,13-0,15) e no PRED(30) (81-82%) na previsão do esforço geral e teste. Os valores reais apresentam um certo grau de discretização, uma vez
da duração do projeto em um conjunto de dados do ISBSG com 1.192 que o registo de tempo é frequentemente realizado em múltiplos de horas.
projetos. Suas variáveis de entrada incluíam o tamanho relativo do projeto Por outro lado, cada ponto na Figura 3 representa um projeto único dentro
em pontos de função agrupados em categorias (semelhantes aos tamanhos do conjunto de dados de teste; as coordenadas 'x' e 'y' indicam os valores
de camisetas) – geralmente um importante preditor do esforço e da duração cumulativos de esforço real e previsto para o projeto específico,
do projeto. Uma diferença adicional ao nosso trabalho é que eles respectivamente. As diferenças na precisão das estimativas são
transformaram logaritariamente as variáveis-alvo, mas não aplicaram a impressionantes, seja pela inspeção visual ou pela observação de que o
transformação reversa ao calcular as métricas de desempenho, o que MMRE cai de 3,94 para 0,23 quando as estimativas do esforço da tarefa são
possivelmente levou a pontuações excessivamente otimistas, conforme agregadas ao nível do projeto.
reconhecido pelos autores.
TABELA 15. Eficácia do algoritmo de melhor desempenho para cada conjunto de dados e
variável de destino.
A Tabela 14 mostra o algoritmo de melhor desempenho para cada conjunto métricas e limites para avaliar a precisão dos modelos de estimativa de esforço e
de dados e variável alvo, com base em pontuações normalizadas calculadas da duração no nível de tarefas ou problemas individuais em projetos de software.
da variância da variável alvo também pode ser um importante fator de influência consequência inevitável do uso de dados corporativos autênticos.
na precisão da previsão. Alcançar alta precisão de previsão pode ser um desafio Embora tenhamos anonimizado certas informações confidenciais, as preocupações
para variáveis-alvo com maior variância, a menos que possuamos variáveis com a privacidade nos impedem de disponibilizar publicamente os conjuntos de
altamente preditivas para compensar essa variabilidade. dados.
[8] S. Berlin, T. Raz, C. Glezer e M. Zviran, ''Comparação de estimativa DANIEL T. VELOSO está atualmente buscando o
métodos de custo e duração em projetos de TI,'' Inf. Suave. Tecnologia, vol. 51, licenciatura em engenharia electrotécnica e de computadores
não. 4, pp. 738–748, abril de 2009. pela Faculdade de Engenharia da Universidade do Porto. Seu
[9] C. López-Martín, ''Comparação de precisão preditiva entre redes neurais e regressão estatística interesse de pesquisa inclui inteligência computacional para
para esforço de desenvolvimento de software
resolver problemas do mundo real
projetos,'' Appl. Computação Suave., vol. 27, pp. 434–449, fevereiro de 2015. em vários domínios.
[10] Md. T. Rahman e Md. M. Islam, ''Uma comparação de aprendizado de máquina
algoritmos para estimar esforço em software de tamanhos variados,'' em Proc. IEEE
Região 10 Simp. (TENSYMP), junho de 2019, pp.
[11] LL Minku e X. Yao, ''Conjuntos e localidade: Insights sobre como melhorar a estimativa de esforço
de software'', Inf. Suave. Tecnologia, vol. 55, não. 8,
pp. 1512–1528, agosto de 2013.
[12] E. Kocaguneli, T. Menzies e JW Keung, '' Sobre o valor do conjunto
estimativa de esforço,'' IEEE Trans. Suave. Eng., vol. 38, não. 6, pp.
Novembro de 2012.
[13] D. Azhar, P. Riddle, E. Mendes, N. Mittas e L. Angelis, ''Usando conjuntos para estimativa de
HENRIQUE M. GONÇALVES obteve o M.Sc.
esforço da web'', em Proc. Internacional ACM/ IEEE. Simp. Empírico
Licenciatura em Engenharia Informática e Computação pela
Suave. Eng. Medidas, outubro de 2013, pp.
[14] T. Kam Ho, ''O método de subespaço aleatório para construir florestas de decisão'', IEEE Trans.
Faculdade de Engenharia da Universidade
Padrão Anal. Mach. Intel., vol. 20, não. 8, do Porto, em 2021. Os seus interesses de investigação incluem
[18] D. Ruan, G. Chen, E. Kerre e G. Wets, Mineração Inteligente de Dados: Técnicas e Aplicações
(Estudos em Inteligência Computacional), vol. 5. JOÃO PASCOAL FARIA (Membro, IEEE) é actualmente
Berlim, Alemanha: Springer-Verlag, janeiro de 2010.
Professor Associado de Engenharia de Software na Faculdade
[19] C. Leys, C. Ley, O. Klein, P. Bernard e L. Licata, ''Detectando outliers:
de Engenharia da Universidade do Porto, e Investigador Sénior
Não use o desvio padrão em torno da média, use o desvio absoluto em torno da mediana”, J.
com
Experim. Psicologia Social, vol. 49, não. 4,
a Computação e Informação Centradas no Ser Humano
pp. 764–766, julho de 2013.
Centro de Ciência, INESC TEC. Os seus interesses de
[20] M. Jorgensen e M. Shepperd, ''Uma revisão sistemática de estudos de estimativa de custos de
investigação incluem engenharia de software, nomeadamente
desenvolvimento de software'', IEEE Trans. Suave. Eng., vol. 33, não. 1,
pp. 33–53, janeiro de 2007.
melhoria de processos de software, testes de software e
[21] P. Ardimento e C. Mele, ''Usando BERT para prever o tempo de correção de bugs'', em engenharia de software orientada a modelos.
Processo. Conferência IEEE. Evoluindo Adaptar. Intel. Sist. (EAIS), maio de 2020, pp.
[22] WHA Al-Zubaidi, HK Dam, A. Ghose e X. Li, ''Multi-objetivo
abordagem baseada em pesquisa para estimar o tempo de resolução de problemas'', no Proc. 13º Int.
Conf. Software de análise de dados de modelos preditivos. Eng., novembro de 2017, pp.
[23] T. Foss, E. Stensrud, B. Kitchenham e I. Myrtveit, '' Um estudo de simulação
do critério de avaliação do modelo mmre,'' IEEE Trans. Suave. Eng., vol. 29,
não. 11, pp. 985–995, novembro de 2003.
[24] JTHDA Cabral, ALI Oliveira e FQB da Silva, ''Ensemble JOÃO MENDES-MOREIRA é atualmente Professor Associado
estimativa de esforço: uma revisão sistemática atualizada e ampliada da literatura,''
de ciência de dados na Faculdade de Engenharia da
J.Sist. Softw., vol. 195, janeiro de 2023, art. não. 111542. Universidade do Porto e
Pesquisador Sênior com Inteligência Artificial
e Centro de Apoio à Decisão, INESC TEC. Dele
interesses de pesquisa incluem descoberta de conhecimento,
mineração de dados e aprendizado de máquina.
ANDRÉ O. SOUSA obteve o B.Sc. licenciatura em RICARDO GRAÇA recebeu o M.Sc. grau
tecnologia da informação pela Universidade do em engenharia de informática e computação pela
Açores, e o M.Sc. licenciatura em engenharia de software pela Faculdade de Engenharia da Universidade do Porto,
Faculdade de Engenharia da Universidade em 2013. Atualmente é Android e Flutter
do Porto, em 2021. Os seus interesses de investigação incluem Desenvolvedor e Investigador no Fraunhofer Portugal AICOS.
abordagens de aprendizado de máquina para melhorar
tarefas no ciclo de vida de desenvolvimento de software, como
como gestão de riscos e estimativa de esforço.