Você está na página 1de 88

INSTITUTO FEDERAL DO CEAR

EIXO TECNOLGICO DE TELEMTICA


CURSO DE BACHARELADO EM CINCIA DA COMPUTAO

ADONIAS CAETANO DE OLIVEIRA

CLASSIFICAO COM OPO DE REJEIO APLICADA


PREDIO DE DEFEITOS DE SOFTWARE

MARACANA
2013

ADONIAS CAETANO DE OLIVEIRA

CLASSIFICAO COM OPO DE REJEIO APLICADA


PREDIO DE DEFEITOS DE SOFTWARE

Trabalho de Concluso de Curso apresentado


Coordenao do Curso de Bacharelado em Cincia
da Computao do Instituto Federal do Cear (IFCE)
Campus Maracana como requisito parcial para
obteno de ttulo de Bacharel em Cincia da
Computao.
rea de Concentrao: Inteligncia Artificial
Orientador: Prof. Dr. Ajalmar Rgo da Rocha Neto

MARACANA
2013

ii

INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DO CEAR


CURSO DE BACHARELADO EM CINCIA DA COMPUTAO

Adonias Caetano de Oliveira

Esta Monografia foi julgada adequada para a obteno do ttulo Bacharel em Cincia da
Computao, sendo aprovada pela coordenao do Curso de bacharelado em Cincia da
Computao do Instituto Federal do Cear e pela banca examinadora:

__________________________________
Prof. Dr. Ajalmar Rgo da Rocha Neto (Orientador)
Instituto Federal do Cear - IFCE

__________________________________
Prof. MSc. Amauri Holanda de Souza Jnior
Instituto Federal do Cear - IFCE

__________________________________
Prof. MSc. Igor Rafael Silva Valente
Instituto Federal do Cear - IFCE

Maracana, 04 de Julho de 2013

iii

Este trabalho dedicado aos meus pais, Valdemir Caetano e


Maria Conceio Caetano, pelo constante apoio, incentivo e admirao, e
principalmente a minha av Raimunda Francisca de Oliveira, que em 10 de junho de
2013, foi recolhida presena de seu Senhor e Salvador (Fp. 1, 21, 23).
Aos colegas, amigos e professores que participaram desta caminhada.

iv

Agradecimentos
Quero deixar aqui registrado a minha mais sincera gratido para com todos os
colaboradores deste trabalho, diretamente ou indiretamente.
A Deus, que me orienta em todos os momentos.
Aos meus pais Valdemir Caetano e Maria Conceio Caetano pela educao, pela
motivao nas vezes em que j no a tinha mais, pelo amor incondicional. Apoio
incondicional, conselhos, fora e amizade sem igual durante todos esses anos.
Ao Prof. Dr. Ajalmar Rocha, por ter me orientado durante este projeto, e mais que
meu orientador, foi meu amigo. Obrigado pela confiana em meu trabalho, no incio do
Curso em 2009, atravs de bolsa de Iniciao Cientfica que me possibilitou a
implementao de boa parte dos algoritmos de Reconhecimento de Padres citados
neste trabalho; alm da dedicao, pacincia e acima de tudo pela orientao de como
conduzir este trabalho.
A todos docentes da Coordenadoria de Telemtica (IFCE Campus Maracana), pela
ateno e apoio. Em especial trs docentes: Prof. MSc. Otvio Alcntara, ao ensinar os
primeiros passos na produo e apresentao de trabalhos cientficos, Prof. Dr. Nivando
Bezerra pela oportunidade de produzir o primeiro artigo cientfico e o Prof. MSc. Igor
Valente, pela excelente didtica e organizao na disciplina de Engenharia de Software,
rea de aplicao deste trabalho.
Ao Ncleo Fortaleza do Projeto Acessibilidade Virtual, atravs dos amigos Agebson
Rocha, Marcos Vincius, Phyllipe do Carmo, Lvio Siqueira e Francisco Alves, pelo
conhecimento prtico sobre desenvolvimento de software.

Pr-reitoria de Pesquisa e Inovao, pelo auxlio financeiro.


E, por fim, aos meus amigos Jonas Rodrigues e Rmulo Lopes, pelo apoio e amizade
durante esses anos de graduao.

Assim diz o Senhor: No se glorie o sbio na sua sabedoria, nem se glorie o forte na
sua fora; no se glorie o rico nas suas riquezas. Mas o que se gloriar glorie-se nisto: em
me conhecer e saber que eu sou o Senhor, que fao beneficncia, juzo e justia 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 a
inteligncia.
J 28. 28

vi

Resumo
Diversos problemas computacionalmente complexos da Engenharia de Software incluindo gerao e seleo de casos de teste, entre outros - podem ser modelados como
problemas de otimizao e ser formulados matematicamente. Como tais, esses
problemas podem ser tratados de forma automtica atravs de modelos preditivos,
especialmente mtodos de Inteligncia Computacional. Essas aplicaes culminaram na
criao da rea de pesquisa da computao chamada de Modelos Preditivos em
Engenharia de Software (Predictive Models in Software Engineering - PMSE).
Este trabalho apresenta os resultados de um sistema de predio de defeitos de
software implementado atravs de classificadores estatsticos e neurais convencionais.
Adicionalmente, mtodos para classificao com opo de rejeio foram utilizados
neste trabalho a fim de aumentar o desempenho do sistema e evitar que sejam tomadas
decises em situaes em que h um elevado custo para uma deciso incorreta. O
Sistema Inteligente para Predio de Defeitos de Software com Opo de Rejeio
(SIPDOR) composto por dois subsistemas, a saber: interface grfica e predio de
defeitos. O mdulo de interface grfica permite uma interao amigvel com o
engenheiro de software. O mdulo de classificao automtica de defeitos de software
implementado por diferentes algoritmos, tais como Distncia Mnima ao Centride
(DMC), K-Vizinhos mais Prximos (K-NN), Naive Bayes, K-Mdias, rede ADALINE,
rede MADALINE e rede Perceptron Multicamadas (MLP).
Em particular, o mdulo de predio de defeitos da plataforma SIPDOR utiliza a
base de dados KC2 disponibilizada para uso pblico no site PROMISE, onde cada
amostra possui 21 atributos e um atributo indicando se foram encontrados ou relatados
defeitos. Como KC2 originalmente desbalanceada, tambm foi utilizada uma verso
KC2 balanceada criada atravs de repetio aleatria de padres pertencentes classe
com menor frequncia. Os diversos classificadores supracitados so comparados com
relao taxa de acerto mnimo e mximo, mdia geral de acertos e desvio padro. O
desempenho dos classificadores exibido atravs de histogramas e curvas AR (Taxa de
Rejeio vs. Taxa de Acerto).
Aplicando apenas classificadores convencionais, isto , sem a opo de rejeio, a
tcnica MLP obteve o melhor desempenho nas duas verses de KC2. Com a capacidade
de rejeio habilitada, o classificador K-Mdias apresentou melhores resultados quando
comparado ao MLP.
As contribuies deste trabalho so variadas, indo desde fato de ser provavelmente o
primeiro a usar classificadores de padres com capacidade de rejeio na predio de
defeitos de software, passando pelo estudo comparativo do desempenho de vrios
classificadores, at a proteo do sistema contra um eventual nmero de decises
erradas em situaes em que se exige alta confiabilidade. At onde se tem
conhecimento, a combinao destas contribuies torna o sistema SIPDOR inovador na
rea de resoluo de defeitos de software de forma automtica, servindo de auxlio nas
atividades de Engenharia de Software e facilitando o trabalho dos profissionais dessa
rea.
Palavras-chave: predio de defeitos de software; classificao com opo de rejeio;
otimizao em Engenharia de Software.
vii

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, KMeans, 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, overall
average 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 high
reliability. 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.

viii

Sumrio
LISTA DE FIGURAS ..................................................................................................................................XI
LISTA DE GRFICOS ...............................................................................................................................XII
LISTA DE TABELAS ............................................................................................................................... XIV
LISTA DE SMBOLOS ............................................................................................................................. XV
LISTA DE ABREVIAES ....................................................................................................................... XVI
INTRODUO......................................................................................................................................... 1
1.1 JUSTIFICATIVA ......................................................................................................................................... 2
1.2 OBJETIVO GERAL ..................................................................................................................................... 4
1.3 OBJETIVOS ESPECFICOS ............................................................................................................................ 5
1.4 ESTRUTURA DO TRABALHO ........................................................................................................................ 5
1.4.1 Metodologia de Organizao ...................................................................................................... 5
1.4.2 Organizao do Trabalho ............................................................................................................ 5
PREDIO DE DEFEITOS EM ENGENHARIA DE SOFTWARE ...................................................................... 7
2.1 FUNDAMENTAO TERICA ....................................................................................................................... 9
2.2 PREDIO DE DEFEITOS DE SOFTWARE ....................................................................................................... 10
2.2.1 Mtricas de Software ................................................................................................................ 11
2.3 MODELOS PREDITIVOS VS. MTODOS CONVENCIONAIS. ................................................................................ 12
2.4 DESAFIOS ............................................................................................................................................. 14
2.5 CONCLUSO ......................................................................................................................................... 15
RECONHECIMENTO DE PADRES ......................................................................................................... 16
3.1 CONCEITOS GERAIS ........................................................................................................................... 16
3.2 CLASSIFICADORES DE PADRO .......................................................................................................... 17
3.2.1 Projeto de Classificadores.......................................................................................................... 18
3.3 CLASSIFICADOR DISTNCIA MNIMA AOS CENTRIDES .................................................................... 19
3.4 CLASSIFICADOR K-VIZINHOS MAIS PRXIMOS ............................................................................................. 20
3.5 CLASSIFICADOR NAIVE BAYES ................................................................................................................... 21
3.6 CLASSIFICADOR K-MDIAS ...................................................................................................................... 22
3.7 CLASSIFICADOR ADALINE .............................................................................................................. 23
3.8 CLASSIFICADOR MADALINE .......................................................................................................... 26
3.9 CLASSIFICADOR MLP ....................................................................................................................... 27
3.9.1 Treinamento da Rede MLP ........................................................................................................ 28
3.9.2 Rede MLP na classificao de padres ...................................................................................... 30
3.10 CONCLUSO .................................................................................................................................... 31
CLASSIFICAO COM OPO DE REJEIO .......................................................................................... 32
4.1 FUNDAMENTAO TERICA .............................................................................................................. 33
4.1.1 Regra de Chow .......................................................................................................................... 33
4.2 CLASSIFICAO COM OPO DE REJEIO ....................................................................................... 35
4.2.1 Abordagem um Classificador Padro ........................................................................................ 35
4.2.2 Medidas de Rejeio ................................................................................................................. 35
4.2.3 Classificador K-Mdias com opo de rejeio ......................................................................... 36
4.2.4 Classificador MLP com opo de rejeio ................................................................................. 37
4.2.5 Curva AR .................................................................................................................................... 37
4.3 CONCLUSO ...................................................................................................................................... 38

ix

SIMULAES COMPUTACIONAIS.......................................................................................................... 40
5.1 SIPDOR ............................................................................................................................................ 40
5.2 METODOLOGIA .................................................................................................................................. 41
5.2.1 Mtricas de Avaliao ............................................................................................................... 41
5.2.2 Base de Dados ........................................................................................................................... 41
5.2.3 Classificadores neurais .............................................................................................................. 42
5.2.4 Parmetros de classificao ...................................................................................................... 43
5.3 RESULTADOS PARA CLASSIFICADORES CONVENCIONAIS ................................................................... 44
5.4RESULTADOS PARA CLASSIFICADORES COM OPO DE REJEIO ...................................................... 47
5.4.1 Resultados para K-Mdias com Opo de Rejeio................................................................... 47
5.4.2 Resultados MLP com Rejeio ................................................................................................... 50
5.4.3 Anlise Comparativa de K-Mdias e MLP com capacidade de rejeio: ................................... 52
5.5 CONCLUSO ...................................................................................................................................... 53
CONCLUSO ......................................................................................................................................... 54
REFERNCIAS BIBLIOGRFICAS.............................................................................................................. 55
APNDICE A ARQUITETURA DO SIPDOR................................................................................ 60
A.1 ORGANIZAO E EXECUO DO PROJETO ........................................................................................ 60
A.2 ARQUITETURA DO SISTEMA .............................................................................................................. 61
A.2.1 Ambiente de Desenvolvimento.................................................................................................. 61
A.2.2 Bibliotecas utilizadas ................................................................................................................. 62
A.2.3 Padro de Projeto MVC ............................................................................................................. 63
APNDICE B RESULTADOS ADICIONAIS ................................................................................ 65
B.1 BASES DE DADOS................................................................................................................................... 65
B.1.1 CM1 ........................................................................................................................................... 65
B.1.2 JM1 ............................................................................................................................................ 65
B.1.3 KC1 ............................................................................................................................................ 66
B.1.4 PC1 ............................................................................................................................................ 66
B.2 RESULTADOS DE CLASSIFICADORES CONVENCIONAIS ..................................................................................... 66
B.3 RESULTADOS COM A OPO DE REJEIO ................................................................................................... 68

Lista de Figuras
FIGURA 1.1: OBJETIVOS DA ENGENHARIA DE SOFTWARE ...................................................................... 1
FIGURA 1.2: NMERO DE ARTIGOS DE SBSE POR ANO DE PUBLICAO ................................................ 3
FIGURA 1.3: NMERO DE ARTIGOS DE SBSE POR ATIVIDADE ................................................................. 3
FIGURA 1.4: NMERO DE BASE DE DADOS DISPONIBILIZADO POR ATIVIDADE DA ES ............................ 4
FIGURA 2.1: TEMPO DE DESCOBERTA DE UM ERRO X CUSTO ................................................................. 8
FIGURA 2.2: FERRAMENTA PREDICTIVE ................................................................................................ 13
FIGURA 3.2: CLCULO DA DISTNCIA DO PADRO  EM RELAO S CLASSES ,  = , , . .......... 20
FIGURA 3.1: MODELO PARA O RECONHECIMENTO (SEMI-) AUTOMTICO DE PADRES. ...................... 17

FIGURA 3.3: EXEMPLO DE CLASSIFICADOR K-NN. ................................................................................. 21

FIGURA 3.4: MODELO ADALINE (BARRETO G. A., 2007). ....................................................................... 24


FIGURA 3.5: APRENDIZADO SUPERVISIONADO (BARRETO G. A., 2007). ............................................... 26
FIGURA 3.6: NEURNIO BIOLGICO (BARRETO G. , 2008). ................................................................... 27
FIGURA 3.7: MODELO COMPLETO DO NEURNIO ARTIFICIAL (BARRETO G. , 2008). ............................ 27
FIGURA 3.8: ARQUITETURA GERAL DE UMA REDE NEURAL SUPERVISIONADA (ROCHA NETO A. R.,
2006). .................................................................................................................................................. 28
FIGURA 3.9: EXEMPLO DE CLASSIFICAO (BARRETO G. , 2008). ......................................................... 30
FIGURA 4.1: CLASSIFICADOR BINRIO COM OPO DE REJEIO ........................................................ 32
FIGURA 4.2: CLASSIFICADOR MULTI-CLASSE COM OPO DE REJEIO ............................................... 33
FIGURA 4.3: CURVA HIPOTTICA DE COMPROMISSO ENTRE O ERRO E A REJEIO.............................. 34
FIGURA 4.4: UM NICO CLASSIFICADOR BINRIO E AS REGIES DE DECISO ...................................... 35
FIGURA 4.5: CURVAS DE REJEIO POSSVEIS ...................................................................................... 37
FIGURA 5.1: TELA PRINCIPAL DO SIPDOR. ............................................................................................ 40
FIGURA A.1: ORGANIZAO E EXECUO DO PROJETO ....................................................................... 60
FIGURA A.2: COMPILAO E INTERPRETAO EM JAVA ....................................................................... 61
FIGURA A.3: PADRO MVC .................................................................................................................. 63
FIGURA A.4: PADRO MVC INTEGRADO COM PACOTE TO. ................................................................... 64

xi

Lista de Grficos
GRFICO 2.1 - DISTRIBUIO DO RETRABALHO PELAS ATIVIDADES DE DESENVOLVIMENTO DE
SOFTWARE. ............................................................................................................................................ 7
GRFICO 5.1BALANCEAMENTO DA BASE DE DADOS KC2. .................................................................. 42
GRFICO 5.2MDIA DE ACERTOS NA VARIAO DO VALOR DE K. ...................................................... 43
GRFICO 5.3 DESVIO PADRO NA VARIAO DO VALOR DE K........................................................... 43
GRFICO 5.4 MLP PARA BASE KC2 ORIGINAL ..................................................................................... 44
GRFICO 5.5 DMC PARA BASE KC2 ORIGINAL .................................................................................... 44
GRFICO 5.6 NAIVE BAYES PARA BASE KC2 ORIGINAL ....................................................................... 45
GRFICO 5.7 K-NN PARA BASE KC2 ORIGINAL ................................................................................... 45
GRFICO 5.8 K-MDIAS PARA BASE KC2 ORIGINAL ............................................................................ 45
GRFICO 5.9 ADALINE PARA BASE KC2 ORIGINAL .............................................................................. 45
GRFICO 5.10 MADALINE PARA BASE KC2 ORIGINAL ........................................................................ 45
GRFICO 5.11 MLP PARA BASE KC2 BALANCEADA ............................................................................. 46
GRFICO 5.12 K-MDIAS PARA BASE KC2 BALANCEADA .................................................................... 46
GRFICO 5.13 K-NN PARA BASE KC2 BALANCEADA ........................................................................... 46
GRFICO 5.14 ADALINE PARA BASE KC2 BALANCEADA ...................................................................... 46
GRFICO 5.15 MADALINE PARA BASE KC2 BALANCEADA................................................................... 47
GRFICO 5.16 NAIVE BAYES PARA BASE KC2 BALANCEADA ............................................................... 47
GRFICO 5.17 DMC PARA BASE KC2 BALANCEADA ............................................................................ 47
GRFICO 5.18 K-MDIAS APLICADO BASE KC2 ORIGINAL ............................................................... 48
GRFICO 5.19 K-MDIAS APLICADO BASE KC2 BALANCEADA ......................................................... 49
GRFICO 5.20 MLP APLICADO NA BASE KC2 ORIGINAL ..................................................................... 50
GRFICO 5.21 MLP APLICADO NA BASE KC2 BALANCEADA ............................................................... 51
GRFICO 5.22 CURVAS AR DE K-MDIAS E MLP APLICADOS BASE KC2 ORIGINAL ........................... 52
GRFICO 5.23 CURVAS AR DE K-MDIAS E MLP APLICADOS BASE KC2 BALANCEADA ..................... 52
GRFICO B.1 BALANCEAMENTO DA BASE DE DADOS CM1. ............................................................... 65
GRFICO B.2BALANCEAMENTO DA BASE DE DADOS JM1................................................................... 65
GRFICO B.3BALANCEAMENTO DA BASE DE DADOS KC1. .................................................................. 66
GRFICO B.4BALANCEAMENTO DA BASE DE DADOS PC1. .................................................................. 66
GRFICO B.5 MLP APLICADO NA BASE PC1 BALANCEADA ................................................................. 68
GRFICO B.6 MLP APLICADO NA BASE CM1 BALANCEADA ................................................................ 69
GRFICO B.7 MLP APLICADO NA BASE JM1 ORIGINAL ...................................................................... 69
GRFICO B.8 MLP APLICADO NA BASE KC1 ORIGINAL ....................................................................... 70

xii

GRFICO B.9 K-MDIAS APLICADO NA BASE PC1 BALANCEADA ........................................................ 70


GRFICO B.10 K-MDIAS APLICADO NA BASE KC1 BALANCEADA ...................................................... 71
GRFICO B.11 K-MDIAS APLICADO NA BASE CM1 BALANCEADA ..................................................... 71
GRFICO B.12 K-MDIAS APLICADO NA BASE JM1 ORIGINAL............................................................ 72
GRFICO B.13 K-MDIAS APLICADO NA BASE KC1 ORIGINAL ............................................................ 72

xiii

Lista de Tabelas
TABELA 1.1: EXEMPLOS DE PROBLEMAS DE ENGENHARIA DE SOFTWARE .............................................. 1
TABELA 2.1: ANOMALIAS DE SOFTWARE ................................................................................................ 9
TABELA 5.1: PARMETROS DOS MODELOS NEURAIS ............................................................................ 42
TABELA 5.2: RESULTADOS PARA CLASSIFICADORES CONVENCIONAIS APLICADOS BASE KC2 ORIGINAL
............................................................................................................................................................ 44
TABELA 5.3: RESULTADOS PARA CLASSIFICADORES CONVENCIONAIS APLICADAS BASE KC2
BALANCEADA ....................................................................................................................................... 46
TABELA 5.4: RESULTADOS PARA K-MDIAS COM OPO DE REJEIO APLICADA A KC2 ORIGINAL ...... 48
TABELA 5.5: RESULTADOS PARA K-MDIAS COM OPO DE REJEIO APLICADA A KC2 BALANCEADA 49
TABELA 5.6: RESULTADOS PARA MLP COM OPO DE REJEIO APLICADA A KC2 ORIGINAL ............... 50
TABELA 5.7: RESULTADOS PARA MLP COM OPO DE REJEIO APLICADA KC2 BALANCEADA ......... 51
TABELA B.1: RESULTADOS COM BASES ORIGINAIS SEM A REJEIO DE PADRES ................................ 67
TABELA B.2: RESULTADOS COM BASES BALANCEADAS SEM A REJEIO DE PADRES .......................... 67

