classificaÇÃo com opÇÃo de rejeiÇÃo aplicada À prediÇÃo de defeitos de software

Upload: adoniascaetano

Post on 07-Jul-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 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