Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Departamento de Computação – Universidade Tecnológica Federal do Paraná
Paraná, Brasil
2
Instituto de Matemática e Estatística – Universidade de São Paulo
São Paulo, Brasil
ricardo.francisco@gmail.com, {gerosa@ime.usp.br}, {igor,reginaldo}@utfpr.edu.br
Abstract. The quality of software can be measured based on their defects and
cross-project prediction can be used to help find them. This work propose the
use of an alternative measure to group projects for cross-prediction. The tech-
nique uses the similarity of values of the ROC curve obtained with classification
algorithms combined with different feature selection techniques to group simi-
lar projects. Results indicate that in 63.16% of the predictions, the proposed
technique achieves values of ROC curve higher than a random model (> = 0.5).
We performed the prediction comparing five classification algorithms. The best
result was obtained with the combination of Naive Bayes with Genetic Search
and CFS. The results qualify to find similar projects.
Resumo. A qualidade de um software pode ser medida com base em seus defei-
tos e a predição cruzada de defeito entre projetos pode ser usada para ajudar
a encontrá-los. Este trabalho propõe o uso de uma medida alternativa para
agrupar projetos para predição cruzada. A técnica usa similaridade dos valo-
res da curva ROC obtidos com o uso de algoritmos de classificação e seleção de
atributos para agrupar projetos similares. Resultados indicam que em 63,16%
das predições, a técnica proposta obteve valores de curva ROC acima de um
modelo randômico (>= 0.5). Após a comparação de 5 algoritmos de classifica-
ção, o melhor resultado foi obtido com a combinação de Naive Bayes com CFS
e Genetic Search. Os resultados o qualificam para encontrar projetos similares.
1. Introdução
O desenvolvimento de software sofre impacto na qualidade de suas soluções devida in-
cidência de defeitos nas versões. Para minimizar esse problema existe o processo de
predição de defeitos. Ele busca predizer a existência deles antes que ocorram [Hall et al.
2012], permitindo direcionar os esforços das equipes para: minimizar o tempo gasto com
a correção de defeitos; reduzir os custos de manutenção e incrementar a percepção de
qualidade final do produto [Catal and Diri 2009, Hall et al. 2012].
Predizer defeitos, que ocorrerão em um projeto de software é uma tarefa com-
plexa, especialmente nas fases iniciais do desenvolvimento [Zimmermann et al. 2009].
Fase em que os projetos estão bastante susceptíveis a modificações.
A predição cruzada entre projetos (cross-project defect prediction) é uma técnica
de predição usada especialmente para novos projetos. Esses projetos não tem dados his-
tóricos suficientes para construir seus próprios modelos de predição, usando por exemplo,
dados de versões anteriores. Um dos princípios por trás desse processo está a identifica-
ção de semelhanças entre projetos. Dessa forma, é importante a existências de métodos
que permita a identificação de características semelhantes entre eles para que seja possível
a realização da predição cruzada.
O uso de algoritmos de clusterização permite encontrar padrões similares entre
projetos, sendo a técnica mais utilizada em pesquisas anteriores, que utilizam diferentes
métricas de software para encontrar potenciais projetos semelhantes [Moser et al. 2008,
Jureczko and Madeyski 2010, Zhang et al. 2014, Zimmermann et al. 2009].
Neste trabalho, há a proposta do uso de algoritmos de classificação para avaliar
projetos, com os resultados próximos de predição tendo a medida de avaliação de mode-
los, chamada Área Sob a Curva ROC (curva ROC), para agrupar projetos semelhantes.
A hipótese por trás dessa ideia é, que a medida de similaridade utilizada neste trabalho
não são as métricas de software e sim as semelhanças existentes do valor da curva ROC,
obtidos com o processo de predição com o uso de algoritmos de seleção de atributos.
Dessa forma, neste trabalho as seguintes questões de pesquisa foram trabalhadas:
QP1: Existe algum algoritmo de classificação, que apresenta melhor performance
para ser utilizado com a técnica proposta? Para responder essa questão de pesquisa foram
comparados 5 algoritmos de classificação. Os resultados indicam, que Naive Bayes tem
melhores resultados, enquanto J48 apresentou pior desempenho.
QP2: Existe diferença nos resultados da predição cruzada de defeitos, quando a
técnica proposta neste trabalho é utilizada? Para responder essa questão de pesquisa a
técnica de agrupamento de projetos por similaridade da curva ROC foi implementada e
gerou um conjunto de agrupamentos. Em cada um foi feita predição cruzada entre os
projetos pertencentes com a utilização de Naive Bayes, depois o mesmo procedimento
foi realizado tendo como conjunto de treino todos os projetos pertencentes ao dataset.
Os resultados das predições local e glocal foram comparados, tendo como resultado fi-
nal, que os agrupamentos formados pela medida de similaridade da curva ROC apresenta
problemas de imbalance, que comprometeu a comprovação estatística de sua eficiência,
contudo, ainda se caracteriza em uma alternativa viável por reduzir o custo de predição.
O restante deste artigo está estruturado da seguinte forma: Na seção 2 são apre-
sentadas mais informações sobre as questões de pesquisa, na seção 3 são apresentadas
as informações sobre a criação, execução, agrupamento e os resultados das execuções
dos modelos. A seção 4 apresenta as ameaças à validade deste trabalho, na seção 5 são
apresentados os trabalhos relacionados com o tema desta pesquisa, na seção 6 são apre-
sentados os trabalhos futuros que seguirão esta pesquisa e por último, na seção 7 são
apresentadas as conclusões e resultados detalhados deste trabalho.
2. Questão de Pesquisa
Tendo a predição cruzada de defeito como uma ferramenta importante, que pode ser um
diferencial para qualidade de projetos em desenvolvimento, este trabalho apresenta uma
proposta alternativa para identificar semelhanças entre projetos para viabilizar sua utili-
zação. Para isso, se pretende responder as seguintes questões:
QP1: Existe algum algoritmo de classificação, que apresenta melhor performance
para ser utilizado com a técnica proposta?
QP2: Existe diferença nos resultados da predição cruzada de defeitos, quando a
técnica proposta neste trabalho é utilizada?
As respostas são apresentados na seção 3.
Modelos de Predição
dos Projetos Agrupar Modelos de
Predição
por Similaridade
Modelos de
Modelos de Predição
Controle
Predição Cruzada
Avaliar Modelos Cruzada Testar Modelos
Entrada Atividade Saída de de
Predição Cruzada Predição Cruzada
A0 Resultados
5 de AUC 4
Legenda Mecanismo
Especialista Especialista Weka
Dessa forma, cinco modelos de predição começaram a ser criados, um para cada
algoritmo escolhido, caracterizando a diferença entre eles. A tarefa de classificação foi
então aplicada às classes dos projetos com a avaliação dos atributos presentes.
Esses atributos, métricas de software, são as entradas para a construção do modelo
de predição e assumirão o papel de preditores [Graves et al. 2000, Ostrand et al. 2005].
Há uma variedade de métricas catalogadas na literatura; existem métricas relacionadas a
critérios técnicos do software, como a complexidade do projeto [McCabe 1976]. Também
existem aquelas relacionadas ao processo de construção do software, como o nível de
experiência dos programadores [Jiang et al. 2007]. E também há outras relacionadas
a fatores sociais do processo de desenvolvimento, como o tipo e meio de comunicação
utilizado pelos desenvolvedores. [Bacchelli et al. 2010, Pinzger et al. 2008].
A seleção das métricas é uma importante atividade da construção do modelo de
predição. Alguns autores avaliam que a escolha das métricas adequadas é, que pode
viabilizar a transferência de modelos de predição [Hall et al. 2012]. Inicialmente elas
são obtidas pela mineração de informações disponíveis nos projetos, depois são refinadas
para que as mais relevantes sejam mantidas. Uma forma de fazer isso é com a utilização
de informações de especialistas ou com a criação de algoritmos para buscar identificar
padrões e correlacionar as métricas utilizadas entre projetos [Zimmermann et al. 2009].
Neste trabalho a opção foi da utilização de técnicas de feature selection junto com
os classificadores. Essa técnica procura encontrar entre todos os atributos aqueles, que
conseguem dar as melhores informações para os algoritmos de classificação.
Essa técnica utiliza um conjunto de algoritmos para realizar seu trabalho [Chan-
drashekar and Sahin 2014]. Eles procuram estabelecer relação entre os atributos avali-
ados, sendo chamados de avaliadores de atributos (Attibute Evaluator). Também utiliza
algoritmos, que estabelecem formas, por meio do qual subconjuntos de atributos são pes-
quisados e encontrados, eles são chamados de métodos de pesquisa (Search Method).
Neste trabalho, os seguintes avaliadores de atributo foram selecionados:
representa a execução dos cinco modelos de predição para um projeto e nela é exibido o
valor da curva ROC encontrado.
Avaliando todas as predições, o avaliador de atributos CFS apresentou melhor de-
sempenho na obtenção de valores de curva ROC. Ele estava presente nas 61,40% das
predições com maiores valores de curva ROC. Dentre os métodos de pesquisa utiliza-
dos por esse algoritmo, Genetic Search estava presente em 47,59% das predições com
melhores resultados. Portanto, para execução dos modelos de predição cruzada, foram
utilizados CFS e Genetic Search para obter o valor da curva ROC, que serve de referência
para agrupar projetos por similaridade, conforme a subseção 3.3
Tabela 2. Uma amostra dos resultados com execução dos modelos num projeto
Algoritmo Attribute_Evaluator Search_Method ROC
NaiveBayes CFS BestFirst 0,778
NaiveBayes CFS GreedyStepwise 0,764
NaiveBayes CFS GeneticSearch 0,773
NaiveBayes InfoGain Ranker 0,747
RandomForest CFS BestFirst 0,640
RandomForest CFS GreedyStepwise 0,660
RandomForest CFS GeneticSearch 0,660
RandomForest InfoGain Ranker 0,640
SimpleLogistic CFS BestFirst 0,700
SimpleLogistic CFS GreedyStepwise 0,680
SimpleLogistic CFS GeneticSearch 0,740
SimpleLogistic InfoGain Ranker 0,800
J48 CFS BestFirst 0,570
J48 CFS GreedyStepwise 0,540
J48 CFS GeneticSearch 0,530
J48 InfoGain Ranker 0,590
DecisionTable CFS BestFirst 0,580
DecisionTable CFS GreedyStepwise 0,580
DecisionTable CFS GeneticSearch 0,620
DecisionTable InfoGain Ranker 0,530
A análise dos resultados obtidos, com a execução dos modelos de predição, per-
mite responder a segunda questão de pesquisa deste trabalho.
QP2: Existe diferença nos resultados da predição cruzada de defeitos, quando a
técnica proposta neste trabalho é utilizada?
As evidências levantadas por [Menzies et al. 2011] são de que é mais vantajoso o
processo de predição cruzada, quando temos projetos agrupados. Em sua análise os resul-
tados com a predição cruzada entre projetos agrupados com alguma similaridade, superam
os resultados de predições ocorridos em um ambiente sem qualquer tipo de agrupamento.
Este trabalho concorda com essa afirmação e procurou evidências, que o valor da
curva ROC poderia ser uma opção para agrupar projetos por similaridade. Para isso, os
resultados com o modelo de predição utilizando o classificador Naive Bayes o credenciam
a testar os resultados contra o conjunto formato por todos os projetos do dataset.
A escolha pelo uso do valor da curva ROC, veio amparada por ele ser um indicador
de performance dos modelos de predição e a priori foi pensado, que ele poderia ser um
bom preditor. A análise inicial era, que se houvessem projetos agrupados com valores
de curva ROC alto, a predição dos modelos também seria alta. Em segundo lugar, se
houvessem projetos agrupados com valores baixos, inferiores a 0,5, os testes também
trariam valores baixos, o que também os tornaria bons preditores.
O esperado era que agrupamentos com valores baixos tivessem, como resultados
de predição dos modelos, valor da curva ROC baixo. Esse seria um sinal, que o agrupa-
mento é um bom mal preditor. Significa dizer, que ele tem um padrão de predição de baixo
acerto. Dessa forma, um agrupamento que sempre erra a predição, pode ser considerado
um bom preditor, bastaria inverter a forma de análise.
Dessa forma, para análise da predição envolvendo todos os projetos, sem qualquer
tipo de agrupamento, para comparar com a predição entre projetos realizada internamente
nos agrupamentos criados, foi estabelecida a seguinte regra:
• Centroide alto com teste alto ou baixo: Projetos com valor de curva ROC em sua
clusterização inicial, acima de 0,5, e que na execução do teste tiveram valores
encontrados também acima ou abaixo desse valor, tiveram os valores encontrados
no teste mantidos.
• Centroide baixo com teste alto: Projetos com valor de curva ROC em sua clus-
terização inicial, abaixo de 0,5, e que na execução do teste apresentaram valores
acima, tiveram os resultados encontrados no teste mantidos.
• Centroide baixo com teste baixo: Projetos com valor de curva ROC em sua clus-
terização inicial, abaixo de 0,5, e que na execução do teste apresentaram valores
também abaixo desse valor, tiveram os resultados encontrados no teste invertidos.
O resultado da predição realizada internamente nos agrupamentos, com o uso do
algoritmo de classificação Naive Bayes, é exibido na tabela 8. Nela é possível visualizar
os valores da curva ROC, obtidos no processo de teste localmente e com todos os projetos
do dataset, também é apresentado o valor do ROC do modelo, conforme a regra apresen-
tada anteriormente. A análise dos resultados, conforme a tabela 7, da uma impressão, que
o resultado da predição foi muito superior quando executado localmente. Os resultados
apontaram, que 47,37% das predições realizadas internamente tiveram valores acima de
0,7, superando as predições realizadas globalmente.
Entretanto, os resultados da análise estatística com a utilização da técnica de
Mann-Whitney, apresentou valor de p-value=0.1253, que impede o descarte a hipótese
nula e não permite comprovar estatisticamente, que a clusterização de projetos com o
uso da similaridade do valor da curva ROC, para predição cruzada entre projetos, tem
melhores resultados a aplicada em projetos sem qualquer agrupamento.
A impossibilidade da comprovação estatística se deve ao comportamento apre-
sentado pelos Clusters 15 e 18. Eles fugiram a regra pensada para uso do valor da curva
ROC como medida de similaridade. Ambos têm algumas características em comum não
conhecidas inicialmente. Eles sofrem de imbalance, tendo projetos com grande variação
nas informações disponíveis para as classes de Buggy e Clean.
O Cluster15 foi testado com um projeto contendo apenas instâncias classificadas
como Buggy, sem nenhuma informação sobre Clean. Esse fato compromete os resultados
obtidos. De forma semelhante, o Cluster18 é o agrupamento de projetos cujo centróide
tem valor de curva ROC de 0,954, contudo, quando testado pelo modelo de predição
apresentou um valor de curva ROC de 0,022. A análise do agrupamento assim como a
verificação do comportamento dos projetos, que ali foram agrupados, revelam que além
do desbalanceamento, a clusterização inicial com o uso de feature selection induziu seu
posicionamento como um agrupamento de alto grau de predição. A tabela 9 representa
todos os projetos agrupados ali e trás informações sobre o número de instâncias de cada
projeto, como elas estão divididas entre as classes de Buggy e Clean, qual foi o resultado
do teste de cada projeto localmente e também globalmente.
Baseado nessas informações e desconsiderando esses dois agrupamentos da aná-
lise estatística, o valor de p-value obtido é de 0.03562, o que permitiria a comprovação
estatística do uso dessa técnica para agrupar projetos para predição cruzada. Contudo,
sem esse refinamento, não é possível considerar que os resultados obtidos pelo modelo
de predição em projetos agrupados pela similaridade da curva ROC é verdadeiro, mas
existem evidencias, que esse modelo pode ser utilizado como uma alternativa de menor
custo para o processo de predição. Essa afirmação é baseada nos resultados de predição,
tendo como referência o número de instâncias de cada agrupamento, comparado com o
número de instâncias que compõem todo dataset.
A influência da técnica de feature selection em projetos que sofrem de imbalance
ficou evidente na análise dos resultados do Cluster18. O valor da curva ROC do modelo
é influenciado pelo uso da técnica, se comparado com uma classificação realizada sem
ela. Uma alternativa seria avaliar meios que pudessem minimizar a influencia da falta de
balanceamento nos projetos para os modelos de predição. Outra alternativa seria testar
essa técnica com a utilização de medidas complementares ao modelo, como as medidas
de Recall, Precision, F-measure, ou então a utilização de outra medida única como MCC
(Matthews correlation coefficient) no lugar do valor da curva ROC. Dessa forma, possí-
veis outlayers presentes no processo de clusterização para predição cruzada de projetos
poderiam ser descartados.
4. Ameaças à validade
A construção e execução dos modelos de predição apresentados neste trabalho, têm al-
gumas características que podem ter influenciado nos resultados obtidos. Uma delas está
relacionada aos algoritmos de classificação e a técnica de feature selection empregada,
especialmente sobre sua influência em projetos que sofrem de imbalance.
O valor da curva ROC e a influência que sofre por projetos com imbalance é outra
ameaça à validade deste trabalho.
Tabela 9. Representação dos projetos pertencentes ao Cluster18
Projeto Nr. Instâncias Projeto Nr. Buggy Nr. Clean ROC Teste ROC Global
any23 38 36 2 0,472 0,653
aost 13 10 3 0,833 0,400
arcanea-project 44 25 19 0,528 0,434
benojt 95 92 3 0,076 0,888
elj-win32 11 6 5 0,767 0,667
google-collections 82 80 2 0,119 0,869
hazelcast 65 55 10 0,084 0,956
herostats 20 15 5 0,907 0,067
jaxlib 50 48 2 0,594 0,719
jython 170 22 148 0,921 0,567
mvdsv 69 63 6 0,392 0,730
nano 30 19 11 0,900 0,756
tdt 22 1 21 0,990 0,048
theresa 53 50 3 0,713 0,953
workhub2 43 40 3 0,159 0,683
5. Trabalhos relacionados
Nesta seção serão analisadas pesquisas relacionadas com o tema predição cruzados de
defeitos em projetos. Foram selecionados os trabalhos de Zimmermann [Zimmermann
et al. 2009] e Menzies [Menzies et al. 2011], sendo apresentados a seguir.
O trabalho realizado por [Zimmermann et al. 2009] abordou 12 projetos de grande
porte e realizou 622 predições, tendo 3,40% de resultado positivo na predição entre proje-
tos. Seus estudos apontaram, que projetos estarem no mesmo contexto não é o suficiente
para torná-los preditores eficientes. Um exemplo disso foram os resultado da predição en-
tre Internet Explorer e Firefox. Contudo, é importante observar que o próprio autor revela
que o contexto pode ter sido afetado pelo subconjunto das métricas escolhidas para predi-
ção. Esse é um problema não presente neste trabalho, pois a escolha das métricas não foi
feita por análise humana e sim pelo processamento dos algoritmos de feature selection.
Na sequencia, o trabalho de [Menzies et al. 2011] sugere que o trabalho de predi-
ção de defeitos, para projetos agrupados separadamente, apresentam melhores resultados
que analisados coletivamente. Para avaliar essa teoria, o autor realizou o agrupamento
de um conjunto de projetos disponíveis no repositório PROMISE, sendo eles: CHINA;
NasaCoc; Luciane 2.4 e Xalan 2.6. A forma de agrupamento foi com uso do algoritmo
WHERE, criado pelo autor, que procura agrupar atributos semelhantes dos projetos ana-
lisados. Essa abordagem de agrupamento entre projetos, foi seguida neste trabalho, con-
tudo, a forma empregada foi diferente, com a utilização de do valor da curva ROC obtido
com a execução da classificação com algoritmos de feature selection.
O número de projetos analisados em um processo de predição cruzada de defeitos
é variável. Zimmermann [Zimmermann et al. 2009] trabalhou com 12 projetos de grande
porte, já Herbold [Herbold 2013] selecionou 44 conjunto de dados de um total de 14
projetos. Já este trabalho selecionou 1270 projetos de software livre ou acadêmicos, e
realizou 25.400 predições com os conjuntos formados pelos prjetos.
Este trabalho preconiza o uso da clusterização e da seleção de atributos para o
processo de predição, entretanto, a forma como essas duas atividades são tratadas neste
trabalho são distintas das pesquisas anteriores. A clusterização por similaridade entre os
projetos, baseada no valor da curva ROC e a seleção de atributos, por meio do uso da
técnica de feature selection, são duas das principais diferenças deste trabalhos.
6. Trabalhos futuros
A continuidade desta pesquisa pretende estender os resultados obtidos com a adição de
outros algoritmos de clusterização, como: K-Means e K-NN, para comparar os resultados
com agrupamento de projetos pela similaridade do valor da curva ROC.
Também há intenção de adicionar outros indicadores dos modelos de predição na
clusterização. Uma possibilidade é trabalhar com agrupamentos, que considerem também
os valores de F-Measure, Recall, Precision e MCC.
Por fim, há a possibilidade de analisar o comportamento do modelo de predição
com acréscimo de outros algoritmos de classificação e feature selection. Outras pesquisas
podem ser direcionadas à formas de tratamento do clusters que sofram de imbalance.
7. Conclusão
A incidência de defeitos no software em uso por seus usuários, têm forte impacto na
percepção de qualidade. A utilização da predição cruzada de defeito entre projetos é
uma alternativa importante a ser considerada, ainda mais para projetos, que estão em fase
inicial de desenvolvimento, permitindo reduzir a ocorrência de defeitos em seus produtos.
Um dos princípios de sua utilização é identificar semelhanças entre projetos. Al-
goritmos de clusterização permitem encontrar padrões de similaridade, sendo uma técnica
utilizada noutras pesquisas, que utilizam métricas de software para encontrar projetos se-
melhantes [Jureczko and Madeyski 2010, Zhang et al. 2014, Zimmermann et al. 2009].
Este trabalho propôs uma alternativa ao uso de métricas para estabelecer a simi-
laridade entre projetos. Com o uso de algoritmos de classificação e técnica de feature
selection, utilizou a medida de avaliação de modelos de predição, chamada Área Sob a
Curva ROC (curva ROC), para agrupar projetos semelhantes. Portanto, para avaliar essa
alternativa, neste trabalho as seguintes questões de pesquisa foram trabalhadas:
QP1: Existe algum algoritmo de classificação, que apresenta melhor performance
para ser utilizado com a técnica proposta? Para responder essa questão de pesquisa foram
comparados 5 algoritmos. Naive Bayes teve o melhor desempenho, com 31,58% de suas
classificações com valores de curva ROC acima de 0,7 e 52,63% acima de 0,6. Já o
algoritmo J48 foi o de pior desempenho, sem classificações com valores acima de 0,6.
QP2: Existe diferença nos resultados da predição cruzada de defeitos, quando a
técnica proposta neste trabalho é utilizada? Para responder essa questão de pesquisa a
técnica de agrupamento de projetos por similaridade da curva ROC foi implementada ge-
rando conjuntos de agrupamentos. Em cada um, foi aplicada predição cruzada entre os
projetos com a utilização de Naive Bayes, depois o mesmo procedimento foi realizado
em todos os 1270 projetos pertencentes ao dataset.Os resultados encontrados impedem a
confirmação da existência de diferenças. Contudo, algumas lições aprendidas precisam
ser observadas. A criação dessa técnica imaginava, que o valor da curva ROC poderia ser
um bom preditor para predição cruzada entre projetos, quando esses também estivessem
agrupados por essa medida. Portanto, quando projetos passassem por um processo de
classificação, com utilização de feature selection, e apresentassem altos valores de curva
ROC, ali estariam projetos que poderiam ser bons preditores para predição cruzada. Da
mesma forma, quando houvessem projetos com baixo valor de curva ROC, ali estariam
projetos com baixa capacidade de predição cruzada entre eles. Pois se um agrupamento
sempre erra, sinal que ele também é um bom preditor. Essa regra foi formada e os resul-
tados da predição cruzada entre os projetos de cada agrupamento foram comparados com
os resultados obtidos com a predição realizada globalmente.
Os resultados dos Clusters15 e 18 invalidam a regra, impedindo comprovação es-
tatística, que a forma de agrupar projetos pela similaridade do curva ROC, gera melhores
resultados. Contudo, existem peculiaridades nesses dois agrupamentos que eram desco-
nhecidos comprometendo os resultados encontrados. A exclusão desses dois agrupamen-
tos da análise estatística gera um valor de p-value=0.03562 para o teste com a técnica
de Mann-Whitney, que permitiria afirmar, que tal forma de agrupamento gera melhores
resultados. Essa informação reforça, que o uso de medidas únicas, como o valor da curva
ROC, pode ser uma opção para estabelecer similaridade entre projetos, para predição
cruzada de defeito, mas precisa ter os problemas ligados ao imbalance dos agrupamen-
tos tratados, reduzindo o impacto da classificação com uso de feature selection. Dessa
forma, se reduz o comprometimento dos agrupados formados e se espera ter resultados
mais eficientes na predição cruzada. Enfim, uma coisa é certa, a técnica apresentada neste
trabalho, reduz o custo do processo de predição, se comparado com o esforço necessário
para predizer projetos sem qualquer agrupamento.
Referências
[Bacchelli et al. 2010] Bacchelli, A., DÁmbros, M., and Lanza, M. (2010). Are popular
classes more defect prone? In Proceedings of the 13th International Conference on
Fundamental Approaches to Software Engineering, FASE’10, pages 59–73, Berlin,
Heidelberg. Springer-Verlag.
[Bowes et al. 2012] Bowes, D., Hall, T., and Gray, D. (2012). Comparing the performance
of fault prediction models which report multiple performance measures: recomputing
the confusion matrix. In Wagner, S., editor, PROMISE, pages 109–118. ACM.
[Catal and Diri 2009] Catal, C. and Diri, B. (2009). A systematic review of software fault
prediction studies. Expert Systems with Applications, 36(4):7346–7354.
[Chandrashekar and Sahin 2014] Chandrashekar, G. and Sahin, F. (2014). A survey on fea-
ture selection methods. Computers & Electrical Engineering, 40(1):16 – 28. 40th-year
commemorative issue.
[Faceli et al. 2011] Faceli, K., Lorena, A. C., Gama, J., and Carvalho, A. (2011). Inte-
ligência artificial: Uma abordagem de aprendizado de máquina. Livros Técnicos e
Científicos.
[Ghotra et al. 2015] Ghotra, B., McIntosh, S., and Hassan, A. E. (2015). Revisiting the
impact of classification techniques on the performance of defect prediction models.
37th International Conference on Software Engineering (ICSE 2015).
[Graves et al. 2000] Graves, T. L., Karr, A. F., Marron, J. S., and Siy, H. (2000). Software
Change History. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 26(7):653–
661.
[Hall et al. 2012] Hall, T., Beecham, S., Bowes, D., Gray, D., and Counsell, S. (2012). A
systematic literature review on fault prediction performance in software engineering.
IEEE Trans. Softw. Eng., 38(6):1276–1304.
[Herbold 2013] Herbold, S. (2013). Training data selection for cross-project defect pre-
diction. In Proceedings of the 9th International Conference on Predictive Models in
Software Engineering, PROMISE ’13, pages 6:1–6:10, New York, NY, USA. ACM.
[Jiang et al. 2007] Jiang, Y., Cukic, B., and Menzies, T. (2007). Fault prediction using early
lifecycle data. pages 237–246.
[Jureczko and Madeyski 2010] Jureczko, M. and Madeyski, L. (2010). Towards identifying
software project clusters with regard to defect prediction. In Proceedings of the 6th
International Conference on Predictive Models in Software Engineering, PROMISE
’10, pages 9:1–9:10, New York, NY, USA. ACM.
[Kohavi 1995] Kohavi, R. (1995). The power of decision tables. pages 174–189.
[Lessmann et al. 2008] Lessmann, S., Baesens, B., Mues, C., and Pietsch, S. (2008). Bench-
marking classification models for software defect prediction: A proposed framework
and novel findings. Software Engineering, IEEE Transactions on, 34(4):485–496.
[McCabe 1976] McCabe, T. J. (1976). A complexity measure. IEEE Trans. Softw. Eng.,
2(4):308–320.
[Menzies et al. 2011] Menzies, T., Butcher, A., Marcus, A., Zimmermann, T., and Cok, D.
(2011). Local vs. global models for effort estimation and defect prediction. In Proce-
edings of the 2011 26th IEEE/ACM International Conference on Automated Software
Engineering, ASE ’11, pages 343–351, Washington, DC, USA. IEEE Computer Soci-
ety.
[Moser et al. 2008] Moser, R., Pedrycz, W., and Succi, G. (2008). A comparative analysis
of the efficiency of change metrics and static code attributes for defect prediction. In
Proceedings of the 30th International Conference on Software Engineering, ICSE ’08,
pages 181–190, New York, NY, USA. ACM.
[Ostrand and Weyuker 2007] Ostrand, T. J. and Weyuker, E. J. (2007). How to measure
success of fault prediction models. In Fourth International Workshop on Software
Quality Assurance: In Conjunction with the 6th ESEC/FSE Joint Meeting, SOQUA
’07, pages 25–30, New York, NY, USA. ACM.
[Ostrand et al. 2005] Ostrand, T. J., Weyuker, E. J., and Bell, R. M. (2005). Predicting the
Location and Number of Faults in Large Software Systems. IEEE TRANSACTIONS
ON SOFTWARE ENGINEERING, 31(4):340–355.
[Pinzger et al. 2008] Pinzger, M., Nagappan, N., and Murphy, B. (2008). Can developer-
module networks predict failures? pages 2–12.
[Radjenovic et al. 2013] Radjenovic, D., Hericko, M., Torkar, R., and Zivkovic, A. (2013).
Software fault prediction metrics: A systematic literature review. Information & Soft-
ware Technology, 55(8):1397–1418.
[Zhang et al. 2014] Zhang, F., Mockus, A., Keivanloo, I., and Zou, Y. (2014). Towards
building a universal defect prediction model. pages 182–191.
[Zimmermann et al. 2009] Zimmermann, T., Nagappan, N., Gall, H., Giger, E., and
Murphy, B. (2009). Cross-project defect prediction: A large scale experiment on data
vs. domain vs. process. pages 91–100.