xiv

Lista de Smbolos

E
e
h

  
  
  
x
N
C







Dimenso de um Espao
Estimativa
Erro
Funo de Vizinhana
ndice do Neurnio Vencedor
Limiar de rejeio variando entre [0, 1]
Com valor = 0,05 varia o   
Limiar da sada da funo de ativao
Padro ou Vetor Caracterstico
Nmero de Amostras
Classe ou Agrupamento
Peso dos Neurnios
Sada do Neurnio
Centro de Massa
Funo Decaimento Exponencial Aprendizagem
Desvio Padro
Varincia

xv

Lista de Abreviaes
1-NN
ADALINE
API
ARC
DMC
EQ
EQM
ES
IA
IC
IDE
IFCE
K-NN
MADALINE
MLP
MSE
MVC
PDF
PMSE
PROMISE
RNA
RP
SBSE
SIPDOR
TCC

One-Nearest Neighbor
Adaptive Linear Element
Application Program Interface
Accuracy-Reject Curve
Distncia Mnima ao Centride
Erro Quadrtico
Erro Quadrtico Mdio
Engenharia de Software
Inteligncia Artificial
Inteligncia Computacional
Integrated Development Environment
Instituto Federal de Educao, Cincia e Tecnologia do Cear
K-Nearest Neighbors
Multiple ADALINE
Multilayer Perceptron
Mean Squared Error
Model-View-Controller
Probability Density Function
Predictive Models in Software Engineering
Predictive Models In Software Engineering
Redes Neurais Artificiais
Reconhecimento de Padres
Search-Based Software Engineering
Sistema Inteligente para Predio de Defeitos de Software com Opo de
Rejeio
Trabalho de Concluso de Curso

xvi

CAPTULO 1

INTRODUO
A Engenharia de Software (ES) uma disciplina da cincia da computao relacionada
com todos os aspectos da produo de software, desde os estgios iniciais de
especificao do sistema at sua manuteno, depois que este entrar em operao. Como
se observa na Figura 1.1, a ES utiliza um conjunto de mtodos, tcnicas, metodologias e
ferramentas para analisar, projetar e gerenciar o desenvolvimento e manuteno de
software, visando produzir e manter softwares dentro de prazos, custos e qualidade
estimados (Sommerville, 2007).

Figura 1.1: objetivos da Engenharia de Software

Esse campo da cincia da computao tem como objetivo melhorar a qualidade do


software e aumentar a produtividade e a satisfao, tanto do cliente como dos
profissionais e engenheiros de software envolvidos (Sommerville, 2007). Entretanto,
muitas vezes os engenheiros de software enfrentam determinados problemas que podem
se tornar bastantes complexos devido grande quantidade de possveis solues. A
Tabela 1.1, adaptada de (Freitas et al., 2009), exemplifica problemas considerados da
rea de Otimizao em Engenharia de Software. Na Tabela 1.1 apresentada ainda a
subrea de predio de defeitos, problema de interesse para este trabalho, que
importante por ser tratar de uma etapa de manuteno de software que exige um
relevante esforo quando comparado com o esforo despendido no processo de
desenvolvimento.
Tabela 1.1: Exemplos de Problemas de Engenharia de Software
rea da Engenharia de Software
Planejamento de Projeto
Otimizao de Cdigo-fonte
Manuteno de Software

Engenharia de Software Orientada a Servios


Otimizao de Compilador

Subrea
Alocao de Recursos
Paralelizao
Re-engenharia de software
Predio de Defeitos
Automated Maintenance
Desenvolvimento de Software
Alocao de heap
Tamanho de Cdigo
1

Engenharia de Requisitos

Teste de Software

Estimativa de Software

Anlise de Requisitos
Seleo de Requisitos
Seleo de Casos de Teste
Priorizao de Casos de Teste
Gerao de Dados de Teste
Estimativa de Tamanho
Estimativa de Custo de Software

Dentre esses problemas, existem aqueles para os quais as solues podem ser
resolvidas de maneira matemtica (Harman, 2006). Entre diversos problemas
computacionalmente complexos da Engenharia de Software e que podem ser
formulados desta maneira, pode-se citar: a seleo de casos de teste, seleo de
requisitos, a alocao de recursos (Antoniol et al., 2004; Antoniol et al., 2005);
estimativa de tamanho (Dolado, 2000); e anlise de requisitos (Zhang et al., 2008).
A resoluo de problemas matematicamente descritos utilizando modelos preditivos
atividade da subrea da ES denominada Modelos Preditivos em Engenharia de
Software (Predictive Models in Software Engineering - PMSE). Em geral, define-se
uma funo custo, a qual deve ser minimizada (ou maximizada), que tem por base o
clculo do valor mdio do erro-quadrtico da predio. Portanto, os parmetros do
modelo so obtidos a partir de um processo de otimizao aplicado a um mapeamento
de entrada-sada que representado pelos exemplos contidos em uma base de dados.
Ferramentas advindas da rea de Inteligncia Artificial (IA), tais como: Redes Neurais
Artificiais e Lgica Fuzzy so comumente empregadas com esta finalidade.

1.1 Justificativa
Alm da possibilidade de resoluo de problemas computacionalmente complexos, a
unio entre Engenharia de Software e Otimizao Matemtica/Inteligncia Artificial
permite os seguintes avanos:
i.
ii.

A classificao na ocorrncia do problema ser mais objetiva, tendo em vista o


uso de variveis matemticas para a resoluo do problema;
As tcnicas de otimizao aumentam a possibilidade de encontrar uma melhor
soluo para o problema, gerando vantagens como menor desperdcio de
recursos, produo do software em menor tempo, entre outros, para a empresa
desenvolvedora.

Portanto, os problemas abordados neste trabalho devem ser formulados


matematicamente para fins de resoluo (obteno dos modelos) com base em
otimizao, ou ainda, os modelos podem ser induzidos com base em um conjunto de
dados e um algoritmo de aprendizagem.
Neste contexto, a partir da pesquisa terica-prtica envolvendo a investigao de
problemas como os descritos acima so posteriormente aplicadas s tcnicas e
estratgias utilizadas para obteno de solues timas ou aproximadamente timas. O
uso de tcnicas de otimizao nos problemas resultou na criao de uma nova e
promissora subrea de pesquisa na computao, denominada Otimizao em Engenharia
de Software (Search-Based Software Engineering - SBSE).

Figura 1.2: Nmero de artigos de SBSE por ano de publicao

Segundo a organizao SEBASE (2011), desde o primeiro trabalho de Miller e


Spooner (1976), o nmero de artigos em funo do ano de publicao cresceu
exponencialmente nos ltimos anos, como pode ser visto pela Figura 1.2. Isso se deve
ao crescente interesse da comunidade acadmica pela rea de pesquisa. Apesar disso, a
Figura 1.3 mostra que a produo de trabalhos cientficos no a mesma por campo de
pesquisa da Engenharia de Software. Com 52% do total, artigos sobre teste e depurao
de software so mais publicados. Alguns campos, tais como, gerncia de projeto,
verificao de software, tcnicas e ferramentas de projeto, merecem destaque.

Figura 1.3: Nmero de artigos de SBSE por atividade

Apesar do crescimento significativo na quantidade de publicaes, ressalta-se que a


SBSE se dedica mais a complementar as tcnicas mais tradicionais da Engenharia de
Software, pois muitas delas foram comprovadamente testadas e so bem sucedidas.
Harman (2007; 2010) mostra que solues timas ou sub-timas podem ser obtidas de
maneira automatizada para resolver problemas que antes no eram completamente
resolvidos, ou que eram resolvidos intuitivamente. Com resultados bastante
consistentes, esta nova rea da Engenharia de Software utiliza a otimizao como
processo de obteno das solues, alm de permitir que engenheiros de software
equilibrem as restries conflitantes e concorrentes em um espao de busca
caracterizado por ser ruidoso e incompleto.
3

Ao contrrio da SBSE, que se dedica mais utilizao de tcnicas tradicionais da


Engenharia de Software, o presente trabalho utiliza modelos preditivos, isto , mtodos
especficos baseados em tcnicas estatsticas ou de redes neurais, com o objetivo de
antecipar a localizao de defeitos em uma aplicao. Essa tentativa de predizer,
atravs de dados histricos de um projeto, como se comportaro verses futuras de
determinados mdulos de software representa a rea de Predio de defeitos.
Alm da possibilidade de utilizar classificadores de padres para resoluo de
problemas de predio da Engenharia de Software para os quais as solues podem ser
determinadas de forma matemtica, pode-se tambm utilizar estratgias de classificao
com opo de rejeio para aumentar o desempenho do sistema. Neste tipo de sistema,
um mecanismo de rejeio utilizado para rejeitar os padres que se encontram na
regio de sobreposio entre as classes, deixando a responsabilidade de classific-los
para um especialista da rea.
Outro destaque que as redes neurais so conhecidas por resolver problemas de
classificao de padres e aproximao de funes no lineares e de elevada
dimensionalidade, construir diretamente a fronteira de deciso a partir de um conjunto
de dados e fazer poucas ou nenhumas suposies acerca da distribuio de
probabilidades 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 estimao e predio.
Ressalta-se que, no tocante s bases de dados, uma quantidade significativa de bases
de dados coletadas est disponibilizada para uso pblico no site PROMISE (Predictive
Models In Software Engineering) (PROMISE, 2012). Essas bases de dados so
utilizadas pelos classificadores para treinamento e teste. A Figura 1.4 apresenta a
quantidade de bases de dados disponveis em funo do tipo de problema de Engenharia
de Software.

Figura 1.4: Nmero de base de dados disponibilizado por atividade da ES

1.2 Objetivo Geral


Em seu sentido mais amplo, o principal objetivo deste trabalho desenvolver um
sistema capaz de auxiliar o engenheiro de software na tomada de deciso, atravs do uso
de uma abordagem matemtica para proposio de solues de problemas recorrentes
em Engenharia de Software. O problema recorrente de interesse deste trabalho a
predio de defeitos em mdulos de software. Para este fim, devem ser avaliados e
aplicados classificadores convencionais, bem como estratgias de classificao com
opo de rejeio.
4

1.3 Objetivos Especficos


Os objetivos especficos deste trabalho so apresentados a seguir.
i.

ii.
iii.

iv.
v.
vi.

Contribuir com um levantamento bibliogrfico sobre o tema de interesse,


enfatizando os trabalhos voltados para a predio automtica de defeitos em
Engenharia de Software;
Realizar um estudo reprodutvel e comparativo de modelos preditivos, visto que
uma necessidade dessa rea de pesquisa (Shepperd, 2012).
Avaliar a plausibilidade de se usar um conjunto de base de dados para preveno
de defeitos recentemente propostos na literatura para projetar classificadores
automticos de predio de defeitos;
Analisar o desempenho de classificadores com opo de rejeio quando
aplicados ao problema de predio de defeitos;
Avaliar o desempenho de classificadores estatsticos e neurais aplicados ao
problema de predio de defeitos.
Auxiliar no processo de priorizao de mdulos a serem testados, isto ,
encontrar mdulos crticos do software que devem, portanto, receber um maior
esforo no processo de teste.

1.4 Estrutura do Trabalho


1.4.1 Metodologia de Organizao
Este trabalho subdividido em captulos com base em subreas envolvidas,
metodologia proposta e resultados alcanados. Os captulos so organizados de forma a
serem o mais auto contido possvel em termos de contedo. Esta organizao permite
descrever mais especificamente a fundamentao terica para cada uma das subreas.
Alm disto, a organizao proposta visa permitir que as questes tericas deste TCC
sejam mais adequadamente apresentadas e inseridas no contexto de outras abordagens
contidas na literatura.
Em virtude desta organizao que tambm busca facilitar a leitura e o entendimento
deste trabalho, ao final, so apresentadas as simulaes computacionais, contendo
informao sobre a metodologia de desenvolvimento e avaliao dos resultados obtidos.
No final de cada captulo, so descritas ainda as concluses relacionadas ao assunto
abordado.
A forma como este trabalho est organizada permite que o leitor interessado em uma
determinada rea de pesquisa se restrinja a um determinado captulo de interesse. Os
detalhes contidos em cada captulo so descritos de forma resumida na subseo a
seguir.

1.4.2 Organizao do Trabalho


O restante deste trabalho formado por seis captulos que descrevem os diversos
conceitos relacionados Predio de Defeitos em Engenharia de Software, aos
classificadores estatsticos clssicos e neurais e ao uso de estratgia para classificao
com opo de rejeio. Por fim, a metodologia proposta e resultados so descritos nos
ltimos captulos.
Mais especificamente, o Captulo 2 traz uma descrio terica sobre a Predio de
Defeitos em Engenharia de Software. Essa teoria apresentada em um nvel de detalhe
adequado para permitir o entendimento dos captulos posteriores que apresentam o uso
de classificadores na resoluo de problemas descritos por modelos preditivos.
5

No Captulo 3 so apresentados diversos conceitos que podem auxiliar no


entendimento do restante desta exposio. Discorre sobre os principais objetivos do
reconhecimento de padres, os classificadores, tipos de classificadores e descreve de
forma sucinta a implementao dos algoritmos: Distncia Mnima ao Centride (DMC),
k-Vizinhos mais Prximos (K-NN), Naive Bayes, K-Mdias, Modelo ADALINE,
Modelo MADALINE e Rede Perceptron Multicamada (MLP).
O Captulo 4 trata da estratgia de classificao com opo de rejeio. So descritos
os conceitos relacionados classificao com opo de rejeio. Neste contexto, so
citadas as diversas abordagens encontradas na literatura juntamente com apresentao
de conceitos relacionados avaliao de classificadores com opo de rejeio.
O captulo 5 dedicado apresentao de metodologia adotada para analisar e
comparar os algoritmos de classificao citados neste trabalho. Tambm descreve os
experimentos, tentativas, falhas e sucessos obtidos durante todo o processo de
elaborao deste trabalho.
O Captulo 6 aborda algumas consideraes finais sobre esta exposio, comentando
e analisando os resultados obtidos. Ressalta as contribuies que auxiliaram na
elaborao desse trabalho.
No Apndice A so descritos detalhes relacionados aos aspectos de programao e
arquitetura do sistema.
E, por fim, o Apndice B exibe resultados adicionais obtidos com outras bases de
dados.

CAPTULO 2

PREDIO DE DEFEITOS EM
ENGENHARIA DE SOFTWARE
Aps a fase de implantao do software,, certos requisitos existentes so alterados e
novos requisitos surgem na fase de operao. Para continuarem teis, os softwares
devem inevitavelmente mudar (evoluir). Essa evoluo no software existente acontece
por vrios fatores, entre eles, poder acompanhar novas tendncias no mercado atravs
da implementao de novos requisitos, necessidade de modificao causada pela
deteco de erros durante o seu uso, adapt-lo
lo a uma nova plataforma ou aprimorar o
desempenho e outros requisitos no funcionais. Em outras palavras, o desenvolvimento
de software prossegue ao longo do ciclo de vida do sistema (Sommerville, 2007).
2007)
Essa necessidade de maximizar o ciclo de vida do sistema, ou seja, manter em
evoluo o software implantado se deve ao grande volume financeiro investido pelas
empresas. Frequentemente,
Frequentemente, a curto/mdio prazo, comear um novo desenvolvimento
gera mais desvantagens do que corrigir, adaptar e evoluir um software existente. No
entanto, a maior parte do oramento nas grandes organizaes reservada manuteno
desses sistemas existentes (Sommerville, 2007).
2007)
Pesquisas ainda apontam que 50% do tempo usado no desenvolvimento de software
so desperdiados com a manuteno de sistemas (Kemered et al.,, 1999) e mais da
metade dos profissionais de software contratados, no incio do sculo XXI, tiverem que
se dedicar correo de sistemas existentes, ao invs de escrever
ever novos sistemas (Jones,
2007). Outras fontes afirmam que o custo total do ciclo de vida de um software como
produto composto entre 40% e 90% de
d manuteno (Bennett, 2002) e que o esforo
desperdiado por empresas de software com retrabalho pode variar em mdia entre 40%
e 50% do esforo total do desenvolvimento de um projeto (Wheeler et al., 1996). O
Grfico 2.1 exibe a distribuio do retrabalho pelas atividades de desenvolvimento de
software.

8%

40%
20%

12%

19%

4%
1%
6%

12%

16%

12%

10%

0%
Requisitos

Projeto de
Alto Nvel

Projeto
Testes de
Testes de
detalhado Cdigo e de Integrao
Unidade
e de
Sistema
Produo 56%
Retrabalho 44%

Grfico 2.1 - Distribuio do retrabalho pelas atividades de desenvolvimento de software.


software
7

Uma soluo direcionar bem as atividades de testes, resultando em mais chances de


localizar os defeitos em fases iniciais de um projeto, permitindo aes corretivas
(Bezerra , 2008). Segundo Boehm (Boehm, 2001), os custos de identificao e correo
de defeitos aps a implantao de um software so elevados em relao s fases
anteriores de um projeto, ou seja, quanto mais tarde so identificados os defeitos, maior
ser custo da remoo. Como pode ser observado na Figura 2.1 obtida de (Christino,
2008), o custo de correo de defeito pode aumentar 100 vezes se a identificao
decorrer de forma tardia.

Figura 2.1: Tempo de descoberta de um erro X Custo

Alm do aumento de custo, diminuio de qualidade de software e da produtividade;


os defeitos prejudicam a reputao da empresa e de seus desenvolvedores (O' NEILL D,
2003).
Antes que ocorram os defeitos importante antecipar a sua localizao, pois
contribui para o direcionamento das atividades de testes de maneira que a equipe
envolvida nessas atividades possa direcionar seus esforos para reas do software que
apresentam maior propenso a apresentar problemas (Pontes, 2008). As atividades de
testes de software podem ser responsveis por uma parcela considervel dos custos
totais de um projeto. H uma reduo de aproximadamente 29% no esforo de testes
quando as atividades so direcionadas atravs da predio de defeitos (Tosun A. , 2008).
Neste captulo apresentaremos os principais conceitos tericos sobre predio de
defeitos e seus benefcios para a produo de um software. A meta desenvolver
modelos guiados por processos de otimizao por meio de algoritmos de aprendizagem
que utilizem uma base de dados disponibilizada. Os algoritmos de aprendizagem que
devem ser utilizados na obteno dos modelos so Redes Neurais Artificiais e alguns
mtodos estatsticos, os quais so descritos no prximo captulo. Mais informaes
sobre predio de defeitos podem ser obtidas em (Zhang et al., 2010).
8

2.1 Fundamentao Terica


Antes de apresentar argumentos sobre a importncia da preveno de defeitos,
importante conhecer a definio formal da palavra defeito, pois o termo utilizado,
muitas vezes, de forma genrica. A interpretao correta desta palavra depende do
contexto em que esteja sendo utilizada. O padro IEEE, em sua ltima atualizao,
classifica as anomalias de software da seguinte forma (IEEE, 2010):
Tabela 2.1: Anomalias de Software
Anomalia
Defeito

Erro
Falha
Falta
Problema

Definio

Uma imperfeio ou deficincia em um produto de


trabalho que faz com que este produto de trabalho no
atenda seus requisitos ou especificaes e precisa ser
consertado ou substitudo.
Uma ao humana que produz um resultado incorreto.
Fim da habilidade de um produto de realizar uma funo
requerida ou sua inabilidade de desempenhar dentro de
limites previamente especificados.
uma manifestao concreta de um erro em um software.
Dificuldade ou incerteza vivida por uma ou mais pessoas,
resultando de um encontro insatisfatrio com um sistema
em uso.

As palavras problema e falha esto relacionadas ao uso do software, em que


problemas podem ser vividos por usurios e falhas podem ser reveladas (seja em uso
operacional, ou, preferencialmente, em atividades de teste). Dependendo do contexto,
um defeito pode ser uma falta ou no. Defeitos encontrados atravs de revises (anlise)
estaro relacionados s faltas no artefato sendo revisado. Um defeito no uma falta se
ele for encontrado por uma inspeo ou anlise esttica e removido antes da execuo
do software. Quando um defeito se manifesta atravs de atividades de teste, por sua vez,
estaremos lidando com uma falha no software (Kalinowski, 2011).
De acordo com Christino (2008), existem trs nveis para se tratar a qualidade de
software e as taxas de defeitos, a saber, deteco, anlise e preveno.
O primeiro passo na busca por melhoria da qualidade de software a deteco de
defeitos. Mesmo sendo o objetivo de todas as equipes de desenvolvimento, no
possvel testar o software completamente. Por isso, importante a utilizao de mtodos
que possibilitem a localizao da maioria dos defeitos. Contudo, os mtodos de
identificao de defeitos no sero de grande utilidade, se no forem capazes de
prevenir a recorrncia desses defeitos em outras partes, sendo necessria, assim, sua
anlise.
No segundo nvel, gasto bastante tempo para que os defeitos previamente
descobertos sejam analisados de maneira que se encontrem padres ou intuies sobre
como ocorreram, bem como o motivo pelo qual no foram localizados antes.
A preveno um nvel mais efetivo quando se busca melhorar a qualidade de
software. Nesta fase, so empregadas as tcnicas especficas, que alm de detectarem,
so capazes de eliminar os defeitos em potencial de forma proativa. Os resultados de
9

