8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
1/88
INSTITUTO FEDERAL DO CEARÁ
EIXO TECNOLÓGICO DE TELEMÁTICA
CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
ADONIAS CAETANO DE OLIVEIRA
CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA ÀPREDIÇÃO DE DEFEITOS DE SOFTWARE
MARACANAÚ2013
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
2/88
ii
ADONIAS CAETANO DE OLIVEIRA
CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA ÀPREDIÇÃO DE DEFEITOS DE SOFTWARE
Trabalho de Conclusão de Curso apresentado àCoordenação do Curso de Bacharelado em Ciênciada Computação do Instituto Federal do Ceará (IFCE)
Campus Maracanaú como requisito parcial paraobtenção de título de Bacharel em Ciência daComputação.
Área de Concentração: Inteligência Artificial
Orientador: Prof. Dr. Ajalmar Rêgo da Rocha Neto
MARACANAÚ2013
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
3/88
iii
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO CEARÁ
CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
Adonias Caetano de Oliveira
Esta Monografia foi julgada adequada para a obtenção do título Bacharel em Ciência daComputação, sendo aprovada pela coordenação do Curso de bacharelado em Ciência daComputação do Instituto Federal do Ceará e pela banca examinadora:
__________________________________Prof. Dr. Ajalmar Rêgo da Rocha Neto (Orientador)
Instituto Federal do Ceará - IFCE
__________________________________Prof. MSc. Amauri Holanda de Souza Júnior
Instituto Federal do Ceará - IFCE
__________________________________Prof. MSc. Igor Rafael Silva Valente
Instituto Federal do Ceará - IFCE
Maracanaú, 04 de Julho de 2013
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
4/88
iv
Este trabalho é dedicado aos meus pais, Valdemir Caetano e
Maria Conceição Caetano, pelo constante apoio, incentivo e admiração, e
principalmente a minha avó Raimunda Francisca de Oliveira, que em 10 de junho de
2013, foi recolhida à presença de seu Senhor e Salvador (Fp. 1, 21, 23). Aos colegas, amigos e professores que participaram desta caminhada.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
5/88
v
Agradecimentos
Quero deixar aqui registrado a minha mais sincera gratidão para com todos oscolaboradores deste trabalho, diretamente ou indiretamente.
A Deus, que me orienta em todos os momentos.
Aos meus pais Valdemir Caetano e Maria Conceição Caetano pela educação, pelamotivação nas vezes em que já não a tinha mais, pelo amor incondicional. Apoioincondicional, conselhos, força e amizade sem igual durante todos esses anos.
Ao Prof. Dr. Ajalmar Rocha, por ter me orientado durante este projeto, e mais quemeu orientador, foi meu amigo. Obrigado pela confiança em meu trabalho, no início do
Curso em 2009, através de bolsa de Iniciação Científica que me possibilitou aimplementação de boa parte dos algoritmos de Reconhecimento de Padrões citadosneste trabalho; além da dedicação, paciência e acima de tudo pela orientação de comoconduzir este trabalho.
A todos docentes da Coordenadoria de Telemática (IFCE Campus Maracanaú), pelaatenção e apoio. Em especial três docentes: Prof. MSc. Otávio Alcântara, ao ensinar osprimeiros passos na produção e apresentação de trabalhos científicos, Prof. Dr. NivandoBezerra pela oportunidade de produzir o primeiro artigo científico e o Prof. MSc. IgorValente, pela excelente didática e organização na disciplina de Engenharia de Software,área de aplicação deste trabalho.
Ao Núcleo Fortaleza do Projeto Acessibilidade Virtual, através dos amigos AgebsonRocha, Marcos Vinícius, Phyllipe do Carmo, Lívio Siqueira e Francisco Alves, peloconhecimento prático sobre desenvolvimento de software.
Á Pró-reitoria de Pesquisa e Inovação, pelo auxílio financeiro.
E, por fim, aos meus amigos Jonas Rodrigues e Rômulo Lopes, pelo apoio e amizadedurante esses anos de graduação.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
6/88
vi
“Assim diz o Senhor: Não se glorie o sábio na sua sabedoria, nem se glorie o forte nasua força; não se glorie o rico nas suas riquezas. Mas o que se gloriar glorie-se nisto: emme conhecer e saber que eu sou o Senhor, que faço beneficência, juízo e justiça na terra;porque destas coisas me agrado, diz o Senhor.”
Jeremias 9. 23, 24
“Mas disse ao homem: Eis que o temor do Senhor é a sabedoria, e apartar-se do mal é ainteligência.”
Jó 28. 28
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
7/88
vii
Resumo
Diversos problemas computacionalmente complexos da Engenharia de Software -incluindo geração e seleção de casos de teste, entre outros - podem ser modelados comoproblemas de otimização e ser formulados matematicamente. Como tais, essesproblemas podem ser tratados de forma automática através de modelos preditivos,especialmente métodos de Inteligência Computacional. Essas aplicações culminaram nacriação da área de pesquisa da computação chamada de Modelos Preditivos emEngenharia de Software (Predictive Models in Software Engineering - PMSE).
Este trabalho apresenta os resultados de um sistema de predição de defeitos desoftware implementado através de classificadores estatísticos e neurais convencionais.Adicionalmente, métodos para classificação com opção de rejeição foram utilizados
neste trabalho a fim de aumentar o desempenho do sistema e evitar que sejam tomadasdecisões em situações em que há um elevado custo para uma decisão incorreta. OSistema Inteligente para Predição de Defeitos de Software com Opção de Rejeição(SIPDOR) é composto por dois subsistemas, a saber: interface gráfica e predição dedefeitos. O módulo de interface gráfica permite uma interação amigável com oengenheiro de software. O módulo de classificação automática de defeitos de software éimplementado por diferentes algoritmos, tais como Distância Mínima ao Centróide(DMC), K-Vizinhos mais Próximos (K-NN), Naive Bayes, K-Médias, rede ADALINE,rede MADALINE e rede Perceptron Multicamadas (MLP).
Em particular, o módulo de predição de defeitos da plataforma SIPDOR utiliza abase de dados KC2 disponibilizada para uso público no site PROMISE, onde cadaamostra possui 21 atributos e um atributo indicando se foram encontrados ou relatadosdefeitos. Como KC2 originalmente é desbalanceada, também foi utilizada uma versãoKC2 balanceada criada através de repetição aleatória de padrões pertencentes à classecom menor frequência. Os diversos classificadores supracitados são comparados comrelação à taxa de acerto mínimo e máximo, média geral de acertos e desvio padrão. Odesempenho dos classificadores é exibido através de histogramas e curvas AR (Taxa deRejeição vs. Taxa de Acerto).
Aplicando apenas classificadores convencionais, isto é, sem a opção de rejeição, atécnica MLP obteve o melhor desempenho nas duas versões de KC2. Com a capacidadede rejeição habilitada, o classificador K-Médias apresentou melhores resultados quando
comparado ao MLP.As contribuições deste trabalho são variadas, indo desde fato de ser provavelmente o
primeiro a usar classificadores de padrões com capacidade de rejeição na predição dedefeitos de software, passando pelo estudo comparativo do desempenho de váriosclassificadores, até a proteção do sistema contra um eventual número de decisõeserradas em situações em que se exige alta confiabilidade. Até onde se temconhecimento, a combinação destas contribuições torna o sistema SIPDOR inovador naárea de resolução de defeitos de software de forma automática, servindo de auxílio nasatividades de Engenharia de Software e facilitando o trabalho dos profissionais dessaárea.
Palavras-chave: predição de defeitos de software; classificação com opção de rejeição;otimização em Engenharia de Software.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
8/88
viii
Abstract
Several computationally complex problems of Software Engineering - including the
generation and selection of cases test, among others - can be modeled as optimization
problems and can be formulated mathematically. As such, these problems can be treated
automatically through predictive models, especially methods Intelligence Computing
(IC). These applications resulted in the creation of the survey area in computing, called
Predictive Models in Software Engineering (PMSE).
This work presents the results of a system for predicting defects software
implemented using statistical and neural classifiers. System Intelligent Prediction of
Software Defect Rejection Option (SIPDOR) is consists of two subsystems, namely: the
graphical interface and prediction of defects. The graphical interface module allows a
friendly man-machine interaction with the engineer software. The automatic
classification of software defects module is implemented by different algorithms, such as
Minimum Distance to Centroid (DMC), K Nearby neighbors (K-NN), Naive Bayes, K-
Means, Adaline network, network Madaline and Multilayer Perceptron (MLP).
In particular, the prediction defect module of the SIPDOR platform uses the database
KC2 available for public use on the site PROMISE, where each sample has 21
attributes and an attribute indicating whether found or reported defects. As originally
KC2 is unbalanced, was also used a version KC2 balanced created through random
repetition of patterns belonging to class less often. The various classifiers above
mention are compared regarding accuracy rate minimum and maximum, overallaverage of correct answers and standard deviation. The performances of the classifiers
are shown by histogram and Accuracy-Reject Curve (ARC).
Applying only conventional classifiers, ie, without the rejection option, the MLP
technique achieved the best performance in two versions of KC2. With the rejection
capability enabled, the K-Means classifier showed better results when compared to the
MLP.
The contributions of this work are varied, ranging from the fact that probably the
first to use pattern classifiers with rejection capability the prediction of software defects,
through the comparative study of the performance multiple classifiers, to protect the
system against a number of possible wrong decisions in situations that require highreliability. As far as is knowledge, the combination of these contributions makes the
system SIPDOR innovative in resolution area of software defects automatically, serving
aid in Software Engineering activities and facilitating the work of professionals in this
field.
Keywords: prediction of software defects, classification with rejection option,
optimization in Software Engineering.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
9/88
ix
Sumário
LIA DE FIGA ..................................................................................................................................I
LIA DE GFICO ...............................................................................................................................II
LIA DE ABELA ............................................................................................................................... I
LIA DE MBOLO .............................................................................................................................
LIA DE ABEIAE ....................................................................................................................... I
INODO ......................................................................................................................................... 1
1.1 IFICAIA ......................................................................................................................................... 2
1.2 BEI GEA ..................................................................................................... ................................ 4 1.3 BEI EECFIC .................................................................................................. .......................... 5 1.4 EA D ABAH ..................................................................................................... ................... 5
1.4.1 ...................................................................................................... 5 1.4.2 ............................................................................................................ 5
EDIO DE DEFEIO EM ENGENHAIA DE OFAE ...................................................................... 7
2.1 FDAEA EICA .............................................................................................................. ......... 9 2.2 EDI DE DEFEI DE FAE ....................................................... ................................................ 10
2.2.1 ................................................................................................................ 11 2.3 DE EDII . D CECIAI. ................................................................................ 12 2.4 DEAFI ..................................................... ............................................................... ......................... 14 2.5 CC ......................................................................................................................................... 15
ECONHECIMENO DE ADE ......................................................................................................... 16
3.1 CONCEITOS GERAIS ........................................................ ............................................................... .... 16 3.2 CLASSIFICADORES DE PADRÃO .......................................................................................................... 17
3.2.1 ...................................................................... .................................... 18 3.3 CLASSIFICADOR DISTÂNCIA MÍNIMA AOS CENTRÓIDES ........................................... ......................... 19 3.4 CAIFICAD IIH AI I ............................................................................................. 20 3.5 CAIFICAD BAE ..................................................................................................... .............. 21 3.6 CAIFICAD DIA ...................................................................................................................... 22 3.7 CLASSIFICADOR ADALINE ............................................................................................... ............... 23 3.8 CLASSIFICADOR MADALINE .......................................................................................................... 26 3.9 CLASSIFICADOR MLP ....................................................................................................................... 27
3.9.1 ........................................................................................................ 28 3.9.2 ...................................................................................... 30
3.10 CONCLUSÃO ....................................................................................................... ............................. 31
CLAIFICAO COM OO DE EJEIO .......................................................................................... 32
4.1 FUNDAMENTAÇÃO TEÓRICA ................................................... ........................................................... 33 4.1.1 .......................................................................................................................... 33
4.2 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO ....................................................................................... 35 4.2.1 ........................................................................................ 35 4.2.2 ................................................................................................................. 35 4.2.3 ......................................................................... 36 4.2.4 ................................................................................. 37 4.2.5 .................................................................................................................................... 37
4.3 CONCLUSÃO .......................................................................................................... ............................ 38
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
10/88
x
IMLAE COMACIONAI.......................................................................................................... 40
5.1 SIPDOR .................................................... ............................................................... ......................... 40 5.2 METODOLOGIA ................................................... ................................................................ ............... 41
5.2.1 ............................................................................................................... 41 5.2.2 ........................................................................................................................... 41
5.2.3 .............................................................................................................. 42 5.2.4 ...................................................................................................... 43 5.3 RESULTADOS PARA CLASSIFICADORES CONVENCIONAIS ............................................................. ...... 44 5.4RESULTADOS PARA CLASSIFICADORES COM OPÇÃO DE REJEIÇÃO .................................................. .... 47
5.4.1 ................................................................... 47 5.4.2 ................................................................................................... 50 5.4.3 : ................................... 52
5.5 CONCLUSÃO .......................................................................................................... ............................ 53
CONCLO ......................................................................................................................................... 54
EFENCIA BIBLIOGFICA .............................................................................................................. 55
APÊNDICE A – ARQUITETURA DO SIPDOR ................................................................................ 60
A.1 ORGANIZAÇÃO E EXECUÇÃO DO PROJETO ........................................................................................ 60 A.2 ARQUITETURA DO SISTEMA ..................................................................................................... ......... 61
.2.1 .................................................................................................. 61 .2.2 ................................................................................................................. 62 .2.3 ............................................................................................................. 63
APÊNDICE B – RESULTADOS ADICIONAIS ................................................................................ 65
B.1 BAE DE DAD ..................................................... ............................................................... ............... 65 .1.1 1 ........................................................................................................................................... 65 .1.2 1 ............................................................................................................................................ 65 .1.3 1 ............................................................................................................................................ 66 .1.4 1 ............................................................................................ ................................................ 66
B.2 EAD DE CAIFICADE CECIAI .......................................................... ........................... 66 B.3 EAD C A DE EEI ................................................................................................... 68
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
11/88
xi
Lista de Figuras
FIGA 1.1: OBJEIO DA ENGENHAIA DE OFAE ...................................................................... 1
FIGA 1.2: NMEO DE AIGO DE BE O ANO DE BLICAO ................................................ 3
FIGA 1.3: NMEO DE AIGO DE BE O AIIDADE ................................................................. 3
FIGA 1.4: NMEO DE BAE DE DADO DIONIBILIADO O AIIDADE DA E ............................ 4
FIGA 2.1: EMO DE DECOBEA DE M EO CO ................................................................. 8
FIGA 2.2: FEAMENA ................................................................................................ 13
FIGA 3.1: MODELO AA O ECONHECIMENO (EMI) AOMICO DE ADE. ...................... 17
FIGA 3.2: CLCLO DA DINCIA DO ADO EM ELAO CLAE , = , ,. .......... 20 FIGA 3.3: EEMLO DE CLAIFICADO KNN. ................................................................................. 21 FIGA 3.4: MODELO ADALINE (BAEO G. A., 2007). ....................................................................... 24
FIGA 3.5: AENDIADO EIIONADO (BAEO G. A., 2007). ............................................... 26
FIGA 3.6: NENIO BIOLGICO (BAEO G. , 2008). ................................................................... 27
FIGA 3.7: MODELO COMLEO DO NENIO AIFICIAL (BAEO G. , 2008). ............................ 27
FIGA 3.8: AIEA GEAL DE MA EDE NEAL EIIONADA (OCHA NEO A. .,2006). .................................................................................................................................................. 28
FIGA 3.9: EEMLO DE CLAIFICAO (BAEO G. , 2008). ......................................................... 30
FIGA 4.1: CLAIFICADO BINIO COM OO DE EJEIO ........................................................ 32
FIGA 4.2: CLAIFICADO MLICLAE COM OO DE EJEIO ............................................... 33
FIGA 4.3: CA HIOICA DE COMOMIO ENE O EO E A EJEIO .............................. 34
FIGA 4.4: M NICO CLAIFICADO BINIO E A EGIE DE DECIO ...................................... 35
FIGA 4.5: CA DE EJEIO OEI ...................................................................................... 37
FIGA 5.1: ELA INCIAL DO IDO. ............................................................................................ 40
FIGA A.1: OGANIAO E EECO DO OJEO ....................................................................... 60
FIGA A.2: COMILAO E INEEAO EM JAA ....................................................................... 61
FIGA A.3: ADO MC .................................................................................................................. 63
FIGA A.4: ADO MC INEGADO COM ACOE O. ................................................................... 64
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
12/88
xii
Lista de Gráficos
GFICO 2.1 DIIBIO DO EABALHO ELA AIIDADE DE DEENOLIMENO DEOFAE. ............................................................................................................................................ 7
GFICO 5.1BALANCEAMENO DA BAE DE DADO KC2. .................................................................. 42
GFICO 5.2MDIA DE ACEO NA AIAO DO ALO DE . ...................................................... 43
GFICO 5.3 DEIO ADO NA AIAO DO ALO DE K. .......................................................... 43
GFICO 5.4 ML AA BAE KC2 OIGINAL ..................................................................................... 44
GFICO 5.5 DMC AA BAE KC2 OIGINAL .................................................................................... 44
GFICO 5.6 NAIE BAE AA BAE KC2 OIGINAL ....................................................................... 45 GFICO 5.7 KNN AA BAE KC2 OIGINAL ................................................................................... 45
GFICO 5.8 KMDIA AA BAE KC2 OIGINAL ............................................................................ 45
GFICO 5.9 ADALINE AA BAE KC2 OIGINAL .............................................................................. 45
GFICO 5.10 MADALINE AA BAE KC2 OIGINAL ........................................................................ 45
GFICO 5.11 ML AA BAE KC2 BALANCEADA ............................................................................. 46
GFICO 5.12 KMDIA AA BAE KC2 BALANCEADA .................................................................... 46
GFICO 5.13 KNN AA BAE KC2 BALANCEADA ........................................................................... 46
GFICO 5.14 ADALINE AA BAE KC2 BALANCEADA ...................................................................... 46
GFICO 5.15 MADALINE AA BAE KC2 BALANCEADA................................................................... 47
GFICO 5.16 NAIE BAE AA BAE KC2 BALANCEADA ............................................................... 47
GFICO 5.17 DMC AA BAE KC2 BALANCEADA ............................................................................ 47
GFICO 5.18 KMDIA ALICADO BAE KC2 OIGINAL ............................................................... 48
GFICO 5.19 KMDIA ALICADO BAE KC2 BALANCEADA ......................................................... 49
GFICO 5.20 ML ALICADO NA BAE KC2 OIGINAL ..................................................................... 50
GFICO 5.21 ML ALICADO NA BAE KC2 BALANCEADA ............................................................... 51
GFICO 5.22 CA A DE KMDIA E ML ALICADO BAE KC2 OIGINAL ........................... 52
GFICO 5.23 CA A DE KMDIA E ML ALICADO BAE KC2 BALANCEADA ..................... 52
GFICO B.1 BALANCEAMENO DA BAE DE DADO CM1. ............................................................... 65
GFICO B.2BALANCEAMENO DA BAE DE DADO JM1................................................................... 65
GFICO B.3BALANCEAMENO DA BAE DE DADO KC1. .................................................................. 66
GFICO B.4BALANCEAMENO DA BAE DE DADO C1. .................................................................. 66
GFICO B.5 ML ALICADO NA BAE C1 BALANCEADA ................................................................. 68
GFICO B.6 ML ALICADO NA BAE CM1 BALANCEADA ................................................................ 69
GFICO B.7 ML ALICADO NA BAE JM1 OIGINAL ...................................................................... 69
GFICO B.8 ML ALICADO NA BAE KC1 OIGINAL ....................................................................... 70
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
13/88
xiii
GFICO B.9 KMDIA ALICADO NA BAE C1 BALANCEADA ........................................................ 70
GFICO B.10 KMDIA ALICADO NA BAE KC1 BALANCEADA ...................................................... 71
GFICO B.11 KMDIA ALICADO NA BAE CM1 BALANCEADA ..................................................... 71
GFICO B.12 KMDIA ALICADO NA BAE JM1 OIGINAL ............................................................ 72
GFICO B.13 KMDIA ALICADO NA BAE KC1 OIGINAL ............................................................ 72
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
14/88
xiv
Lista de Tabelas
ABELA 1.1: EEMLO DE OBLEMA DE ENGENHAIA DE OFAE .............................................. 1
ABELA 2.1: ANOMALIA DE OFAE ................................................................................................ 9
ABELA 5.1: AMEO DO MODELO NEAI ............................................................................ 42
ABELA 5.2: ELADO AA CLAIFICADOE CONENCIONAI ALICADO BAE KC2 OIGINAL ............................................................................................................................................................ 44
ABELA 5.3: ELADO AA CLAIFICADOE CONENCIONAI ALICADA BAE KC2BALANCEADA ....................................................................................................................................... 46
ABELA 5.4: ELADO AA KMDIA COM OO DE EJEIO ALICADA A KC2 OIGINAL ...... 48
ABELA 5.5: ELADO AA KMDIA COM OO DE EJEIO ALICADA A KC2 BALANCEADA 49
ABELA 5.6: ELADO AA ML COM OO DE EJEIO ALICADA A KC2 OIGINAL ............... 50
ABELA 5.7: ELADO AA ML COM OO DE EJEIO ALICADA KC2 BALANCEADA ......... 51
ABELA B.1: ELADO COM BAE OIGINAI EM A EJEIO DE ADE ................................ 67
ABELA B.2: ELADO COM BAE BALANCEADA EM A EJEIO DE ADE .......................... 67
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
15/88
xv
Lista de Símbolos
Dimensão de um EspaçoE Estimativa e Erroh Função de Vizinhança ∗ Índice do Neurônio Vencedor Limiar de rejeição variando entre [0, 1]Δ Com valor = 0,05 varia o Limiar da saída da função de ativaçãox Padrão ou Vetor Característico
N Número de AmostrasC Classe ou Agrupamento Peso dos Neurônios Saída do Neurônio Centro de Massa Função Decaimento Exponencial Aprendizagem Desvio Padrão² Variância
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
16/88
xvi
Lista de Abreviações
1-NN One-Nearest NeighborADALINE Adaptive Linear ElementAPI Application Program InterfaceARC Accuracy-Reject CurveDMC Distância Mínima ao CentróideEQ Erro QuadráticoEQM Erro Quadrático MédioES Engenharia de SoftwareIA Inteligência Artificial
IC Inteligência ComputacionalIDE Integrated Development EnvironmentIFCE Instituto Federal de Educação, Ciência e Tecnologia do CearáK-NN K-Nearest NeighborsMADALINE Multiple ADALINEMLP Multilayer PerceptronMSE Mean Squared ErrorMVC Model-View-ControllerPDF Probability Density FunctionPMSE Predictive Models in Software EngineeringPROMISE Predictive Models In Software Engineering
RNA Redes Neurais ArtificiaisRP Reconhecimento de PadrõesSBSE Search-Based Software EngineeringSIPDOR Sistema Inteligente para Predição de Defeitos de Software com Opção de
Rejeição
TCC Trabalho de Conclusão de Curso
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
17/88
1
CAPÍTULO 1
INTRODUÇÃO
A Engenharia de Software (ES) é uma disciplina da ciência da computação relacionadacom todos os aspectos da produção de software, desde os estágios iniciais deespecificação do sistema até sua manutenção, depois que este entrar em operação. Comose observa na Figura 1.1, a ES utiliza um conjunto de métodos, técnicas, metodologias eferramentas para analisar, projetar e gerenciar o desenvolvimento e manutenção desoftware, visando produzir e manter softwares dentro de prazos, custos e qualidadeestimados (Sommerville, 2007).
Figura 1.1: objetivos da Engenharia de SoftwareEsse campo da ciência da computação tem como objetivo melhorar a qualidade do
software e aumentar a produtividade e a satisfação, tanto do cliente como dosprofissionais e engenheiros de software envolvidos (Sommerville, 2007). Entretanto,muitas vezes os engenheiros de software enfrentam determinados problemas que podemse tornar bastantes complexos devido à grande quantidade de possíveis soluções. ATabela 1.1, adaptada de (Freitas et al., 2009), exemplifica problemas considerados daárea de Otimização em Engenharia de Software. Na Tabela 1.1 é apresentada ainda asubárea de predição de defeitos, problema de interesse para este trabalho, que éimportante por ser tratar de uma etapa de manutenção de software que exige um
relevante esforço quando comparado com o esforço despendido no processo dedesenvolvimento.
Tabela 1.1: Exemplos de Problemas de Engenharia de Software
Área da Engenharia de Software SubáreaPlanejamento de Projeto Alocação de Recursos
Otimização de Código-fonte Paralelização
Manutenção de SoftwareRe-engenharia de software
Predição de Defeitos
Automated Maintenance
Engenharia de Software Orientada a Serviços Desenvolvimento de Software
Otimização de CompiladorAlocação de heap
Tamanho de Código
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
18/88
2
Engenharia de Requisitos Análise de RequisitosSeleção de Requisitos
Teste de SoftwareSeleção de Casos de Teste
Priorização de Casos de TesteGeração de Dados de Teste
Estimativa de Software Estimativa de TamanhoEstimativa de Custo de Software
Dentre esses problemas, existem aqueles para os quais as soluções podem serresolvidas de maneira matemática (Harman, 2006). Entre diversos problemascomputacionalmente complexos da Engenharia de Software e que podem serformulados desta maneira, pode-se citar: a seleção de casos de teste, seleção derequisitos, a alocação de recursos (Antoniol et al., 2004; Antoniol et al., 2005);estimativa de tamanho (Dolado, 2000); e análise de requisitos (Zhang et al., 2008).
A resolução de problemas matematicamente descritos utilizando modelos preditivos
é atividade da subárea da ES denominada Modelos Preditivos em Engenharia deSoftware (Predictive Models in Software Engineering - PMSE). Em geral, define-seuma função custo, a qual deve ser minimizada (ou maximizada), que tem por base ocálculo do valor médio do erro-quadrático da predição. Portanto, os parâmetros domodelo são obtidos a partir de um processo de otimização aplicado a um mapeamentode entrada-saída que é representado pelos exemplos contidos em uma base de dados.Ferramentas advindas da área de Inteligência Artificial (IA), tais como: Redes NeuraisArtificiais e Lógica Fuzzy são comumente empregadas com esta finalidade.
1.1 Justificativa
Além da possibilidade de resolução de problemas computacionalmente complexos, aunião entre Engenharia de Software e Otimização Matemática/Inteligência Artificialpermite os seguintes avanços:
i. A classificação na ocorrência do problema será mais objetiva, tendo em vista ouso de variáveis matemáticas para a resolução do problema;
ii. As técnicas de otimização aumentam a possibilidade de encontrar uma melhorsolução para o problema, gerando vantagens como menor desperdício derecursos, produção do software em menor tempo, entre outros, para a empresadesenvolvedora.
Portanto, os problemas abordados neste trabalho devem ser formulados
matematicamente para fins de resolução (obtenção dos modelos) com base emotimização, ou ainda, os modelos podem ser induzidos com base em um conjunto dedados e um algoritmo de aprendizagem.
Neste contexto, a partir da pesquisa teórica-prática envolvendo a investigação deproblemas como os descritos acima são posteriormente aplicadas às técnicas eestratégias utilizadas para obtenção de soluções ótimas ou aproximadamente ótimas. Ouso de técnicas de otimização nos problemas resultou na criação de uma nova epromissora subárea de pesquisa na computação, denominada Otimização em Engenhariade Software (Search-Based Software Engineering - SBSE).
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
19/88
3
Figura 1.2: Número de artigos de SBSE por ano de publicação
Segundo a organização SEBASE (2011), desde o primeiro trabalho de Miller eSpooner (1976), o número de artigos em função do ano de publicação cresceuexponencialmente nos últimos anos, como pode ser visto pela Figura 1.2. Isso se deveao crescente interesse da comunidade acadêmica pela área de pesquisa. Apesar disso, aFigura 1.3 mostra que a produção de trabalhos científicos não é a mesma por campo depesquisa da Engenharia de Software. Com 52% do total, artigos sobre teste e depuraçãode software são mais publicados. Alguns campos, tais como, gerência de projeto,verificação de software, técnicas e ferramentas de projeto, merecem destaque.
Figura 1.3: Número de artigos de SBSE por atividade
Apesar do crescimento significativo na quantidade de publicações, ressalta-se que aSBSE se dedica mais a complementar as técnicas mais tradicionais da Engenharia deSoftware, pois muitas delas foram comprovadamente testadas e são bem sucedidas.Harman (2007; 2010) mostra que soluções ótimas ou sub-ótimas podem ser obtidas demaneira automatizada para resolver problemas que antes não eram completamenteresolvidos, ou que eram resolvidos intuitivamente. Com resultados bastanteconsistentes, esta nova área da Engenharia de Software utiliza a otimização como
processo de obtenção das soluções, além de permitir que engenheiros de softwareequilibrem as restrições conflitantes e concorrentes em um espaço de buscacaracterizado por ser ruidoso e incompleto.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
20/88
4
Ao contrário da SBSE, que se dedica mais à utilização de técnicas tradicionais daEngenharia de Software, o presente trabalho utiliza modelos preditivos, isto é, métodosespecíficos baseados em técnicas estatísticas ou de redes neurais, com o objetivo deantecipar a localização de defeitos em uma aplicação. Essa tentativa de predizer,através de dados históricos de um projeto, como se comportarão versões futuras de
determinados módulos de software representa a área de Predição de defeitos.Além da possibilidade de utilizar classificadores de padrões para resolução de
problemas de predição da Engenharia de Software para os quais as soluções podem serdeterminadas de forma matemática, pode-se também utilizar estratégias de classificaçãocom opção de rejeição para aumentar o desempenho do sistema. Neste tipo de sistema,um mecanismo de rejeição é utilizado para rejeitar os padrões que se encontram naregião de sobreposição entre as classes, deixando a responsabilidade de classificá-lospara um especialista da área.
Outro destaque é que as redes neurais são conhecidas por resolver problemas declassificação de padrões e aproximação de funções não lineares e de elevada
dimensionalidade, construir diretamente a fronteira de decisão a partir de um conjuntode dados e fazer poucas ou nenhumas suposições acerca da distribuição deprobabilidades dos dados. Alguns trabalhos referenciados como (Aljahdali et al., 2001;Karuananithi et al., 1992; Sitte et al., 1999) demonstram que as redes neurais jáprovaram ter uma ótima capacidade de estimação e predição.
Ressalta-se que, no tocante às bases de dados, uma quantidade significativa de basesde dados coletadas está disponibilizada para uso público no site PROMISE (Predictive
Models In Software Engineering) (PROMISE, 2012). Essas bases de dados sãoutilizadas pelos classificadores para treinamento e teste. A Figura 1.4 apresenta aquantidade de bases de dados disponíveis em função do tipo de problema de Engenharia
de Software.
Figura 1.4: Número de base de dados disponibilizado por atividade da ES
1.2 Objetivo GeralEm seu sentido mais amplo, o principal objetivo deste trabalho é desenvolver um
sistema capaz de auxiliar o engenheiro de software na tomada de decisão, através do usode uma abordagem matemática para proposição de soluções de problemas recorrentesem Engenharia de Software. O problema recorrente de interesse deste trabalho é apredição de defeitos em módulos de software. Para este fim, devem ser avaliados e
aplicados classificadores convencionais, bem como estratégias de classificação comopção de rejeição.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
21/88
5
1.3 Objetivos EspecíficosOs objetivos específicos deste trabalho são apresentados a seguir.
i. Contribuir com um levantamento bibliográfico sobre o tema de interesse,enfatizando os trabalhos voltados para a predição automática de defeitos emEngenharia de Software;
ii. Realizar um estudo reprodutível e comparativo de modelos preditivos, visto queé uma necessidade dessa área de pesquisa (Shepperd, 2012).
iii. Avaliar a plausibilidade de se usar um conjunto de base de dados para prevençãode defeitos recentemente propostos na literatura para projetar classificadoresautomáticos de predição de defeitos;
iv. Analisar o desempenho de classificadores com opção de rejeição quandoaplicados ao problema de predição de defeitos;
v. Avaliar o desempenho de classificadores estatísticos e neurais aplicados aoproblema de predição de defeitos.
vi.
Auxiliar no processo de priorização de módulos a serem testados, isto é,encontrar módulos críticos do software que devem, portanto, receber um maioresforço no processo de teste.
1.4 Estrutura do Trabalho1.4.1 Metodologia de Organização
Este trabalho é subdividido em capítulos com base em subáreas envolvidas,metodologia proposta e resultados alcançados. Os capítulos são organizados de forma aserem o mais auto contido possível em termos de conteúdo. Esta organização permitedescrever mais especificamente a fundamentação teórica para cada uma das subáreas.
Além disto, a organização proposta visa permitir que as questões teóricas deste TCCsejam mais adequadamente apresentadas e inseridas no contexto de outras abordagenscontidas na literatura.
Em virtude desta organização que também busca facilitar a leitura e o entendimentodeste trabalho, ao final, são apresentadas as simulações computacionais, contendoinformação sobre a metodologia de desenvolvimento e avaliação dos resultados obtidos.No final de cada capítulo, são descritas ainda as conclusões relacionadas ao assuntoabordado.
A forma como este trabalho está organizada permite que o leitor interessado em umadeterminada área de pesquisa se restrinja a um determinado capítulo de interesse. Os
detalhes contidos em cada capítulo são descritos de forma resumida na subseção aseguir.
1.4.2 Organização do TrabalhoO restante deste trabalho é formado por seis capítulos que descrevem os diversos
conceitos relacionados à Predição de Defeitos em Engenharia de Software, aosclassificadores estatísticos clássicos e neurais e ao uso de estratégia para classificaçãocom opção de rejeição. Por fim, a metodologia proposta e resultados são descritos nosúltimos capítulos.
Mais especificamente, o Capítulo 2 traz uma descrição teórica sobre a Predição de
Defeitos em Engenharia de Software. Essa teoria é apresentada em um nível de detalheadequado para permitir o entendimento dos capítulos posteriores que apresentam o usode classificadores na resolução de problemas descritos por modelos preditivos.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
22/88
6
No Capítulo 3 são apresentados diversos conceitos que podem auxiliar noentendimento do restante desta exposição. Discorre sobre os principais objetivos doreconhecimento de padrões, os classificadores, tipos de classificadores e descreve deforma sucinta a implementação dos algoritmos: Distância Mínima ao Centróide (DMC),k-Vizinhos mais Próximos (K-NN), Naive Bayes, K-Médias, Modelo ADALINE,
Modelo MADALINE e Rede Perceptron Multicamada (MLP).O Capítulo 4 trata da estratégia de classificação com opção de rejeição. São descritos
os conceitos relacionados à classificação com opção de rejeição. Neste contexto, sãocitadas as diversas abordagens encontradas na literatura juntamente com apresentaçãode conceitos relacionados à avaliação de classificadores com opção de rejeição.
O capítulo 5 é dedicado à apresentação de metodologia adotada para analisar ecomparar os algoritmos de classificação citados neste trabalho. Também descreve osexperimentos, tentativas, falhas e sucessos obtidos durante todo o processo deelaboração deste trabalho.
O Capítulo 6 aborda algumas considerações finais sobre esta exposição, comentandoe analisando os resultados obtidos. Ressalta as contribuições que auxiliaram naelaboração desse trabalho.
No Apêndice A são descritos detalhes relacionados aos aspectos de programação earquitetura do sistema.
E, por fim, o Apêndice B exibe resultados adicionais obtidos com outras bases dedados.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
23/88
CAPÍTULO 2
PREDIÇÃO D
ENGENHARI
Após a fase de implantaçnovos requisitos surgemdevem inevitavelmente mpor vários fatores, entre elda implementação de nodetecção de erros durantedesempenho e outros requide software prossegue ao l
Essa necessidade de mevolução o software implempresas. Frequentementegera mais desvantagens dentanto, a maior parte do odesses sistemas existentes (
Pesquisas ainda apontasão desperdiçados com ametade dos profissionais dse dedicar à correção de sis2007). Outras fontes afirmproduto é composto entredesperdiçado por empresase 50% do esforço total dGráfico 2.1 exibe a distribsoftware.
Gráfico 2.1 - Distribuição
0%
20%
40%
6%
1
DEFEITOS EM
DE SOFTWARE
o do software, certos requisitos existentesa fase de operação. Para continuarem útedar (evoluir). Essa evolução no software ees, poder acompanhar novas tendências novos requisitos, necessidade de modificaço seu uso, adaptá-lo a uma nova plataformsitos não funcionais. Em outras palavras, ongo do ciclo de vida do sistema (Sommervil
aximizar o ciclo de vida do sistema, ountado se deve ao grande volume financeir, a curto/médio prazo, começar um novo
que corrigir, adaptar e evoluir um softwaçamento nas grandes organizações é reservaSommerville, 2007).
que 50% do tempo usado no desenvolvimmanutenção de sistemas (Kemered et al.,
software contratados, no início do séculotemas existentes, ao invés de escrever novosam que o custo total do ciclo de vida de u0% e 90% de manutenção (Bennett, 2002)de software com retrabalho pode variar emdesenvolvimento de um projeto (Wheeler
uição do retrabalho pelas atividades de des
do retrabalho pelas atividades de desenvolvimen
A
C
I
12% 16% 12% 10
%
4%
8% 12%1
56% 44%
7
são alterados eis, os softwaresistente acontecemercado atravéso causada pelaou aprimorar oesenvolvimento
le, 2007).
eja, manter eminvestido pelasesenvolvimento
re existente. Noa à manutenção
nto de software999) e mais daXI, tiverem quesistemas (Jones,software como
e que o esforçoédia entre 40%
et al., 1996). Onvolvimento de
to de software.
9%
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
24/88
8
Uma solução é direcionar bem as atividades de testes, resultando em mais chances delocalizar os defeitos em fases iniciais de um projeto, permitindo ações corretivas(Bezerra , 2008). Segundo Boehm (Boehm, 2001), os custos de identificação e correçãode defeitos após a implantação de um software são elevados em relação às fasesanteriores de um projeto, ou seja, quanto mais tarde são identificados os defeitos, maiorserá custo da remoção. Como pode ser observado na Figura 2.1 obtida de (Christino,2008), o custo de correção de defeito pode aumentar 100 vezes se a identificaçãodecorrer de forma tardia.
Figura 2.1: Tempo de descoberta de um erro X Custo
Além do aumento de custo, diminuição de qualidade de software e da produtividade;os defeitos prejudicam a reputação da empresa e de seus desenvolvedores (O' NEILL D,2003).
Antes que ocorram os defeitos é importante antecipar a sua localização, poiscontribui para o direcionamento das atividades de testes de maneira que a equipe
envolvida nessas atividades possa direcionar seus esforços para áreas do software queapresentam maior propensão a apresentar problemas (Pontes, 2008). As atividades detestes de software podem ser responsáveis por uma parcela considerável dos custostotais de um projeto. Há uma redução de aproximadamente 29% no esforço de testesquando as atividades são direcionadas através da predição de defeitos (Tosun A. , 2008).
Neste capítulo apresentaremos os principais conceitos teóricos sobre predição dedefeitos e seus benefícios para a produção de um software. A meta é desenvolvermodelos guiados por processos de otimização por meio de algoritmos de aprendizagemque utilizem uma base de dados disponibilizada. Os algoritmos de aprendizagem quedevem ser utilizados na obtenção dos modelos são Redes Neurais Artificiais e algunsmétodos estatísticos, os quais são descritos no próximo capítulo. Mais informaçõessobre predição de defeitos podem ser obtidas em (Zhang et al., 2010).
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
25/88
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
26/88
10
etapas anteriores podem servir para modificação de processos e práticas dedesenvolvimento, a fim de eliminar a raiz da causa dos defeitos.
A prevenção de defeitos pode ser feita utilizando métodos convencionais, isto é,baseado em esforço humano; ou utilizando modelos preditivos.
2.2 Predição de Defeitos de SoftwarePredição de defeitos representa uma área de pesquisa acadêmica cujo objetivo é
tentar antecipar a localização de defeitos em uma aplicação através do uso de modelospreditivos, isto é, métodos específicos, geralmente, baseados em técnicas estatísticas oude Inteligência Artificial (IA). Ou seja, consiste na criação de modelos, que analisamdados históricos de um projeto para, a partir daí, tentar predizer como se comportarãoversões futuras de seu código (Pontes, 2008).
Os dados históricos compõem a base de dados na maioria das técnicas de predição dedefeitos utilizada no planejamento. Tais técnicas variam no tipo de dados que precisam,
podendo ser dados dos defeitos em si ou características de trabalho do produto. Aeficiência desses métodos depende da qualidade das entradas utilizadas para predição(Clark B. et al., 2001).
Predizer a localização de defeitos em módulos da aplicação aumenta as chances queas atividades de testes têm de encontrá-los. Dessa maneira, ações corretivas podem sertomadas o quanto antes no desenvolvimento do produto até mesmo no esforçodespendido na etapa de manutenção de software (Pontes, 2008).
A aplicação, de maneira eficiente, desses modelos preditivos resulta em benefícios,tais como; suporte ao planejamento e execução das atividades do processo de testes,
direcionando o esforço para os pontos críticos que merecem maior foco durante estasatividades; priorização de módulos mais propensos a defeitos para a realização deatividades de inspeção e refatoração; identificação de fatores que influenciam naocorrência de defeitos; e suporte a modelos de estimativa de custos e riscos demanutenção corretiva (Pontes, 2008). Além das vantagens citadas, será possível prever,por exemplo, em uma aplicação:
• Se determinado módulo está ou não propenso ao aparecimento de defeitos. Um módulo pode ser representado por um pacote, um arquivo, uma classe, ouum método, a depender da granularidade escolhida para análise. Neste caso, diz-
se que um módulo classificado como SIM está propenso ao aparecimento dedefeitos, assim como um módulo classificado como NÃO, não está propenso aoaparecimento de defeitos;
• Quantidade de defeitos em um módulo. Em módulos onde é esperado oaparecimento de defeitos, pode-se querer estimar a quantidade desses defeitosem cada módulo;
• Densidade de defeitos na aplicação. A densidade de defeitos pode serrepresentada pela quantidade de defeitos por linha de código;
•
Quais módulos apresentam a maior quantidade de defeitos na aplicação. Com essa informação, o time de testes pode priorizar seus esforços em móduloscom propensão a maior quantidade de defeitos.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
27/88
11
Apesar das vantagens e possibilidades, ainda são poucas as empresas de menor porteque têm adotado estas técnicas, em parte devido aos conhecimentos especializadosnecessários e ao elevado esforço de investigação. Estudos sobre predição de defeitos sãomais difundidos na indústria, apresentando diversos casos práticos em grandes empresascomo a Microsoft (Nagappan et al., 2005), a Ericcson (Tomaszewski et al., 2006) e aIBM (Moser et al., 2008) que buscam aplicar técnicas de predição de defeitos.
2.2.1 Métricas de SoftwareA Engenharia de Software comumente utiliza métricas, tanto na fase de
desenvolvimento quanto na fase de manutenção, para obter dados que possam mensurarcaracterísticas do software (Lino, 2011). Diversas métricas de software são descritas em(Meirelles, 2008).
Uma métrica é um método para determinar se um sistema, componente ou processopossui certo atributo (IEEE Std 610.12, 1990). Sabendo que o software é um produto
intangível, as métricas de software permitem a mensuração de determinadascaracterísticas de qualidade do software. Essas características, por exemplo, podem serutilizadas para prever custos de manutenção ou melhorias na qualidade do código(Lino,2011).
Na busca de estimar custos e prazos, além de auxiliar na melhoria da qualidade doproduto final, várias pesquisas científicas como de McCabe (1976) e Halstead (1977)buscam avaliar a utilização de métricas durante o desenvolvimento do software (Lino,2011).
McCabe (1976) apresenta uma coleção de quatro métricas de software, a saber:complexidade ciclomática, complexidade essencial, complexidade do desenho do
módulo e quantidade de linhas de código. Conhecidas como métricas de complexidadede McCabe, elas são comumente utilizadas para prever a confiabilidade e amanutenibilidade de um software, podendo auxiliar na identificação de possíveis pontoscríticos no software, com alta instabilidade (Lino, 2011).
A complexidade ciclomática é uma métrica que calcula a complexidade lógica de umsistema ou método. Seu valor mínimo é 1 (um) e não existe limite máximo. Quantomenor o valor, menos complexo é o método. Através do teste de caminho, acomplexidade ciclomática mede o número de caminhos independentes e provê umlimite máximo de testes necessários para garantir que todos os statements sejamexecutados, pelo menos uma vez (Lino, 2011) (Takaki, 2009). Esta e outras métricas deMcCabe têm sido utilizadas para identificar e minimizar código não estruturado, decidirsobre o número de testes necessários para uma cobertura total das hipóteses deexecução, eliminar lógica redundante e para restringir a complexidade de módulosproduzidos a um nível aceitável (Abreu, 1992).
Halstead (1977) propôs um conjunto de métricas calculadas a partir de métricasprimitivas. Expressões foram desenvolvidas para calcular o tamanho do programa, ovolume de um algoritmo, o volume real em bits, o nível do programa (medida decomplexidade), o nível de linguagem, e outras características(Lino, 2011). Emdeterminadas bases de dados disponibilizadas pela Predictive Models In SoftwareEngineering (PROMISE, 2012), as métricas, a saber, número de operadores, número deoperandos, quantidade de linhas, quantidade de linhas de comentários e quantidade de
linhas em branco, complementam as variáveis necessárias para identificação demódulos que apresentam defeitos. Essas medidas derivam outras métricas também
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
28/88
12
utilizadas nas bases de dados: volume, duração do programa, dificuldade, inteligência,esforço e tempo estimado para escrever o programa.
O volume informativo de um módulo de um programa (medido em bits) é calculadoem função do seu comprimento e do seu vocabulário, correspondendo ao número de"tokens" (operadores e operandos) em um programa, e é dado pela seguinte equação:
= l (Equação 2.1)Onde Comprimento é o somatório das instâncias de (operadores + operandos) utilizadose Vocabulário é o somatório (operadores + operandos) diferentes utilizados (Abreu,1992).
2.3 Modelos Preditivos vs. Métodos Convencionais.Os avanços na qualidade de software são possíveis devido à busca constante por
novos modelos, normas e metodologias de suporte ao desenvolvimento de software, de
forma, a produzir e manter software dentro de prazos, custos e qualidade estimados.Este conjunto de métodos, técnicas e ferramentas para analisar, projetar e gerenciar odesenvolvimento e manutenção de software é criado com base no conhecimento deespecialistas, podendo ser aplicados em etapas de desenvolvimento de software, comoAnálise e Projeto de Sistemas, Implementação e Teste de Software (Freitas F. et al,2010).
Entretanto, em alguns casos, a comunidade científica especializada que desenvolvemétodos convencionais não resolvem determinados problemas durante o processo dedesenvolvimento de software, ou resolvem de modo insatisfatório, principalmente, emproblemas complexos, cuja solução pertence a um conjunto grande de possíveissoluções. Visando resolver esses tipos de problemas, é necessária complementar autilização das técnicas convencionais com soluções automatizadas que possameficientemente tratar os diversos aspectos relacionados ao problema (Freitas F. et al.,2009). Esse conjunto de soluções automatizadas baseado em métodos de InteligênciaComputacional pertencente à área denominada Otimização em Engenharia de Software,também conhecida como Search-based Software Engineering (SBSE).
A SBSE é o ramo da Engenharia de Software (ES) dedicado à resolução automáticade problemas complexos dessa área, tratando-os como problemas de busca. Em vez deconstrução de casos de teste, cronogramas de projetos, conjuntos de requisitos,desenhos, arquiteturas e outros artefatos de software de engenharia, SBSE simplesmentevai procurá-los. O espaço de busca é o espaço de todas as possíveis soluções candidatas.
Por isso é, tipicamente, enorme, tornando impossível enumerar todas as soluções. Noentanto, guiado por uma função de aptidão que distingue boas soluções das ruins, pode-se automatizar a busca de soluções boas neste espaço de busca. A SBSE tem assistido aum aumento dramático no interesse e atividade nos últimos anos, o que resulta emvárias pesquisas detalhadas de técnicas, aplicações e resultados (Harman, 2010).
Com sistemas cada vez mais complexos é importante aplicar abordagens automáticaspara resolução de problemas de ES. Por vários fatores, as soluções de SBSE para osproblemas de ES são competitivos com os produzidos por seres humanos (Harman,2010). As soluções convencionais sofrem com problemas de escalabilidade em grandesprojetos, enquanto aplicação de técnicas de IC é escalável, dado o aumento no poder de
processamento. Outro benefício é a independência, isto é, resultados são gerados a partirde análises ausentes de qualquer vício ou pré-conceitos (Souza, 2009).
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
29/88
13
SBSE é atraente por causa da maneira que permite que os engenheiros de softwareequilibrem a busca no espaço de solução, com restrições conflitantes e concorrentes,utilizando dados caracterizados por ruídos, incompletos e apenas parcialmente precisos,situação também enfrentada na implantação de modelos preditivos (Harman, 2010).
Segundo Zhang et al. (2010), em comparação com certos relatórios práticos denorma industrial, modelos preditivos são melhores do que os seres humanos quando atarefa é identificar quais módulos vão exigir ainda mais garantia de qualidade. Estudosrelataram que modelos preditivos tiveram probabilidades1 de detecção (recall) eprobabilidades de falso alarme (PF) de (recall, pf) = (71%, 25%), em média. Estesvalores são maiores do que os resultados conhecidos a partir de manual de métodos deinspeção.
Predição de defeito também pode ser mais rápido do que os métodos intensivoshumanos. Características estáticas de código podem ser automaticamente extraídas commenor custo a partir do código fonte, mesmo para sistemas muito grandes, em contrastecom outros métodos, como revisões manuais de código de mão-de-obra intensiva.
Dependendo dos métodos de avaliação de 8-20 LOC / minutos, onde LOC significa onúmero de linhas de código, pode ser inspecionado e este esforço se repete para todos osmembros da equipe de revisão, a qual pode ser tão grande como quatro ou seis.
Além disso, há relatos industriais, onde este estilo de previsão de defeito foiencontrado de maneira eficaz por setor:
• A tecnologia de prevenção de defeito foi comercializada na ferramenta Predictive2 e vendido nos Estados Unidos. Uma empresa usou a ferramenta para gerenciar osoftware de segurança crítico para os aviões caça (o software controla uma bateriade íon de lítio, que pode sobrecarregar e explodir). Após a aplicação da ferramentamais cara para cobertura de código estrutural, a empresa executou o Predictive na
mesma base de código. Predictive produziu resultados consistentes com asferramentas mais caras sendo capaz de processar mais rapidamente uma base decódigo maior que a ferramenta mais cara (Turner, 2006).
Figura 2.2: Ferramenta Predictive
1A probabilidade de detecção (recall) e falso alarme (pf) são usadas para medir a exatidão de um modelo
de predição de defeitos.2O conjunto de produtos Predictive analisa e prevê defeitos em projetos de software, permitindo que ousuário identifique as melhores métricas e limites para aplicar em um ou mais projetos.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
30/88
14
• Preditores de defeito desenvolvidos na NASA (Menzies et al., 2007) têm sidoaplicados para as empresas de desenvolvimento de software em outro país (naTurquia). As equipes de inspeções, concentradas nos módulos que desencadeiamos preditores de defeito, encontraram 70% dos defeitos, utilizando 40% do esforço(medido em horas de trabalho) (Tosun et al., 2009).
•
Um estudo posterior sobre o software turco concluiu que muito código precisa serinspecionado quando se utiliza a seleção aleatória em vez da seleção viapreditores de defeitos. Usando testes aleatórios, 87% dos processos teriam de serinspecionado, a fim de detectar 87% dos defeitos. No entanto, se o processo deinspeção estava restrito a 25% dos arquivos que acionam os preditores de defeito,em seguida, 88% dos defeitos podiam ser encontrados. Isto é, o mesmo nível dedetecção de defeitos (após inspeção) pode ser conseguido usando (87 – 25)/87 =71% menos esforço (Tosun et al., 2010).
2.4 Desafios
De acordo com Martin Shepperd (2012), nos últimos anos tem havido um enormecrescimento no uso de estatísticas e métodos de aprendizagem de máquina paraencontrar sistemas de previsão úteis para os engenheiros de software, maisespecificamente, em prever o esforço e a duração do projeto e comportamento dodefeito. Contudo, os resultados, com freqüência, não prometem uma única técnicadominante e existem interações claramente complexas entre as técnicas, métodos detreinamento e domínio do problema. Martin Shepperd (2012) afirma que ainda hánecessidade de mais estudos reproduzíveis e comparáveis.
A maioria das abordagens na predição de defeitos de software é indutiva, no sentidode estatística ou métodos de aprendizagem de máquina. São usados modelos preditivoscom base em atributos derivados da análise de código estático e / ou métricas de
processo, tais como dados de alteração (Shepperd, 2012).Mark Harman apresenta, em seu trabalho, questões e grandes problemas em aberto
na construção de modelos preditivos. A conferência PROMISE 2009 levantou quatrodesafios em forma de perguntas cujas respostas foram buscadas a partir dos trabalhosapresentados. O caráter geral das quatro perguntas significa que eles são susceptíveis deser totalmente resolvidas no futuro próximo (Harman, 2010). As perguntas são asseguintes:
1. Quanto de conhecimento sobre engenharia de software é preciso para aconstrução de modelos eficazes?
2. Como adaptar modelos para novos dados?3.
Como simplificar os dados ou o processo?4. Como a modelagem preditiva pode ganhar maior aceitação por parte da
comunidade de ES?
Segundo Mark Harman (2010), há 11 grandes problemas em aberto da área SBSEpara modelagem preditiva. Estes problemas em aberto são os seguintes:
1. Seleção multiobjetivo de variáveis para um modelo preditivo;2. Análise pormenorizada de modelos preditivos;3. Redução do risco como meta de otimização para modelos preditivos;4. Exploração de modelos Bayesianos e Otimização Evolucionária;5. Equilibrar as propriedades funcionais e não funcionais dos modelos preditivos;6.
Explorar a conexão entre a função fitness de suavização e modelo deinterpolação;
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
31/88
15
7. Validação de modelos preditivos através da otimização;8. Esforço humano preditivo modelando com Otimização Evolucionária interativa;9. Identificar os blocos de construção de modelos preditivos eficazes;10. Modelos preditivos como funções fitness em SBSE11. Modelos preditivos de esforço SBSE e propriedades landscape;
2.5 ConclusãoFoi apresentada, neste capítulo, a área de pesquisa denominada de Predição de
defeitos em Engenharia de Software, cujo objetivo é tentar antecipar a localização dedefeitos em uma aplicação através do uso de modelos preditivos.
Por se tratar de uma disciplina de engenharia, problemas com característicasmatemáticas podem ser encontrados na Engenharia de Software (Harman, 2006).Portanto, aspectos matemáticos podem ser usados na definição de problemas deotimização que ocorrem durante o desenvolvimento de software. Embora essesproblemas possam ter uma elevada quantidade de soluções no espaço de busca, alta
complexidade estrutural do problema e existência de restrições que complicam oprocesso de resolução de forma convencional, é possível a resolução para essesproblemas por meio de métodos automatizados (Clarke, 2003; Harman et al., 2001).
O próximo capítulo é dedicado ao Reconhecimento de Padrões, sendo apresentadosos métodos de IC usados como modelos preditivos de defeitos de software.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
32/88
16
CAPÍTULO 3
RECONHECIMENTO DE PADRÕES
Reconhecimento de padrões (RP) é um ramo da ciência que tem como meta aclassificação de objetos (padrões) em um número de categorias ou classes. Suas tarefassão o reconhecimento, a descrição, a classificação, e o agrupamento automático (demáquina) de entidades. Por isso, muitas técnicas de reconhecimento vêm sendo testadasdevido à necessidade de automatizar estas tarefas (Rocha Neto A. R., 2006).
Neste capítulo, com o objetivo de facilitar a compreensão do sistema proposto, sãoabordados os conceitos básicos sobre Reconhecimento de Padrões e descrito ofuncionamento dos classificadores de padrões estatísticos e de Redes Neurais Artificiais
(RNA’s) utilizados neste projeto. Tomou-se como base para escrita os livros deKohonen (Self-Organizing Maps, 2001), Haykin(1999), Kosko(1992) e o artigo deJain(2000).
3.1 Conceitos GeraisO projeto de um sistema de RP pode ser, de forma geral, dividido em três etapas:
1. Aquisição e pré-processamento de dados;
2. Representação de dados;
3. Tomada de decisão, ou seja, determinar a qual classe um padrão em teste
pertence.O domínio do problema determina a técnica de pré-processamento mais adequada,
do esquema de representação e do modelo da tomada de decisão. Um problema é bemdefinido e suficientemente restrito nas tarefas de reconhecimento quando as amostrasapresentam pequenas variações para padrões da mesma classe (variação intra-classe) egrandes variações entre padrões de classes distintas (variação inter-classes). Isso conduzuma representação compacta das amostras e uma estratégia simples para a tomada dedecisão.
Um padrão é representado como um vetor
= , , , , em que a representa
um vetor de atributos, com um conjunto de d características, isto é, um ponto no espaçod -dimensional. O ramo de RP tem como objetivo escolher os atributos, que pertencemaos vetores, que venham distinguir os padrões em regiões compactas e separadas porclasse em um espaço característico d -dimensional. Por isso, considerar o vetor xpertencente a uma classe em = , , , baseado nos valores de suas dcaracterísticas. A separação correta entre os padrões de diferentes classes determina aeficácia do espaço de representação (conjunto de características). A capacidade deextrair conhecimento de um conjunto de exemplos é uma característica importante paraos sistemas de RP, que a partir desse processo, podem realizar a tomada de decisão.
Como podemos observar na Figura 3.1, um processo típico de RP tem com uma dassuas etapas o módulo de Pré-processamento, cuja função é remover ruídos, normalizar
padrões, ou qualquer outra operação que contribui para a definição das amostras de umaforma compacta. Na parte de treinamento, o módulo de extração/seleção de
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
33/88
características procura asentrada, enquanto o clacaracterísticas, para que nclasse um dado vetor ou pa
Figura 3.1: model
Dado um padrão, suaaprendizado: classificaçãoatravés de um rótulo ou etinão-supervisionada, em qunormalmente com base narótulos e onde o número d(Watanabe, 1985).
Classificadores de padradotada para determinarageométrica ou indiretamenprobabilística é preciso prconstruir funções discrimiaproximação geométrica,otimização de uma função
Como exemplo de cladecisão, pode ser citado a(que pode ser consideradaMulticamadas definem dcaracterísticas gerais no prao problema proposto.
3.2 ClassificadorUm classificador é um
classe é inicialmente descpossibilidades. Escolher uvezes, é baseada na dispono classificador. Entretanto,vários classificadores, para
certo tipo de problema ouO processo de classific
A qualidade de um classi
características adequadas para representarssificador treinado é usado para dividi
modo de classificação este seja capaz de ddrão de entrada pertence.
o para o reconhecimento (semi-) automático de p
classificação consiste em uma das segusupervisionada, em que o padrão de entraueta (label), indicando a qual classe pertence o padrão é associado a um agrupamentosimilaridade entre os exemplos de treinamen
e agrupamentos muitas vezes deve ser tamb
es também podem ser organizados de acorfronteira de decisão: diretamente atravéste baseada na densidade de probabilidade.imeiro a estimação das funções de densidaantes que venham especificar os limites d
os limites de decisão são determinadosusto (Rocha Neto A. R., 2006).
sificadores que permitem definir a fronteiegra de decisão de Bayes e a regra de probam caso particular da regra de Bayes). Já as
iretamente essa fronteira. Em seguida, scesso de classificação e alguns algoritmos q
s de Padrãoa parte do software capaz de associar umonhecida, a uma classe dentro de um co
classificador é uma tarefa difícil e essaibilidade do algoritmo ou no conhecimentoa escolha correta deve-se basear em exper
que se possa utilizar o que se apresenta mais
plicação.ção deve utilizar um subconjunto das amosicador depende da quantidade de exemplos
17
os padrões deo espaço de
eterminar a qual
adrões.
ntes formas dea é identificado; e classificação
que é aprendidoto, sem o uso deém determinado
do com a formade aproximaçãoNa aproximaçãoe, e, após isso,
e decisão. Já nairetamente pela
ra ou limite deilidade máxima
redes Perceptronão descritas asue são aplicados
instância, cuja junto de finitasecisão, algumaso usuário sobre
imentações comapropriado para
tras disponíveis.no conjunto de
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
34/88
18
treinamento e dos valores específicos dos padrões de teste. Em paralelo, deve-seanalisar a generalização do conhecimento adquirido, isto é, o desempenho em termos declassificação dos padrões de teste que não são usados durante o estágio de treinamento.Isso é de fundamental importância porque o sistema deve ser capaz de classificar asamostras futuras que são, muitas vezes, diferentes das amostras usadas no treinamento.
Conseqüentemente, a otimização de um classificador para maximizar seu desempenhono conjunto de treinamento pode não resultar no desempenho desejado para os dados deteste.
Rocha Neto A. R. (2006) explica que uma baixa capacidade de generalização de umclassificador pode ser atribuída a qualquer dos seguintes fatores:
1. Número de características grande em relação ao número das amostras detreinamento (Jain et al., 1982);
2. Número grande de parâmetros desconhecidos associados com o classificador (porexemplo, classificador polinomial ou uma rede neural grande);
3. Classificador com elevada capacidade de classificar para o conjunto detreinamento e baixa capacidade para o conjunto de teste, denominado sobre ajuste (over fitting).
Geralmente, podem ser descritos três técnicas para o projeto de classificadorestomando-se como base medidas de similaridade, estimativa das funções de densidadeprobabilidade ou a minimização de um critério (por exemplo, o de erro).
3.2.1 Projeto de ClassificadoresA técnica baseada no conceito de similaridade é a mais simples e intuitiva entre
outras técnicas no projeto do classificador. Nela, as amostras do grupo de teste que são
similares devem ser classificadas como pertencentes a uma mesma classe. A métricaque determina a similaridade entre os padrões podem ser estabelecida na comparaçãoentre modelos/exemplos ou minimização de distâncias. O sucesso desta técnica dependeda escolha da métrica e dos protótipos. No classificador que mede proximidade, usando,por exemplo, a distância euclidiana como métrica, cada classe do grupo de teste érepresentada por um único protótipo que é o valor médio de todos os padrões detreinamento para essa classe.
A regra do um vizinho mais próximo (One-Nearest Neighbor , 1-NN) apresentadesempenho de classificação satisfatório para muitas aplicações e não necessita quequalquer parâmetro seja especificado. Portanto, pode ser usado como ferramenta decomparação de todos os outros classificadores
A segunda categoria de classificadores utiliza uma abordagem probabilística. Nestatécnica, a probabilidade à posteriori , que pode ser entendida como aprobabilidade de uma nova amostra x pertencer a uma respectiva classe , pode serutilizada para o cálculo da regra de Bayes ótima, desde que as probabilidades à priori sejam conhecidas. Caso contrário, podem ser estimadas por:
= , = , , = , (Equação 3.1)Onde N denota o número total de amostras e
onúmero de amostras da i-ésima classe.
Outra medida de interesse é a função densidade de probabilidade condicional( probability density function, PDF) da classe , que descreve a distribuição dosvetores característicos em cada umadas classes. Uma forma muito comum de denominar
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
35/88
19
a PDF é função de verossimilhança. Definido os conceitos e com base na regrade Bayes, para calculo da probabilidade à posteriori, dada por:
=
(Equação 3.2)
Pode-se obter a maior probabilidade à posterior (maximum a posteriori probability,regra MAP) através da Equação 3.3. = ∀ }, (Equação 3.3)
O padrão é classificado de acordo com a maior probabilidade à posteriori depertencer a uma determinada classe. Das suposições feitas, vale ressaltar quenormalmente a densidade condicional das classes ou alguns dos seus parâmetros sãodesconhecidos e devem ser aprendidas dos padrões de treinamento disponíveis. Nestecaso, tem-se um problema de decisão paramétrico e uma estratégia comum para estetipo de problema consiste em substituir os parâmetros desconhecidos por seus valoresestimados (Rocha Neto A. R., 2006).
O terceiro conceito usado para projetar classificadores se refere aos que conseguemconstruir as fronteiras ou limites de decisão diretamente pela otimização de certoscritérios, tal como a medida do erro de classificação. O processo que direciona otreinamento é normalmente baseado na minimização de um critério como o erro declassificação aparente ou o erro quadrático médio (mean squared error - MSE) entre asaída do classificador e a saída desejada, cujo exemplo clássico desse classificador é oDiscriminante Linear de Fisher (Rocha Neto A. R., 2006).
A seguir descrevem-se detalhadamente classificadores que são aplicados na tarefa depredição de problemas, tais como: Distância Mínima ao Centróide (DMC), NaiveBayes, K-Vizinhos mais Próximos (K-NN), K-Médias, Modelo MADALINE ePerceptron Multicamadas (MLP). Estes classificadores são diferentes em estrutura,configuração de parâmetros iniciais, forma de aprendizado, critério de parada, dentreoutras coisas. Assim, a forma de avaliação e os valores que os configuram sãoapresentados junto com os resultados no Capítulo 6.
3.3 Classificador Distância Mínima aos CentróidesNo Classificador Distância Mínima ao Centróide (DMC), cada classe passa a ter um
único vetor que a representa, chamado de centróide. O centróide de uma classe é o seu
vetor médio; ou seja, simplesmente a média dos valores dos atributos de vários padrõesda mesma classe. Um centróide de uma classe serve como um modelo que representa oobjeto médio daquela classe. Portanto, representa uma economia de memória porquetodos os exemplos de uma classe não precisam ser mais armazenados (Barreto G. A.,2007).
A Distância Euclidiana, apresentada na Equação 3.4, é a métrica usada, no projetoproposto, para medir a proximidade de um padrão desconhecido a cada centróide dosconjuntos de classes existentes no problema. A menor distância determina a qual classeé mais provável que esse padrão desconhecido pertença.
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
36/88
20
, = − (Equação 3.4)
Figura 3.2: Cálculo da distância do padrão em relação às classes , = , , . O seguinte Algoritmo descreve o funcionamento do classificador DMC:
Algoritmo 3.1: Distância Mínima ao Centróide (DMC). Fonte: (Barreto G. A., 2007).
1: Calcular os centróides
das classes em uma tabela
2: Seja um vetor cuja classe é desconhecida, ou seja: = ? 3: Encontrar na tabela o centróide mais próximo de .4: Seja o centróide mais próximo de 5: Atribuir a à classe do centróide mais próximo, ou seja: = 6: Se a classificação for correta, usar para recalcular .
O passo 6 determina a atualização do centróide selecionado. Para isso, é a utilizado a
seguinte equação: + 1 = 1 − + (Equação 3.5)Em que = 1/ + 1 é o fator de aprendizagem. Enquanto, é o total de exemplosusados para calcular o centróide antes da chegada de . é o centróide antesda chegada de e o + 1 é o novo centróide com incorporado.3.4 Classificador K-Vizinhos Mais Próximos
O algoritmo K-Vizinhos Mais Próximos (K-NN) classifica os objetos com base emexemplos mais próximos no espaço de entrada. Sabendo que existe um conjunto de
dados rotulados com N amostras dados por = , , , } e um padrão x a serclassificado que não pertence ao conjunto D, o funcionamento do algoritmo K-NNconsiste em atribuir a mesma classificação para o padrão x ao da classe mais
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
37/88
21
representada nos k-vizinhos mais próximos ou k ponto mais próximos. Em outraspalavras, é calculado um conjunto de distâncias = , , , }, =, ∈ . Com base nessas distâncias são selecionadas as kamostras mais próximas pertencentes ao conjunto D. Assim o padrão desconhecido éclassificado pelo voto da maioria de seus vizinhos, ou seja, é classificado com a classe
mais comum entre os seus mais próximos (Rocha Neto A. R., 2006). O algoritmo paraK-NN é apresentado a seguir:
Algoritmo 3.2: K-Vizinhos Mais Próximos (K-NN). Fonte: (Barreto G. A., 2007).
1: Armazenar os exemplos em uma tabela
2: Seja um vetor cuja classe é desconhecida, ou seja: = ? 3: Encontrar na tabela os K vetores mais próximo de .4: Seja
a classe a que pertence à maioria dos K vetores.
5: Atribuir a à classe da maioria dos K vetores, ou seja: = 6: Se a classificação for correta incluir na tabela.
É usual que o cálculo das distâncias Dist seja feito usando a distância euclidianadescrita na Equação 3.4, embora outras métricas de distância possam ser utilizadas.
Este classificador tem como vantagens a simplicidade de implementação, ideal paratabelas pequenas ou médias e não requer treinamento. Além disso, constrói diretamente
a regra de decisão sem estimar as densidades condicionadas às classes, sendo uma boaescolha para problemas de classificação em que padrões próximos no espaço decaracterísticas possivelmente pertencem à mesma classe.
Entretanto, possui como limitações o custo computacional alto para tabelas grandes ea constante K é usualmente obtida por tentativa-e-erro.
Figura 3.3: Exemplo de classificador K-NN.
3.5 Classificador Naive BayesO classificador Naive Bayes é fundamentado na suposição da independência
condicional entre os dados de entrada e o rótulo da classe e que os dados temdistribuição Gaussiana (Webb, 2002). Considerando os dados de entrada x e o rótuloWindice, tem-se, portanto, o seguinte modelo probabilístico:
8/18/2019 CLASSIFICAÇÃO COM OPÇÃO DE REJEIÇÃO APLICADA À PREDIÇÃO DE DEFEITOS DE SOFTWARE
38/88
22
| | (Equação 3.6)Sendo x uma variável contínua, conclui-se segundo a Equação 3.6, que uma
aproximação conveniente assume que, | ,, , , é a função deprobabilidade para uma distribuição normal de x, em que , e, representam,respectivamente, o desvio padrão e a média da e-ésima característica (atributo) para a i-ésima classe, tal que e indica a componente do vetor para a classe Windice (John et al.,1995). Portanto, o classificador possui duas etapas: aprendizagem e classificação.
Na fase de aprendizagem, calculam-se os valores estimados para os parâmetros , e, do conjunto de treinamento. Por isso, é preciso que as amostras do conjunto detreinamento sejam separadas por grupos ou classes, e para cada conjunto de amostras deuma determinada classe, os valores para
, e
, deverão ser obtidos por atributo ou
componente de cada vetor, aplicando-se a Equação 3.7.
| 1√ , exp − − ,, , 1, , … , ; (Equação 3.7)Na fase de Classificação, são obtidos n valores para|, 1 , , …, . A densidade condicional da classe | para a i-ésima classe tal que é
obtida pelo produtório desses valores, conforme descrito. A classe que resultar emmaior valor para a densidade condicional é atribuída à instância.
Quando a entrada de dados é discreta, a tabela de probabilidade condicional baseadana quantidade de ocorrência para o conjunto de aprendizagem determina a densidadecondicional da classe no lado direito da equação. Uma desvantagem do classificador éque a probabilidade estimada pode não ser confiável em regiões onde os dados deentrada se distribuem de forma esparsa, pois essa probabilidade é baseada na freqüênciados dados do treinamento.
3.6 Classificador K-MédiasO K-Médias, do inglês K-Means, é um algoritmo baseado na técnica de agrupamento
(clusterização). Em outras palavras, encontra