Академический Документы
Профессиональный Документы
Культура Документы
MARACANA
2013
MARACANA
2013
ii
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
iii
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.
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
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
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).
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.
ii.
iii.
iv.
v.
vi.
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%
Erro
Falha
Falta
Problema
Definio
(Equao 2.1)
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 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
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.
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.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
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.
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/ =
(Equao 3.2)
(Equao 3.3)
19
(Equao 3.4)
Algoritmo 3.1: Distncia Mnima ao Centride (DMC). Fonte: (Barreto G. A., 2007).
+ 1Q = +1 /HI N I Q + JC?K
(Equao 3.5)
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.
21
(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.
'
(Equao 3.7)
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)
4:
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
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)
l
p
,
1 = k o = k , o
n
n
(Equao 3.11)
= E I +!/6I +!/
IGl
= r0 +!/+!/ = 0 +!/r+!/
(Equao 3.12)
24
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
+!/ = Ls ++!// = t
1, L +!/ < 0
(Equao 3.13)
1
1
x+!/ = ' +!/ = ++!/ +!//
2
2
(Equao 3.14)
1
1
1
yz{| =
E y+!/ =
E +!/ =
Ez+!/ +!/|
27
27
27
~G,
~G,
~G,
(Equao 3.15)
25
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 +!/ = 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:
(Equao 3.17)
4 +t + 1/ = +t/ + e +t/+t/
(Equao 3.18)
1
1
1
yz{| =
E y+!/ =
E E +!/ =
E Ez+!/ +!/|
27
27
27
~G,
~G, 4G,
~G, 4G,
(Equao 3.19)
26
27
Figura 3.8: Arquitetura geral de uma rede neural supervisionada (Rocha Neto A. R., 2006).
(Equao 3.20)
Wl
pW
W =
=
WC
WC
(Equao 3.21)
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
= 1, 2, , U
(Equao 3.22)
28
(Equao 3.23)
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.
a = 1, 2, ,
4Gl
(Equao 3.26)
(Equao 3.27)
a = 1, 2, ,
(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
1
zW +!/| = z1 'W +!/|, L zW +!/| +tangente hiperblica/
2
(Equao 3.30)
(Equao 3.31)
= 1, 2, , U
(Equao 3.32)
(Equao 3.33)
(Equao 3.34)
Na camada oculta, a regra de atualizao dos pesos, 4I , dada pela seguinte
equao, tal que representa a taxa de aprendizagem:
+1
, = 1 =
2
1
' =
,
1
=
'
+1
(Equao 3.35)
(Equao 3.36)
, =
' =
1
1
=
2
0
,
0
=
'
1
(Equao 3.37)
(Equao 3.38)
3.10 Concluso
CAPTULO 4
32
33
(Equao 4.1)
(Equao 4.2)
WG,.}
WG,.}
3+/ = +6/6
(Equao 4.3)
3+(!/
3+(!/ + 3+/
(Equao 4.4)
34
(Equao 4.5)
4G,
( s = 4 = 1 E[3NI e4 /]
(Equao 4.6)
IG,
4I
4
(Equao 4.7)
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.
1: Procurar o prottipo com centro mais prximo do padro que seria classificado
3:
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:
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
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.
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.
1
E W
7?
(Equao 5.1)
WG,
1
E(W F )
7? F 1
(Equao 5.2)
WG,
e
415 contm o valor de classe igual a No.
Porcentagem de amostras
20,5%
No
Yes
79,5%
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
k=1
k=3
k=5
k=7
k = 9 k = 11 k = 13 k = 15
Desvio padro
k=1
k=3
k=5
k=7
k=9
k = 11
k = 13
k = 15
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
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%
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
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
48
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
49
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
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
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.
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
Engineering
By
Automated
Search.
Fonte:
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
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:
64
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
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.
66
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
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
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
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
99,00%
Taxa de Acerto
94,00%
89,00%
84,00%
79,00%
Taxa de Rejeio
100,00%
98,00%
Taxa de Acerto
96,00%
94,00%
92,00%
90,00%
88,00%
86,00%
84,00%
Taxa de Rejeio
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
100,00%
Taxa de Acerto
95,00%
90,00%
85,00%
80,00%
75,00%
Taxa de Rejeio
Taxa de Acerto
98,00%
93,00%
88,00%
83,00%
78,00%
Taxa de Rejeio
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
99,00%
97,00%
Taxa de Acerto
95,00%
93,00%
91,00%
89,00%
87,00%
85,00%
83,00%
Taxa de Rejeio