etapas anteriores podem servir para modificao de processos e prticas de


desenvolvimento, a fim de eliminar a raiz da causa dos defeitos.
A preveno de defeitos pode ser feita utilizando mtodos convencionais, isto ,
baseado em esforo humano; ou utilizando modelos preditivos.

2.2 Predio de Defeitos de Software


Predio de defeitos representa uma rea de pesquisa acadmica cujo objetivo
tentar antecipar a localizao de defeitos em uma aplicao atravs do uso de modelos
preditivos, isto , mtodos especficos, geralmente, baseados em tcnicas estatsticas ou
de Inteligncia Artificial (IA). Ou seja, consiste na criao de modelos, que analisam
dados histricos de um projeto para, a partir da, tentar predizer como se comportaro
verses futuras de seu cdigo (Pontes, 2008).
Os dados histricos compem a base de dados na maioria das tcnicas de predio de
defeitos utilizada no planejamento. Tais tcnicas variam no tipo de dados que precisam,
podendo ser dados dos defeitos em si ou caractersticas de trabalho do produto. A
eficincia desses mtodos depende da qualidade das entradas utilizadas para predio
(Clark B. et al., 2001).
Predizer a localizao de defeitos em mdulos da aplicao aumenta as chances que
as atividades de testes tm de encontr-los. Dessa maneira, aes corretivas podem ser
tomadas o quanto antes no desenvolvimento do produto at mesmo no esforo
despendido na etapa de manuteno de software (Pontes, 2008).
A aplicao, de maneira eficiente, desses modelos preditivos resulta em benefcios,
tais como; suporte ao planejamento e execuo das atividades do processo de testes,
direcionando o esforo para os pontos crticos que merecem maior foco durante estas
atividades; priorizao de mdulos mais propensos a defeitos para a realizao de
atividades de inspeo e refatorao; identificao de fatores que influenciam na
ocorrncia de defeitos; e suporte a modelos de estimativa de custos e riscos de
manuteno corretiva (Pontes, 2008). Alm das vantagens citadas, ser possvel prever,
por exemplo, em uma aplicao:

Se determinado mdulo est ou no propenso ao aparecimento de defeitos.


Um mdulo pode ser representado por um pacote, um arquivo, uma classe, ou
um mtodo, a depender da granularidade escolhida para anlise. Neste caso, dizse que um mdulo classificado como SIM est propenso ao aparecimento de
defeitos, assim como um mdulo classificado como NO, no est propenso ao
aparecimento de defeitos;

Quantidade de defeitos em um mdulo. Em mdulos onde esperado o


aparecimento de defeitos, pode-se querer estimar a quantidade desses defeitos
em cada mdulo;

Densidade de defeitos na aplicao. A densidade de defeitos pode ser


representada pela quantidade de defeitos por linha de cdigo;

Quais mdulos apresentam a maior quantidade de defeitos na aplicao.


Com essa informao, o time de testes pode priorizar seus esforos em mdulos
com propenso a maior quantidade de defeitos.
10

Apesar das vantagens e possibilidades, ainda so poucas as empresas de menor porte


que tm adotado estas tcnicas, em parte devido aos conhecimentos especializados
necessrios e ao elevado esforo de investigao. Estudos sobre predio de defeitos so
mais difundidos na indstria, apresentando diversos casos prticos em grandes empresas
como a Microsoft (Nagappan et al., 2005), a Ericcson (Tomaszewski et al., 2006) e a
IBM (Moser et al., 2008) que buscam aplicar tcnicas de predio de defeitos.

2.2.1 Mtricas de Software


A Engenharia de Software comumente utiliza mtricas, tanto na fase de
desenvolvimento quanto na fase de manuteno, para obter dados que possam mensurar
caractersticas do software (Lino, 2011). Diversas mtricas de software so descritas em
(Meirelles, 2008).
Uma mtrica um mtodo para determinar se um sistema, componente ou processo
possui certo atributo (IEEE Std 610.12, 1990). Sabendo que o software um produto
intangvel, as mtricas de software permitem a mensurao de determinadas
caractersticas de qualidade do software. Essas caractersticas, por exemplo, podem ser
utilizadas para prever custos de manuteno ou melhorias na qualidade do cdigo(Lino,
2011).
Na busca de estimar custos e prazos, alm de auxiliar na melhoria da qualidade do
produto final, vrias pesquisas cientficas como de McCabe (1976) e Halstead (1977)
buscam avaliar a utilizao de mtricas durante o desenvolvimento do software (Lino,
2011).
McCabe (1976) apresenta uma coleo de quatro mtricas de software, a saber:
complexidade ciclomtica, complexidade essencial, complexidade do desenho do
mdulo e quantidade de linhas de cdigo. Conhecidas como mtricas de complexidade
de McCabe, elas so comumente utilizadas para prever a confiabilidade e a
manutenibilidade de um software, podendo auxiliar na identificao de possveis pontos
crticos no software, com alta instabilidade (Lino, 2011).
A complexidade ciclomtica uma mtrica que calcula a complexidade lgica de um
sistema ou mtodo. Seu valor mnimo 1 (um) e no existe limite mximo. Quanto
menor o valor, menos complexo o mtodo. Atravs do teste de caminho, a
complexidade ciclomtica mede o nmero de caminhos independentes e prov um
limite mximo de testes necessrios para garantir que todos os statements sejam
executados, pelo menos uma vez (Lino, 2011) (Takaki, 2009). Esta e outras mtricas de
McCabe tm sido utilizadas para identificar e minimizar cdigo no estruturado, decidir
sobre o nmero de testes necessrios para uma cobertura total das hipteses de
execuo, eliminar lgica redundante e para restringir a complexidade de mdulos
produzidos a um nvel aceitvel (Abreu, 1992).
Halstead (1977) props um conjunto de mtricas calculadas a partir de mtricas
primitivas. Expresses foram desenvolvidas para calcular o tamanho do programa, o
volume de um algoritmo, o volume real em bits, o nvel do programa (medida de
complexidade), o nvel de linguagem, e outras caractersticas(Lino, 2011). Em
determinadas bases de dados disponibilizadas pela Predictive Models In Software
Engineering (PROMISE, 2012), as mtricas, a saber, nmero de operadores, nmero de
operandos, quantidade de linhas, quantidade de linhas de comentrios e quantidade de
linhas em branco, complementam as variveis necessrias para identificao de
mdulos que apresentam defeitos. Essas medidas derivam outras mtricas tambm
11

utilizadas nas bases de dados: volume, durao do programa, dificuldade, inteligncia,


esforo e tempo estimado para escrever o programa.
O volume informativo de um mdulo de um programa (medido em bits) calculado
em funo do seu comprimento e do seu vocabulrio, correspondendo ao nmero de
"tokens" (operadores e operandos) em um programa, e dado pela seguinte equao:
  =    ! log ' () 

(Equao 2.1)

Onde Comprimento o somatrio das instncias de (operadores + operandos) utilizados


e Vocabulrio o somatrio (operadores + operandos) diferentes utilizados (Abreu,
1992).

2.3 Modelos Preditivos vs. Mtodos Convencionais.


Os avanos na qualidade de software so possveis 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 mtodos, tcnicas e ferramentas para analisar, projetar e gerenciar o
desenvolvimento e manuteno de software criado com base no conhecimento de
especialistas, podendo ser aplicados em etapas de desenvolvimento de software, como
Anlise e Projeto de Sistemas, Implementao e Teste de Software (Freitas F. et al,
2010).
Entretanto, em alguns casos, a comunidade cientfica especializada que desenvolve
mtodos convencionais no resolvem determinados problemas durante o processo de
desenvolvimento de software, ou resolvem de modo insatisfatrio, principalmente, em
problemas complexos, cuja soluo pertence a um conjunto grande de possveis
solues. Visando resolver esses tipos de problemas, necessria complementar a
utilizao das tcnicas convencionais com solues automatizadas que possam
eficientemente tratar os diversos aspectos relacionados ao problema (Freitas F. et al.,
2009). Esse conjunto de solues automatizadas baseado em mtodos de Inteligncia
Computacional pertencente rea denominada Otimizao em Engenharia de Software,
tambm conhecida como Search-based Software Engineering (SBSE).
A SBSE o ramo da Engenharia de Software (ES) dedicado resoluo automtica
de problemas complexos dessa rea, tratando-os como problemas de busca. Em vez de
construo de casos de teste, cronogramas de projetos, conjuntos de requisitos,
desenhos, arquiteturas e outros artefatos de software de engenharia, SBSE simplesmente
vai procur-los. O espao de busca o espao de todas as possveis solues candidatas.
Por isso , tipicamente, enorme, tornando impossvel enumerar todas as solues. No
entanto, guiado por uma funo de aptido que distingue boas solues das ruins, podese automatizar a busca de solues boas neste espao de busca. A SBSE tem assistido a
um aumento dramtico no interesse e atividade nos ltimos anos, o que resulta em
vrias pesquisas detalhadas de tcnicas, aplicaes e resultados (Harman, 2010).
Com sistemas cada vez mais complexos importante aplicar abordagens automticas
para resoluo de problemas de ES. Por vrios fatores, as solues de SBSE para os
problemas de ES so competitivos com os produzidos por seres humanos (Harman,
2010). As solues convencionais sofrem com problemas de escalabilidade em grandes
projetos, enquanto aplicao de tcnicas de IC escalvel, dado o aumento no poder de
processamento. Outro benefcio a independncia, isto , resultados so gerados a partir
de anlises ausentes de qualquer vcio ou pr-conceitos (Souza, 2009).
12

SBSE atraente por causa da maneira que permite que os engenheiros de software
equilibrem a busca no espao de soluo, com restries conflitantes e concorrentes,
utilizando dados caracterizados por rudos, incompletos e apenas parcialmente precisos,
situao tambm enfrentada na implantao de modelos preditivos (Harman, 2010).
Segundo Zhang et al. (2010), em comparao com certos relatrios prticos de
norma industrial, modelos preditivos so melhores do que os seres humanos quando a
tarefa identificar quais mdulos vo exigir ainda mais garantia de qualidade. Estudos
relataram que modelos preditivos tiveram probabilidades1 de deteco (recall) e
probabilidades de falso alarme (PF) de (recall, pf) = (71%, 25%), em mdia. Estes
valores so maiores do que os resultados conhecidos a partir de manual de mtodos de
inspeo.
Predio de defeito tambm pode ser mais rpido do que os mtodos intensivos
humanos. Caractersticas estticas de cdigo podem ser automaticamente extradas com
menor custo a partir do cdigo fonte, mesmo para sistemas muito grandes, em contraste
com outros mtodos, como revises manuais de cdigo de mo-de-obra intensiva.
Dependendo dos mtodos de avaliao de 8-20 LOC / minutos, onde LOC significa o
nmero de linhas de cdigo, pode ser inspecionado e este esforo se repete para todos os
membros da equipe de reviso, a qual pode ser to grande como quatro ou seis.
Alm disso, h relatos industriais, onde este estilo de previso de defeito foi
encontrado de maneira eficaz por setor:

A tecnologia de preveno de defeito foi comercializada na ferramenta Predictive2


e vendido nos Estados Unidos. Uma empresa usou a ferramenta para gerenciar o
software de segurana crtico para os avies caa (o software controla uma bateria
de on de ltio, que pode sobrecarregar e explodir). Aps a aplicao da ferramenta
mais cara para cobertura de cdigo estrutural, a empresa executou o Predictive na
mesma base de cdigo. Predictive produziu resultados consistentes com as
ferramentas mais caras sendo capaz de processar mais rapidamente uma base de
cdigo maior que a ferramenta mais cara (Turner, 2006).

Figura 2.2: Ferramenta Predictive

A probabilidade de deteco (recall) e falso alarme (pf) so usadas para medir a exatido de um modelo
de predio de defeitos.
2

O conjunto de produtos Predictive analisa e prev defeitos em projetos de software, permitindo que o
usurio identifique as melhores mtricas e limites para aplicar em um ou mais projetos.

13

Preditores de defeito desenvolvidos na NASA (Menzies et al., 2007) tm sido


aplicados para as empresas de desenvolvimento de software em outro pas (na
Turquia). As equipes de inspees, concentradas nos mdulos que desencadeiam
os preditores de defeito, encontraram 70% dos defeitos, utilizando 40% do esforo
(medido em horas de trabalho) (Tosun et al., 2009).
Um estudo posterior sobre o software turco concluiu que muito cdigo precisa ser
inspecionado quando se utiliza a seleo aleatria em vez da seleo via
preditores de defeitos. Usando testes aleatrios, 87% dos processos teriam de ser
inspecionado, a fim de detectar 87% dos defeitos. No entanto, se o processo de
inspeo estava restrito a 25% dos arquivos que acionam os preditores de defeito,
em seguida, 88% dos defeitos podiam ser encontrados. Isto , o mesmo nvel de
deteco de defeitos (aps inspeo) pode ser conseguido usando (87 25)/87 =
71% menos esforo (Tosun et al., 2010).

2.4 Desafios
De acordo com Martin Shepperd (2012), nos ltimos anos tem havido um enorme
crescimento no uso de estatsticas e mtodos de aprendizagem de mquina para
encontrar sistemas de previso teis para os engenheiros de software, mais
especificamente, em prever o esforo e a durao do projeto e comportamento do
defeito. Contudo, os resultados, com freqncia, no prometem uma nica tcnica
dominante e existem interaes claramente complexas entre as tcnicas, mtodos de
treinamento e domnio do problema. Martin Shepperd (2012) afirma que ainda h
necessidade de mais estudos reproduzveis e comparveis.
A maioria das abordagens na predio de defeitos de software indutiva, no sentido
de estatstica ou mtodos de aprendizagem de mquina. So usados modelos preditivos
com base em atributos derivados da anlise de cdigo esttico e / ou mtricas de
processo, tais como dados de alterao (Shepperd, 2012).
Mark Harman apresenta, em seu trabalho, questes e grandes problemas em aberto
na construo de modelos preditivos. A conferncia PROMISE 2009 levantou quatro
desafios em forma de perguntas cujas respostas foram buscadas a partir dos trabalhos
apresentados. O carter geral das quatro perguntas significa que eles so susceptveis de
ser totalmente resolvidas no futuro prximo (Harman, 2010). As perguntas so as
seguintes:
1. Quanto de conhecimento sobre engenharia de software preciso para a
construo 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 aceitao por parte da
comunidade de ES?
Segundo Mark Harman (2010), h 11 grandes problemas em aberto da rea SBSE
para modelagem preditiva. Estes problemas em aberto so os seguintes:
1.
2.
3.
4.
5.
6.

Seleo multiobjetivo de variveis para um modelo preditivo;


Anlise pormenorizada de modelos preditivos;
Reduo do risco como meta de otimizao para modelos preditivos;
Explorao de modelos Bayesianos e Otimizao Evolucionria;
Equilibrar as propriedades funcionais e no funcionais dos modelos preditivos;
Explorar a conexo entre a funo fitness de suavizao e modelo de
interpolao;
14

7. Validao de modelos preditivos atravs da otimizao;


8. Esforo humano preditivo modelando com Otimizao Evolucionria interativa;
9. Identificar os blocos de construo de modelos preditivos eficazes;
10. Modelos preditivos como funes fitness em SBSE
11. Modelos preditivos de esforo SBSE e propriedades landscape;

2.5 Concluso
Foi apresentada, neste captulo, a rea de pesquisa denominada de Predio de
defeitos em Engenharia de Software, cujo objetivo tentar antecipar a localizao de
defeitos em uma aplicao atravs do uso de modelos preditivos.
Por se tratar de uma disciplina de engenharia, problemas com caractersticas
matemticas podem ser encontrados na Engenharia de Software (Harman, 2006).
Portanto, aspectos matemticos podem ser usados na definio de problemas de
otimizao que ocorrem durante o desenvolvimento de software. Embora esses
problemas possam ter uma elevada quantidade de solues no espao de busca, alta
complexidade estrutural do problema e existncia de restries que complicam o
processo de resoluo de forma convencional, possvel a resoluo para esses
problemas por meio de mtodos automatizados (Clarke, 2003; Harman et al., 2001).
O prximo captulo dedicado ao Reconhecimento de Padres, sendo apresentados
os mtodos de IC usados como modelos preditivos de defeitos de software.

15

CAPTULO 3

RECONHECIMENTO DE PADRES
Reconhecimento de padres (RP) um ramo da cincia que tem como meta a
classificao de objetos (padres) em um nmero de categorias ou classes. Suas tarefas
so o reconhecimento, a descrio, a classificao, e o agrupamento automtico (de
mquina) de entidades. Por isso, muitas tcnicas de reconhecimento vm sendo testadas
devido necessidade de automatizar estas tarefas (Rocha Neto A. R., 2006).
Neste captulo, com o objetivo de facilitar a compreenso do sistema proposto, so
abordados os conceitos bsicos sobre Reconhecimento de Padres e descrito o
funcionamento dos classificadores de padres estatsticos e de Redes Neurais Artificiais
(RNAs) utilizados neste projeto. Tomou-se como base para escrita os livros de
Kohonen (Self-Organizing Maps, 2001), Haykin(1999), Kosko(1992) e o artigo de
Jain(2000).

3.1 Conceitos Gerais


O projeto de um sistema de RP pode ser, de forma geral, dividido em trs etapas:
1. Aquisio e pr-processamento de dados;
2. Representao de dados;
3. Tomada de deciso, ou seja, determinar a qual classe um padro em teste
pertence.
O domnio do problema determina a tcnica de pr-processamento mais adequada,
do esquema de representao e do modelo da tomada de deciso. Um problema bem
definido e suficientemente restrito nas tarefas de reconhecimento quando as amostras
apresentam pequenas variaes para padres da mesma classe (variao intra-classe) e
grandes variaes entre padres de classes distintas (variao inter-classes). Isso conduz
uma representao compacta das amostras e uma estratgia simples para a tomada de
deciso.

Um padro representado como um vetor  = +, , ' , , . /0 , em que a representa


um vetor de atributos, com um conjunto de d caractersticas, isto , um ponto no espao
d-dimensional. O ramo de RP tem como objetivo escolher os atributos, que pertencem
aos vetores, que venham distinguir os padres em regies compactas e separadas por
classe em um espao caracterstico d-dimensional. Por isso, considerar o vetor x
pertencente a uma classe em 1 = +1, , 1' , , 12 / baseado nos valores de suas d
caractersticas. A separao correta entre os padres de diferentes classes determina a
eficcia do espao de representao (conjunto de caractersticas). A capacidade de
extrair conhecimento de um conjunto de exemplos uma caracterstica importante para
os sistemas de RP, que a partir desse processo, podem realizar a tomada de deciso.
Como podemos observar na Figura 3.1, um processo tpico de RP tem com uma das
suas etapas o mdulo de Pr-processamento, cuja funo remover rudos, normalizar
padres, ou qualquer outra operao que contribui para a definio das amostras de uma
forma compacta. Na parte de treinamento, o mdulo de extrao/seleo de
16

caractersticas procura as caractersticas adequadas


adequadas para representar os padres de
entrada, enquanto o classificador treinado usado para dividir o espao de
caractersticas, para que no modo de classificao este seja capaz de determinar a qual
classe um dado vetor ou padro de entrada pertence.
pert

Figura 3.1: modelo para o reconhecimento (semi-)


(semi automtico de padres.

Dado um padro, suaa classificao


assificao consiste em uma das seguintes formas de
aprendizado: classificao supervisionada,, em que o padro de entrada identificado
atravs de um rtulo ou etiqueta (label), indicando a qual classe pertence;
pertence e classificao
no-supervisionada, em que o padro associado a um agrupamento que aprendido
normalmente com base na similaridade entre os exemplos de treinamento,
treinamento sem o uso de
rtulos e onde o nmero de agrupamentos muitas vezes deve ser tambm determinado
(Watanabe, 1985).
Classificadores de padres tambm podem ser organizados de acordo com a forma
adotada para determinara fronteira de deciso: diretamente atravs de aproximao
geomtrica ou indiretamente baseada na densidade de probabilidade. Na aproximao
aproxi
probabilstica preciso primeiro a estimao das
as funes de densidade, e, aps isso,
construir funes discriminantes que venham especificar os limites de deciso. J na
aproximao geomtrica, os limites de deciso so
so determinados diretamente pela
otimizao de uma funo custo (Rocha Neto A. R., 2006).
Como exemplo de classificadores que permitem definir
nir a fronteira ou limite de
deciso, pode ser citado a regra de deciso de Bayes e a regra de probabilidade mxima
(que pode ser considerada um caso particular da regra de Bayes). J as redes Perceptron
Multicamadas definem diretamente essa fronteira.
fronteira Em seguida, so descritas as
caractersticas
as gerais no processo de classificao
classificao e alguns algoritmos que so aplicados
ao problema proposto.

3.2 Classificadores
lassificadores de Padro
Um classificador umaa parte do software capaz de associar uma instncia,
instncia cuja
classe inicialmente desconhecida, a uma classe
classe dentro de um conjunto de finitas
fi
possibilidades. Escolher um classificador uma tarefa difcil e essa deciso, algumas
vezes, baseada na disponibilidade do algoritmo ou no conhecimento do usurio sobre
o classificador.. Entretanto, a escolha correta deve-se basear em experimentaes
experim
com
vrios classificadores,
cadores, para que se possa utilizar o que se apresenta mais apropriado para
certo tipo de problema ou aplicao.
O processo de classificao deve utilizar um subconjunto das
as amostras disponveis.
A qualidade de um classificador
classifi
depende da quantidade de exemplos no conjunto de
17

treinamento e dos valores especficos dos padres de teste. Em paralelo, deve-se


analisar a generalizao do conhecimento adquirido, isto , o desempenho em termos de
classificao dos padres de teste que no so usados durante o estgio de treinamento.
Isso de fundamental importncia porque o sistema deve ser capaz de classificar as
amostras futuras que so, muitas vezes, diferentes das amostras usadas no treinamento.
Conseqentemente, a otimizao de um classificador para maximizar seu desempenho
no conjunto de treinamento pode no resultar no desempenho desejado para os dados de
teste.
Rocha Neto A. R. (2006) explica que uma baixa capacidade de generalizao de um
classificador pode ser atribuda a qualquer dos seguintes fatores:
1. Nmero de caractersticas grande em relao ao nmero das amostras de
treinamento (Jain et al., 1982);
2. Nmero grande de parmetros desconhecidos associados com o classificador (por
exemplo, classificador polinomial ou uma rede neural grande);
3. Classificador com elevada capacidade de classificar para o conjunto de
treinamento e baixa capacidade para o conjunto de teste, denominado sobre ajuste (over
fitting).
Geralmente, podem ser descritos trs tcnicas para o projeto de classificadores
tomando-se como base medidas de similaridade, estimativa das funes de densidade
probabilidade ou a minimizao de um critrio (por exemplo, o de erro).

3.2.1 Projeto de Classificadores


A tcnica baseada no conceito de similaridade a mais simples e intuitiva entre
outras tcnicas no projeto do classificador. Nela, as amostras do grupo de teste que so
similares devem ser classificadas como pertencentes a uma mesma classe. A mtrica
que determina a similaridade entre os padres podem ser estabelecida na comparao
entre modelos/exemplos ou minimizao de distncias. O sucesso desta tcnica depende
da escolha da mtrica e dos prottipos. No classificador que mede proximidade, usando,
por exemplo, a distncia euclidiana como mtrica, cada classe do grupo de teste
representada por um nico prottipo que o valor mdio de todos os padres de
treinamento para essa classe.
A regra do um vizinho mais prximo (One-Nearest Neighbor, 1-NN) apresenta
desempenho de classificao satisfatrio para muitas aplicaes e no necessita que
qualquer parmetro seja especificado. Portanto, pode ser usado como ferramenta de
comparao de todos os outros classificadores
A segunda categoria de classificadores utiliza uma abordagem probabilstica. Nesta
tcnica, a probabilidade posteriori 3+4 | 6/, que pode ser entendida como a
probabilidade de uma nova amostra x pertencer a uma respectiva classe 4 , pode ser
utilizada para o clculo da regra de Bayes tima, desde que as probabilidades priori
+4 / sejam conhecidas. Caso contrrio, podem ser estimadas por:
+1, / =

7,
7'
7'
, +1' / =
, , +12 / = ,
7
7
7

(Equao 3.1)

Onde N denota o nmero total de amostras e74 onmero de amostras da i-sima classe.

Outra medida de interesse a funo densidade de probabilidade condicional


(probability density function, PDF) da classe +6 |14 /, que descreve a distribuio dos
vetores caractersticos em cada umadas classes. Uma forma muito comum de denominar
18

a PDF +6 |14 / funo de verossimilhana. Definido os conceitos e com base na regra
de Bayes, para calculo da probabilidade posteriori, dada por:
3+4 |6/ =

+6 |4 /3+4 /


+6/

(Equao 3.2)

Pode-se obter a maior probabilidade posterior (maximum a posteriori probability,


regra MAP) atravs da Equao 3.3.
12 = arg max{ 3+4 |6/},
4

(Equao 3.3)

O padro classificado de acordo com a maior probabilidade posteriori de


pertencer a uma determinada classe. Das suposies feitas, vale ressaltar que
normalmente a densidade condicional das classes ou alguns dos seus parmetros so
desconhecidos e devem ser aprendidas dos padres de treinamento disponveis. Neste
caso, tem-se um problema de deciso paramtrico e uma estratgia comum para este
tipo de problema consiste em substituir os parmetros desconhecidos por seus valores
estimados (Rocha Neto A. R., 2006).
O terceiro conceito usado para projetar classificadores se refere aos que conseguem
construir as fronteiras ou limites de deciso diretamente pela otimizao de certos
critrios, tal como a medida do erro de classificao. O processo que direciona o
treinamento normalmente baseado na minimizao de um critrio como o erro de
classificao aparente ou o erro quadrtico mdio (mean squared error - MSE) entre a
sada do classificador e a sada desejada, cujo exemplo clssico desse classificador o
Discriminante Linear de Fisher (Rocha Neto A. R., 2006).
A seguir descrevem-se detalhadamente classificadores que so aplicados na tarefa de
predio de problemas, tais como: Distncia Mnima ao Centride (DMC), Naive
Bayes, K-Vizinhos mais Prximos (K-NN), K-Mdias, Modelo MADALINE e
Perceptron Multicamadas (MLP). Estes classificadores so diferentes em estrutura,
configurao de parmetros iniciais, forma de aprendizado, critrio de parada, dentre
outras coisas. Assim, a forma de avaliao e os valores que os configuram so
apresentados junto com os resultados no Captulo 6.

3.3 Classificador Distncia Mnima aos Centrides


No Classificador Distncia Mnima ao Centride (DMC), cada classe passa a ter um
nico vetor que a representa, chamado de centride. O centride de uma classe o seu
vetor mdio; ou seja, simplesmente a mdia dos valores dos atributos de vrios padres
da mesma classe. Um centride de uma classe serve como um modelo que representa o
objeto mdio daquela classe. Portanto, representa uma economia de memria porque
todos os exemplos de uma classe no precisam ser mais armazenados (Barreto G. A.,
2007).
A Distncia Euclidiana, apresentada na Equao 3.4, a mtrica usada, no projeto
proposto, para medir a proximidade de um padro desconhecido a cada centride dos
conjuntos de classes existentes no problema. A menor distncia determina a qual classe
mais provvel que esse padro desconhecido pertena.

19

?@2A4.4BCB +, )/ = DE+4 )4 /'


4G,

(Equao 3.4)

Figura 3.2: Clculo da distncia do padro  em relao s classes  ,  = , , .

O seguinte Algoritmo descreve o funcionamento do classificador DMC:

Algoritmo 3.1: Distncia Mnima ao Centride (DMC). Fonte: (Barreto G. A., 2007).

1: Calcular os centrides HI das classes em uma tabela

2: Seja JC?K um vetor cuja classe desconhecida, ou seja: LL+JC?K / = ?


3: Encontrar na tabela o centride mais prximo de JC?K .

4: Seja HI o centride mais prximo de JC?K

5: Atribuir a JC?K classe do centride mais prximo, ou seja:


LL+JC?K / = LL+HI /
6: Se a classificao for correta, usar JC?K para recalcular HI .

O passo 6 determina a atualizao do centride selecionado. Para isso, a utilizado a


seguinte equao:
HI N

+ 1Q = +1 /HI N I Q + JC?K

(Equao 3.5)

Em que  = 1/+ I + 1/ o fator de aprendizagem. Enquanto, I o total de exemplos


usados para calcular o centride antes da chegada de JC?K . HI + I / o centride antes
da chegada de JC?K e o HI N I + 1Q o novo centride com JC?K incorporado.

3.4 Classificador K-Vizinhos Mais Prximos

O algoritmo K-Vizinhos Mais Prximos (K-NN) classifica os objetos com base em


exemplos mais prximos no espao de entrada. Sabendo que existe um conjunto de
dados rotulados com N amostras dados por S = {6, , 6' , , 6C } e um padro x a ser
classificado que no pertence ao conjunto D, o funcionamento do algoritmo K-NN
consiste em atribuir a mesma classificao para o padro x ao da classe mais
20

representada nos k-vizinhos mais prximos ou k ponto mais prximos. Em outras


palavras, calculado um conjunto de distncias S L! = { , , ' , , C },   4 =
S L! ( +6, 64 / ! U 64 S. Com base nessas distncias so selecionadas as k
amostras mais prximas pertencentes ao conjunto D. Assim o padro desconhecido
classificado pelo voto da maioria de seus vizinhos, ou seja, classificado com a classe
mais comum entre os seus mais prximos (Rocha Neto A. R., 2006). O algoritmo para
K-NN apresentado a seguir:
Algoritmo 3.2: K-Vizinhos Mais Prximos (K-NN). Fonte: (Barreto G. A., 2007).
2: Seja JC?K um vetor cuja classe desconhecida, ou seja: LL+JC?K / = ?

1: Armazenar os exemplos em uma tabela

3: Encontrar na tabela os K vetores mais prximo de JC?K .

4: Seja W a classe a que pertence maioria dos K vetores.

5: Atribuir a JC?K classe da maioria dos K vetores, ou seja:


LL+JC?K / = W

6: Se a classificao for correta incluir JC?K na tabela.

usual que o clculo das distncias Dist seja feito usando a distncia euclidiana
descrita na Equao 3.4, embora outras mtricas de distncia possam ser utilizadas.
Este classificador tem como vantagens a simplicidade de implementao, ideal para
tabelas pequenas ou mdias e no requer treinamento. Alm disso, constri diretamente
a regra de deciso sem estimar as densidades condicionadas s classes, sendo uma boa
escolha para problemas de classificao em que padres prximos no espao de
caractersticas possivelmente pertencem mesma classe.
Entretanto, possui como limitaes o custo computacional alto para tabelas grandes e
a constante K usualmente obtida por tentativa-e-erro.

Figura 3.3: Exemplo de classificador K-NN.

3.5 Classificador Naive Bayes


O classificador Naive Bayes fundamentado na suposio da independncia
condicional entre os dados de entrada e o rtulo da classe e que os dados tem
distribuio Gaussiana (Webb, 2002). Considerando os dados de entrada x e o rtulo
Windice, tem-se, portanto, o seguinte modelo probabilstico:

21

+J | 14 / = X +? |14 /

(Equao 3.6)

?G,

Sendo x uma varivel contnua, conclui-se segundo a Equao 3.6, que uma
aproximao conveniente assume que, +6|14 / = 7+6, ?,4 ,  ' ?,4 / a funo de
probabilidade para uma distribuio normal de x, em que  ' ?,4 e?,4 representam,
respectivamente, o desvio padro e a mdia da e-sima caracterstica (atributo) para a isima 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 classificao.

Na fase de aprendizagem, calculam-se os valores estimados para os parmetros ?,4 e


?,4 do conjunto de treinamento. Por isso, preciso que as amostras do conjunto de
treinamento sejam separadas por grupos ou classes, e para cada conjunto de amostras de
uma determinada classe, os valores para ?,4 e ?,4 devero ser obtidos por atributo ou
componente de cada vetor, aplicando-se a Equao 3.7.
N6? ?,4 Q
+6? | 14 / =
exp ^
_ ,  = 1, 2, , ;
2 ' ?,4
2[ ?,4
1

'

(Equao 3.7)

Na fase de Classificao, so obtidos n valores para+6? |14 /, ! U  =


1, 2, , . A densidade condicional da classe +6? | 14 / para a i-sima classe tal que
obtida pelo produtrio desses valores, conforme descrito. A classe que resultar em
maior valor para a densidade condicional atribuda instncia.
Quando a entrada de dados discreta, a tabela de probabilidade condicional baseada
na quantidade de ocorrncia para o conjunto de aprendizagem determina a densidade
condicional da classe no lado direito da equao. Uma desvantagem do classificador
que a probabilidade estimada pode no ser confivel em regies onde os dados de
entrada se distribuem de forma esparsa, pois essa probabilidade baseada na freqncia
dos dados do treinamento.

3.6 Classificador K-Mdias


O K-Mdias, do ingls K-Means, um algoritmo baseado na tcnica de agrupamento
(clusterizao). Em outras palavras, encontra um nmero k de clusters (k fornecido
pelo usurio) que so representados por seus centrides (Macqueen, 1967). uma
tcnica de RP bastante utilizada devido a sua facilidade de implementao e sua ordem
de complexidade O(n), onde n o nmero de padres. Sendo um dos mais simples
algoritmos de aprendizagem no supervisionada, conseguem resolver problemas de
agrupamentos bem conhecidos (Jain et al., 1999).
Segundo Rocha Neto A. R. (2011), o objetivo do classificador separar n registros
em k agrupamentos (clusters), onde a c  a < . Os objetos so agrupados com
base em atributos / caractersticas. Cada cluster representado por um centride.
Geralmente, as coordenadas iniciais desses centrides so determinadas de forma
aleatria. Cada registro associado ao cluster, tambm conhecido como prottipo, cujo
centro est mais prximo. Essa proximidade pode ser obtida atravs de diversas
mtricas de distncia, como a Euclidiana e a de Mahalanobis. Quando todos os padres
estiverem associados a algum prottipo, os k centros so recalculados como as mdias
aritmticas dos registros de cada agrupamento. Aps encontrar os novos k centrides,
22

uma nova associao entre um padro e o centro mais prximo precisa ser realizado.
Portanto, essa etapa repetida at que as variaes no valor do centro sejam mnimas.
Matematicamente pode-se afirmar que o algoritmo K-Mdias minimiza uma funo
objetivo, neste caso, a funo erro quadrtico:
W

 = E E e6I 4 e
4G, gh ij

(Equao 3.8)

Algoritmo 3.3: K-Mdias.

1: Escolha k pontos como centrides iniciais, geralmente, de forma aleatria


2: Repeat
3:

Forme k grupos associando cada amostra a seu centride mais prximo

4:

Recompute o centride de cada cluster usando a mdia aritmtica

5: Until Centrides no apresentam mudanas


O algoritmo K-Mdias geralmente utilizado para descoberta de agrupamentos em
dados. Porm, pode-se adaptar o algoritmo para possibilitar a sua utilizao em
problemas de classificaes de padres. Aps o treinamento no-supervisionado, os
padres de treinamento so associados aos centrides mais prximos, de tal maneira que
ao final deste processo esto associados K padres a um determinado centride, em
seguida cada centride recebe o rtulo da classe com mais ocorrncias dentre os seus K
padres associados. Quando um exemplo no visto apresentado, o K-Mdias verifica
qual o centride mais prximo e ento atribui a esta amostra o rtulo deste centride.

3.7 Classificador ADALINE


Nesta seo descreveremos um tipo elementar de algoritmo adaptativo, chamado
Elemento Linear Adaptativo (ADAptive LINear Element- ADALINE), composto de
apenas um elemento processador (neurnio) linear (Barreto G. A., 2007). Mais
informaes podem ser obtidas em trabalhos como (Widrow et al., 1960; Widrow et al.,
1985; Widrow et al., 1988; Widrow et al., 1990).
O modelo ADALINE tem seus parmetros ajustados por meio de uma regra de
atualizao recursiva denominada Regra de Widrow-Hoff, tambm conhecido como
Regra Delta, ou ainda, como algoritmo de adaptao LMS (Least Mean Square)
(Barreto G. A., 2007).

Como observado na Figura 3.4, o modelo possui um vetor de entrada com 6I +!/
denotando uma componente qualquer do vetor de entrada x(t) e t indica o instante de
apresentao deste vetor ao modelo ADALINE, definido como:

6l +!/
1
6 +!/
6 +!/
6+!/ = k , o = k , o

6n +!/
6n +!/

(Equao 3.9)

23

Figura 3.4: Modelo ADALINE (Barreto G. A., 2007).

Por se tratar de um modelo com um nico neurnio, ento o vetor de sada reduz-se a
um escalar que pode assumir qualquer valor real a princpio, ou seja:

+!/ = +!/

(Equao 3.10)

Entretanto, em problemas de classificao de padres, a sada desejada assume


geralmente apenas dois valores, tal como d {1,+1}.

O vetor de pesos associado ao neurnio do modelo ADALINE, em que define


limiar (threshold ou bias) associado ao neurnio, representado da seguinte forma:

l
p
,

1 = k o = k , o
n
n

(Equao 3.11)

O vetor de pesos W e o limiar correspondem aos parmetros ajustveis do modelo


ADALINE. As etapas que compem o treinamento (ou ajuste) destes parmetros so
descritos a seguir.
Aps a apresentao de um vetor de entrada x, na iterao t, a ativao u(t) do
neurnio calculada pela seguinte exp:
n

+!/ = E I +!/6I +!/ p


IG,
n

= E I +!/6I +!/ + l +!/6l +!/


IG,
n

= E I +!/6I +!/
IGl

= r0 +!/+!/ = 0 +!/r+!/

(Equao 3.12)
24

Perceba que foi feito 6l = 1 e l = p. O superscrito T indica a operao de


transposio dos vetores. Assim, a ativao do neurnio no instante t e, simplesmente, o
produto-escalar do vetor de entrada x(t) com o vetor de pesos w(t).

Note que a ativao u(t) R pode assumir infinitos valores, das mais variadas
amplitudes. Contudo, para algumas aplicaes, tal como classificao de padres, a
sada s deve assumir um nmero finito de valores possveis. D-se o nome de
quantizao escalar ao processo de transformar a sada contnua u(t) em uma sada
discreta y(t) {1, 1}.
Uma funo de quantizao escalar bastante utilizada em RP construda com a
funo sinal (sign function), definida como:

+1, L +!/ 0w
+!/ = L s ++!// = t
1, L +!/ < 0

(Equao 3.13)

No instante t, a preciso instantnea do modelo ADALINE, aproximando do


mapeamento F(), medida com base no Erro Quadrtico x+!/ com +!/ = +!/
+!/ sendo o erro associado apresentao do par entrada-sada atual N6+!/, +!/Q.

1
1
x+!/ =  ' +!/ = + +!/ +!//
2
2

(Equao 3.14)

Com W sendo o conjunto de todos os parmetros ajustveis do modelo (pesos e


limiares), define-se a seguir uma medida global do desempenho do modelo ADALINE,
chamada de Erro Quadrtico Mdio, com base nos erros produzidos para todos os
pares entrada-sada {x(t), d(t)}:
}

1
1
1
yz{| =
E y+!/ =
E +!/ =
Ez +!/ +!/|
27
27
27
~G,

~G,

~G,

(Equao 3.15)

Os parmetros do modelo ADALINE devem ser especificados a fim de que este


produza sempre uma sada y(t) bem prxima da sada esperada d(t) para um vetor de
entrada x(t) qualquer. Em outras palavras, o funcional J(t) deve ter o menor valor
possvel para aquele conjunto de dados especfico. O procedimento iterativo de se
chegar aos parmetros timos pode ser encontrado em (Barreto G. A., 2007).
O processo de ajuste dos pesos, tambm chamado de fase de aprendizado ou fase de
treinamento do modelo ADALINE equivale a um aprendizado que depende de um sinal
de sada conhecido previamente, ou seja, depende de uma sada desejada d(t) fornecida
por um supervisor externo a fim de guiar o processo de ajuste dos parmetros,
conforme ilustrado na Figura 3.5 Por este motivo, este tipo de aprendizado chamado
tambm de aprendizado supervisionado.

25

Figura 3.5: Aprendizado Supervisionado (Barreto G. A., 2007).

3.8 Classificador MADALINE


O modelo ADALINE, na forma como foi descrito anteriormente, apresenta uma
nica sada. Um modelo ADALINE com mltiplas sadas passa a ser chamado de
MADALINE (Multiple ADALINE) (Barreto G. A., 2007).

Com 4I referindo-se ao peso que conecta a j-sima entrada ao i-simo neurnio,
para o caso de haver M sadas, as regras de ativao e de sada para um dado exemplo
de treinamento {x(t), d(t)} so escritas como:
n

4 +!/ = E 4 +!/6I +!/ = r4 +!/0 +!/


IGl

4 +!/ = 4 +!/.

(Equao 3.16)

Com a taxa (passo) de aprendizagem sendo 0 <  1, a regra LMS aplicada aos
pesos 4I passa a ser escrita como:

4I +t + 1/ = w +t/ + e +t/x +t/

(Equao 3.17)

4 +t + 1/ = +t/ + e +t/+t/

(Equao 3.18)

Na forma vetorial3, a Equao 3.17 pode ser escrita da seguinte forma:

Sendo 4 a sada desejada para o neurnio i e 4 a sada do neurnio i, a avaliao do


aprendizado do modelo MADALINE continua sendo feita atravs do EQM, agora
calculado levando-se em considerao os erros de todos os M neurnios de sada:
}

1
1
1
yz{| =
E y+!/ =
E E +!/ =
E Ez +!/ +!/|
27
27
27
~G,

~G, 4G,

~G, 4G,

(Equao 3.19)

A forma vetorial particularmente til na implementao de modelos de redes neurais atravs de


softwares como Matlab, Octave ou Scilab.

26

3.9 Classificador MLP


Um classificador MLP (Multilayer Perceptron), tambm conhecido por rede MLP
usa o conceito de neurnio biolgico para definir uma camada de entrada (dendritos)
que recebe os vetores de atributos, e uma ou mais camadas intermedirias (conexes
sinpticas), compostas por neurnios somadores com funo de ativao no linear
(corpo celular) e uma camada de sada (axnio), tambm constituda por neurnios
somadores (que podem ser lineares ou no) (Rocha Neto A. R., 2006).

Figura 3.6: Neurnio Biolgico (Barreto G. , 2008).

O que habilita a rede para obter gradualmente as caractersticas mais significativas


do espao de entrada so as camadas intermedirias. Os neurnios esto interligados
entre si por diferentes camadas, onde cada uma delas est ligada a um valor numrico
chamado peso sinptico. Portanto, essas sinapses da rede caracterizam alto grau de
conectividade dessas redes(Rocha Neto A. R., 2006).

Figura 3.7: Modelo Completo do Neurnio Artificial (Barreto G. , 2008).

As equaes e operaes exibidas adiante determinam uma arquitetura de rede neural


MLP com apenas uma camada oculta de neurnios e uma aprendizagem por meio do
algoritmo de retropropagao do erro (Error Backpropagation). A Figura 3.8 exibe a
arquitetura geral de redes supervisionadas, como a MLP, constituda de uma camada
oculta e neurnios lineares na sada.

27

Figura 3.8: Arquitetura geral de uma rede neural supervisionada (Rocha Neto A. R., 2006).

A Equao 3.20 representa o vetor de pesos associado ao i-simo neurnio da


camada escondida (camada intermediria), onde p4 o limiar associado ao neurnio i:
4l
p4
4 = =
4C
4C

(Equao 3.20)

Wl
pW

W =
=
WC
WC

(Equao 3.21)

Os neurnios desta camada so chamados de neurnios escondidos porque no tem


acesso direto sada da rede MLP, em que so calculados os erros de aproximao. De
forma parecida, a Equao 3.21 apresenta o vetor de pesos associado ao k-simo
neurnio da camada de sada, em que pW o limiar associado ao neurnio de sada k.

3.9.1 Treinamento da Rede MLP

A aprendizagem da rede MLP acontece em dois sentidos: um direto e outro reverso.


O treinamento da rede MLP no sentido direto consiste no clculo das ativaes e
sadas de todos os neurnios da camada oculta e de todos os neurnios da camada de
sada. Portanto, a informao est se propagando no sentido direto, uma vez que o
fluxo de sinais (informao) transmitido dos neurnios de entrada para os neurnios
de sada, passando apenas pelos neurnios da camada intermediria (camada
escondida).
    !     !         

A Equao 3.22 exibe a expresso usada para calcular as ativaes dos neurnios da
camada oculta, aps receber um vetor de entrada x, na iterao t. O smbolo T denota a
operao de transposio dos vetores e q indica o nmero de neurnios da camada
escondida.
C

4 +!/ = E 4I +!/6I +!/ = r04 +!/+!/,


IGl

= 1, 2, , U

(Equao 3.22)

28

O prximo passo calcular as sadas correspondentes usando a Equao 3.23:


n

4 +!/ = 4 E 4I +!/6I +!/ = 4 zr04 +!/+!/|


IGl

(Equao 3.23)

Em que pode assumir uma das expresses apresentadas a seguir:


4 z4 +!/| =

4 z4 +!/| =

1
, +sL! (/
1 + 6z 4 +!/|

1 6z 4 +!/|
, + s ! ) (/.
1 + 6z 4 +!/|

(Equao 3.24)

(Equao 3.25)

Para a prxima etapa preciso repetir as operaes das Equaes 3.22 e 3.23 para os
neurnios da camada de sada.

W +!/ = E W4 +!/4 +!/ ,

a = 1, 2, ,

4Gl

(Equao 3.26)

Em que 1 a quantidade de neurnios de sada.

Finalmente, as sadas dos neurnios da ltima camada so calculadas pela equao a


seguir, onde funo de ativao W pode assumir uma das expresses definidas nas
Equaes 3.24 e 3.25.

W +!/ = W zW +!/| = 4 E W4 +!/4 +!/


4Gl

(Equao 3.27)

O treinamento da rede MLP no sentido reverso consiste no clculo de gradientes


locais e o ajuste dos pesos de todos os neurnios da camada de sada e da camada
escondida. A informao se propaga no sentido reverso porque o fluxo de informao
transmitido dos neurnios de sada para os neurnios da camada intermediria (camada
escondida).
         L( 

O primeiro passo do sentido reverso, aps os clculos das ativaes e sadas no


sentido direto, calcular os gradientes locais W +!/ dos neurnios da camada de sada
usando a Equao 3.28, onde W +!/ simboliza o erro entre a sada desejada W +!/ para
o neurnio k e sada gerada por W +!/, expresso pela Equao3. 29.
W +!/ = W +!/ zW +!/|,

a = 1, 2, ,

W +!/ = W +!/ W +!/

(Equao 3.28)

(Equao 3.29)

A derivada +W +!// na Equao 3.28 pode ser expressa de diferentes formas de
acordo com a funo de ativao adotada. apresentado, a seguir, duas possibilidades:
29

zW +!/| = W +!/z1 W +!/|, L zW +!/| +funo logstica/

1
zW +!/| = z1 'W +!/|, L zW +!/| +tangente hiperblica/
2

(Equao 3.30)
(Equao 3.31)

Na segunda etapa do sentido reverso, so calculados os gradientes locais 4 +!/ dos


neurnios da camada oculta, em que a derivada +W +!//, tambm, calculada
conforme as Equaes 3.30 e 3.31.
4 +!/ =

z4 +!/| E W4 +!/ W +!/,


WG,

= 1, 2, , U

(Equao 3.32)

Finalmente, no ltimo passo ocorre a atualizao ou ajuste dos parmetros (pesos


sinpticos e limiares) da rede MLP com uma camada oculta. Na camada de sada
utilizada a seguinte regra de atualizao dos pesos W4 :
W4 +! + 1/ = W4 +!/ + W4 +!/ = W4 +!/ + W +!/4 +!/

(Equao 3.33)

4I +! + 1/ = 4I +!/ + 4I +!/ = 4I +!/ + 4 +!/6I +!/

(Equao 3.34)

Na camada oculta, a regra de atualizao dos pesos, 4I , dada pela seguinte
equao, tal que  representa a taxa de aprendizagem:

3.9.2 Rede MLP na classificao de padres

No momento da classificao de padres, muito importante adotar, de maneira


correta, a quantidade de neurnios e a faixa de valores para as suas sadas na camada de
sada, pois o desempenho pode variar significativamente, alm disso, o ponto inicial
em que os padres sero rotulados pela rede (Rocha Neto A. R., 2006).
Rocha Neto A. R. (2006), exemplifica um problema de classificao em que existem
duas classes distintas: 1,  1' . Duas estratgias podem ser utilizadas; onde na primeira
estratgia um nico neurnio na camada de sada com funo de ativao hiperblica
escolhida; e na segunda estratgia, a quantidade de neurnios idntica a quantidade de
classes com funo de ativao hiperblica ou logstica.

Figura 3.9: Exemplo de classificao (Barreto G. , 2008).

Ter um nico neurnio na camada de sada usando a funo de ativao Hiperblica


para assumir valores de sada no intervalo [-1,+1], significa que os padres recebero
respectivamente, como rtulo, os valores -1 ou +1 para as classes , e' .
30

Consequentemente, um arredondamento ser aplicado no final da sada , +!/, com o


objetivo de obter unicamente trs valores: -1 ou +1, onde cada valor est associado
respectivamente com as classes , e ' .

Na segunda estratgia, a quantidade de neurnios na camada de sada igual


quantidade de classes, ou seja, no exemplo citado sero trs neurnios na camada de
sada. Cada valor de sada W +!/ pertence ao intervalo [-1, +1], tendo os seguintes
rtulos de treinamento usando a funo Hiperblica:


+1
, = 1 =
2
1

' =

,
1
=
'
+1

(Equao 3.35)

(Equao 3.36)

Tal que I representa a classe do padro e j o ndice em que o valor na


representao assume o maior valor. O rtulo do padro na classificao ter valor +1
para a sada W +!/ de maior valor e -1 para as demais. De forma semelhante, atribui-se
a classe I para o padro de teste, em que j o ndice de maior valor entre as sadas.

Utilizando dessa vez, a funo de ativao Logstica na segunda estratgia, cada


sada W +!/ desses neurnios passa a assumir os valores pertencentes ao intervalo [0,1].
Nesse caso, os padres de treinamento so rotulados na seguinte forma:

, =

' =

1
1
=
2
0

,
0
=
'
1

(Equao 3.37)

(Equao 3.38)

Tal que I representa a classe do padro e j o ndice em que o valor na


representao assume o maior valor. O rtulo do padro na classificao ter valor 1
para a sada W +!/ de maior valor e 0 para as demais. De forma semelhante, atribui-se a
classe 1I para o padro de teste, em que j o ndice de maior valor entre as sadas.

3.10 Concluso

Este captulo apresenta algoritmos para os classificadores que so implementados e


avaliados neste Trabalho de Concluso de Curso, a saber, Distncia Mnima ao
Centride (DMC), k-Vizinhos mais Prximos (K-NN), Naive Bayes, K-Mdias, Modelo
ADALINE, MADALINE e Rede MLP para problemas de duas ou mais classes.
O desempenho desses algoritmos analisado e comparado entre si e, por isso,
conhecimentos bsicos sobre o funcionamento destes algoritmos de grande
importncia na compreenso dos mtodos de classificao que so utilizados neste
trabalho.
O captulo seguinte dedicado apresentao da estratgia de classificao com
opo de rejeio.
31

CAPTULO 4

CLASSIFICAO COM OPO DE


REJEIO
Em problemas de classificao automtica de padres por meio da aprendizagem
supervisionada, classificar significa atribuir um valor (classe) a um determinado padro.
Se o conjunto de classes possveis for constitudo apenas por dois elementos, ento o
problema do tipo binrio.
Geralmente, um classificador define em um problema binrio uma sada y = +1 ou y
= 1 com base em estimativas de probabilidades a posteriori p(Ci | x), para um dado
vetor de entrada x, mesmo quando a diferena entre os valores das probabilidades a
posteriori das classes pequena. Isso resulta em uma automatizao das decises mais
difceis4 podendo conduzir a predies erradas e, portanto, elevao do erro de
classificao (Rocha Neto A. R., 2011).
comum em problema binrio, rotular os vetores de entrada x com valor bom (+1)
ou ruim (1), ou mesmo como normal (+1) ou anormal (1). Porm,
interessante em muitos ambientes que tais sistemas rejeitem casos crticos, evitando
maior confuso e delegando-os assim para a avaliao de um especialista. Nesse
sentido, uma nova classe pode ser definida, chamada de classe de rejeio, tal que seus
padres dispem-se na regio entre as classes com valor bom e ruim (ou normal e
anormal) (Rocha Neto A. R., 2011). A Figura 4.1, obtida de (Sousa, Mora, &
Cardoso, 2009), exibe um classificador binrio com opo de rejeio.

Figura 4.1: Classificador Binrio com opo de Rejeio

Mais de dois elementos em conjunto de classes possveis significa que um


problema multi-classe. Contudo, problemas reais de classificao envolvem,
geralmente, uma quantidade maior de classes possveis, isto , muitas vezes um
problema multi-classe. Por isso, existem abordagens para decompor os problemas multiclasse em problemas binrios (Almeida E. D., 2010). A Figura 4.2, obtida de (Almeida E.
, 2010), exibe um classificador multi-classe com opo de rejeio.
4

Decises em que as probabilidades a posteriori encontram-se muito prximas ao limiar.

32

Figura 4.2: Classificador Multi-classe com opo de Rejeio

Na tese de (Rocha Neto A. R., 2011) so apresentadas as abordagens que se baseiam


em (i) um classificador padro; (ii) em dois classificadores independentes; e (iii) em um
classificador com opo de rejeio embutida.
Neste trabalho, ser utilizada a abordagem de um classificador padro em problemas
binrios. Os fundamentos tericos necessrios ao completo entendimento dos
classificadores propostos neste captulo encontram-se nos trabalhos de (Chow, 1970),
(Fumera et al, 2002), (Cardoso et al, 2007), (Rocha Neto A. R., 2011) e (Almeida E. ,
2010).

4.1 Fundamentao Terica


A medida mais utilizada para avaliar o desempenho de sistemas de RP a taxa de
erro de um classificador. Esse valor a razo entre o nmero de decises errneas pelo
total de decises. Outra medida importante, porm bem menos utilizada, a taxa de
rejeio, definida como a quantidade de decises rejeitadas em relao ao nmero total
de decises realizadas.
Um erro significa que um padro de uma determinada classe foi classificado como
pertencente outra classe. Quando o sistema de reconhecimento evita tomar uma
deciso, dito que o padro foi rejeitado. Em geral, esse padro rejeitado
posteriormente avaliado por um especialista em um exame minucioso. Uma descrio
mais adequada do desempenho de um sistema de tomada de deciso dada por um
compromisso entre a sua taxa de erro e a sua taxa de rejeio (trade off error-reject)
(Chow, 1970).
Os erros so inevitveis devido s incertezas e aos rudos inerentes s tarefas de
reconhecimento de padres. A opo de rejeio serve para evitar erros excessivos
como consequncias de tomadas de deciso difceis, convertendo, assim potenciais erros
em rejeio. No entanto, h tambm a possibilidade da classificao com opo de
rejeio ser utilizada em algumas decises potencialmente corretas, ou seja,
convertendo-as em rejeio. Como os custos de errar e rejeitar raramente esto na
proporo um-para-um, ento preciso analisar o desempenho de predio para
diferentes custos de rejeio, de tal forma, que permita escolher o melhor classificador
com base no desempenho desejvel ou mesmo em uma taxa de rejeio aceitvel, sendo
esta escolha dependente do tipo de problema a ser abordado.

4.1.1 Regra de Chow


Chow possui vrias contribuies relacionadas a este tema de trabalho. Uma de suas
contribuies a regra de Chow para a rejeio de uma dada instncia.

33

Em uma classificao com opo de rejeio, uma regra de deciso considerada


tima quando uma determinada taxa de rejeio (ou probabilidade de rejeio)
minimiza a taxa de erro (ou probabilidade de erro). A regra de deciso tima deve
recusar um determinado padro quando o maior valor das probabilidades a posteriori
menor do que algum limiar (Chow, 1957).
Com T [0,1], um dado x rejeitado na regra de Chow, se:

max 3+W |6/ = 3+4 |6/ <

(Equao 4.1)

No entanto, o padro x aceito e associado classe 4 , se:

max 3+W |6/ = 3+4 |6/

(Equao 4.2)

WG,.}

WG,.}

O espao de caractersticas subdividido em 7 + 1 regies, ondea regio de rejeio


SC definida de acordo com a Equao 4.1, enquanto a regio de deciso Sl , , SC,
definida atravs da Equao 4.2. Com +6/ sendo uma funo densidade de
probabilidade, a probabilidade de um dado ser recusado pode ser calculada na seguinte
forma:

3+ / = +6/ 6

(Equao 4.3)

Ao aceitar um padro x, a classificao correta define a preciso do classificador


como a probabilidade condicional de um dado, e representada pela Equao 4.4:
3( L = 3+(! | ( !/

3+(!/
3+(!/ + 3+/

(Equao 4.4)

Chow mostrou que a taxa de rejeio em funo do limiar de rejeio suficiente


para descrever o desempenho do sistema de reconhecimento. Na Figura 4.3, obtida de
(Rocha Neto A. R., 2011), mostrado um caso tpico deste tipo de curva. As regies
representam a taxa de erro quando nenhuma rejeio permitida (a soma das duas reas
hachuradas), ou ento a regio que representa a taxa de erro quando so permitidas
rejeies (regio hachurada superior) (Chow, 1970).

Figura 4.3: Curva hipottica de compromisso entre o erro e a rejeio

34

4.2 Classificao com Opo de Rejeio


Na classificao binria, o espao das caractersticas dividido em duas regies pelo
classificador desenvolvido, onde cada regio representa uma das classes (Veja a Figura
4.1).
O classificador binrio com opo de rejeio pode ser implementado atravs de trs
diferentes abordagens, a saber: (i)
( ) usando apenas um classificador; (ii)
( usando dois
classificadores independentes; e (iii)
( ) usando um classificador com opo de
d rejeio
incorporada na regra de aprendizado. O presente trabalho adota a primeira abordagem
(um nico classificador padro) para a implementao de um classificador com opo
de rejeio, conforme descrito em mais detalhes a seguir.

4.2.1 Abordagem um Classificador Padro


Neste tipo de abordagem,
abordagem um padro rejeitado se o mximo das duas
probabilidades posteriori for menor que um determinado limiar,
limiar ou seja,
max= +, | / , +c, | // > d . Pode-se
se definir o limiar de rejeio usando uma
funo de sada monotnica se o classificador no fornecer sadas probabilsticas.
probabilstica A
regio de rejeio definida aps a fase de treinamento do classificador, definindo
valores de limite adequados sobre a sada do classificador (Sousa, Mora, & Cardoso,
2009); (Rocha Neto A. R., 2011).
2011) Para obter o limiar timo para um valor especfico de
Wr, busca-se minimizar:

min =+t/ O 1 # +t/>


Hanczar et al. (2008) apresenta um processo de otimizao do limiar
lim de rejeio.
Conforme ilustrado na Figura 4.4 obtida de (Rocha Neto A. R., 2011),, esta
e abordagem
leva a uma situao em que no h interseo entre as superfcies
superfcies de deciso (Sousa,
Mora, & Cardoso, 2009).

Figura 4.4: Um nico classificador binrio e as regies de deciso

4.2.2 Medidas de Rejeio


Para classificadores baseados
baseado na quantizao vetorial, tal como K-Mdias,
Mdias, preciso
calcular uma medida de impuridade
imp
(ou heterogeneidade) da distribuio das classes
dos padres mapeados.. A medida escolhida neste trabalho o ndice de Gini que
representa a desigualdade
esigualdade de uma
u
distribuio (Xu, 2004). Esse critrio de deciso
busca minimizar a impuridade de cada prottipo,, sabendo que um registro estar com
valor de impuridade mxima quando os registros esto igualmente
gualmente distribudos entre
todas as classes e estar com valor mnimo de impuridade quando todos os registros
35

pertencem mesma classe (Halmenschlager, 2002). Seja S um conjunto de dados com n


registros, cada um com uma classe 4 , ento o ndice de Gini de S ser:
(  s +/ = 1 Ez3+4 | /]
2

(Equao 4.5)

4G,

Em que 3+4 | / representa a probabilidade relativa da classe 4 em S e c a


quantidade de classes. Todavia, a Equao 4.5 pode ser adaptada aos classificadores
neurais (Rocha Neto A. R., 2011):
2

(  s = 4 = 1 E[3NI e4 /]

(Equao 4.6)

IG,

Como pode ser observado na Equao 4.6, c representa o nmero de classes e


3NI e4 / representa a probabilidade da j-sima classe para o i-simo neurnio. A
probabilidade 3NI e4 / calculada como:
3NI e4 /

4I
4

(Equao 4.7)

Em que 4I o nmero de exemplos da j-sima classe mapeados no i-simo neurnio


4 o nmero total de exemplos mapeados no i-simo neurnio.

Para classificadores como o MLP, pode-se considerar a sada da rede como uma
estimativa da probabilidade a posteriori p(Ci | x), sendo assim, no h a necessidade de
calcular o ndice de Gini quando se utiliza um classificador neural.

4.2.3 Classificador K-Mdias com opo de rejeio


Os mtodos com capacidade de rejeio geram um intervalo de valores a partir do
qual se deve rejeitar uma instncia ou padro. No caso do K-Mdias, de acordo com
ndice de gini de um aglomerado, o padro ser rejeitado ou no. O padro ser
rejeitado se o ndice de gini encontrado pertencer a esse intervalo de valores; caso
contrrio, ser classificado normalmente. Procedimento parecido para os classificadores
neurais; o que muda que no utilizado o ndice de gini, e sim, o valor de ativao da
camada de sada. O padro somente ser rejeitado se o valor de ativao estiver dentro
desse intervalo de rejeio.
Para permitir o entendimento do processo de classificao com opo de rejeio,
apresentado o trecho de cdigo do algoritmo K-Mdias. O Algoritmo 4.1 apresenta a
classificao com opo de rejeio no algoritmo K-Mdias.
Algoritmo 4.1: K-Mdias com opo de Rejeio
2: Se (   !!  [   , 1|

1: Procurar o prottipo com centro mais prximo do padro que seria classificado
3:

Ento rejeitar, isto , no classificar

4: Caso contrrio, classificar.


36

Como se observa nos Algoritmos 4.1 e 4.2, o parmetro    usado para


determinar o intervalo de rejeio. Para o classificador K-Mdias,
Mdias, o parmetro   
varia dentro do intervalo [0; 1] com     0,02.

4.2.4 Classificador MLP com opo de rejeio


Como foi citado na seo 4.2.2, para o classificador MLP basta considerar a sada da
rede como uma estimativa da probabilidade a posteriori p(Ci | x). Em classificadores
neurais, o parmetro  
   varia dentro do intervalo [0; 0.5] com    
0,05 quando
quando se utiliza a Funo Sigmide Logstica.
Logstica O Algoritmo 4.2 apresenta o
algoritmo de classificao com opo de rejeio implementada no classificador MLP.
Algoritmo 4.2: MLP com opo de Rejeio

1: Calcular a ativao do neurnio de sada, aps apresentar os valores de entrada na


camada de entrada.
2: Se a !  z 
   F    ,    O    ]
3:

Ento rejeitar, isto , no classificar.

4: Caso contrrio, classificar.


A sada final adotada de cada neurnio da
d camada de sada binria, ou seja, 0 ou 1.

Essa sada vai depender do   da funo de ativao adotada. O trabalho utiliza a
Sigmide Logstica como funo de ativao e, portanto,     0.5
5.

4.2.5 Curva AR
Em
m casos de classificao com opo de rejeio, a preciso tambm
tamb depende da
taxa de rejeio. Parece provvel
provvel que diferentes taxas de rejeio tm efeitos diferentes
sobre o desempenho de diferentes classificadores. Nadeem et al. (2010) descreve um
mtodo para comparar classificadores com opo de rejeio,, apresentando os
desempenhos de classificadores em curvas (arcos) bidimensionais preciso-rejeio.
preciso
Uma curva de preciso--rejeio (Accuracy-Reject Curve - ARC) uma funo que
representa a preciso de um classificador, em funo da sua taxa de rejeio.
Portanto, o grfico AR
R ter no eixo das abscissas a Taxa de Rejeio e no eixo das
ordenadas a Taxa de Acerto.
Acerto Quanto maior a taxa de rejeio,
o, maior ser a taxa de
acerto. A Figura 4.5, obtida de (Nadeem et al., 2010),, ilustra as trs relaes possveis
na preciso da curva de rejeio:

Figura 4.5: Curvas de rejeio possveis


37

Uma curva , por conseguinte, produzida atravs da representao grfica da


preciso de um classificador contra a sua taxa de rejeio, variando de 0 a 1 (isto ,
100%). Todas as curvas tm uma preciso de 100% para uma taxa de rejeio de 100%,
e, portanto, convergem para o ponto (1,1). Elas comeam a partir de um ponto (0, a), em
que a% a porcentagem de preciso do classificador quando ele no rejeita qualquer
das observaes (Nadeem et al., 2010).
Curvas AR so teis na medida em que permitem comparar graficamente a preciso
de vrios classificadores em funo das suas taxas de rejeio. Suponha que nem todos
os classificadores respondam de maneira similar em regies diferentes de rejeio para
uma dada tarefa de classificao. Alguns tm precises maiores e menores taxas de
rejeio do que outros. Com base neste pressuposto, Nadeem (Nadeem, Zucker, &
Hanczar, 2010) identificou trs tipos diferentes de relao entre os arcos de dois
classificadores comparados uns com os outros: Tipo 1 (T1), tipo 2 (T2) e do tipo 3 (T3),
como ilustrado na Figura 4.5.
1. Curvas AR T1 (crossing-over): Se o arco de um dos classificadores (digamos
,) corta o ARC do outro classificador (digamos ' ), como mostrado na Figura
4.5 (T1): A esta situao pode ser descrita como uma "crossing-over "de arcos. Na
Figura 4.5 (T1), so plotadas as taxas de rejeio no eixo x e precises sobre o eixo y.
Devido ao crossing-over das curvas, , supera ' .
2. Curvas AR T2 (divergentes): Em curvas AR divergentes, os arcos de dois
classificadores quase se sobrepem s taxas de rejeio em ou perto de zero. Os arcos se
separam com o aumento das taxas de rejeio. Na Figura 4.5 (T2), cresce a separao
dos arcos com aumentos de taxa de rejeio, tornando , em um melhor classificador
do que ' neste exemplo.
3. Curvas AR T3 (uniformemente espaados): Neste caso, a distncia entre os dois
arcos muito semelhante a diferentes taxas de rejeio, como pode ser observado na
Figura 4.5 (T3). Por uma questo de simplicidade, referem-se a estas relaes entre
ARCs doravante como T1, T2 e T3.
Para a seleo do melhor classificador disponvel pelo mtodo ARC, necessrio
conhecer a preciso desejada, a taxa de rejeio aceitvel ou ambos. Se a preciso
desejada conhecida, move-se horizontalmente toda a trama ARC e seleciona o
classificador com o menor ndice de rejeio. Por outro lado, se a taxa de rejeio
aceitvel conhecida, pode-se selecionar o classificador com a maior preciso de
previso para que a taxa de rejeio.
Esta representao grfica, em que cada valor correspondente a uma taxa de acerto e
a uma taxa de rejeio que depende do custo de rejeio Wr, utilizada para medir o
desempenho da classificao com opo de rejeio. Isto implica que diferentes pontos
da curva AR correspondem a diferentes valores de Wr. Neste trabalho, os custos de
rejeio Wr so os seguintes valores: 0.04, 0.08, 0.12, 0.16, 0.20, 0.24, 0.28, 0.32, 0.36,
0.40, 0.44, 0.48. Uma curva AR ser suficiente porque ser utilizado apenas um
classificador por execuo, mantendo semelhante forma curva em casos de bons
resultados.

4.3 Concluso
Este captulo apresentou a estratgia de classificao com opo de rejeio usando a
abordagem de classificador padro. bastante tentadora, a elaborao do problema
utilizando a classificao com opo de rejeio, uma vez que protege o sistema contra
um eventual nmero de decises erradas em situaes em que se exige alta
38

confiabilidade. Alm disso, ela interessante em projetos que no possuem grande


quantidade de recursos disponveis, uma vez que podem ser descartados os mdulos
rejeitados (usando-se um custo baixo de rejeio) a fim de se testar apenas os mdulos
com grande confiana em se encontrar erros.
Modelos com diferentes graus de confiana so obtidos, pois a taxa de preciso
eleva-se na medida em que a taxa de rejeio aumenta, os quais podem ser selecionados
de acordo com o nvel de conhecimento do especialista.
At este captulo foram apresentados os conceitos sobre predio de defeitos e
estratgias de reconhecimento de padres aliada a opo de rejeio. O captulo
seguinte dedicado apresentao da metodologia adotada e anlise dos resultados
obtidos. A metodologia avaliada atravs da anlise de desempenho do valor da taxa de
acerto, desvio padro e histograma de acertos por execuo. Para classificadores MLP e
K-Mdias, que contm a capacidade de rejeio, sero analisados tambm a taxa de
rejeio e a sua eficincia atravs da curva AR.

39

CAPTULO 5

SIMULAES COMPUTACIONAIS
Este captulo descreve a metodologia de avaliao e as simulaes computacionais das
tcnicas de reconhecimentos de padres aplicadas predio de defeitos.
Todas as simulaes foram desenvolvidas utilizando a linguagem de programao
Java (Java Development Kit 6), em um computador com processador Intel Atom de
1,67 GHz, utilizando o ambiente de desenvolvimento Eclipse. O Apndice A apresenta
mais detalhes sobre a arquitetura do sistema.
A seo 5.1 descreve de forma resumida o SIPDOR. A metodologia adotada, como
as mtricas de avaliao dos algoritmos de RP e os parmetros de classificao so
descritos na seo 5.2. Os resultados dos classificadores convencionais so analisados
na seo 5.3, ao passo que, na seo 5.4 avaliado o desempenho alcanado com a
capacidade de rejeio em comparao com os demais mtodos.

5.1 SIPDOR
Neste trabalho foi desenvolvido um sistema aplicado predio de defeitos de software,
sendo nomeado como Sistema Inteligente para Predio de Defeitos de Software com
Opo de Rejeio (SIPDOR). Foi desenvolvido no Instituto Federal do Cear (IFCE)
como produo da Bolsa de Iniciao Cientfica da PBICT/IFCE em 2009. Nessa poca,
foram implementados os seguintes mtodos de RP: DMC, K-NN, Naive Bayes e
Perceptron Simples. Em uma segunda Bolsa de Iniciao Cientfica da PIBITI/CNPq,
em 2012, foram includos os mtodos K-Mdias, ADALINE, MADALINE e redes
MPL. Tambm foi nesse perodo que foi decido a aplicao das tcnicas implementadas
como modelos preditivos de defeitos de software para classificao com opo de
rejeio. A Figura 5.1 exibe a tela principal do sistema SIPDOR.

Figura 5.1: Tela Principal do SIPDOR.


40

5.2 Metodologia
Nesta seo apresentada a metodologia de avaliao dos classificadores de padres
aplicados ao problema de predio de defeitos de software. Com exceo da estratgia
de treinamento do classificador K-Mdias, todas as classificaes so supervisionadas.
A metodologia de avaliao realizada atravs da anlise de desempenho do valor da
taxa de acerto, desvio padro e histograma de acertos por execuo. Para classificadores
MLP e K-Mdias, que contm a capacidade de rejeio, sero analisados tambm a taxa
de rejeio e a sua eficincia atravs da curva AR em comparao com os
classificadores MLP convencional.

5.2.1 Mtricas de Avaliao


Para realizar os testes dos classificadores implementados, sero utilizados as seguintes
mtricas:
1. Taxa de acerto mdio (acurcia): significa o somatrio de cada percentual de
acerto dividido pelo nmero de classificaes executadas (7? ).
}

1
  E W
7?

(Equao 5.1)

WG,

2. Desvio padro: uma medida de disperso, ou espalhamento, dos valores dos


percentuais de acerto em torno da mdia geral .

1
E(W F )
7? F 1

(Equao 5.2)

WG,

3. Histograma: uma forma particular de grfico de barras, utilizado para


representar graficamente uma tabela de distribuio de freqncias. Neste caso,
ser utilizado para representar os percentuais de acertos graficamente.
4. Curva AR: uma funo que representa a preciso de um classificador, em
funo da sua taxa de rejeio.

5.2.2 Base de Dados


Com o objetivo de incentivar a pesquisa por novos modelos preditivos de Engenharia
de Software, a PROMISE disponibiliza um repositrio de bases de dados sobre
problemas em Engenharia de Software (PROMISE, 2012). Neste trabalho foi utilizada a
base de dados KC2, porm outros resultados para bases de dados similares podem ser
encontradas no Apndice B.
A base de dados KC2 foi criada pela NASA Metrics Data Program. Cada uma das
amostras desta base possui 21 atributos numricos, relacionadas aos parmetros:
quantidade de linha de cdigo (loc), complexidade ciclomtica (v(g)), complexidade
essencial (ev(g)), complexidade do desenho do mdulo (iv(g)), total de operadores +
total de operandos (n), volume (v), durao do programa (l), dificuldade (d), inteligncia
(i), esforo (e), tempo estimado (t), quantidade de linhas (lOCode), quantidade de linhas
de comentrios (lOComment), quantidade de linhas em branco (lOBlank), quantidade
de linhas de cdigo e comentrio (lOCodeAndComment), operadores unrios
41

(uniq_Op), operandos originais (uniq_Opnd), total de operadores (total_Op), total de


operandos (total_Opnd)
pnd) e grfico de fluxo (branchCount).
Ela possui 522 exemplos,
exemplos dos quais: 107 contm o valor de classe igual a Yes

e
415 contm o valor de classe igual a No.

O valor Yes utilizado para os mdulos


nos quais foram encontrados defeitos e No para os que se apresentavam normais.
normais

Porcentagem de amostras
20,5%

No

Yes

79,5%

Grfico 5.1Balanceamento da base de dados KC2.

Ao se verificar o grfico 5.1, percebe-se


percebe que a quantidade
tidade de padres entre as classes
no est balanceda. Por isso, neste trabalho tambm se avaliou uma variante da base
KC2, daqui em diante denominada KC2 balanceada, em que padres da classe com
menor frequencia foram repetidos
repetido de modo aleatrio, ou seja, determinadas linhas, da
classe com menor porcentagem de exemplos, foram repetidas de modo aleatrio.
aleat
Esse
processo permite gerarr uma base com 50% de amostras para cada uma das classes.
Neste estudo sero avaliados tanto a base KC2 balanceada quanto a base KC2 original
descrita nogrfico 5.1.
Para KC2 realiza-se
se a diviso em dois conjuntos, a saber: conjunto de treinamento e
conjunto de teste. Os padres utilizados para treinamento do classificador so
escolhidos aleatoriamente sem repetio. O restante dos padres, que no compem a
base de treinamento,
o, so utilizados para avaliao de desempenho e compem o
conjunto de teste. Neste caso,
caso, 80% dos padres so utilizados para treinar o
classificador; enquanto os 20% restantes so utilizados para testar o desempenho.

5.2.3 Classificadores
lassificadores neurais
A quantidade
dade de camadas e neurnios/camada foram determinados na
implementao, ou seja, o usurio no poder configurar seus valores. A tabela 5.1
5.
detalha a quantidade de neurnios e camadas definidas para o sistema.
Tabela 5.1: Parmetros dos modelos neurais
Classificador

N de camadas

01

N de neurnios da
camada oculta
0

N de neurnios da camada
de sada
01

ADALINE

MADALINE

01

02

MLP

02

45

01

A sada final adotada de cada neurnio depende do    da funo de ativao


Sigmide Logstica. Se o valor de ativao dos neurnios de sada for maior ou igual
que o     0.5, oo valor 1 (um) determinado para a sada, em caso contrrio, o
valor 0 (zero) determinado para a sada do neurnio.
neurnio
42

5.2.4 Parmetros de classificao


Os mtodos de reconhecimento de padres possuem parmetros de classificao, tais
como, nmero de execues, constante k para os classificadores K-NN e K-Mdias,
nmero de poca e taxa de aprendizagem.
O nmero de execues significa a quantidade de vezes em que realizado o
procedimento de treinamento e teste. Para cada execuo do algoritmo, uma nova base
de treinamento e teste obtida com seu respectivo percentual de acerto. Para fins de
anlise de desempenho so apresentadas as taxas de acerto mdio, o valor mximo e
mnimo de taxa de acerto, bem como o desvio padro para um total de 30 execues.
A constante k utilizada apenas em dois algoritmos: K-NN e K-Mdias. Como
explicado no Captulo 03, a constante k tem significados diferentes para esses
classificadores. Para o K-NN, representa k pontos mais prximos. J para o K-Mdias, a
constante k o nmero de agrupamentos (aglomerados ou prottipos).
Simulaes usando a base KC2 original foram realizadas variando o k para1, 3, 5, 7,
9, 11, 13, e 15. Cada k foi testado em trinta execues do algoritmo. O grfico 5.2
apresenta a taxa de acerto mdio para cada k e o grfico 5.3 o desvio padro de cada k.

Acurcia em simulaes K-NN


84,0%
82,0%
80,0%
78,0%
76,0%
74,0%
72,0%

Taxa de acerto mdio

k=1

k=3

k=5

k=7

k = 9 k = 11 k = 13 k = 15

Grfico 5.2Mdia de acertos na variao do valor de k.

Desvio padro em simulaes K-NN


6,00
4,00
2,00
0,00

Desvio padro
k=1

k=3

k=5

k=7

k=9

k = 11

k = 13

k = 15

Grfico 5.3 Desvio padro na variao do valor de k.

Os grficos 5.2 e 5.3 mostram que o k = 9 apresenta a segunda melhor mdia de


acerto e com maior estabilidade que os demais, isto , o desvio padro foi igual a 3.07.
Portanto, k = 9 ser o valor padro adotado para o classificador o K-NN.
Outras simulaes usando K-Mdias foram realizadas variando o k para 50, 100, 125
e 150. Cada k foi testado em quinze execues do algoritmo com valor de poca igual a
um e capacidade de rejeio habilitada. Foi escolhido k = 125 porque apresentou
melhores resultados com a capacidade de rejeio habilitada.
43

O Captulo 03 deste TCC concluiu que o aprendizado resultado de apresentao


aleatria e repetitiva de todos os padres do conjunto de treinamento. O nmero de
pocas representa a quantidade de vezes que ser treinado o classificador usando a
mesma base de treinamento. Em outras palavras, cada apresentao ao classificador de
todos os padres pertencentes ao conjunto de treinamento denominada poca. Assim,
o processo de aprendizagem repetido poca aps poca, at que um critrio de parada
seja satisfeito. Para os classificadores ADALINE e MADALINE sero 50 pocas,
enquanto, o MLP ser treinado 100 vezes para cada base de treinamento.
E por fim, o quarto parmetro a taxa de aprendizagem , sendo adotado o valor 0.2
para o classificador ADALINE, 0.001 para o MADALINE e 0.01 para o classificador
MLP.

5.3 Resultados para Classificadores Convencionais


Esta seo apresenta os resultados dos classificadores convencionais. Como descrito
anteriormente, a classificao foi aplicada a bases de dado KC2.
A tabela 5.2 exibe de modo decrescente o desempenho dos classificadores aplicados
a KC2 original.
Taxa de acerto mdio Desvio

Tabela 5.2: Resultados para classificadores convencionais aplicados base KC2 original
Classificador

Mnimo Acerto

Mximo Acerto

MLP
DMC
Naive Bayes
K-NN
K-Mdias
ADALINE
MADALINE

79.9%
76.0%
76.0%
74.0%
74.0%
41.3%
50.0%

89.4%
87.5%
89.4%
86.5%
87.5%
85.6%
82.7%

padro
83.9% 3.50
83.6%2.93
82.7% 3.37
81.7%2.93
80.8% 3.28
76.6% 7.80
74.5% 7.92

Os grficos 5.4 a 5.10 apresentam o histograma contendo as taxas de acerto mdio


para os diversos classificadores avaliados quando aplicados base de dados KC2
original.

Grfico 5.4 MLP para base KC2 original

Grfico 5.5 DMC para base KC2 original


44

Grfico 5.6 Naive Bayes para base KC2 original


Grfico 5.7 K-NN para base KC2 original

Grfico 5.8 K-Mdias para base KC2 original

Grfico 5.9 ADALINE para base KC2 original

Grfico 5.10 MADALINE para base KC2 original


45

A tabela 5.3 exibe de modo decrescente o desempenho dos classificadores aplicados


a KC2 balanceada.
Tabela 5.3: Resultados para classificadores convencionais aplicadas base KC2 balanceada
Classificador

Mnimo Acerto

Mximo Acerto

MLP
K-Mdias
K-NN
ADALINE
MADALINE
Naive Bayes
DMC

75.3%
74.7%
74.1%
45.8%
47.6%
56.6%
56.0%

87.4%
90.4%
85.5%
80.1%
81.9%
74.7%
69.9%

Taxa de acerto mdio Desvio

padro
81.6% 3.10
80.9% 3.90
80.3% 3.16
68.5% 9.92
68.3% 10.13
66.9% 4.19
63.0% 3.43

Os grficos 5.11 a 5.17 apresentam os histogramas que exibem a taxa de acerto


mdia para os diversos classificadores avaliados quando aplicados base de dados KC2
balanceada.

Grfico 5.11 MLP para base KC2 balanceada

Grfico 5.13 K-NN para base KC2 balanceada

Grfico 5.12 K-Mdias para base KC2 balanceada

Grfico 5.14 ADALINE para base KC2 balanceada


46

Grfico 5.15 MADALINE para base KC2 balanceada

Grfico 5.16 Naive Bayes para base KC2 balanceada

Grfico 5.17 DMC para base KC2 balanceada

5.4Resultados para classificadores com Opo de


Rejeio
Esta seo apresenta os resultados de classificao obtidos de mtodos que programam
a estratgia da opo de rejeio, mais especificamente, os seguintes mtodos: KMdias e MLP. A fim de comparar com os classificadores correspondentes quando no
utilizam a opo de rejeio, parmetros de classificao, a saber, a quantidade de
neurnios, valor k e da varivel poca sero os mesmos.

5.4.1 Resultados para K-Mdias com Opo de Rejeio


Esta seo apresenta os resultados obtidos aplicando K-Mdias com capacidade de
rejeio. Para ser comparado com K-Mdias da seo 5.3, o algoritmo foi configurado
com k = 125 e valor de poca igual a um.
47

A tabela 5.4 apresenta os resultados de K-Mdias com capacidade de rejeio


aplicada KC2 original, enquanto, a curva AR exibida pelo grfico 5.18.
Tabela 5.4: Resultados para K-Mdias com opo de rejeio aplicada a KC2 original
WR

Taxa de Rejeio

Taxa de Acerto

Intervalo de Rejeio

0.04
0.08
0.12
0.16
0.20
0.24
0.28
0.32
0.36
0.40
0.44
0.48

100%
100%
100%
31.73%
31.73%
31.73%
0%
0%
0%
0%
0%
0%

100%
100%
100%
91.55%
91.55%
91.55%
83.65%
83.65%
83.65%
83.65%
83.65%
83.65%

[0.12, 1.0]
[0.12, 1.0]
[0.12, 1.0]
[0.44, 1.0]
[0.44, 1.0]
[0.44, 1.0]
[1.0, 1.0]
[1.0, 1.0]
[1.0, 1.0]
[1.0, 1.0]
[1.0, 1.0]
[1.0, 1.0]

100,00%
98,00%
96,00%

Taxa de Acerto

94,00%
92,00%
90,00%
88,00%
86,00%
84,00%
82,00%
80,00%

Taxa de Rejeio

Grfico 5.18 K-Mdias aplicado base KC2 original

48

A tabela 5.5 apresenta os resultados para K-Mdias com capacidade de rejeio


quando aplicada base KC2 balanceada, enquanto, a curva AR exibida no grfico
5.19.
Tabela 5.5: Resultados para K-Mdias com opo de rejeio aplicada a KC2 balanceada
WR

Taxa de Rejeio

Taxa de Acerto

Intervalo de Rejeio

0.04
0.08
0.12
0.16
0.20
0.24
0.28
0.32
0.36
0.40
0.44
0.48

100%
100%
100%
42.73%
17.53%
17.53%
10.08%
3.15%
3.15%
0%
0%
0%

100%
100%
100%
90.92%
86.32%
86.32%
84.48%
82.39%
82.39%
81.18%
81.18%
81.18%

[0.12, 1.0]
[0.12, 1.0]
[0.12, 1.0]
[0.22, 1.0]
[0.44, 1.0]
[0.44, 1.0]
[0.48, 1.0]
[0.5, 1.0]
[0.5, 1.0]
[1.0, 1.0]
[1.0, 1.0]
[1.0, 1.0]

100,00%
98,00%
96,00%

Taxa de Acerto

94,00%
92,00%
90,00%
88,00%
86,00%
84,00%
82,00%
80,00%

Taxa de Rejeio

Grfico 5.19 K-Mdias aplicado base KC2 balanceada

49

5.4.2 Resultados MLP com Rejeio


Esta seo apresenta os resultados obtidos aplicando MLP com capacidade de rejeio.
Para ser comparado com MLP da seo 5.3, o algoritmo foi configurado com taxa de
aprendizagem igual a 0.001 e 100 poca.
A tabela 5.6 apresenta os resultados de MLP com capacidade de rejeio aplicada a
KC2 original.
Tabela 5.6: Resultados para MLP com opo de rejeio aplicada a KC2 original
WR

Taxa de Rejeio

Taxa de Acerto

Intervalo de Rejeio

0.04
0.08
0.12
0.16
0.20
0.24
0.28
0.32
0.36
0.40
0.44
0.48

100%
100%
100%
57.92%
54.68%
47.98%
0%
0%
0%
0%
0%
0%

100%
100%
100%
93.76%
93.24%
91.66%
78.91%
78.91%
78.91%
78.91%
78.91%
78.91%

[0, 1.0]
[0, 1.0]
[0, 1.0]
[0.3, 0.7]
[0.35, 0.65]
[0.4, 0.6]
[0.5, 0.5]
[0.5, 0.5]
[0.5, 0.5]
[0.5, 0.5]
[0.5, 0.5]
[0.5, 0.5]

100,00%
98,00%
96,00%

Taxa de Acerto

94,00%
92,00%
90,00%
88,00%
86,00%
84,00%
82,00%
80,00%
78,00%

Taxa de Rejeio

Grfico 5.20 MLP aplicado na base KC2 original


50

A tabela 5.7 apresenta os resultados de MLP com capacidade de rejeio aplicada a


KC2 balanceada, enquanto, a curva AR exibida pelos grficos 5.21.
Tabela 5.7: Resultados para MLP com opo de rejeio aplicada KC2 balanceada
WR

Taxa de Rejeio

Taxa de Acerto

Intervalo de Rejeio

0.04
0.08
0.12
0.16
0.20
0.24
0.28
0.32
0.36
0.40
0.44
0.48

100%
100%
100%
100%
100%
100%
100%
65.12%
0%
0%
0%
0%

100%
100%
100%
100%
100%
100%
100%
88.54%
67.45%
67.45%
67.45%
67.45%

[0, 1.0]
[0, 1.0]
[0, 1.0]
[0, 1.0]
[0, 1.0]
[0, 1.0]
[0, 1.0]
[0.45, 0.55]
[0.5, 0.5]
[0.5, 0.5]
[0.5, 0.5]
[0.5, 0.5]

100,00%

95,00%

Taxa de Acerto

90,00%

85,00%

80,00%

75,00%

70,00%

65,00%

Taxa de Rejeio

Grfico 5.21 MLP aplicado na base KC2 balanceada

51

5.4.3
4.3 Anlise Comparativa de K-Mdias
Mdias e MLP com
capacidade de rejeio:
O grfico 5.22 exibe curva AR de K-Mdias
K Mdias e MLP com capacidade de rejeio,
rejeio
aplicados a KC2 original;; enquanto, o grfico 5.23 apresenta resultados quando se
utiliza a base KC2 balanceada.

Grfico 5.22 Curvas AR de K-Mdias


Mdias e MLP aplicados base KC2 original

Grfico 5.23 Curvas AR de K-Mdias


K Mdias e MLP aplicados base KC2 balanceada
52

Pode ser observado nos grficos 5.22 e 5.23 que para valores elevados da taxa de
rejeio, tambm se verifica valores elevados da acurcia.
Quando se utiliza a base KC2 original, pode ser verificado tambm que as taxas de
classificao superam 90% quando a taxa de rejeio acima de 30% para o
classificador K-Mdias e acima de 40% com o MLP, tal como mostrado nas Tabelas 5.4
e 5.6. Porm, quando se utiliza KC2 balanceada, as taxas de classificao somente
superam 90% quando se rejeita aproximadamente 47% dos padres utilizando KMdias. J o MLP apresentou uma taxa de acerto de 80% quando a taxa de rejeio
atinge aproximadamente 65%. De uma forma geral, o classificador K-Mdias apresenta
melhores taxas de classificao em comparao com o MLP.

5.5 Concluso
Este captulo apresentou os resultados obtidos com os classificadores estatsticos e
neurais, tendo ou no a capacidade de rejeio.
Em mtodos sem a rejeio, o desempenho foi medido pelo mnimo e mximo
acerto, mdia de acertos, desvio padro e grfico histograma com o percentual de
acertos de cada uma das trinta execues.
Usando a capacidade de rejeio de mtodos K-Mdias e MLP, foram avaliados os
valores de    que aumentaram o desempenho dos classificadores rejeitando o
mnimo de padres possveis. A curva AR exibiu a mdia de acerto em funo da mdia
de rejeio para cada faixa de rejeio gerada.
O Captulo 06 apresenta as concluses, consideraes finais, analisando e
comparando os resultados de cada classificador aplicado a predio de defeitos.

53

CAPTULO 6

CONCLUSO
O SIPDOR um aplicativo que dispe de um conjunto de classificadores que podem ser
aplicados na resoluo de problemas de Engenharia de Software, mais especificamente,
na predio de defeitos de software. O sistema SIPDOR tambm possibilita o uso da
capacidade de rejeio para rejeitar padres de difcil classificao.
Entre os classificadores de padres que tm seus desempenhos avaliados, e podem
compor o mdulo de classificao, encontram-se: DMC, K-NN, Naive Bayes, KMdias, ADALINE, MADALINE, MLP. Primeiramente, foram executados os
classificadores convencionais e com capacidade de rejeio; os quais foram aplicados
tanto base de dados original quanto base de dados modificada KC2 (balanceada).
Dos resultados obtidos com KC2 original para os classificadores convencionais
pode-se concluir e determinar que, para o problema de predio de defeitos de software,
o classificador DMC foi melhor entre os classificadores estatsticos e o MLP foi o
classificador neural que obteve melhor resultado. Por ordem decrescente de
desempenho, com base na anlise do acerto mdio no teste, pode-se enumerar: MLP,
DMC, Naive Bayes,K-NN, K-Mdias, ADALINE e MADALINE.
J os resultados obtidos com KC2 balanceada e com a capacidade de rejeio
desabilitada, o classificador neural MLP apresentou melhor desempenho e estabilidade,
isto , o desvio padro era pequeno, em comparao com outros classificadores,
principalmente, ADALINE e MADALINE, que apresentaram geralmente um desvio
padro alto. Por ordem decrescente de desempenho, com base na anlise do acerto
mdio no teste, pode-se enumerar: MLP, K-Mdias, K-NN, ADALINE, MADALINE,
Naive Bayes e DMC.
Neste trabalho tambm foi aplicada a classificao com opo de rejeio na
predio de defeitos de software. Nessa estratgia, a taxa de classificao eleva-se
medida em que a taxa de rejeio aumenta. Dois classificadores foram implementados
com capacidade de rejeio: MLP e K-Mdias. O classificador K-Mdias apresentou
melhor desempenho em comparao ao MLP, pois com taxa de rejeio menor exibiu
maior desempenho, como pode ser visto nos grficos 5.22 e 5.23.
Com base nos resultados para os classificadores implementados pode-se concluir
que, em geral, a classificao se torna mais eficiente quando so evitados erros
excessivos como consequncias de tomadas de deciso difceis. Este fato justificado,
para a classificadores que implementam o algoritmo de rejeio, pelo aumento no
desempenho de classificao medida que padres so rejeitados do conjunto de teste.

54

Referncias Bibliogrficas
Abreu, F. B. (1992). As Mtricas na Gesto de Projectos de Desenvolvimento de
Sistemas de Informao. Actas das 6s Jornadas para Qualidade no Software, APQ.
Aljahdali, Sultan H.; Shieta, Alaa; Rine, David (2001). Prediction of software
reliability: A comparison between regression and neural network non-parametric
modelsACS/IEEE International Conference on Computer Systems and Applications
470-473
Almeida, E. (2010). Classificao Ordinal com Opo de Rejeio. Dissertao de
Mestrado Integrado em Engenharia Informtica e Computao . Faculdade de
Engenharia da Universidade do Porto - FEUP.
Almeida, E. D. (2010). Algoritmos de Classificao Com a Opo de Rejeio.
Relatrio do Estado da Arte - Mestrado Integrado em Engenharia Informtica e
Computao . Faculdade de Engenharia da Univerisidade do Porto - FEUP.
Antoniol, G., Di Penta, M., & Harman, M. (2004). A robust search-based approach to
project management in the presence of abandonment, rework, error and uncertainty. The
International INTRAVAL Project, IEEE Computer Society Press , pp. 172183.
Antoniol, G., Di Penta, M., & Harman, M. (2005). Search-based techniques applied to
optimization of project planning for a massive maintenance project. ICSM2005:
Proceedings of the 21st IEEE International Conference on Software Maintenance, IEEE
Computer Society , pp. 240249.
Barreto, G. A. (2007). Introduo ao Reconhecimento de Padres. Aula para Curso de
Ps-Graduao em Engenharia de Teleinformtica (DETI/UFC) . Disponvel em:
http://www.deti.ufc.br/~guilherme/courses.htm.
Barreto, G. (2008). Redes Neurais Artificiais: Uma Introduo Prtica. Aula para Curso
de Ps-Graduao em Engenharia de Teleinformtica (DETI/UFC) . Disponvel em:
http://www.deti.ufc.br/~guilherme/courses.htm.
Bennett, K. (2002). Software maintenance: a tutorial. Software Engineering, Dor fman
and Thayer, New York: IEEE .
Bezerra , M. (2008). Deteco de mdulos de software propensos a falhas atravs de
tcnicas de aprendizagem de mquina. Dissertao (Mestrado em Cincia da
Computao) . Recife: Universidade Federal de Pernambuco.
Boehm, B. (January de 2001). Software Management. IEEE Computer .
C. S. Horstmann, G. C. ( 1999). Core Java Volume I Fundamentals. California,
USA: The Sun Microsystems press - Srie Java.
CAELUM. (2013). Java e Orientao a Objetos - FJ-11. Acesso em 15 de Fevereiro de
2013, disponvel em Caelum: Ensino e Inovao: www.caelum.com.br/apostilas
Campos, J., Lotufo, A., Minussi, C., & Lopes, M. (2010). Implementao de Redes
Neurais Artificiais utilizando a linguagem de programao Java. Proceedings of the 9th
Brazilian Conference on Dynamics Control and their Applications (DINCON'10) .
Cardoso, J. S., & Costa, J. F. (2007). Learning to classify ordinal data: the data
55

replication method. Journal of Machine Learning Research, v. 8 , pp. 13931429.


Castro, A. A., & Prado, P. P. (2002). Algoritmos para reconhecimento de padres.
Revista Cincias Exatas, Taubat, v. 5-8 , 129-145.
Chow, C. (1957). An optimum character recognition system using decision functions.
IRE Trans. Electronic Computers, EC-B , pp. 247254.
Chow, C. (1970). On optimum recognition error and reject tradeoff. IEEE Transactions
on Information Theory Theory, v. 16, n. 1 , 4146.
Christino, J. (2008). Preveno de defeitos em software: uma viso colabortiva da
aplicao de dois mtodos em pequenas empresas de desenvolvimento de software.
Dissertao - Mestrado em Engenharia de Produo . So Paulo: Universidade
Paulista.
Clark B., & Zubrow D. (2001). How Good is the software: a review of Defect
Prediction Techniques. Software Engineering Institute at Carnegie Mellon University.
Clarke, J. e. (2003). Reformulating software engineering as a search problem. IEEE
Proceedings Software. Vol. 150, No. 3 , pp. 161-175.
de Castro, L. N. (1998). Anlise e Sntese de Estratgias de Aprendizado para Redes
Neurais Artificiais. Dissertao de Mestrado . DCA/FEEC/UNICAMP.
Dolado, J. J. (2000). A validation of the component-based method for software size
estimation. IEEE Transactions on Software Engineering , 26(10):10061021.
Eclipse. (2013). Acesso em 18 de 02 de 2013, disponvel em http://www.eclipse.org
Fisher, R. (1988). Iris Data Set. Acesso em 07 de Dezembro de 2012, disponvel em
UCI Machine Learning Repository: http://archive.ics.uci.edu/ml/datasets/Iris
Freitas, F., Maia, C., Campos, G., & Souza, J. (2010). Otimizao em Teste de Software
com Aplicao de Metaheursticas. Revista de Sistemas de Informao da FSMA n. 5 ,
3-13.
Freitas, F., Maia, C., Coutinho, D., Campos, G., & Souza, J. (2009). Aplicao de
Metaheursticas em Problemas da Engenharia de Software: Reviso de Literatura. II
Congresso Tecnolgico Infobrasil .
Fumera, G., & Roli, F. (2002). Support vector machines with embedded reject option.
Workshop on Pattern Recognition with Support Vector Machines (SVM2002) , pp. 68
82.
Halmenschlager, C. (2002). Um algoritmo para induo de rvores e regras de deciso.
Dissertao de Mestrado em Cincia da Computao . Universidade Federal do Rio
Grande do Sul - UFRGS.
Halstead, M. (1977). Elements of Software Science. Elsevier.
Hanczar, B., & Dougherty, E. (2008). Classification with reject option in gene
expression data. Bioinformatics v. 24, n. 17 , 18891895.
Harman, M. (2006). Search based software engineering. Workshop on Computational
Science in Software Engineering .
Harman, M. (2007). The current state and future of search based software engineering.
International Conference on Software Engineering , pp. 342357.
Harman, M. (2010). The Relationship between Search Based Software Engineering and
Predictive Modeling. PROMISE '10 - 6th International Conference on Predictive
56

Models in Software Engineering .


Harman, M. (2010). Why the virtual nature of software makes it ideal for search based.
Fundamental Approaches to Software Engineering , pp. 1-12.
Harman, M., & Jones, B. (2001). Search-based software engineering. Information and
Software Technology , pp. 833-839.
Haykin, S. (1999). Neural Networks: A Comprehensive Foundation, 2nd. ed. [S.l.]:.
Prentice-Hall.
IEEE. (2010). IEEE Standard Classification for Software Anomalies. IEEE Std 10442009, C1-15.
IEEE. (1990). Standard glossary of software engineering terminology. IEEE Std 610.12.
Jain, A., & Chandrasekaran, B. (1982). Dimensionality and sample size considerations
in pattern recognition practice. Handbook of Statistics. [S.l.]: North_Holland , v. 2, cap.
39, p. 835_855.
Jain, A., Duin, P., & Mao, J. (2000). Statistical pattern recognition: A review. IEEE
Transactions on Pattern Analysis and Machine Intelligence, v. 22, n. 1. , 4-37.
Jain, A., Murty, M., & Flynn, P. (1999). Data clustering: a review. ACM Comput. Surv ,
31(3):264323.
JMATHTOOLS. (2013). Acesso em 15 de Fevereiro de 2013, disponvel em
http://jmathtools.berlios.de/doku.php
John, G., & Langley, P. (1995). Counterfactuals and policy analysis in structural models.
338-345.
Jones, C. (December de 2007). Geriatric issues of aging software. Acesso em 14 de
Janeiro de 2013, disponvel em http://www.crosstalkonline.org/storage/issuearchives/2007/200712/200712-Jones.pdf
Kalinowski, M. (Maro de 2011). Uma abordagem para preveno de defeitos
provenientes de inspees para apoiar a melhoria dos processos de engenharia de
software. Tese (Doutorado em Engenharia de Sistemas e Computao) UFRJ/COPPE .
Rio de Janeiro: Universidade Federal do Rio de Janeiro.
Karuananithi, N., Whitley, D., & Malaiya, Y. K. (July de 1992). Prediction of software
reliability using connectionist models. IEEE Transactions on Software Engineering , pp.
563-574.
Kemered , C., & Slaughter, S. (1999). An empirical approach to studying software
evolution. IEEE Transactions on Software Engineering. , pp. 493509. v. 25, n. 4, ISSN
0098-5589.
Kohonen, T. (2001). Self-Organizing Maps. 3rd. ed. [S.l.]: Springer-Verlag.
Kosko, B. (1992). Neural Networks and Fuzzy Sytems: A Dynamical Systems Approach
to Machine Intelligence.[S.l.]: Prentice-Hall.
Lino, C. E. (2011). Reestruturao de software com adoo de padres de projeto para a
melhoria da manutenibilidade. Monografia de graduao apresentada ao Departamento
de Cincia da Computao. Lavras, MG: Universidade Federal de Lavras (UFLA).
Macqueen, J. (1967). Alguns Mtodos de classificao e anlise das observaes
multivariada. Proceedings de 5-th Berkeley Simpsio sobre Estatstica Matemtica
Berkeley, University of California Press , pp. 1:281-297.
57

McCabe, T. (1976). A Complexity Measure. IEEE Transactions on Software


Engineering , 308-320.
Meirelles, P. R. (2008). Levantamento de Mtricas de Avaliao de Projetos de Software
Livre.Relatrio CNPq.
Menzies, T., Greenwald, J., & Frank, A. (2007). Data mining static code attributes to
learn defect predictors. IEEE Transactions on Software Engineering .
Miller, W., & Spooner, D. (September de 1976). Automatic generation of floating-point
test data . IEEE Transactions on Software Engineering , pp. SE-2(3):223226.
Moser, R., Pedrycz, W., & Succi, G. (2008). A comparative analysis of the efficiency of
change metrics and static code attributes for defect prediction. International Conference
on Software Engineering (ICSE 2008) .
Nadeem, M., Zucker, J., & Hanczar, B. (2010). Accuracy-Rejection Curves (ARCs) for
Comparing Classification Methods with a Reject Option. JMLR: Workshop and
Conference Proceedings 8 , pp. 65-81.
Nagappan , N., Ball, T., & Zeller, A. (2005). Mining metrics to predict component
failures. International Conference on Software Engineering .
NETBEANS. (2013). Welcome to NetBeans. Acesso em 15 de Fevereiro de 2013,
disponvel em NetBeans: http://www.netbeans.org
O' NEILL D"The Competitor" Defect Prevention. Vol 7 N 2Global Software
Competitiveness Studies Sponsored by CNSS
Oracle. (2013). Java SE Downloads. Acesso em 14 de Fevereiro de 2013, disponvel em
http://www.oracle.com/technetwork/java/javase/downloads/index.html
ORACLE. (2013). Sun Microsystems. Acesso em 14 de Fevereiro de 2013, disponvel
em Oracle and Sun: http://www.oracle.com/us/sun/index.htm
Pontes, M. (2008). Predio de Defeitos em Software. Revista Engenharia de Software Edio 17 Ano 02 , 08.
PROMISE. (2012). Predictive models in software engineering.Acesso em 07 de
dezembro de 2012, disponvel em http://promise.site.uottawa.ca/SERepository/datasetspage.html
Rocha Neto, A. R. (2006). SINPATCO - Sistema Inteligente para o Diagnstico de
Patologias da Coluna Vertebral. Dissertao de Mestrado em Teleinformtica .
Universidade Federal do Cear.
Rocha Neto, A. R. (2011). SINPATCO II: Novas estratgias de aprendizado de
mquinas para classificao de patologias da coluna vertebral. Tese (Doutorado) .
Universidade Federal do Cear.
Rocha, P. M. (2007). Programao Orientada a Objetos - Introduo. Slide de Aula .
Centro Federal de Educao Tecnolgica do Cear CEFETCE.
Russell, S., & Norvig, P. (2003). Artificial Intelligence: A Modern Approach. Prentice
Hall, 2 edition.
SEBASE. (2011). Software
http://www.sebase.org

Engineering

By

Automated

Search.

Fonte:

Sebesta, R. W. (2011). Conceitos de Linguagens de Programao - 9 edio.Bookman.


Shepperd, M. (2012). The scientific basis for prediction research. Promise 12 .
58

Sitte, R. (September de 1999). Comparison of software reliability growth predictions:


Neural networks vs parametric recalibration. IEEE Transactions on Software
Engineering , p. 48(3):285.291.
Sommerville, I. (2007). Engenharia de Software. 8 edio. So Paulo: Pearson Prentice
Hall.
Sousa, R., Mora, B., & Cardoso, J. (2009). An Ordinal Data Method for the
Classification with Reject Option. The Eighth International Conference on Machine
Learning and Applications (ICMLA 2009) , pp. 1-5.
Souza, J. (2009). Metaheursticas Aplicadas a Problemas Complexos da Engenharia de
Software. Minicurso Apresentado no XXIII SBES .
Takaki, M. (2009). Busca Meta-Heurstica para Resoluo de CSP em Teste de
Software. Dissertao para obteno do grau de Mestre em Cincia da Computao .
Universidade Federal de Pernambuco.
Tomaszewski, P., Grahn, H., & Lundberg, L. (2006). A method for an accurate early
prediction of faults in modified classes. International Conference on Software
Maintenance (ICSM 2006) .
Tosun, A. (2008). Ensemble of Software Defect Predictors: A Case Study. ESEM08,
Oct 910, 2008, Kaiserslauten, Germany.
Tosun, A., & Kale, R. (2010). Ai-based software defect predictors: Applications and
benefits in a case study. Twenty-Second IAAI Conference on Artificial Intelligence .
Tosun, A., & Turhan, B. (2009). Practical considerations of deploying ai in defect
prediction: A case study within the turkish telecommunication industry. PROMISE 2009
.
Turner, J. (2006). A predictive approach to eliminating errors in software code.Fonte:
http://www.sti.nasa.gov/tto/Spinoff2006/ct_1.html
Watanabe, S. (1985). Pattern Recognition: Human and Mechanical. New York: Willey.
Webb, A. (2002). Statistical Pattern Recognition. 2nd. ed. [S.l.]: John Wiley & Sons.
Wheeler, D., Brykezynski, B., & Meeson, R. (1996). Software Inspections: An Industry
Best Practice. IEEE Computer Society .
Widrow, B., & Hoff, M. (1960). Adaptive switching circuits. IRE WESCON Convention
Record-Part 4 , pp. 96104.
Widrow, B., & Lehr, M. (1990). 30 years of adaptive neural networks: Perceptron,
madaline and backpropagation. Proceedings of the IEEE, volume 78 , pp. 14151442.
Widrow, B., & Stearns, S. (1985). Adaptive Signal Processing. Prentice-Hall.
Widrow, B., & Winter, R. (1988). Neural nets for adaptive filtering and adaptive pattern
recognition. IEEE Computer 21(3): , pp. 2539.
Xu, K. (2004). How Has the Literature on Ginis Index Evolved in the Past 80 Years?
Fonte: econpapers: http://econpapers.repec.org/RePEc:dal:wparch:howgini
Zhang, H., Nelson, A., & Menzies, T. (2010). On the value of learning from defect
dense components for software defect prediction. PROMISE , p. 14.
Zhang, Y., Finkelstein, A., & Harman, M. (2008). Search based requirements
optimisation: Existing work and challenges. Requirements Engineering: Foundation for
Software Quality , pp. 88-94.
59

APNDICE A Arquitetura do SIPDOR


Este apndice tem como objetivo descrever o sistema proposto, bem como a
metodologia utilizada no desenvolvimento do trabalho e tambm a descrio do
ambiente de desenvolvimento
nvolvimento e tecnologias utilizadas.

A.1 Organizao e Execuo do Projeto


O desenvolvimento do trabalho foi realizado em quatro etapas: Estudo e
Desenvolvimento de tcnicas RP, Reviso Bibliogrfica, Critrios de Classificao e
Avaliao dos Modelos Preditos e, por fim, a etapa de Resultados Experimentais. Uma
descrio das etapas desenvolvidas apresentada na Figura A.1.
A

Figura A.1: Organizao e Execuo do Projeto

Na primeira etapa foram implementados, utilizando a Linguagem de Programao


Java, os classificadores estatsticos e neurais aqui utilizados. Para tanto,
tanto foi necessrio
um estudo terico sobre as tcnicas de reconhecimento de padres e a utilizao de uma
base de dados simples para os teste e validao dos mtodos. Neste caso, foi utilizada a
base de dados da Flor ris,
ris disponvel no site da UCI Machine Learning
earning Repository
(Fisher, 1988),, contendo 150 exemplos de padres, onde cada exemplo possui quatro
atributos: o comprimento e a largura da ptala e da spala. Essa flor pode ser
classificada como Setosa, Versicolor ou Virgnica.
A pesquisa e o estudo sobre otimizao em Engenharia de Software, mais
especificamente sobre Predio Defeitos em Engenharia de Software, foram realizados
na segunda etapa, nomeada de Reviso Bibliogrfica.
Na terceira etapa, foram
am analisados os benefcios em incluir a estratgia da
classificao com opo de rejeio no sistema proposto. Consequentemente foram
decididos os critrios de avaliao a serem utilizados tais como: Curva AR e taxa de
acerto e de rejeio. Alm disto, decidiu-se
de
se pela utilizao do ndice de Gini para
estimar a sada do neurnio no processo de rejeio.
Por fim, a quarta fase caracterizou-se
caracterizou
pela aplicao de tcnicas RP como modelos
preditivos de defeitos de software. Nesta fase, so produzidos e analisados
analisados os resultados
experimentais.
60

A.2 Arquitetura do Sistema


Nesta seo apresentada a arquitetura do sistema desenvolvido, bem como descreve as
tecnologias utilizadas, o ambiente de desenvolvimento, padres de projeto e materiais
utilizados.

A.2.1 Ambiente de Desenvolvimento


O Sistema Inteligente para Predio de Defeitos de Software com Opo de Rejeio
(SIPDOR) foi desenvolvido utilizando a linguagem de programao Java. Como de
conhecimento, Java uma linguagem baseada no paradigma de Programao Orientada
a Objeto (POO), organizando o software em termos de coleo de objetos discretos com
estrutura e comportamento prprios (Campos, Lotufo, Minussi, & Lopes, 2010). Mesmo
baseado em C++, a linguagem Java foi projetada pela Sun Micro systems (ORACLE,
2013) para ser menor, mais simples e mais confivel, tendo tanto classes como tipos
primitivos. Possui as seguintes vantagens: simples, orientada a objeto, distribuda,
robusta, segura, neutra quanto arquitetura, portvel, compilada e interpretada, multitarefa
e dinmica (Sebesta, 2011)(C. S. Horstmann, 1999).
Para se desenvolver aplicativos em Java necessria instalar a Mquina Virtual Java
(JVM), sendo mais especfico, o Kit de Desenvolvimento Java (JDK), disponvel em
(Oracle, 2013). Java uma linguagem que utiliza o sistema de implementao hbrida,
isto , converte o cdigo-fonte Java em um arquivo de extenso . (LL, contendo
bytecodes, possibilitando a portabilidade em qualquer mquina que tenha um
interpretador de bytecodes (Sebesta, 2011). A Figura A.2, obtida de (Rocha, 2007),
ilustra o processo de compilao e interpretao em Java.

Figura A.2: Compilao e Interpretao em Java

Como IDE de desenvolvimento, foi utilizado o Eclipse SDK Verso 3.5.1, onde
verses mais recentes podem ser encontradas na referncia (Eclipse, 2013). O Eclipse
uma IDE (Integrated Development Environment) lder de mercado e por ser formada
por um consrcio liderado pela IBM, possui seu cdigo livre. A partir da verso 3.1, a
plataforma d suporte ao Java 5.0. Apesar de ser escrito em Java, a biblioteca grfica
usada no Eclipse, chamada SWT, usa componentes nativos do sistema operacional,
sendo necessria a instalao de uma verso correspondente ao sistema operacional
adotado (CAELUM, 2013).
Pela facilidade de manuseio, a interface grfica, usando o pacote Swing, foi
construda utilizando a IDE open source NetBeans, disponvel em (NETBEANS, 2013).

61

A.2.2 Bibliotecas utilizadas


Trs APIs foram utilizadas para facilitar a implementao do SIPDOR: JMathArray,
JMathPlot e JMathIO. Essas APIs podem ser obtidas atravs do link descrito em
(JMATHTOOLS, 2013).
A biblioteca JMathArray providencia classes com mtodos estticos para
engenharia bsica e matemtica em Java. No SIPDOR foi utilizado como parte da
implementao de determinados mtodos de pr-processamento e clculos estatsticos.
O cdigo a seguir exemplifica o uso da API:
PROGRAMA A.1: Exemplo de cdigo usando JMathArray
01
02
03
04
05
06
07
08

Import static org.math.array.LinearAlgebra.*;


...
// random 4 x 4 matrix + Id
double[][] A = plus(random(4, 4), identity(4));
// Eigen values Decomposition : A = V * D * V^-1
EigenvalueDecomposition eig = eigen(A);
double[][] V = eig.getV();
double[][] D = eig.getD();

A API JMathPlot usada construo de grficos 2D/3D. O presente trabalho, no


Captulo 05, apresenta o histograma e a curva AR gerados por essa API.
O JMathIO uma leve biblioteca Java que permite criar, ler, escrever e juntar os
dados numricos em arquivos ASCII atravs da biblioteca org.math.io.files.ASCIIFile e
em arquivos binrios (big or little endian) atravs da biblioteca
org.math.io.files.BinaryFile. Na classe ControleRP.java, o mtodo readDoubleArray
utilizado para ler as bases de dados. O trecho de cdigo a seguir exibe a utilizao dessa
API:
PROGRAMA 5.2: Trecho de cdigo do SIPDOR usando JMathIO
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

package controller;
Import static org.math.io.files.ASCIIFile.readDoubleArray;
/*
* APIs e biblioteca importadas
* ...
* */
Public class ControleRP implements Runnable {
/*
* Atributos e outros mtodos declarados
* ...
/*
public double[][] read(BaseDados database){
switch( database ){
case CM1:
return readDoubleArray( new File("base-dados/cm1.data"));
case KC1:
return readDoubleArray( new File("base-dados/kc1.data") );
case KC2:

62

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

return readDoubleArray(
readDoubleArray new File("base-dados/kc2.data"
dados/kc2.data") );
case PC1:
return readDoubleArray(
readDoubleArray new File("base-dados/pc1.data"
dados/pc1.data") );
case JM1:
return readDoubleArray(new
readDoubleArray
File("base-dados/jm1.data"
dados/jm1.data") );
case UNION:
return readDoubleArray(new
readDoubleArray
File("base-dados/union
dados/union.data"));
default:
return null;
;
}
}
}

A.2.3
2.3 Padro de Projeto MVC
O SIPDOR foi desenvolvido usando o padro de projeto Modelo-Viso
Viso-Controle (do
ingls, Model-View-Controller
Controller - MVC). um padro que visa separara lgica do
negcio da lgica de apresentao, permitindo o desenvolvimento, teste e manuteno
isolado de ambos (Sommerville, 2007).
2007) A Figura A.3 exibe a arquitetura MVC:

Figura A.3: Padro MVC

O pacote model (Modelo) representa os dados da aplicao e as regras do negcio


que governam o acesso e a modificao dos dados. O modelo mantm o estado
persistente do negcio e fornece ao controlador a capacidade de acessar as
funcionalidades da aplicao encapsuladas pelo prprio modelo. So as classes
derivadas do processo de anlise e representam
epresentam os principais conceitos do domnio. As
Classes do pacote modelo conhecem
conhece apenas os estados e mtodos de classes do mesmo
pacote. No projeto, este pacote possui as classes que implementam os algoritmos de
classificao: Classificador, ClassificadorNeural DMC, KMeans, KNN, Adaline,
MAdaline, MLP, MlpBinario, Naive Bayes e Neuronio.
O pacote view (Viso) formata o contedo de uma parte particular do modelo e
encaminha para o controlador as aes do usurio; acessa tambm os dados do modelo
via controlador e define como esses dados devem ser apresentados. As classes de viso
acessam os estados e mtodos
odos de classes de controle e de outras classes de viso. No
projeto, este pacote possui as classes de interface grfica: Dialogo, DialogoGeral,
DialogoCreateBD, DialogoHistograma, DialogoLinePlot, DialogoOpenFile, FrameTCC
e PosicionarWindow.
63

O pacote controller (Controle) define o comportamento da aplicao interpretando


as aes do usurio e as mapeando para chamadas do modelo. As aes realizadas pelo
modelo incluem ativar processos de negcio ou alterar o estado do modelo. Com base
na ao do usurio e no resultado do processamento do modelo, o controlador seleciona
uma visualizao a ser exibida como parte da resposta a solicitao do usurio. As
classes de controle acessam estados e mtodos tanto classes de modelo quanto de
classes de viso e de outras classes de controle. No projeto, este pacote possui as classes
de controle: ControleBD, ControleRP, FileDatabase e PreProcessamento.
Foi includo um pacote, denominado to, que contm as classes Beans (classe
encapsulada que representa a entidade que ser persistida), instncias desta classe
contendo os dados sobre os padres que iro transitar entre as camadas. No projeto, este
pacote possui as seguintes classes e enumeraes: Estatisticas, FuncaoAtivacao,
FuncaoDegrau, FuncaoSigmoideLogistica, FuncaoTangenteHiberbolica, Aglomerado,
Aglomerados, BaseDados, Classe, Database, Metodo e Padrao. A Figura A.4 exibe o
padro MVC integrado com pacote to.

Figura A.4: Padro MVC integrado com pacote to.

64

APNDICE B Resultados Adicionais


Diversos resultados foram obtidos com outras bases de dados disponibilizadas pela
PROMISE (PROMISE, 2012).
2012). Essas bases tambm foram criadas pela NASA Metrics
Data Program e possuem a mesma quantidade e tipos de atributos numricos da base
KC2. Este apndice apresenta alguns resultados

B.1 Bases de Dados


As bases de dados utilizadas nas simulaes dos classificadores so: CM1, JM1,
KC1 e PC1.

B.1.1 CM1
Conforme o grfico B.1
.1 descreve, a base de dados agrupada
a
possui 498 amostras,
a
das
quais: 449 contm o valor de classe igual a False e 49 contm o valor de classe igual a
True. O valor False para todos os mdulos em que no foram relatados defeitos e
True para todos os outros mdulos.

Porcentagem de amostras
9,83%

False
True
90,16%

Grfico B.1
B Balanceamento da base de dados CM1.

B.1.2 JM1
A base de dados de Predio de defeitos JM1 possui 10885 casos,, dos
do quais: 2106
contm o valor de classe igual a False e 8879 contm o valor de classe igual a True.

O valor False para todos os mdulos em que no foram relatados defeitos e True
para todos os outros mdulos.

Porcentagem de amostras
19,35%

False
True

80,65%
Grfico B.2Balanceamento
B
da base de dados JM1.
65

B.1.3 KC1
A base de dados de Predio de Defeitos KC1 contm 2109 casos,
casos dos quais: 326
tm o valor de classe igual a Yes

e 1783 contm o valor de classe igual a No.

O
valor Yes para todos os mdulos em que foram encontrados defeitos e No para
todos os outros mdulos.

Porcentagem de amostras
15,45%

No

Yes

84,55%

Grfico B.3Balanceamento
B
da base de dados KC1.

B.1.4 PC1
Conforme o grfico A.6 descreve, a base de dados agrupada
grupada possui 1109 exemplos,
dos quais: 77 contm
ntm o valor de classe igual a False e 1032 contm o valor de classe
igual a True. O valor True para todos os mdulos em que foram encontrados
defeitos e False para todos os outros mdulos.

Porcentagem de amostras
6,94%

False
True
93,05%

Grfico B.4Balanceamento
B
da base de dados PC1.

B.2 Resultados de Classificadores Convencionais


Conve cionais
Os grficos B.1 a B.4 mostram que essas bases de dados tambm so desbalanceadas.
Por isso, bases balanceadas foram produzidas usando o mesmo procedimento citado na
seo 5.2.2 deste presente trabalho.
A base de dados JM1 possui cinco padres com alguns valores de atributos
desconhecidos.. Para fim de avaliao optou-se
optou se por manter apenas os padres que
contm todos os valores de atributos conhecidos, ento esses padres foram removidos,
tendo uma reduo de tamanho para 10880 padres da base de dados original.
origi

66

A tabela B.1 exibe de modo decrescente o desempenho dos classificadores de acordo


com a base de dados original.
Tabela B.1: Resultados com bases originais sem a rejeio de padres
Base

Classificador

CM1

JM1

KC1

PC1

MLP
K-NN
K-Mdias
Naive Bayes
ADALINE
DMC
MADALINE
MLP
K-Mdias
Naive Bayes:
DMC
K-NN
ADALINE
MADALINE
MLP
K-Mdias
DMC
Naive Bayes
K-NN
MADALINE
ADALINE
MLP
K-NN
K-Mdias
Naive Bayes
DMC
ADALINE
MADALINE

 
90.2% 2.30
89.3% 2.95
86.6% 3.29
85.3% 4.5
85.3% 11.97
83.4%3.32
76.1% 23.06
80.8% 0.66
80.7% 0.76
80.4% 0.79
80.3% 0.86
78.7% 0.65
73.0% 9.87
61.0% 22.45
85.5% 0.68
83.9% 1.42
83.8% 1.76
82.1% 1.73
82.0% 1.53
74.2% 13.66
70.4% 14.48
93.2% 1.41
93.0% 1.65
92.8% 1.66
88.7% 3.00
88.5% 1.25
86.7% 13.63
80.0% 21.51

A tabela B.2 exibe de modo decrescente o desempenho dos classificadores de acordo


com a base de dados balanceada.
Tabela B.2: Resultados com bases balanceadas sem a rejeio de padres
Base

Classificador

CM1

MLP
K-NN
K-Mdias
Naive Bayes
ADALINE
DMC
MADALINE

 
90.2% 2.30
89.3% 2.95
86.6% 3.29
85.3% 4.5
85.3% 11.97
83.4% 3.32
76.1% 23.06
67

80.8% 0.66
80.7% 0.76
80.4% 0.79
80.3% 0.86
78.7% 0.65
73.0% 9.87
61.0% 22.45
85.5% 0.68
83.9% 1.42
83.8% 1.76
82.1% 1.73
82.0% 1.53
74.2% 13.66
70.4% 14.48
93.2% 1.41
93.0% 1.65
92.8% 1.66
88.7% 3.00
88.5% 1.25
86.7% 13.63
80.0% 21.51

MLP
K-Mdias
Naive Bayes:
DMC
K-NN
ADALINE
MADALINE
MLP
K-Mdias
DMC
Naive Bayes
K-NN
MADALINE
ADALINE
MLP
K-NN
K-Mdias
Naive Bayes
DMC
ADALINE
MADALINE

JM1

KC1

PC1

B.3 Resultados com a Opo de Rejeio


Os grficos B.5 a B.13 apresentam as melhores curvas ARs obtidas com o MLP e KMdias aplicados s bases originais e balanceadas descritas neste apndice.

100,00%
95,00%

Taxa de Acerto

90,00%
85,00%
80,00%
75,00%
70,00%
65,00%
60,00%
55,00%
50,00%

Taxa de Rejeio

Grfico B.5 MLP aplicado na base PC1 balanceada


68

100,00%
95,00%

Taxa de Acerto

90,00%
85,00%
80,00%
75,00%
70,00%
65,00%
60,00%
55,00%

Taxa de Rejeio

Grfico B.6 MLP aplicado na base CM1 balanceada

99,00%

Taxa de Acerto

94,00%

89,00%

84,00%

79,00%

Taxa de Rejeio

Grfico B.7 MLP aplicado na base JM1 original


69

100,00%
98,00%

Taxa de Acerto

96,00%
94,00%
92,00%
90,00%
88,00%
86,00%
84,00%

Taxa de Rejeio

Grfico B.8 MLP aplicado na base KC1 original

100,00%
98,00%
96,00%

Taxa de Acerto

94,00%
92,00%
90,00%
88,00%
86,00%
84,00%
82,00%
80,00%

Taxa de Rejeio

Grfico B.9 K-Mdias aplicado na base PC1 balanceada


70

100,00%

Taxa de Acerto

95,00%

90,00%

85,00%

80,00%

75,00%

Taxa de Rejeio

Grfico B.10 K-Mdias aplicado na base KC1 balanceada

Taxa de Acerto

98,00%

93,00%

88,00%

83,00%

78,00%

Taxa de Rejeio

Grfico B.11 K-Mdias aplicado na base CM1 balanceada

71

100,00%
98,00%
96,00%

Taxa de Acerto

94,00%
92,00%
90,00%
88,00%
86,00%
84,00%
82,00%
80,00%

Taxa de Rejeio

Grfico B.12 K-Mdias aplicado na base JM1 original

99,00%
97,00%

Taxa de Acerto

95,00%
93,00%
91,00%
89,00%
87,00%
85,00%
83,00%

Taxa de Rejeio

Grfico B.13 K-Mdias aplicado na base KC1 original


72