136
UNIVERSIDADE DE PERNAMBUCO Universidade de Pernambuco Escola Polit´ ecnica de Pernambuco Departamento de Sistemas e Computa¸c˜ ao P´os-gradua¸c˜ ao em Engenharia da Computa¸c˜ ao FERRAMENTA PARA ESTIMATIVA DE ESFORC ¸O DE PROJETOS DE SOFTWARE BASEADA EM T ´ ECNICAS DE COMPUTAC ¸ ˜ AO INTELIGENTE Petrˆ onio de Luna Braga DISSERTAC ¸ ˜ AO DE MESTRADO Recife Julho de 2008

FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

UNIVERSIDADE

DE PERNAMBUCO

Universidade de PernambucoEscola Politecnica de Pernambuco

Departamento de Sistemas e Computacao

Pos-graduacao em Engenharia da Computacao

FERRAMENTA PARA ESTIMATIVA DEESFORCO DE PROJETOS DE SOFTWARE

BASEADA EM TECNICAS DECOMPUTACAO INTELIGENTE

Petronio de Luna Braga

DISSERTACAO DE MESTRADO

RecifeJulho de 2008

Page 2: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

Livros Grátis

http://www.livrosgratis.com.br

Milhares de livros grátis para download.

Page 3: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

Universidade de PernambucoEscola Politecnica de Pernambuco

Departamento de Sistemas e Computacao

Petronio de Luna Braga

FERRAMENTA PARA ESTIMATIVA DE ESFORCO DEPROJETOS DE SOFTWARE BASEADA EM TECNICAS DE

COMPUTACAO INTELIGENTE

Trabalho apresentado ao Programa de Pos-graduacao em

Engenharia da Computacao do Departamento de Siste-

mas e Computacao da Universidade de Pernambuco como

requisito parcial para obtencao do grau de Mestre em

Engenharia da Computacao.

Orientador: Prof. Dr. Adriano Lorena Inacio de Oliveira

Co-orientador: Prof. Dr. Silvio Romero de Lemos Meira

RecifeJulho de 2008

Page 4: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

Dedico esta dissertacao a Deus e a tudo o que Ele re-presenta na minha vida. A Ele devo tudo que tenho,sou e espero ser. Deus seja louvado.

Page 5: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

AGRADECIMENTOS

• Ao nosso Senhor e Salvador Jesus Cristo por sua grande misericordia e amor incondici-onal;

• Aos meus pais, Petronio Jorge Braga e Maria Lucia de Luna Braga, pela educacao eesforco que permitiram dar mais esse passo e conquistar mais essa vitoria;

• Aos meus irmaos, Rodolfo Braga e Jorge Braga, pela paciencia e companheirismo.Tambem agradeco a Jorge Braga pela ajuda na revisao deste trabalho;

• A minha noiva, Ana Regia Macedo Uchoa, companheira, ombro amigo. Pelos momentosde alegria, amor, descontracao, paciencia e principalmente pelo apoio incondicional nosmomentos mais difıceis dessa caminhada;

• Ao meu orientador, Prof. Dr. Adriano Lorena Inacio de Oliveira, pela sua orientacaosempre rica de boas ideias, pelo aprendizado, entusiasmo, apoio, paciencia, confianca econselhos pertinentes;

• Ao Prof. Dr. Ricardo Massa Ferreira Lima por me incentivar a deixar o emprego eacreditar que o mestrado seria a melhor escolha. Hoje, posso dizer que o senhor estavacerto. Muito obrigado.;

• Ao aluno de Iniciacao Cientıfica do Departamento de Sistemas e Computacao (DSC),Gustavo Henrique Tavares Ribeiro, pela contribuicao direta em parte dos trabalhosdesenvolvidos nesta dissertacao;

• Aos velhos amigos Cesar Augusto, Diogo Pacheco, George Cabral e Thyago Rocha peladisponibilidade, pelos conhecimentos compartilhados, amizade e ajuda;

• Aos novos amigos que fiz: Alexandre Santos, Danilo Ferreira, Henrique Rebelo e MarioMonteiro. E aos colegas Wesnaida Schuler, Ellen Polliana Cavalcanti, Renata Freire, Li-lian Ramires, Anthony Lins, Marcelo Moura e Bernardo Caldas pela convivencia duranteesses quase 2 anos. Sentirei saudades!

• A secretaria do DSC, Ana Georgina, pela sua grande paciencia, amizade e parceria;

• Aos meus familiares e amigos pelos varios momentos de confraternizacao, descontracao eforca. Tambem, por estarem sempre acessıveis e presentes nos momentos de dificuldadee alegria;

• Ao Prof. Dr. Paulo Jorge Adeodato pelas suas intervencoes e sugestoes que ajudarama melhorar a versao final deste trabalho.

iv

Page 6: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

AGRADECIMENTOS v

• Novamente, obrigado, a minha mae, ao meu pai, a minha famılia, a minha noiva, semvoces eu nao teria conseguido chegar ate aqui, e nem prosseguir para a execucao deprojetos futuros. Vamos em frente!!!

Page 7: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

Aprendi que nao posso exigir o amor de ninguem...

Posso apenas dar boas razoes para que gostem de mim...

E ter paciencia para que a vida faca o resto...

—WILLIAM SHAKESPEARE (1564 - 1616)

Page 8: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

RESUMO

Software representa uma fracao importante do orcamento das empresas e governo. Asfabricas de software necessitam produzi-los com qualidade e no menor custo possıvel paraassegurar a competitividade no mercado. O tamanho e a complexidade dos softwares temaumentado ao longo do tempo e as empresas se esforcam para que seus projetos sejamconcluıdos no prazo e custos estabelecidos. Consequentemente, as areas de planejamentoe controle do processo de desenvolvimento de software tem exigido cada vez mais a atencaodos gerentes. A tarefa de estimar esforco e um importante insumo dessas atividades.

O levantamento e o entendimento dos requisitos de um software a ser desenvolvido,assim como a sua transformacao em uma estimativa de esforco segura e acurada, saoalgumas das maiores dificuldades que envolvem o processo de fabricacao de software. Aestimativa de esforco e necessaria para que o cronograma e os custos do projeto sejamprevistos antecipadamente e a negociacao com o cliente possa ser efetuada. Sao frequentesos erros, sendo os principais motivos a falta de conhecimento do que e e de como se realizaruma estimativa e/ou ao curto prazo de tempo despendido para essa atividade. Esses errospodem causar grandes impactos na competitividade da fabrica de software.

Diversas tecnicas foram estudadas na literatura para o problema da estimativa do es-forco em projetos de software, incluindo o modelo COCOMO e as redes neurais artificiais.

Neste trabalho propomos, usamos e comparamos diversas tecnicas de aprendizagemde maquina aplicadas ao presente problema. Dentre essas, destacamos que nosso trabalhofoi o primeiro a investigar a aplicacao da tecnica Bagging ao problema da estimativa deesforco. Alem disso, propusemos um metodo baseado em algoritmo genetico para selecaosimultanea dos parametros das tecnicas de aprendizagem de maquina e dos atributos deentrada para problemas de regressao e avaliamos este metodo no problema da estima-tiva de esforco em projetos de software. Outra contribuicao deste trabalho consistiu daaplicacao do metodo de intervalos de confianca robustos como uma forma de aumentar aconfiabilidade das estimativas. Para os nossos experimentos, tres bases de dados foramselecionadas. Em todos os experimentos, obtivemos os melhores resultados quando com-parados aos resultados reportados na literatura cientıfica. Diante dos resultados obtidos,acreditamos que o modelo que propomos traz relevantes contribuicoes para as pesquisasna area de estimativas de esforco de software.

Neste trabalho tambem desenvolvemos um prototipo de uma ferramenta para estima-tiva de esforco de projetos de software baseada em tecnicas de aprendizagem de maquina,que teve como finalidade facilitar a adocao, por parte dos gerentes de projeto, da tarefade estimar esforco no processo de desenvolvimento de projeto de software.

Palavras-chave: Estimativa de Esforco de Software, Tecnicas de Aprendizagem deMaquina, Algoritmo Genetico, Bagging, Intervalos de Confianca Robustos

vii

Page 9: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

ABSTRACT

Software represents a significant fraction of the budget in business and government. Soft-ware factories need to produce high quality software with the lowest possible cost toensure competitiveness in the market. The size and complexity of software has increasedover time and companies are striving to ensure that their projects are completed on timeand costs pre-established. Consequently, the areas of planning and control of the softwaredevelopment process have increasingly demanded the attention of the project managers.The task of estimating effort is an important input for these activities.

Software effort estimation and software requirements elicitation are two of the mostchallenging and important tasks in the software developtment cycle. The estimation ofeffort is needed to schedule the software project and estimate its costs in advance sothat negotiation with the customer can be done. Effort estimation errors are frequent inpractice and the main cause are changes in the software requirements. These errors cancause major impacts on competitiveness of software factories.

Several techniques were studied in the literature on software effort estimation, inclu-ding traditional techniques such as the COCOMO model and artificial neural networks.

In this work, we compared various machine learning techniques applied to softwareeffort estimation. In particular, it is important to stress that our work was the firstto investigate the application of Bagging to the problem of software effort estimation.Furthermore, we proposed a method based on genetic algorithm for selection of both theparameters of the machine learning techniques and the input attributes for regressionproblems and evaluated this method for software effort estimation. Another contributionof this work was the application of the method of robust confidence intervals aimed toincrease the reliability of estimates. For our experiments, three databases were selected.In all experiments, we obtained the best results when compared to the results reportedin the scientific literature. Given the results obtained, we believe that the method pro-posed in this work brings relevant contributions to research in the area of software effortestimation.

This work also developed a prototype of a tool to estimate the effort of software pro-jects based on machine learning techniques, which was intended to facilitate the adoption,by the project managers, of software effort estimation in the software development pro-cess.

Keywords: Software Effort Estimation, Machine Learning Techniques, Genetic Algo-rithm, Bagging, Robust Confidence Intervals

viii

Page 10: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

PUBLICACOES RESULTANTES DESTE TRABALHO

TRABALHOS COMPLETOS PUBLICADOS EM ANAIS DE CONGRESSOS

• BRAGA, P. L. ; OLIVEIRA, A. L. I. ; MEIRA, S. R. L. A GA-based Feature Selectionand Parameters Optimization for Support Vector Regression Applied to Software Ef-fort Estimation. In: ACM Symposium on Applied Computing, pp. 1788-1792, 2008,Fortaleza-Brazil.

• BRAGA, P. L. ; OLIVEIRA, A. L. I. ; MEIRA, S. R. L. Software Effort Estimation usingMachine Learning Techniques with Robust Confidence Intervals. In: IEEE InternationalConference on Tools with Artificial Intelligence, pp. 181-185, 2007, Patras - Grecia.

• BRAGA, P. L. ; OLIVEIRA, A. L. I. ; RIBEIRO, G. H. T. ; MEIRA, S. R. L. BaggingPredictors for Estimation of Software Project Effort. In: IEEE International Joint Con-ference on Neural Networks, pp. 1595-1600, 2007, Orlando-Florida.

ix

Page 11: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

SUMARIO

Capıtulo 1—Introducao 1

1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Estado da Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4 Estrutura da dissertacao . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Capıtulo 2—Estimativa de Esforco de Software 10

2.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2 Estimativa de Esforco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Metricas de Tamanho de Software . . . . . . . . . . . . . . . . . . . . . . 13

2.3.1 Linhas de Codigo Fonte . . . . . . . . . . . . . . . . . . . . . . . 132.3.2 Pontos de Funcao . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3.3 Pontos por Caso de Uso . . . . . . . . . . . . . . . . . . . . . . . 14

2.4 Classificacao das Tecnicas para Estimativas . . . . . . . . . . . . . . . . 152.4.1 Tecnica baseada em Julgamento de Especialistas . . . . . . . . . 152.4.2 Tecnicas por Analogia . . . . . . . . . . . . . . . . . . . . . . . . 162.4.3 Tecnicas Parametricas ou Algorıtmicas . . . . . . . . . . . . . . . 16

2.5 Bases de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.5.1 NASA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.5.2 Desharnais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.5.3 COCOMO81 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.6 Comentarios Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Capıtulo 3—Tecnicas para Regressao 22

3.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2 Regressao Linear Multipla . . . . . . . . . . . . . . . . . . . . . . . . . . 223.3 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.3.1 Perceptron Multi-Camadas . . . . . . . . . . . . . . . . . . . . . . 233.3.2 Redes de Funcao de Base Radial . . . . . . . . . . . . . . . . . . . 24

3.4 Maquinas de Vetor de Suporte . . . . . . . . . . . . . . . . . . . . . . . . 263.4.1 Maquinas de Vetor de Suporte para Regressao . . . . . . . . . . . 26

3.5 Tecnicas de Arvores para Regressao . . . . . . . . . . . . . . . . . . . . . 273.5.1 Algoritmo M5’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.6 Metodo Bagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.7 Tecnicas de Aprendizagem de Maquina aplicadas ao problema . . . . . . 33

x

Page 12: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

SUMARIO xi

3.8 Tecnicas de Estimativa da Capacidade de Generalizacao . . . . . . . . . 343.8.1 Holdout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.8.2 Validacao Cruzada . . . . . . . . . . . . . . . . . . . . . . . . . . 343.8.3 Leave-one-out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.9 Medidas de Desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.9.1 PRED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.9.2 MMRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.10 Intervalos de Confianca Robustos . . . . . . . . . . . . . . . . . . . . . . 373.10.1 Calculando os Intervalos de Confianca Robustos . . . . . . . . . . 38

3.11 Comentarios Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Capıtulo 4—Metodo Proposto 40

4.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.2 Algoritmo Genetico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.2.1 Representacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.2.2 Selecao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.2.3 Cruzamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2.4 Mutacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.3 Metodo Proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.3.1 Metodo Proposto Baseado em Algoritmos Geneticos . . . . . . . . 46

4.3.1.1 Funcao Objetivo . . . . . . . . . . . . . . . . . . . . . . 474.3.1.2 Arquitetura do sistema para a abordagem baseada em AG 48

4.4 Comentarios Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Capıtulo 5—Prototipo da Ferramenta 50

5.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.2 WEKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.2.1 Formato ARFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.3 Prototipo da Ferramenta . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.4 Caracterısticas Tecnicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.4.1 Modulo - GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.4.2 Modulo - Algoritmo Genetico . . . . . . . . . . . . . . . . . . . . 585.4.3 Modulo - Interface com WEKA . . . . . . . . . . . . . . . . . . . 60

5.5 Comentarios Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Capıtulo 6—Experimentos 65

6.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656.2 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.2.1 Experimentos com a base de dados NASA . . . . . . . . . . . . . 686.2.2 Experimentos com a base de dados Desharnais . . . . . . . . . . . 786.2.3 Experimentos com a base de dados COCOMO . . . . . . . . . . . 83

6.3 Comentarios Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Page 13: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

SUMARIO xii

Capıtulo 7—Conclusoes 98

7.1 Contribuicoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1007.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Apendice A—Fatores de Ajuste do Esforco e Nıveis das Variaveis 102

Apendice B—Comparacoes com Testes de Hipoteses 105

Apendice C—Ferramentas para gerenciamento de Projetos de Software 108

C.1 Costar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108C.2 Calico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109C.3 USC-COCOMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109C.4 Cost Xpert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Page 14: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

LISTA DE FIGURAS

1.1 O Cone da Incerteza baseado nas etapas de um projeto [McC06]. . . . . . 21.2 Se um projeto nao e bem controlado ou bem estimado, podemos acabar

com nuvens de incerteza que contem mais do que o erro da estimativarepresentado pelo cone [McC06]. . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Resultados de estimativas de projetos, entre os anos 1994-2004, reportadasno relatorio do Standish Group [Gro04]. . . . . . . . . . . . . . . . . . . . 3

1.4 Processo de uma estimativa. O esforco, o cronograma e o custo sao deri-vados da estimativa do tamanho e outras medicoes coletadas de projetospassados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1 Os cinco principais papeis de medicoes de software. . . . . . . . . . . . . 102.2 Metodo de Estimativas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.3 Sensibilidade do processo de estimativa a qualidade dos dados de entrada. 12

3.1 Uma rede MLP com uma camada escondida e um neuronio de saıda. . . 243.2 Arquitetura tıpica de uma rede RBF para o problema de regressao. . . . 253.3 Regressao usando ε-SVR. . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.4 Exemplo de uma arvore de decisao. . . . . . . . . . . . . . . . . . . . . . 283.5 Modelos de previsao de desempenho para a CPU [WEK07]: (a) regressao

linear, (b) arvore de regressao e (c) arvore de modelo. . . . . . . . . . . . 293.6 Estrutura de um experimento usando o metodo Bagging. . . . . . . . . . 323.7 Ciclo basico de um experimento para gerar um modelo usando tecnicas de

aprendizagem de maquina. . . . . . . . . . . . . . . . . . . . . . . . . . . 333.8 Exemplo de holdout com a divisao 50% dos dados para treinamento, 25%

para validacao e 25% para teste. . . . . . . . . . . . . . . . . . . . . . . . 353.9 Exemplo de validacao cruzada com 10 partes. . . . . . . . . . . . . . . . 35

4.1 Estrutura basica de um AG simples. . . . . . . . . . . . . . . . . . . . . 434.2 Selecao utilizando o metodo de roleta simples. . . . . . . . . . . . . . . . 444.3 Metodo de cruzamento de dois pontos. . . . . . . . . . . . . . . . . . . . 454.4 Metodo de mutacao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.5 O indivıduo com duas partes. A primeira parte representa os parametros

das tecnicas de aprendizagem de maquina e a segunda representa as ca-racterısticas de entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.6 Arquitetura do sistema do metodo proposto baseado em AG para selecionarcaracterısticas e otimizar os parametros das tecnicas de aprendizagem demaquina para problemas de regressao. . . . . . . . . . . . . . . . . . . . 49

xiii

Page 15: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

LISTA DE FIGURAS xiv

5.1 WEKA GUIChooser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.2 Tela inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545.3 Tela principal do sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . 545.4 Menu Treinar � opcao � Experimento. . . . . . . . . . . . . . . . . . . . 555.5 Tela de opcoes para o treinamento de uma tecnica de aprendizagem de

maquina. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.6 Menu Estimar � opcao � Executar. . . . . . . . . . . . . . . . . . . . . . 565.7 Tela para a estimativa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.8 Tela de resultado da estimativa. . . . . . . . . . . . . . . . . . . . . . . . 575.9 Menu Ajuda � opcao � Sobre. . . . . . . . . . . . . . . . . . . . . . . . . 575.10 Tela que contem as informacoes gerais do prototipo. . . . . . . . . . . . . 585.11 Diagrama de classes do modulo GUI. . . . . . . . . . . . . . . . . . . . . 595.12 Diagrama dos pacotes do modulo Algoritmo Genetico. . . . . . . . . . . . 615.13 Diagrama de classes do pacote operadores do modulo Algoritmo Genetico. 615.14 Diagrama dos pacotes do modulo de interface com o WEKA. . . . . . . . 625.15 Diagrama de classes dos pacotes weka do modulo interface com WEKA . 625.16 Diagrama de classes do pacote tecnicas do modulo interface com WEKA. 635.17 Diagrama de classes dos pacotes padrao e funcoes. . . . . . . . . . . . . . 64

6.1 PRED(25) (b) como uma funcao dos parametros da tecnica Bagging bagSi-zePercent (S) e numIterations (I) usando a rede neural MLP (L = 0,01, M= 0,3, H = 10, N = 2000) com a base de dados NASA com duas variaveisde entrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.2 MMRE como uma funcao dos parametros da tecnica Bagging bagSizePer-cent (S) e numIterations (I) usando a rede neural MLP (L = 0,01, M =0,3, H = 10, N = 2000) com a base de dados NASA com duas variaveis deentrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.3 PRED(25) como uma funcao dos parametros da tecnica Bagging bagSize-Percent (S) e numIterations (I) usando a rede neural RBF (N = 6, D =0,1) com a base de dados NASA com duas variaveis de entrada. . . . . . 71

6.4 MMRE como uma funcao dos parametros da tecnica Bagging bagSizePer-cent (S) e numIterations (I) usando a rede neural RBF (N = 6, D = 0,1)com a base de dados NASA com duas variaveis de entrada. . . . . . . . . 71

6.5 Intervalos de confianca robustos para predicoes da base de dados NASAcom uma variavel de entrada usando M5P/MT. . . . . . . . . . . . . . . 75

6.6 Intervalos de confianca robustos para predicoes da base de dados NASAcom uma variavel de entrada usando a rede neural RBF. . . . . . . . . . 75

6.7 Intervalos de confianca robustos para predicoes da base de dados NASAcom uma variavel de entrada usando SVR Linear. . . . . . . . . . . . . . 76

6.8 Intervalos de confianca robustos para predicoes da base de dados NASAcom duas variaveis de entrada usando SVR Linear. . . . . . . . . . . . . 76

6.9 Intervalos de confianca robustos para predicoes da base de dados NASAcom duas variaveis de entrada usando SVR RBF. . . . . . . . . . . . . . 77

Page 16: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

LISTA DE FIGURAS xv

6.10 Intervalos de confianca robustos para predicoes da base de dados NASAcom duas variaveis de entrada usando MLP. . . . . . . . . . . . . . . . . 77

6.11 PRED(25) como uma funcao dos parametros da tecnica Bagging bagSize-Percent (S) e numIterations (I) usando a rede neural MLP (L = 0,01, M= 0,3, H = 10, N = 2000) para a base de dados Desharnais. . . . . . . . 81

6.12 MMRE como uma funcao dos parametros da tecnica Bagging bagSizePer-cent (S) e numIterations (I) usando a rede neural MLP (L = 0,01, M =0,3, H = 10, N = 2000) para a base de dados Desharnais. . . . . . . . . . 81

6.13 PRED(25) como uma funcao dos parametros da tecnica Bagging bagSize-Percent (S) e numIterations (I) usando a rede neural RBF (N = 6, D =0.1) para a base de dados Desharnais. . . . . . . . . . . . . . . . . . . . . 82

6.14 MMRE como uma funcao dos parametros da tecnica Bagging bagSizePer-cent (S) e numIterations (I) usando a rede neural RBF (N = 6, D = 0.1)para a base de dados Desharnais. . . . . . . . . . . . . . . . . . . . . . . 82

6.15 Intervalos de confianca robustos para predicoes da base de dados Deshar-nais usando a tecnica Bagging com MLP. . . . . . . . . . . . . . . . . . . 84

6.16 Intervalos de confianca robustos para predicoes da base de dados Deshar-nais usando a tecnica Bagging com M5P. . . . . . . . . . . . . . . . . . . 84

6.17 Intervalos de confianca robustos para predicoes da base de dados Deshar-nais utilizando a abordagem baseada em AG com SVR RBF. . . . . . . . 85

6.18 Intervalos de confianca robustos para predicoes da base de dados Deshar-nais utilizando a abordagem baseada em AG com MLP. . . . . . . . . . . 85

6.19 Diagrama de probabilidade normal para os dados sem o pre-processamento. 886.20 Diagrama de probabilidade normal para os dados com o pre-processamento. 886.21 Intervalos de confianca robustos para predicoes da base de dados CO-

COMO (conjunto de dados 1) utilizando usando a tecnica Bagging comSVR RBF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

6.22 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 2) utilizando usando a tecnica Bagging comSVR RBF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

6.23 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 3) utilizando usando a tecnica Bagging comSVR Linear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

6.24 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 4) utilizando usando a tecnica Bagging comM5P/MT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

6.25 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 5) utilizando usando a tecnica Bagging comM5P/MT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.26 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 6) utilizando usando a tecnica Bagging comMLP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Page 17: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

LISTA DE FIGURAS xvi

6.27 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 1) utilizando a abordagem baseada em AGcom M5P/MT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.28 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 2) utilizando a abordagem baseada em AGcom MLP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.29 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 3) utilizando a abordagem baseada em AGcom MLP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6.30 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 4) utilizando a abordagem baseada em AGcom SVR Linear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6.31 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 5) utilizando a abordagem baseada em AGcom SVR Linear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.32 Intervalos de confianca robustos para predicoes da base de dados CO-COMO (conjunto de dados 6) utilizando a abordagem baseada em AGcom SVR Linear. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Page 18: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

LISTA DE TABELAS

1.1 Resultados dos projetos por tamanho [Cap98]. . . . . . . . . . . . . . . . 4

2.1 Variaveis da base de dados NASA. . . . . . . . . . . . . . . . . . . . . . 192.2 Variaveis da base de dados Desharnais. . . . . . . . . . . . . . . . . . . . 192.3 Variaveis da base de dados COCOMO . . . . . . . . . . . . . . . . . . . 202.4 Valores de acordo com a escala. . . . . . . . . . . . . . . . . . . . . . . . 21

4.1 Parametros das tecnicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6.1 Base de dados com suas quantidades de padroes e numeros de atributos. 666.2 Parametros das tecnicas de aprendizagem de maquina e valores dos parametros

utilizados neste trabalho. . . . . . . . . . . . . . . . . . . . . . . . . . . . 676.3 Parametros do AG que foram utilizadas nas analises preliminares. . . . . 676.4 Comparacao das tecnicas para a base de dados NASA com uma variavel

de entrada (DL-Y). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706.5 Comparacao das tecnicas para a base de dados NASA com duas variaveis

de entrada (DL-ME-Y). . . . . . . . . . . . . . . . . . . . . . . . . . . . 706.6 Resultados experimentais para a base de dados NASA usando a abordagem

baseada em AG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736.7 Comparacao da tecnica baseada em AG com outras tecnicas utilizando a

base de dados NASA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746.8 Intervalos de confianca robustos construıdos usando a base de dados NASA

com uma variavel de entrada. . . . . . . . . . . . . . . . . . . . . . . . . 746.9 Intervalos de confianca robustos construıdos usando a base de dados NASA

com duas variaveis de entrada. . . . . . . . . . . . . . . . . . . . . . . . . 746.10 Comparacao das tecnicas para a base de dados Desharnais. . . . . . . . . 796.11 Resultados experimentais para a base de dados Desharnais usando a abor-

dagem baseada em AG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806.12 Atributos removidos com maior frequencia para cada tecnica utilizada na

base de dados Desharnais. . . . . . . . . . . . . . . . . . . . . . . . . . . 806.13 Comparacao da abordagem baseada em AG com outras tecnicas de apren-

dizagem de maquina utilizando a base de dados Desharnais. . . . . . . . 836.14 Intervalos de confianca robustos construıdos usando a base de dados Deshar-

nais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836.15 Comparacao dos resultados obtidos por Tronto et al. sem [TSS06] e com

o pre-processamento [TSS08]. . . . . . . . . . . . . . . . . . . . . . . . . 87

xvii

Page 19: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

LISTA DE TABELAS xviii

6.16 Pares do conjunto de treinamento e conjunto de teste da base de dadosCOCOMO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.17 Resultados experimentais para a base de dados COCOMO usando as tecnicasde aprendizagem de maquina. . . . . . . . . . . . . . . . . . . . . . . . . 89

6.18 Resultados experimentais para a base de dados COCOMO usando a tecnicaBagging em conjunto com as tecnicas de aprendizagem de maquina. . . . 89

6.19 Comparacao entre os resultados obtidos com a tecnica Bagging em con-junto com as tecnicas de aprendizagem de maquina e os resultados obtidospor Tronto el al. [TSS08]. . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.20 Media dos resultados experimentais para a base de dados COCOMO usandoa abordagem baseada em AG. . . . . . . . . . . . . . . . . . . . . . . . . 90

6.21 Comparacao da abordagem baseada em AG com outros metodos, utili-zando a base de dados COCOMO. A Tabela mostra o MMRE obtido emcada caso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

6.22 Intervalos de confianca robustos construıdas usando a base de dados CO-COMO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

A.1 Fatores de ajuste do esforco e nıveis das variaveis antes e depois do pre-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

B.1 Resultados experimentais para a base de dados Desharnais usando a abor-dagem baseada em AG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

B.2 Resultados experimentais para a base de dados COCOMO usando a abor-dagem baseada em AG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Page 20: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

CAPITULO 1

INTRODUCAO

Software representa uma fracao importante do orcamento das empresas e governo. Asfabricas de software necessitam produzi-los com qualidade, o menor custo possıvel eno prazo estimado para assegurar a competitividade no mercado [Sim99][AKY+01]. Otamanho e a complexidade dos softwares tem aumentado ao longo do tempo e as empresasse esforcam para que seus projetos sejam concluıdos no prazo e custos pre-estabelecidos.Consequentemente, as areas de planejamento e controle do processo de desenvolvimentode software tem exigido cada vez mais a atencao e o cuidado dos gerentes de projetos. Atarefa de estimar esforco e um importante insumo para essas atividades [AKY+01].

O esforco de projetos de software pode ser definido como a quantidade total de tra-balho, usualmente medido em homem-hora, a ser executado no desenvolvimento de umprojeto de software solicitado por um cliente [FP98]. Isso inclui as atividades relaciona-das a gerencia e ao processo de desenvolvimento do projeto. A estimativa de esforco enecessaria para que o cronograma e os custos do projeto sejam previstos antecipadamentee a negociacao com o cliente ocorra [dRV07]. Para a resolucao de problemas de estimativade esforco de software, podem ser usadas tecnicas classicas, tais como regressao lineare regressao linear multipla [BAB+00], ou outras mais avancadas, como as tecnicas deaprendizagem de maquina [Has95][Hay98]. Para construir um modelo de regressao paraestimar o esforco, usam-se medicoes obtidas durante o desenvolvimento do software atuale dados historicos como variaveis de entrada para o modelo [Boe81][SS97][PWL05].

A tarefa de desenvolver software engloba um conjunto de fases que, independente-mente da metodologia escolhida, objetiva entregar o software funcionando corretamente,dentro do orcamento e no prazo pre-estabelecido [Pre06]. Para isso, todas as atividades dedesenvolvimento devem ser elaboradas e desenvolvidas de forma criteriosa e consistente[Lar07]. Um solido trabalho na fase de analise dos requisitos ajuda no entendimento dosprincipais problemas que o futuro software deve resolver, assim como define as fronteirase as funcionalidades para a construcao do software [Pre06].

O processo de levantamento e entendimento dos requisitos de um software a ser de-senvolvido, assim como a sua transformacao em uma estimativa de esforco confiavel eacurada, e uma das maiores dificuldades que abrangem o processo de desenvolvimentode software [dRV07]. Sao frequentes os erros dessas estimativas. Isso se deve, quase sem-pre, a falta de conhecimento de como realizar uma estimativa, a falta de entendimentodo que e uma estimativa e/ou ao curto prazo de tempo despendido para essa atividade(estima-se o esforco de software em um momento em que nao se detem um conhecimentodetalhado sobre os requisitos do sistema a ser desenvolvido). As implicacoes desses errossao diversas: desenvolvedores sobrecarregados e/ou desestimulados, perda de qualidadedo produto final, aumento dos riscos (atrasos e/ou cancelamentos de projetos), difıceisrenegociacoes e, consequentemente, perda da credibilidade no mercado [dRV07].

1

Page 21: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

INTRODUCAO 2

Steve McConnell afirma que, devido as incertezas que cercam os estimadores na faseinicial da definicao do projeto, uma estimativa precisa e teoricamente impossıvel [McC06].Para isso, ele usa o “Cone da Incerteza”, Figura 1.1, para mostrar que, a medida que umprojeto avanca, as estimativas tendem a ser mais precisas. Conforme se depreende daFigura 1.1, a melhoria e substancial, saindo da faixa de ±4x para ±1,25x, com o avancodo projeto da fase inicial ate a fase de finalizacao do projeto de interface do usuario.McConnell coloca que se o projeto nao for bem controlado ou bem estimado, a faixa deincerteza das estimativas nao sofrera reducao a medida que o projeto avanca [McC06]. AFigura 1.2 mostra o que acontece quando a gestao do projeto nao objetiva a reducao dasfontes de variabilidade do projeto. Ao inves da incerteza ter a forma de um cone, ela serauma nuvem que persiste ate o final do projeto. O problema nao e que as estimativas naoconvergem, mas que o projeto em si nao converge, isto e, o projeto nao elimina as fontesde variabilidade de forma suficiente para apoiar estimativas mais precisas.

Variabilidade na Estimativado Escopo do Projeto

(Esforço, Custo, Requisitos)

4x

2x

1,5x

1,25x

1,0x

0,8x

0,67x

0,5x

0,25x

ConcepçãoInicial

Definição doProjeto

(Aprovada)

Requisitos(Concluído)

Projeto daInterface do

Usuário(Concluído)

ProjetoDetalhado

(Concluído)

Software(Concluído)

Figura 1.1 O Cone da Incerteza baseado nas etapas de um projeto [McC06].

Apesar dos constantes melhoramentos no processo de gerenciar projetos, nas tecnicasde estimativas do esforco e no conhecimento dessas tecnicas, um relatorio do StandishGroup mostrou que, entre os anos de 1994-2004, 28% dos projetos foram entregues noprazo e dentro do orcamento, 54% deles foram entregues atrasados e 18% foram cancelados[Gro04]. A Figura 1.3 ilustra os resultados de estimativas de projetos entre os anos 1994-2004. A taxa de falhas de projetos de software e ainda muito elevada, o que acarretagrande impacto na economia dos paıses [Cha05]. Estima-se que, entre os anos de 2000e 2005, o impacto dessas falhas a economia dos Estados Unidos custou entre $25 e $75bilhoes [Cha05].

Capers apresenta uma outra visao dos resultados de projetos de software [Cap98]. Eleobservou, por muitos anos, que o sucesso do projeto esta ligado fortemente ao tamanhodo mesmo. A Tabela 1.1 mostra os resultados.

Podemos notar que quanto maior o tamanho do projeto menor a chance de ele sercompletado no prazo pre-estabelecido e maior a chance de ele ser cancelado [Cap98].

Page 22: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

INTRODUCAO 3

Outros estudos tem encontrado resultados na mesma direcao daqueles reportados peloStandish Group [Gro04] e Carpers [Cap98]. Cerca de um quarto (1/4) de todos os projetossao entregues no prazo pre-estabelecido, cerca de um quarto sao cancelados e cerca dametade sao entregues atrasados [LP92][ISB01][Kra03][PM03].

Variabilidade na Estimativado Escopo do Projeto

(Esforço, Custo, Requisitos)

4x

2x

1,5x

1,25x

1,0x

0,8x

0,67x

0,5x

0,25x

Tempo

Figura 1.2 Se um projeto nao e bem controlado ou bem estimado, podemos acabar com nuvensde incerteza que contem mais do que o erro da estimativa representado pelo cone [McC06].

Porcentagem

100%

90%

80%

70%

60%

50%

40%

30%

20%

10%

0%

1994 1996 1998 2000 2002 2004

CanceladoAtrasado /Orçamento Excedido

No Prazo /Dentro do Orçamento

Figura 1.3 Resultados de estimativas de projetos, entre os anos 1994-2004, reportadas norelatorio do Standish Group [Gro04].

Ao longo do trabalho mostraremos que, embora as duvidas e incertezas estejam pre-sentes na estimativa de qualquer projeto e que devemos considera-las, podemos aumentara sua confianca na etapa inicial um projeto, permitindo que o mesmo seja gerenciavel,dando resposta a frase de Tom DeMarco: “voce nao pode gerenciar o que voce nao podemedir” [dRV07].

Page 23: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

1.1 MOTIVACAO 4

Tamanho Entrega Projeto(Linhas de Codigo) (Antes do Prazo) (No Prazo) (Atrasada) (Cancelado)

103 LOC 11% 81% 6% 2%104 LOC 6% 75% 12% 7%105 LOC 1% 61% 18% 20%106 LOC < 1% 28% 24% 48%107 LOC 0% 14% 21% 65%

Tabela 1.1 Resultados dos projetos por tamanho [Cap98].

1.1 MOTIVACAO

O aumento da qualidade e produtividade pode ser alcancado atraves da gestao efetivados processos de desenvolvimento de software da empresa [Pre06][TSS06]. A gestao doprocesso e direcionada a pessoas, projeto, tecnologias e produto. Com relacao ao projeto,e necessario que exista um planejamento e acompanhamento [TSS08]. Esse acompanha-mento e feito por meio de um conjunto de atividades e coleta de medidas. Dentre os con-juntos de atividades, a de estimar e fundamental, visto que fornece uma diretriz para asdemais atividades necessarias para se desenvolver um software [AKY+01][KK04][GJO06].

As estimativas de tamanho sao importantes para se determinar o esforco necessariopara o desenvolvimento do projeto de software [Cap98]. A partir do tamanho pode serestimado o esforco. E importante ressaltar que a estimativa do esforco pode/deve levarem consideracao outras medicoes levantadas a partir dos dados historicos de projetospassados. Por meio do esforco sao derivados o cronograma e os custos que o softwaretera. A Figura 1.4 ilustra um processo de uma estimativa [dRV07].

Tamanho

EsforçoCusto

CronogramaOutras Métricas

+

Figura 1.4 Processo de uma estimativa. O esforco, o cronograma e o custo sao derivados daestimativa do tamanho e outras medicoes coletadas de projetos passados.

O Ministerio de Ciencia e Tecnologia registrou em 2001 que apenas 29% das empre-sas brasileiras realizavam estimativas de tamanho e que 45,7% realizavam estimativa deesforco [TSS06]. Nao temos notıcia de um estudo que indique o motivo do baixo usoda atividade de estimar esforco, mas o baixo nıvel de confiabilidade pode ser umas daspossıveis causas [TSS06]. Devido a isso, e muito importante investigar novas tecnicaspara melhorar a acuracia e confiabilidade das estimativas.

Page 24: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

1.2 ESTADO DA ARTE 5

Pesquisas recentes [Oli06][HHRC07][TSS08][BdOdLM08] tem mostrado que as tecnicasde aprendizagem de maquina podem fornecer resultados mais precisos do que as tecnicasclassicas para a estimativa do esforco, tal como o modelo COCOMO (COnstructive COstMOdel) [Boe81][BAB+00][Kem87].

Neste projeto propomos a comparacao de diversas tecnicas de aprendizagem de maquinaaplicadas ao presente problema. Sabe-se que o desempenho de previsao dessas tecnicas de-pende do problema, portanto e bastante relevante investigar qual delas e(sao) melhor(es)- ou seja, mais precisas - para o problema em questao.

Existem diversas ferramentas comerciais para estimativa de esforco de software nomercado [Laa07], dentre elas: a Costar [Sys07], a CostExpert [Xpe07] e a Estimate Pro-fessional [Pro07]. Apesar de ja haver um numero consideravel de artigos cientıficos rela-tando a utilizacao de tecnicas de aprendizagem de maquina neste problema, nao temosnotıcia da existencia de ferramentas ou prototipos que utilizem tais tecnicas.

1.2 ESTADO DA ARTE

O problema da estimativa de esforco de software e fundamental para a industria de soft-ware [GJO06][KK04]. Embora existam tecnicas muito difundidas e aplicadas no mercadopara estimativa de esforco, tal como o modelo COCOMO [Boe81][BAB+00], pesquisasatuais tem demonstrado que tecnicas de aprendizagem de maquina podem fornecer esti-mativas mais precisas e confiaveis do que esses modelos [SG00][BL01][Oli06].

Diversas tecnicas foram estudadas na literatura para o problema da estimativa do es-forco em projetos de software, incluindo tecnicas tradicionais como o modelo COCOMO[Boe81][BAB+00] e tambem redes neurais artificiais [SG00][BL01][TSS06][TSS08]. Redesneurais fazem parte de um paradigma de resolucao de problemas da area de inteligenciacomputacional conhecido como aprendizagem de maquina [Has95][Hay98][dPBdLFdCL07].

Existem varias tecnicas de aprendizagem de maquina propostas na literatura quesao empregadas com sucesso para resolver diversos problemas, tanto de classificacaoquanto de regressao (que e o caso do problema da estimativa de esforco de software)[Has95][Hay98][dPBdLFdCL07]. Algumas delas ja foram investigadas em problemas deestimativa de esforco de software, tais como as redes neurais de funcao de base radial (Ra-dial Basis Function Network - RBFN) [SG00]. Ha diversos aspectos a serem observados,quando da escolha de uma tecnica de aprendizagem de maquina para um determinadoproblema, a saber: (1) acuracia das estimativas, (2) confiabilidade dos resultados, (3)interpretabilidade, (4) tempo de treinamento e (5) consumo de memoria. A acuracia dasestimativas e uma das caracterısticas mais importantes e depende fortemente da tecnicautilizada [dPBdLFdCL07].

Shepperd e Schofield descreveram uma abordagem alternativa para o processo de es-timativa de esforco de software [SS97]. Ela se baseia no uso de analogias. Para esseexperimento foram usadas nove bases de dados (275 projetos de software no total). Osresultados indicaram que a abordagem proposta, estimativa por analogia, e uma tecnicade facil entendimento e que pode ser usada por gerentes de projetos como complementodas tecnicas de estimativa de esforco de software baseadas em algoritmo. Outra aborda-gem interessante investigada por eles foi a estratificacao das bases de dados analisadas.

Page 25: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

1.2 ESTADO DA ARTE 6

Estratificar e separar os dados de uma base em grupos de acordo com suas similaridades(nıvel de semelhanca). Com essa nova abordagem, eles obtiveram melhores resultados.

Burgess e Lefley propuseram investigar o potencial da programacao genetica paraestimar esforco de projetos de software [BL01]. Eles compararam seu metodo com: re-gressao linear, k - vizinho(s) mais proximo(s) (k-Nearest Neighbors - k-NN) e a redeneural perceptron multi-camadas (Multi-Layer Perceptron - MLP). Nas simulacoes, elesusaram a base de dados Desharnais, que consiste de 81 projetos de software. Os resulta-dos mostraram que a rede neural perceptron multi-camadas obteve melhor resultado quea programacao genetica na base de dados Desharnais.

Oliveira [Oli06] mostrou, em trabalho recente, que a tecnica de regressao baseada emmaquinas de vetor de suporte (Support Vector Regression - SVR) [Has95][FL02][SS04] ecapaz de produzir estimativas de esforco de projetos de software mais precisas que redesneurais artificiais RBF [SG00] e regressao linear. Ele utilizou os kernels linear e RBF paraas simulacoes com a maquina de vetor suporte para regressao na base de dados NASA.

Menzies et al. [MCHL06] observaram que grandes desvios entre os valores reais eos valores estimados dificultam a diferenciacao das tecnicas de estimativa de esforco[MCHL06][JMBH07]. Dessa forma, ele propos uma solucao baseada em regras de re-jeicao para o problema do desvio padrao elevado. Discutem-se tambem possıveis causaspara esses desvios e para cada uma dessas causas sugere-se uma operacao para minimizarpossıveis variabilidades grandes. Todas essas operacoes foram implementadas no COSE-EKMO. O COSEEKMO e um conjunto de ferramentas que ajuda no pre-processamentodas bases de dados e com isso pode-se obter melhores resultados para essas bases devidoa essa tarefa. O COSEEKMO tambem pode ser usado para ajudar na escolha de qual omelhor metodo para um determinado domınio. Alem disso, o COSEEKMO aplica bemo conceito de estratificar uma base de dados, ou seja, separar os dados de uma base emgrupos de acordo com suas similaridades. Menzies et al. realizaram experimentos e comisso mostraram que as tecnicas para reducao do desvio padrao melhoraram os resultadosprincipalmente para a base de dados Nasa93 [MCHL06].

As redes neurais e as SVR tem uma seria restricao. Elas trabalham como caixas pretas,ou seja, o conhecimento fica distribuıdo na rede, tornando difıcil a interpretacao dosresultados [HHRC07]. Como forma de superar essa limitacao, Huang et al. propuseram ouso do modelo construtivo neuro-fuzzy para a estimativa de esforco de software [HHRC07].Este modelo e baseado em uma abordagem neuro-fuzzy que trabalha bem com entradasimprecisas e incertas e tem boa capacidade de generalizacao. As simulacoes mostraramque o modelo neuro-fuzzy obteve melhores resultados que o metodo tradicional COCOMOpara a estimativa de esforco de software [Kem87].

Tronto et al. [TSS08] analisaram a base de dados COCOMO81 [Boe81] e propuseramum pre-processamento com o intuito de aumentar o poder de discernibilidade, isto e,facilitar o processo de estimativa. Esse pre-processamento se baseia na redefinicao dosvalores numericos de cada classe de cada atributo e normalizacao do atributo tamanhoe esforco. O processo de redefinicao torna os valores numericos mais bem espacados.Para a execucao do experimento, a base COCOMO81 foi dividida em seis partes. Aaplicacao do pre-processamento melhorou significativamente os resultados obtidos poreles anteriormente [TSS08].

Page 26: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

1.3 OBJETIVOS 7

O MMRE(Mean Magnitude of Relative Error) e bastante utilizado como medida dedesempenho na area de estimativa de esforco de software [SS97][SG00][BL01][MCHL06][Oli06][TSS06][BdORdLM07][BdOdLM07][HHRC07] [TSS08], mas diversas crıticas temse levantado quanto a seu uso [SS97][FSKM03]. Esta medida tende a preferir um modeloque subestima a um que superestime o valor do esforco de um projeto de software, ouseja, ele tem a pre-disposicao de valorizar tecnicas que subestimam o valor real do esforco[FSKM03]. Dependendo do caso, o seu uso pode nao ser aconselhavel.

1.3 OBJETIVOS

Este trabalho possui quatro objetivos centrais. Sao eles:

1. Investigar e comparar tecnicas de aprendizagem de maquina aplicadas ao problemada estimativa de esforco de projetos de software;

2. Utilizar tecnicas de otimizacao, AG (algoritmos geneticos), para, simultaneamente,otimizar os parametros das tecnicas de aprendizagem de maquina e selecionar ascaracterısticas (atributos) mais relevantes das bases de dados analisadas;

3. Aplicar tecnicas de construcao de intervalos de confianca ao problema da estimativade esforco de projetos de software [OM06][BdOdLM07];

4. Desenvolver um prototipo de uma ferramenta para estimativa de esforco de projetosde software utilizando as tecnicas de aprendizagem de maquina investigadas noprojeto que obtiveram melhor desempenho.

Sabe-se que o desempenho das tecnicas de aprendizagem de maquina depende do pro-blema a ser tratado, de modo que e muito importante investigar qual(is) dela(s) obtemo melhor resultado, isto e, quais apresentam resultados mais precisos para o domınio doproblema [Has95][Hay98][dPBdLFdCL07]. Nesta dissertacao, para a execucao dos nossosexperimentos, selecionamos as tecnicas: perceptron multi-camadas (Multi-Layer Percep-tron - MLP), redes de funcao de base radial (Radial Basis Function Network - RBFN) emaquina de vetor de suporte para regressao (Support Vector Regression - SVR), que jaforam aplicadas ao problema de estimativa de esforco de software [SG00][BL01][Oli06].Alem da acuracia nas estimativas, investigaremos, atraves das tecnicas de arvore pararegressao, a interpretabilidade que esta relacionada com quao facil e entender o modelode predicao gerado. Tambem selecionamos a tecnica Bagging com o intuito de reduzir aspossıveis instabilidades dos modelos de regressao gerados [Bre96]. E importante salientarque nao temos notıcias da aplicacao da tecnica Bagging no problema aqui estudado. Ana-lisaremos e compararemos com mais detalhes as tecnicas usadas, investigando de formamais exaustiva a tecnica Bagging.

Oliveira mostrou que a maquina de vetor de suporte para regressao (SVR) pode obterbons resultados na tarefa de estimar esforco de software [Oli06]. Os parametros dastecnicas de aprendizagem de maquina influenciam sobremaneira o desempenho [Hay98].A selecao de atributos de entrada e importante para as tecnicas de aprendizagem demaquina pois podem eliminar atributos conflitantes e/ou irrelevantes ajudando assim

Page 27: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

1.4 ESTRUTURA DA DISSERTACAO 8

a melhorar o desempenho da tecnica. Devido a isso, adaptaremos o modelo propostopor Huang [HW06] como forma de melhorar o desempenho da tecnica SVR. Para isso,utilizamos um algoritmo genetico para, simultaneamente, otimizar os parametros da SVRe selecionar os atributos que tem maior influencia na base de dados [HW06]. Aplicamosainda esse modelo para as tecnicas: arvore de regressao, arvore de modelos e perceptronmulti-camadas.

Acuracia, interpretabilidade e confiabilidade nas estimativas de esforco de software saoimportantes para a competitividade das empresas de software. Existem diversos metodospropostos para a estimativa de esforco que proveem somente uma estimativa de esforcopara novos projetos [SG00][BL01][BdORdLM07][MCHL06][Oli06]. Nossa intencao e apli-car tecnicas de construcao de intervalos de confianca robusto como forma de aumentar aconfiabilidade das estimativas. Os intervalos de confianca robustos foram aplicados porOliveira e Meira para a deteccao de novidades em series temporais [OM06]. Eles sao maisgenericos que os intervalos de confianca tradicionais, pois nao fazem suposicao sobre adistribuicao dos erros [OM06].

Existem diversas ferramentas para estimativa de esforco de software no mercado, entreelas a Costar [Sys07] e a CostExpert [Xpe07]. Existe um numero consideravel de artigoscientıficos aplicando tecnicas de aprendizagem de maquina neste problema. No entanto,nao temos notıcia de ferramentas ou prototipos que utilizem tais tecnicas. Por isso,propomos desenvolver um prototipo de uma ferramenta de codigo aberto utilizando astecnicas propostas e investigadas neste trabalho.

1.4 ESTRUTURA DA DISSERTACAO

Esta dissertacao esta organizada em sete capıtulos e tres apendices. Neste capıtulo, asmotivacoes para a realizacao deste trabalho foram apresentadas. Os objetivos tambemforam apresentados junto com um breve resumo dos trabalhos realizados recentementeque tem relacao com o problema a ser estudado.

O Capıtulo 2 intitulado “Estimativa de Esforco de Software”, descreve as principaistecnicas que sao atualmente usadas pelas fabricas de software para definir o tamanhodo software e as principais abordagens utilizadas para estimar esforco de projetos desoftware. Esse capıtulo tambem apresenta e detalha as base de dados de projetos desoftwares, NASA [SG00], Desharnais [set07] e COCOMO [Boe81], usadas neste trabalho,para avaliacao do metodo de estimativa proposto.

O Capıtulo 3 apresenta conceitos, caracterısticas e algoritmos das tecnicas de aprendi-zagem de maquina: arvores de regressao, arvores de modelos, metodo Bagging, perceptronmulti-camadas, redes de funcao de base radial e maquinas de vetor de suporte para re-gressao. Alem disso, e descrito como aplicar as tecnicas de aprendizagem de maquina aoproblema de estimativa do esforco de projetos de software.

O modelo proposto neste trabalho e apresentado e descrito no Capıtulo 4. Discor-remos, tambem, sobre a motivacao para a criacao do modelo. Alem disso, o capıtulotambem faz uma breve revisao sobre algoritmos geneticos.

A arquitetura basica do prototipo da ferramenta e todas as funcionalidades sao apre-sentadas em detalhes no Capıtulo 5.

Page 28: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

1.4 ESTRUTURA DA DISSERTACAO 9

No Capıtulo 6 sao descritas as medidas de desempenho usadas nesta dissertacao. Alemdisso, detalhamos como foram feitas as divisoes das bases de dados (descritas em maioresdetalhes no capıtulo 2) para o treinamento/teste. Tambem e mostrada a forma comoforam realizados os experimentos. Os resultados obtidos em cada experimento para cadauma das bases de dados utilizadas sao apresentados e comparados com outros publicadosna literatura.

O Capıtulo 7 discute as principais contribuicoes desta dissertacao. As limitacoesdos modelos propostos sao tambem apresentados nesse capıtulo. Uma discussao sobrepossıveis futuras pesquisas a serem realizadas tambem e apresentada.

O Apendice A apresenta, os valores dos fatores de ajuste do esforco e os nıveis dasvariaveis da base de dados COCOMO (COnstructive COst MOdel) antes e depois dopre-processamento que foi realizado na base.

No Apendice B comparamos os melhores resultados obtidos com a metodo baseadoem algoritmo genetico, proposto nesta dissertacao, usando testes de hipotese estatısticos,com os resultados obtidos com a tecnica Bagging.

Finalmente, o Apendice C apresenta uma analise entre algumas ferramentas paragerenciamento de projetos e metricas de software.

Page 29: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

CAPITULO 2

ESTIMATIVA DE ESFORCO DE SOFTWARE

Este capıtulo descreve a importancia das metricas de software no processo de desenvol-vimento de software. Tambem descrevemos as principais tecnicas que sao atualmenteutilizadas pelas fabricas de software para estimar o tamanho e o esforco necessario parao desenvolvimento de um projeto de software, assim como os erros cruciais que devemser evitados no processo de estimar software.

2.1 INTRODUCAO

Na Figura 1.4, vimos que o esforco de desenvolvimento e calculado em funcao do tama-nho do software e de outras medicoes. Entao, e essencial que as tecnicas utilizadas paraestimativa tenham como uma das entradas o tamanho do software que sera desenvol-vido/mantido [Pre06].

Uma metrica de software e a medicao de uma caracterıstica de uma determinadaentidade. Entidades podem ser processos, produtos, projetos e/ou recursos. As metricasajudam a entender e avaliar o processo de desenvolvimento de software adotado e comisso melhorar o processo escolhido de forma contınua. Tambem, auxiliam na tarefa daestimativa de esforco, custo e cronograma do software, no controle de qualidade, naavaliacao da produtividade e de tomadas de decisoes, no gerenciamento do projeto e naprevisao de medidas contingenciais. A Figura 2.1 ilustra os cinco papeis das medicoes desoftware.

Figura 2.1 Os cinco principais papeis de medicoes de software.

10

Page 30: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.2 ESTIMATIVA DE ESFORCO 11

2.2 ESTIMATIVA DE ESFORCO

A estimativa e uma previsao de quanto tempo sera necessario para a conclusao de umprojeto. Como ja foi dito, o procedimento de estimar esforco constitui uma das principaisatividades do processo de planejamento do projeto de desenvolvimento software. Umprocesso bem definido para as estimativas ajuda a fornecer confianca para os planosnelas baseados, sendo assim capaz de conduzir aos objetivos do projeto.

A efetivacao de uma boa estimativa passa por evitarmos alguns erros durante esseprocesso. Ao evitarmos esses erros, damos um grande passo para uma estimativa dequalidade [McC06]. Sao eles:

• As estimativas mais fortes vem de quem tem cordas vocais mais fortes;

• Assumir que vendas estima melhor que engenharia;

• Assumir 8 horas diarias de trabalho e esquecer o tempo improdutivo;

• Superestimar as estimativas sem considerar a historia de entrega de projetos noprazo da organizacao;

• Dizer sim quando deveria dizer nao;

• Comprometer-se com estimativas sem necessario conhecimento dos requisitos;

• Assumir que subestimar ou superestimar tem impactos neutros no resultado dosprojetos;

• Superestimar economias de novas ferramentas ou metodos;

• O trabalho da equipe nao ter suporte de ferramentas;

• Nao incluir o impacto dos riscos nas estimativas;

• Processo indefinido de estimativas.

Podemos ser bem sucedidos no processo de estimativa inicial se adotarmos [McC06]:

• Um processo disciplinado de definicao de escopo e requisitos;

• O escopo e requisitos do projeto servirem como entrada tanto para estimadores“humanos”, especialistas, quanto de software;

• Rastreabilidade durante o projeto.

A Figura 2.2 ilustra como um bom processo de estimativa deve ser modelado. E im-portante atentar que o processo de estimativa e bastante sensıvel a quantidade e qualidadedos dados de entrada conforme ilustrado na Figura 2.3.

Estimar o tamanho e o principal insumo para a estimativa de esforco [Cap98]. Existemdiversos tipos de tecnicas que tem sido utilizadas e aceitas para definir o tamanho dosoftware [Pre06]. Listamos, a seguir, as tres mais largamente usadas:

Page 31: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.2 ESTIMATIVA DE ESFORCO 12

Figura 2.2 Metodo de Estimativas.

Métodode

Estimativas

EstimativaImprecisa

Poucos dados

Figura 2.3 Sensibilidade do processo de estimativa a qualidade dos dados de entrada.

• Metricas orientadas ao codigo fonte: sao relacionadas ao tamanho da saıda de umaatividade. Nesta classe, a metrica numero de linhas de codigo fonte e normalmentea mais usada.

• Metricas orientadas a funcao: sao relacionadas as funcionalidades do software, aoinves do numero de linhas de codigo do projeto. A produtividade e calculada apartir do total de funcionalidade desenvolvida em um determinado intervalo detempo. Ponto de funcao e a mais conhecida destas metricas.

• Metricas orientadas a casos de uso: sao baseadas fortemente na UML (UnifiedModeling Language) [Lar07] e mais especificamente pelos casos de uso. Ponto porcaso de uso e a metrica mais conhecida [Pre06].

Page 32: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.3 METRICAS DE TAMANHO DE SOFTWARE 13

2.3 METRICAS DE TAMANHO DE SOFTWARE

As metricas de tamanho de software refletem as caracterısticas internas e externas dosoftware. Sao elas: linhas de codigo fonte (Lines of Code - LOC), pontos por funcao(Function Points - PF) e pontos por casos de uso (Use Case Points - UCP).

2.3.1 Linhas de Codigo Fonte

A metrica LOC (linhas de codigo fonte) e uma das metricas mais comuns na area dedesenvolvimento de software, pois se baseia na contagem do numero de linhas de codigofonte necessarias para produzir o software [Pre06]. Linhas em branco e comentarios naodevem ser contabilizadas.

A LOC e bastante direta. Para sabermos quantas LOC foram produzidas e precisoapenas analisar o codigo fonte. Acreditamos que devido a essa facilidade e aos mo-delos classicos existentes, tais como COCOMO [Boe81], SLIM [Pre06] e COCOMO II[BAB+00], que utilizam o KLOC (milhares de LOC) como uma das entradas, ainda hojeela e bastante usada.

Embora LOC seja de facil entendimento e implementacao, seu uso e polemico e naoe totalmente aceito como a melhor forma de se medir o tamanho do software a serdesenvolvido [Pre06], devido a ela ser dependente da linguagem de programacao utilizada,ou seja, nao se pode comparar diretamente a produtividade entre linguagens diferentes,visto que numa certa linguagem podemos precisar de 50 LOC para implementar umadeterminada funcionalidade enquanto numa outra linguagem, a mesma funcionalidadeprecisara de 100 LOC para ser implementada.

Podemos listar ainda outras desvantagens dessa metrica:

• Penaliza programas bem projetados, portanto menores;

• Programadores mais experientes conseguem implementar uma mesma funcionali-dade/linguagem utilizando menos LOC que programadores iniciantes;

• O processo de medicao nao suporta facilmente linguagens nao procedurais;

• Seu uso no processo de estimar esforco requer um nıvel de detalhes que e difıcil deconseguir, principalmente em fases iniciais do projeto.

2.3.2 Pontos de Funcao

Embora as LOC sejam uteis em muitos casos, suas limitacoes motivaram a busca e criacaode outras metricas de tamanho de software. Essas novas metricas procuraram medir afuncionalidade do software independente da linguagem de programacao [VSA06].

No final da decada de 70, a IBM alocou o engenheiro Allan Albrecht e seus colegaspara pesquisar novas metricas e medidas de software. O principal motivo da pesquisafoi criar uma nova metrica que rompesse com as limitacoes das metricas de linhas decodigo. Albrecht e seus colegas definiram a primeira versao da metrica chamada pontode funcao [VSA06]. A metrica desenvolvida tinha e tem como objetivo medir o tamanho

Page 33: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.3 METRICAS DE TAMANHO DE SOFTWARE 14

de software e produtividade usando entidades logicas e funcionais tais como entradas,saıdas e consultas que se relacionam com as funcionalidades do software. Por isso, saochamadas medidas funcionais de tamanho. Elas sao uteis para produzir estimativas noinıcio do projeto, quando e muito difıcil estimar a quantidade de LOC.

As analises de pontos de funcao focam na perspectiva de visao do usuario. Essasanalises atendem as varias formas que os usuarios interagem com o sistema e objetivam:

• Prover medidas consistentes;

• Medir funcionalidades que o usuario solicita e/ou recebe;

• Independencia da linguagem de programacao usada;

As metricas orientadas a funcao apresentam varios benefıcios, dentre eles podemoscitar:

1. Auxilia no calculo do tamanho do software;

2. Ajuda a quantificar esforco, custo e tempo;

3. Calcula ındices de produtividade e qualidade;

4. Fator de normalizacao para comparar software.

Tal metrica parece ser util e funcional para o desenvolvimento tradicional, mas apre-senta algumas falhas com o modelo de desenvolvimento em orientacao a objeto (OO), poisalguns atributos do projeto OO invalidam o calculo de alguns pontos de funcao [Pre06].As caracterısticas fundamentais de OO tem efeito de reduzir a validade da contagem defuncoes para a avaliacao de esforco e recursos necessarios para a execucao de um projeto.

2.3.3 Pontos por Caso de Uso

Em 1993, Gustav Karner criou a metrica pontos de casos de uso (Use Case Points -UCP) [Pre06]. Os UCP se assemelham a definicao da analise de pontos de funcao (APF),na qual a funcionalidade, contida em casos de uso, e definida pelo usuario e serve comobase para a estimativa do tamanho do software [Pre06]. Da mesma forma que os PF,essa metrica permite fazer estimativas no inıcio do projeto com base no modelo de casosde uso.

Para proceder com uma contagem de pontos por caso de uso os seguintes passospodem ser seguidos:

1. Contar os atores e identificar sua complexidade;

2. Contar os casos de uso e identificar sua complexidade;

3. Calcular os UCP nao ajustados;

4. Determinar o fator de complexidade tecnica;

Page 34: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.4 CLASSIFICACAO DAS TECNICAS PARA ESTIMATIVAS 15

5. Determinar o fator de complexidade ambiental;

6. Calcular os UCP ajustados.

A partir do resultado obtido desse metodo de contagem e da produtividade mediada empresa para desenvolver um UCP, podemos entao estimar o esforco total necessariopara o projeto.

As contagens de UCP podem sofrer variacoes entre empresas, devido a ausencia depadronizacao dos estilos de casos de uso [Dra05], dificultando assim a comparacao entreprojetos de diferentes empresas.

2.4 CLASSIFICACAO DAS TECNICAS PARA ESTIMATIVAS

Podemos classificar as tecnicas de se estimar esforco de software em: tecnicas baseadas nojulgamento de especialistas, tecnicas por analogia e tecnicas parametricas ou algorıtmicas.Apresentamos abaixo uma breve descricao da classificacao dessas tecnicas.

2.4.1 Tecnica baseada em Julgamento de Especialistas

As tecnicas baseadas em julgamento de especialistas sao amplamente usadas [TSS06] eenvolvem a consulta de um ou mais especialistas atraves de entrevistas ou formularios, afim de se obter uma estimativa do esforco necessario para o desenvolvimento do projetode software [Pre06]. Os especialistas usam suas experiencias e conhecimentos de projetossimilares para o projeto atual como forma de alcancar esse objetivo [Hug96][Pre06].

Atraves de tecnicas de consenso, tais como Wide Band Delphi, podemos aumentar ograu de confianca, diminuindo inconsistencias, da estimativa produzida pelo especialista[Pre06]. Essas tecnicas consistem na coleta individual de opinioes de diferentes especialis-tas. Cada especialista recebe os requisitos que deverao ser implementados e entrega umaestimativa. Essas diversas estimativas sao coletadas e analisadas por um coordenadorque produz um resumo dessas estimativas. Entao, esse resumo e repassado para cadaum dos especialistas envolvidos para que refacam suas estimativas. Todo esse processo erepetido ate que um consenso sobre a estimativa seja obtida [Pre06].

A vantagem do uso dessas tecnicas e que se precisa de pouco ou nenhum dado historicode projetos anteriores [Pre06]. As contrapartidas sao [Pre06]:

• Caso haja alguma mudanca nos requisitos em um processo subjetivo, dificilmentea estimativa inicial podera ser reaproveitada.

• A estimativa e gerada a partir da experiencia individual e da produtividade de cadaum, o que pode nao se refletir na equipe de desenvolvimento do projeto.

• Por ser um processo subjetivo, pode ser sensıvel a pressoes externas.

• Em geral, especialistas sao caros.

Page 35: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.4 CLASSIFICACAO DAS TECNICAS PARA ESTIMATIVAS 16

2.4.2 Tecnicas por Analogia

A estimativa por analogia e uma tecnica bastante comum nas empresas de software[dRV07]. Ela consiste em comparar o software proposto a projetos de softwares ante-riores, que ja foram concluıdos, para encontrar semelhancas e similaridades, nos quais ascaracterısticas do desenvolvimento dos mesmos sao conhecidos [Pre06]. E uma tecnicasimples, mas que requer a existencia de dados historicos de projetos de software. Devemosconsiderar que dificilmente dois projetos de software sao exatamente iguais. Por isso, estatecnica necessita de um conhecimento detalhado do projeto para identificar as possıveisdiferencas entre o projeto proposto e os projetos existentes [Pre06]. Essa tecnica podeser usada para avaliar a viabilidade inicial do projeto.

2.4.3 Tecnicas Parametricas ou Algorıtmicas

Tecnicas parametricas ou algorıtmicas relacionam caracterısticas de desenvolvimento deprojetos de software anteriores (dados historicos) ao tamanho do software proposto a fimde obter o esforco total necessario para a construcao do software [Pre06]. Essas tecnicaspartem do pre-suposto que existe um relacionamento matematico entre tamanho, esforco,prazo e qualidade do projeto de software [Pre06]. Dessa forma, equacoes matematicassao definidas e desenvolvidas, atraves dos dados historicos, para realizar a estimativa doesforco de software.

As tecnicas parametricas tem sido amplamente estudadas. Existem diversas tecnicasparametricas que utilizam multiplos parametros para calculos do esforco e custo. Segueabaixo uma breve descricao sobre algumas dessas tecnicas.

• COCOMO (COnstructive COst MOdel): criado por Barry Boehm [Boe81]em 1981. O modelo objetiva estimar o esforco, prazo e custo de projetos de software[Boe81]. A tecnica foi derivada usando dados de 63 projetos da empresa de espacoaereo TRW [Boe81], onde os projetos variavam de tamanho de 2000 a 100000 LOC,e linguagens de programacao variavam de Assembler a PL/I. Esses projetos usaramo modelo de desenvolvimento de software em cascata [Boe81].

O modelo COCOMO se baseia em entradas relacionadas ao tamanho do sistemae um numero de fatores de ajuste de esforco que afetam a produtividade [Boe81].Essa tecnica agrega tres modelos, onde cada modelo tem sua aplicabilidade bemdefinida. O modelo basico, que e aplicado nas fases iniciais do projeto; o modelointermediario, que e aplicado depois que a fase de requisitos foi especificada e omodelo avancado, que e aplicado depois que a fase de projeto foi concluıda [Boe81].Os tres modelos sao definidos pela equacao abaixo:

E = a ∗ LOCb ∗ EAF

Onde: E e o esforco em homens/mes, LOC e o tamanho em linhas de codigo, e EAF(Effort Adjustment Factor - fatores de ajuste de esforco) e o somatorio dos fatoresde ajuste do esforco. Os coeficientes a e b dependem do modo de desenvolvimento[Boe81].

Page 36: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.4 CLASSIFICACAO DAS TECNICAS PARA ESTIMATIVAS 17

Boehm definiu tres modos de desenvolvimento [Boe81]:

1. Modo organico - projetos relativamente simples e pequenos nos quais peque-nas equipes, com boa experiencia, trabalham em um conjunto de requisitos naomuito rıgidos.

2. Modo semi-destacado - projetos intermediarios, em tamanho e complexi-dade, nos quais as equipes mistas, com diversos nıveis de experiencia, precisamtrabalhar em um conjunto limitado de requisitos.

3. Modo embutido - projetos que devem operar em um conjunto rigoroso derestricoes.

Boehm e seus colegas definiram, posteriormente, uma versao atualizada chamadaCOCOMO II, lancada em 2000, que leva em consideracao as recentes mudancas daTecnologia da Informacao.

• COCOMO II: desenvolvido durante a segunda metade da decada de 90 por pes-quisadores, liderado por Boehm [BAB+00], foi lancado em 2000, cujo objetivo eradesenvolver um modelo de estimativa de esforco, prazo e custo voltado a dar suporteas tecnicas de desenvolvimento mais atuais. Enquanto que o modelo COCOMO[Boe81], atualmente considerado obsoleto, suporta apenas a metodologia de desen-volvimento de software em cascata, o COCOMO II suporta software orientado aobjetos, software criado usando modelos de desenvolvimento em espiral ou incre-mental e software criado usando componentes de prateleira. Essa tecnica tambemagrega tres modelos de estimativa [BAB+00].

1. Modelo Application Composition - usado em prototipagem para resolucaode questoes de alto risco potencial, tais como interface do usuario, interacaoentre sistemas, performance, etc.

2. Modelo Early Design - aplicado depois que a fase de requisitos foi finali-zada. E usado na exploracao de arquiteturas e conceitos de operacao alter-nativos. Pontos de funcao, fatores de ajuste de esforco e fatores de escala doprojeto sao usados para a estimativa. Os modos de desenvolvimento (organico,semi-destacado e embutido) da tecnica COCOMO original [Boe81] foram subs-tituıdos por cinco fatores de escala, que sao:

(a) Prec - experiencia previa da organizacao com este tipo de projeto;

(b) Flex - nıvel de flexibilidade no processo de desenvolvimento;

(c) Resl - extensao da analise de riscos realizada;

(d) Team - quao bem o time se conhece e trabalha em conjunto;

(e) Pmat - maturidade do processo de desenvolvimento da organizacao.

3. Modelo Post-Architecture - aplicado depois que a fase de projeto foi con-cluıda. E usado durante o desenvolvimento e manutencao atual do projetode software. Pontos de funcao ou LOC podem ser usados como medidas do

Page 37: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.5 BASES DE DADOS 18

tamanho do projeto de software. O modelo inclui ainda os fatores de ajustede esforco e os fatores de escala.

• Relacoes simples de estimativas: sao modelos parametricos simples, muitousado por causa da sua simplicidade. Atraves dos dados historicos locais, e possıveldesenvolver relacoes matematicas simples, tais como: Esforco = Tamanho x Pro-dutividade.

• Tecnicas de aprendizagem de maquina: sao tecnicas que tem a capacidadede aprender (fase de aprendizagem) e generalizar. A generalizacao se refere a ca-pacidade de apresentar saıdas coerentes para entradas que nao estavam presentesdurante a fase de treinamento (aprendizagem). Embora existam tecnicas muitodifundidas e aplicadas no mercado para estimativa de esforco, tais como o modeloCOCOMO [Boe81] e COCOMO II [BAB+00], pesquisas atuais tem demonstradoque tecnicas de aprendizagem de maquina podem fornecer estimativas mais precisasdo que esses modelos [Oli06][HHRC07][TSS08][BdOdLM08].

As tecnicas parametricas precisam e devem ser calibradas com dados do ambientelocal de desenvolvimento para que o modelo possa responder de forma adequada.

2.5 BASES DE DADOS

Nesta dissertacao nos selecionamos tres bases de dados publicas de projetos de softwarecomo forma de avaliarmos nossos experimentos e simulacoes. Foram elas: NASA (Natio-nal Aeronautics and Space Administration) [SG00][Oli06], Desharnais [set07] e COCOMO[Boe81]. Embora todas essas bases sejam para problemas de estimativas de esforco deprojetos de software, a quantidade de atributos que compoem cada uma dessas bases evariavel. A seguir, detalharemos cada uma dessas bases.

2.5.1 NASA

A bases de dados NASA consiste em duas variaveis independentes, linhas desenvolvidas(Developed Lines - DL) e metodologia (Methodology - ME), e uma variavel dependente,esforco (Effort - Y), mostradas na Tabela 2.1. DL e uma medida do tamanho do software,e e dado em KLOC (milhares de linhas de codigo). ME e a metodologia aplicada nodesenvolvimento de cada projeto de software. Y e o total de esforco para desenvolver cadaprojeto, e e dado em homens/mes. Para nossos experimentos, nos usamos duas versoesda base de dados NASA. A primeira versao tem somente uma variavel de entrada, DL.Assim, neste caso, o esforco e estimado somente sobre o atributo DL. A segunda versao ea base de dados original, na qual o esforco e estimado sobre os atributos DL e ME. Esseprocedimento foi usado por Shin e Goel [SG00] e Oliveira [Oli06].

Os 18 projetos que compoem essa base foram oriundos da secao de desenvolvimentode sistemas da NASA (Goddard Space Flight Center) [BB81]. Esses projetos de softwareimplementam, principalmente, rotinas de apoio para diversos projetos de naves espaci-ais. Essas rotinas dao suporte a determinacao de posicao de orbitas, telemetria e outras

Page 38: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.5 BASES DE DADOS 19

funcoes de controle [BB81]. Em geral, cada um desses projetos de software levou de seismeses a dois anos para ser produzido, e foi desenvolvido por dois a dez programadores,a maioria dos quais trabalharam em varios projetos simultaneamente. A principal lin-guagem utilizada foi Fortran [BB81]. A linguagem Assembler tambem foi utilizada emalgumas aplicacoes [BB81].

Variaveis Descricao

Developed Lines Total de linhas de codigos desenvolvidasMethodology Metodologia de desenvolvimento de software usadaEffort Esforco medido em homens/mes

Tabela 2.1 Variaveis da base de dados NASA.

2.5.2 Desharnais

A base de dados Desharnais consiste de 81 projetos de software, dentre os quais 4 projetosestao incompletos (alguns atributos de entrada ausentes) [set07]. Esses projetos foramdesenvolvidos por empresas de software canadenses durante os anos de 1982 e 1988 [set07].Cada projeto e descrito por onze variaveis, sendo nove independentes e duas dependentes[set07]. A primeira variavel dependente e a variavel Effort. A segunda variavel dependentee a variavel Length, conforme a Tabela 2.2 nos mostra. Essa base de dados pode serencontrada no repositorio PROMISE [set07].

Variaveis Descricao

TeamExp Experiencia da equipe em anosManagerExp Experiencia do gerente do projeto em anosYearEnd Ano de conclusao do projetoTransactions Numero de transacoes processadasEntities Numero de entidadesPointsAdjust Pontos de funcao ajustadosPointsNonAjust Pontos de funcao nao ajustadosEnvergure Medida de complexidade derivada de outros fatores

definidos pelo ambienteLanguage Linguagem de programacao usadaLength Duracao do projeto em mesesEffort Esforco medido em homens/hora

Tabela 2.2 Variaveis da base de dados Desharnais.

2.5.3 COCOMO81

A base COCOMO81 contem dados de 63 projetos de software. Ela esta disponıvel parauso publico, podendo ser encontrada diretamente no livro Software Engineering Eco-nomics [Boe81]. Os 63 projetos descrevem projetos de software de negocio, de software

Page 39: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.6 COMENTARIOS FINAIS 20

cientıficos e de sistemas. Os projetos foram escritos usando as linguagens de programacaoCobol, PL/I, HMI e Fortran [Boe81].

Cada projeto da base de dados, tambem denominado de padrao, contem 19 atributos,sendo que os atributos ADJKDSI e EFFORT sao do tipo numerico contınuo enquanto osoutros sao definidos por categorias, na qual cada categoria e representada por um valornumerico. A Tabela 2.3 faz uma breve descricao de cada um desses atributos.

Variaveis Descricao

Rely Confiabilidade requerida do softwareData Tamanho do banco de dadosCplx Complexidade do produtoRvol Volatilidade dos requisitosTime Restricao de tempo de execucaoStor Restricao de armazenamento principalVirt Volatilidade da maquina virtualTurn Tempo de execucao da maquinaAcap Capacidade do analistaAexp Experiencia com aplicacoesPcap Capacidade dos programadoresVexp Experiencia com maquina virtualLexp Experiencia com linguagem de programacaoModp Uso de praticas modernas de programacaoTool Uso de ferramentas de softwareSched Cronograma de desenvolvimento requeridoMode Modelo de desenvolvimento usadoADJKDSI Numero de linhas de codigoEFFORT Quantidade de esforco para desenvolvimento de software

Tabela 2.3 Variaveis da base de dados COCOMO

Dos 19 atributos citados na Tabela 2.3, 16 sao conhecidos como fatores de ajustede esforco. Cada fator desse e classificado como valores numericos que correspondem auma escala: muito baixo, baixo, normal, alto, muito alto e extremamente alto, emborasomente um tenha os seis nıveis. A Tabela 2.4 mostra cada fator de ajuste de esforcocom os seus determinados valores numericos.

2.6 COMENTARIOS FINAIS

Neste capıtulo discorremos sobre as metricas de software no processo de desenvolvimentode software. Tambem apresentamos brevemente as tecnicas mais utilizadas pelas empre-sas de software para estimar o tamanho e o esforco total para o desenvolvimento de umprojeto de software. Apresentamos e descrevemos tambem, nesse capıtulo, as bases dedados de projetos de software que foram usadas nos nossos experimentos, descritos nocapıtulo 6.

Page 40: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

2.6 COMENTARIOS FINAIS 21

Fatores deAjuste de ClassificacaoEsforco

Muito Baixo Normal Alto Muito ExtremamenteBaixo Alto Alto

Rely 0,75 0,88 1,00 1,15 1,40 -Data - 0,94 1,00 1,08 1,16 -Cplx 0,70 0,85 1,00 1,15 1,30 1,65Rvol - 0,91 1,00 1,19 1,38 1,62Time - - 1,00 1,11 1,30 1,66Stor - - 1,00 1,06 1,21 1,56Virt - 0,87 1,00 1,15 1,30 -Turn - 0,87 1,00 1,07 1,15 -Acap 1,46 1,19 1,00 0,86 0,71 -Aexp 1,29 1,13 1,00 0,91 0,82 -Pcap 1,42 1,17 1,00 0,86 0,70 -Vexp 1,21 1,10 1,00 0,90 - -Lexp 1,14 1,07 1,00 0,95 - -Modp 1,24 1,10 1,00 0,91 0,82 -Tool 1,24 1,10 1,00 0,91 0,83 -Sched 1,23 1,08 1,00 1,04 1,10 -

Tabela 2.4 Valores de acordo com a escala.

Page 41: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

CAPITULO 3

TECNICAS PARA REGRESSAO

Neste capıtulo e apresentado o proposito principal dos modelos de regressao, que e aprevisao. Tambem, discorreremos sobre as tecnicas de regressao linear multipla, tecnicasde arvore para regressao, redes neurais artificiais, maquinas de vetor de suporte pararegressao e o metodo Bagging. Apresentamos ainda as tecnicas para estimar a capacidadede generalizacao e as medidas de desempenho investigadas, assim como os intervalos deconfianca robustos.

3.1 INTRODUCAO

O objetivo de metodos de regressao e construir uma funcao f(x), a partir de um conjuntode variaveis independentes (X1, X2,..., Xn), para estimar valores de uma variavel depen-dente Y [dAM05]. No nosso caso, a intencao e construir modelos de regressao usando umconjunto de dados de treinamento para predizer o esforco total para o desenvolvimentode projetos de software.

3.2 REGRESSAO LINEAR MULTIPLA

Na regressao linear multipla o objetivo e encontrar o plano ou o hiperplano que melhorprediz f(x), dado um conjunto de variaveis independentes (X1, X2,..., Xn) [dAM05]. Aregressao linear de duas variaveis resulta em uma equacao de reta, um problema com tresvariaveis produz um plano, e um problema de n variaveis produz um hiperplano. Ummodelo matematico e, entao, construıdo a partir do relacionamento entre as variaveisindependentes e a variavel dependente [dAM05].

O modelo de regressao linear multipla pode ser representado da seguinte maneira:

Y = β0 + β1 ∗X1 + β2 ∗X2 + ... + βn ∗Xn + ε

onde Y e a variavel dependente - variavel de estudo, os (X1, X2, ..., Xn) representam asvariaveis independentes, os (β0, β1, β2, ..., βn) sao os coeficientes de regressao e ε e o erroaleatorio presente no modelo.

O metodo dos mınimos quadrados e o metodo mais usado para a determinacao daequacao de regressao linear multipla [dAM05].

Esta tecnica tem a desvantagem de ser bastante vulneravel a valores extremos, ruıdosou outliers [dAM05]. Ela tambem sofre um significativo impacto se a co-linearidade entreas variaveis independentes for forte.

22

Page 42: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.3 REDES NEURAIS ARTIFICIAIS 23

3.3 REDES NEURAIS ARTIFICIAIS

As redes neurais artificiais (RNAs) sao parte de um paradigma de resolucao de proble-mas da area de inteligencia computacional conhecido como aprendizagem de maquina[Has95][Hay98][dPBdLFdCL07].

Uma RNA e constituıda de unidades processadoras, chamadas de neuronios ou nodos,que aproximam funcoes matematicas (normalmente nao-lineares) [Hay98]. Essas unida-des sao dispostas em camadas e interligadas atraves de conexoes. Associadas as conexoes,geralmente, encontram-se os pesos, os quais sao os responsaveis pelo conhecimento ar-mazenado na rede [Has95][Hay98]. O poder computacional de uma rede neural artificialnao advem da complexidade de cada unidade de processamento, mas da densidade ecomplexidade das interconexoes [Hay98].

Os maiores atrativos para o uso das RNAs residem na capacidade de aprender egeneralizar, bem como na flexibilidade e dinamica inerentes as suas estruturas [Hay98].A generalizacao se refere a capacidade de apresentar saıdas coerentes para entradas quenao estavam presentes durante a fase de treinamento da rede (aprendizagem) [Hay98].A capacidade de tolerancia a falhas (capacidade de oferecer boas respostas mesmo comfalta de informacao ou dados ruidosos) e outro atrativo suportado pelas RNAs [Hay98].

3.3.1 Perceptron Multi-Camadas

O perceptron multi-camadas (Multi-Layer Perceptron - MLP) foi aplicado com sucessoem uma variedade de problemas, tais como: classificacao, regressao e previsao de seriestemporais [Has95][Hay98]. As MLPs sao redes do tipo feedforward (alimentacao parafrente) compostas de camadas. Nas MLPs, os neuronios de uma camada estao conectadosa todos os neuronios das camadas adjacentes. As MLPs consistem em uma camada deentrada, uma ou mais camadas escondidas e uma camada de saıda. A camada de entradarecebe os dados de entrada do problema (conjunto de padroes). A camada oculta eresponsavel pela nao-linearidade, enquanto que a camada de saıda tem a incumbencia decombinar os resultados dos neuronios da camada escondida e apresenta-los.

O numero dos nos na camada de entrada e determinado pelo numero de atributos dospadroes de entrada. Em problemas de classificacao, o numero de neuronios na camada desaıda e igual a quantidade de classes de saıda do problema em questao. Por outro lado,em problemas de regressao com uma unica variavel dependente, o numero de neuroniosna camada de saıda e igual a um, como ilustrado na Figura 3.1.

Nao existe uma regra geral para a determinacao do numero de neuronios presentesna(s) camada(s) escondida(s) [dPBdLFdCL07]. Esse numero depende de varios fatores,tais como [dPBdLFdCL07]:

• Numero de exemplos de treinamento;

• Quantidade de ruıdos presentes nos exemplos;

• Complexidade da funcao a ser aprendida;

• Distribuicao estatıstica dos dados de treinamento.

Page 43: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.3 REDES NEURAIS ARTIFICIAIS 24

Figura 3.1 Uma rede MLP com uma camada escondida e um neuronio de saıda.

No projeto de uma MLP os parametros principais que influenciam o desempenhosao: (1) o numero de neuronios em cada camada escondida, (2) o numero de epocas dotreinamento, (3) a taxa de aprendizagem e o (4) momentum.

Estes parametros tem que ser cuidadosamente selecionados para evitar a subadaptacao(underfitting) e a superadaptacao (overfitting) e dessa forma melhorar o desempenho degeneralizacao da MLP para um dado problema [dPBdLFdCL07]. Dada a topologia darede, e necessario computar os pesos das conexoes. Isso e feito por algoritmos de trei-namento supervisionados. O algoritmo de treinamento mais frequentemente empregadopara as redes MLP e o back-propagation [Has95][Hay98][dPBdLFdCL07].

O back-propagation e executado em duas fases. A primeira fase e a fase foward queenvolve alimentar um padrao na entrada e propagar o sinal ate a saıda da rede comintuito de gerar a predicao. A saıda fornecida pela rede e comparada entao com a saıdadesejada. Dessa forma o erro e computado. Em seguida, a fase backward do algoritmoe executada. Nessa fase, o erro e usado para ajustar os pesos de todas as conexoes (dacamada de entrada e da escondida) [dPBdLFdCL07].

Na rede MLP, o conhecimento aprendido e representado pelos valores dos pesos pre-sentes nas conexoes. A natureza distribuıda desse conhecimento torna difıcil a sua inter-pretacao [dPBdLFdCL07].

3.3.2 Redes de Funcao de Base Radial

Outro tipo de rede feedforward e a rede de funcao de base radial (Radial Basis Func-tion Network - RBFNs). Essa rede e assim chamada porque os neuronios da camadaescondida utilizam funcoes de base radial como funcao de ativacao. As (RBFNs) temsido empregadas em problemas de classificacao e regressao [Has95][Hay98]. RBFN e umtipo de rede que usa uma classe especial de funcoes, cuja caracterıstica e que a respostaaumenta ou diminui em relacao a um ponto central, [Has95][Hay98].

As funcoes de base radial mais usadas sao:

• Funcao Gaussiana: f(µ) = exp(−v2

σi2 )

• Funcao multiquadratica: f(µ) =√

v2 + σ2

Page 44: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.3 REDES NEURAIS ARTIFICIAIS 25

Onde: v = ||x− µ|| e a distancia euclidiana, x e o vetor de entrada, e µ e σ representamrespectivamente o centro e a largura da funcao radial. A distancia euclidiana (diste) entredois pontos, P = (p1, p2, ..., pn) e Q = (q1, q2, ..., qn), e dada por:

diste(P, Q) =√

(p1 − q1)2 + (p2 − q2)2 + ... + (pn − qn)2 =

√√√√n∑

i=1

(pi − qi)2

Como podemos observar na equacao acima, as redes RBF utilizam, em sua funcao deativacao, a distancia euclidiana entre os vetores de entrada e de peso, diferentemente dasredes MLPs que utilizam o produto escalar do vetor de entrada e do vetor de peso paracada neuronio.

As RBFNs tem tres camadas, cada uma com uma responsabilidade diferente. Acamada de entrada recebe os atributos de entrada e os apresentam para a camada escon-dida. O numero de nos na camada de entrada e determinado pelo numero de atributosdos padroes de entrada. A segunda camada, a camada escondida [Hay98], e responsavelpela transformacao nao linear do espaco de entrada para um espaco de alta dimensio-nalidade [dPBdLFdCL07]. Cada neuronio da camada escondida utiliza uma funcao debase radial, que define um hiperelipsoide no espaco de padroes de entrada passado notreinamento [Hay98]. As unidades da camada de saıda utilizam funcoes lineares paraapresentar a(s) resposta(s) da rede [Has95][Hay98]. A Figura 3.2 ilustra uma arquiteturatıpica de uma rede RBF para o problema de regressao.

Figura 3.2 Arquitetura tıpica de uma rede RBF para o problema de regressao.

A RBFN e completamente definida pelos parametros (n) - o numero de neuronios dacamada escondida, (σi) - a largura de cada funcao radial, (µi) - o centro de cada funcaoradial, e (wi) - os pesos das conexoes entre os neuronios da camada escondida para acamada de saıda.

Da mesma forma que as redes MLP, o conhecimento aprendido e representado pelos va-lores dos pesos presentes nas conexoes. A natureza distribuıda deste conhecimento tornadifıcil a interpretacao e entendimento de como o resultado foi gerado [dPBdLFdCL07].

Page 45: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.4 MAQUINAS DE VETOR DE SUPORTE 26

3.4 MAQUINAS DE VETOR DE SUPORTE

As maquinas de vetor de suporte (Support Vector Machines - SVMs) sao um conjunto demetodos de aprendizagem de maquina utilizados em problemas de classificacao e regressao[SS04]. As SVMs se baseiam na minimizacao do risco estrutural (SRM) - ao inves de tentarminimizar somente o erro empırico, as SVMs simultaneamente minimizam o erro empıricoe maximizam a margem geometrica [SS04]. Essa tecnica tem obtido bons resultados emproblemas de classificacao e regressao [Oli06].

3.4.1 Maquinas de Vetor de Suporte para Regressao

As maquinas de vetor de suporte para regressao (Support Vector Regression - SVR) foramconcebidas para problemas de regressao [Hay98]. SVR e uma tecnica de aprendizagem demaquina baseada na teoria da aprendizagem estatıstica, desenvolvida por Vapnik [CV95].A investigacao da aplicacao da SVR para estimativa de esforco de projetos de softwarefoi originalmente efetuada por Oliveira [Oli06]. Oliveira mostrou que a SVR apresentamelhores resultados que as tecnicas de regressao linear multipla e as redes de funcao debase radial para estimar o esforco de software na base de dados de projetos de softwareNASA [Oli06].

Considere um conjunto de treinamento S = {(x1, y1), (x2, y2), ..., (xn, yn)}, onde xi ∈<d denota um vetor de entradas e yi ∈ < corresponde aos valores esperados.

Na ε-SVR, o objetivo e encontrar uma funcao f(x) que tem a maior parte dos desviosε obtidos a partir yi do conjunto de treinamento e simultaneamente, e o mais suavepossıvel. Esse tipo de funcao de perda define uma margem em torno das saıdas esperadas.Os erros menores que um determinado limiar (ε > 0) sao desconsiderados, isto e, dentrodessa margem de erros sao considerados como sendo zero. Por outro lado, erros causadospor pontos fora da margem sao medidos por variaveis ξ e ξ∗.

Na SVR para regressao linear, f(x) e dado por f(x) = 〈w, x〉 + b, com w ∈ <d, b ∈ <onde 〈., .〉 denota o produto escalar em <d. Para os casos de regressao nao-linear, f(x) =〈w, φ(x)〉 + b, onde φ e alguma funcao nao-linear que mapeia o espaco de entrada paraum espaco de caracterısticas de dimensao maior (<d). Na ε-SVR, o vetor peso w e olimiar b sao escolhidos para otimizar o seguinte problema [SS04]:

Minimizarw,b,ξ,ξ∗1

2〈w, w〉+ C

l∑i=1

(ξi + ξ∗i )

Submetido a

(〈w, φ(xi)〉+ b)− yi ≤ ε + ξi,yi − (〈w, φ(xi)〉+ b) ≤ ε + ξ∗i ,ξi, ξ

∗i ≥ 0

(.)

A constante C > 0 determina o equilıbrio entre a complexidade do modelo, isto e, oquao suave e a funcao f(x) e os limites maximos que os desvios ε toleram. ξ e ξ∗ saochamadas variaveis de folga e medem o custo dos erros sobre os pontos do treinamento.ξ mede os desvios que extrapolam, para cima, o valor esperado ε e ξ∗ mede os desviosque extrapolam, para baixo, o valor esperado para ε, como mostrado na Figura 3.3. O

Page 46: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.5 TECNICAS DE ARVORES PARA REGRESSAO 27

objetivo da tecnica SVR e minimizar uma funcao objetivo que considera tanto a normado vetor peso w e as perdas calculadas pelas variaveis de folga (ver Equacao .). Aminimizacao da norma de w e uma das maneiras de garantir que a funcao f(x) seja suave[SS04].

ε

y

x

ξ

ξ*

Figura 3.3 Regressao usando ε-SVR.

O algoritmo SVR envolve a utilizacao dos multiplicadores de Lagrange, que dependemexclusivamente do produto escalar φ(x). Isso pode ser conseguido atraves de funcoes denucleos, definidas como K(xi, xj) = 〈φ(xi), φ(xj)〉. Assim, o metodo evita computar atransformacao φ(x) explicitamente. Os detalhes da solucao podem ser encontrados em[SS04].

Neste trabalho, nos consideramos a SVR com os nucleos linear e RBF. O nucleopolinomial e computado como K(xi, xj) = 〈1 + (xi), (xj)〉p, enquanto que o nucleo RBFe computado como K(xi, xj) = exp(−γ‖xi − xj‖2), γ > 0. Na maioria dos problemas,o parametro C e ε influenciam significativamente o desempenho de generalizacao da ε-SVR. No nucleo RBF o parametro γ deve tambem ser selecionado de forma cuidadosa.O nucleo linear e o nucleo polinomial com p = 1.

3.5 TECNICAS DE ARVORES PARA REGRESSAO

Uma arvore e uma estrutura que representa objetos (dados, condicoes, informacoes, etc)de forma grafica. As arvores de decisao sao estruturas compostas basicamente por treselementos: (i) nos, que representam os atributos; (ii) arcos, provenientes desses nos eque correspondem aos possıveis valores dos atributos; (iii) e folhas, que representam aspossıveis classes ou valores de padroes do conjunto de treinamento. Cada caminho - apartir da raiz ate uma folha - corresponde a uma regra. Um exemplo de arvore de decisaoe apresentado na Figura 3.4.

Arvores de decisao sao tecnicas de aprendizagem de maquina para problemas de clas-sificacao e de regressao [WF05]. Existem varios tipos de arvores de decisao que trabalhamcom problemas de regressao. Neste trabalho nos utilizamos as arvores de regressao e asarvores de modelos implementados pelo algoritmo M5’ [Qui92][WF05].

Page 47: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.5 TECNICAS DE ARVORES PARA REGRESSAO 28

A arvore de regressao e um tipo especial de arvore de decisao desenvolvida para tarefasde regressao [Qui92]. Esse metodo realiza inducao por meio de um algoritmo recursivode particionamento, isto e, os modelos sao construıdos com o metodo de dividir-para-conquistar [Qui92]. A escolha de cada no da arvore e, normalmente, orientada por algumcriterio de erro [WF05]. No algoritmo M5’, o criterio de erro e a variancia [WF05]. Asfolhas de uma arvore de regressao contem um valor numerico que representa o resultadomedio para os padroes que chegam a folha.

> xx ≤

a

> yy ≤

1 2

b

> zz ≤

3 4

c

Figura 3.4 Exemplo de uma arvore de decisao.

Como qualquer arvore de decisao, as arvores de regressao recebem um conjunto detreinamento composto por varias instancias nas quais existe um conjunto de atributos.Abaixo de cada no ha o teste que fara a divisao do conjunto de instancias. Os casosque atendem ao teste seguem para o no da esquerda e os que nao obedecem ao testeseguem para o no da direita. Em cada no sera armazenada a quantidade de exemplosque obedecem a condicao. Nas folhas existe uma media dos atributos das instancias quealcancam a folha e e essa media que ira representar a previsao da arvore para aquelestestes que alcancaram a folha.

A Figura 3.5(a) mostra um exemplo de uma equacao de regressao para prever de-sempenho da CPU (Central Processing Unit), e a Figura 3.5(b) mostra uma arvore deregressao‘[WF05]. As folhas da arvore sao numeros que representam o resultado mediopara as instancias que chegam a folha. A arvore construıda e mais complexa do que aequacao de regressao. No entanto, se calcularmos a media dos erros absolutos entre osresultados previstos e os resultados reais do desempenho da CPU, nota-se que os errossao significativamente menores usando a tecnica de arvore. A arvore de regressao e maisprecisa porque um simples modelo linear representa mal os dados neste problema [WF05].

E possıvel combinar equacoes de regressao com arvores de regressao [Qui92]. A Figura3.5(c) e uma arvore cujas folhas contem expressoes lineares, ou seja, equacoes de regressaoaos inves de simples valores previstos [WF05]. Essa tecnica e chamada de arvore demodelo. A 3.5(c) mostra os seis modelos lineares construıdos que pertencem as seis folhas,caracterizados por LM1, LM2, LM3, LM4, LM5 e LM6, respectivamente. A arvore demodelo aproximam funcoes contınuas (equacoes lineares) para as instancias que chegama folha [Qui92]. E uma representacao mais sofisticada do que qualquer regressao linearou arvore de regressao. No entanto, a estrutura das arvores de modelos e mais complexado que a estrutura de uma arvore de regressao, visto que definem equacoes lineares nasfolhas [Qui92].

Page 48: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.5 TECNICAS DE ARVORES PARA REGRESSAO 29

Figura 3.5 Modelos de previsao de desempenho para a CPU [WEK07]: (a) regressao linear,(b) arvore de regressao e (c) arvore de modelo.

Page 49: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.5 TECNICAS DE ARVORES PARA REGRESSAO 30

O algoritmo M5P derivou-se do algoritmo M5’ que e um algoritmo para construcao dearvore de modelo. Esse algoritmo, alem de construir a arvore de regressao ou a arvore demodelo, faz a simplificacao, poda da arvore e ainda apresenta um processo de suavizacaodo modelo [WF05].

Cada no interno da arvore, ou seja, cada no que possui uma sub-arvore abaixo dele,realiza um teste que divide o conjunto de treinamento usado na construcao da arvore.Quando a arvore terminar de ser construıda, o algoritmo estimara um valor medio ouuma equacao linear para cada no interno, dependendo do tipo de arvore escolhida. Aconstrucao da equacao linear para um no e feita atraves do metodo de mınimos quadradoscom as instancias do conjunto de treinamento que alcancaram o no.

Apos o processo de construcao das equacoes lineares dos nos, a poda e entao reali-zada. A poda e feita com o objetivo de reduzir o erro estimado das equacoes lineares,diminuir o tamanho da arvore e assim simplificar o seu entendimento. Esse erro estimadoe encontrado atraves da media dos resıduos da regressao, porem essa media podera su-bestimar alguns erros encontrados para casos de exemplos fora do conjunto de exemplosutilizados para a construcao da arvore. Para evitar essa subestimacao, o erro para casosfora do conjunto de treinamento sera multiplicado por um fator (n + v/n − v), onde nrepresenta o numero de exemplos que alcancam o no e v e o numero de parametros domodelo [WF05].

Apos o processo de simplificacao das equacoes, o algoritmo dara inıcio ao processo desuavizacao da arvore de modelo. Esse processo e responsavel por eliminar possıveis des-continuidades dos modelos lineares. Essas descontinuidades aparecem quando exemplossao muito parecidos e caem em folhas diferentes.

A grande vantagem das arvores de regressao e das arvores de modelo sobre as redesneurais e que ambas tem capacidade de produzir resultados mais interpretaveis, ou seja,modelos muito mais faceis de entender.

3.5.1 Algoritmo M5’

Durante a implementacao do algoritmo M5 [Qui92] pela equipe do projeto WEKA, foiobservado que alguns detalhes sobre a sua implementacao estavam obscuros. Por isso, doispesquisadores da area (Wang e Witten [WW97]) apresentaram a comunidade cientıficao algoritmo M5’, que detalhava mais sobre a implementacao do M5, alem de descreveralguns passos que estavam ausentes na descricao original do M5 baseadas na metodologiaCART (classification and regression trees) [WW97].

Pode-se perceber que a principal contribuicao dada pelos pesquisadores Wang e Wittenfoi em relacao ao tratamento dos valores ausentes e a escolha do teste de divisao paraatributos categoricos [WW97]. As outras caracterısticas do M5’ seguem a mesma linhaempregada pelo M5 [Qui92].

O tratamento realizado para valores ausentes e realizado da seguinte maneira: seo valor ausente for de um atributo numerico, sera atribuıdo a media dos valores dosatributos das instancias que alcancam este no. Para o caso de atributos categoricos, seraatribuıda a moda para os valores ausente. Quando o valor ausente for da variavel deresposta entao o algoritmo despreza a instancia.

Page 50: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.6 METODO BAGGING 31

Segue abaixo o pseudo-codigo do algoritmo M5’.

Algoritmo M5’Entrada instancias

variancia = calcularVariancia(instancias)Remover todas as instancias sem valor para classeTrocar os atributos faltantes de cada instanciaPara cada i em instancias faca

Para cada atributo nominal de i, converte-lo em atributo binarioraiz = novoNoconstruirClassificador(variancia, raiz, instancias)podar(raiz)suavizar(raiz)

Outro detalhe presente no algoritmo M5’ e que a funcao de reducao do erro empregadapor ele e diferente da funcao empregada no algoritmo M5. A funcao empregada pelo M5e a raiz quadrada da variancia enquanto a funcao empregada pelo M5’ e a raiz quinta davariancia.

O algoritmo M5 realiza uma busca sequencial entre todos os possıveis pontos de divisaodos atributos para encontrar o valor que maximiza a reducao do erro. O algoritmo M5’faz a busca entre os valores que estao entre os 60% mais proximos da mediana, com isso,reduz o esforco computacional.

3.6 METODO BAGGING

Diferentes tecnicas de aprendizagem de maquina normalmente retornam resultados dife-rentes para o mesmo conjunto de dados. Em geral, para se determinar qual e a melhortecnica para um determinado problema e escolher aquela que retorna o menor erro. Comessa abordagem podemos estar abdicando de informacoes relevantes obtidas por deter-minadas tecnicas. Dessa forma, podemos combinar as saıdas de diversas tecnicas com oobjetivo de tentar extrair o maximo de informacoes do conjunto de dados, e assim me-lhorar os resultados e/ou aumentar a estabilidade dos resultados obtidos usando apenasuma unica tecnica. A combinacao de tecnicas e denominado ensembles [Bre96].

Pesquisas tem demonstrado que com a utilizacao de ensembles e possıvel melho-rar os resultados quando comparados com os resultados obtidos com uma unica tecnica[MCHL06].

Existem dois tipos de ensembles, os heterogeneos e os homogeneos.

• Os ensembles heterogeneos, conhecidos como stacking, sao caracterizados pela selecaode n tecnicas e de uma funcao de combinacao. Devido a isso, eles dependem daescolha das n tecnicas e da funcao de combinacao.

• Os ensembles homogeneos, conhecidos como bootstrap, combinam as tecnicas ex-traıdas a partir de diferentes subconjuntos de um mesmo conjunto de dados, atravesde uma unica tecnica de aprendizagem de maquina. Um algoritmo utilizado paraensembles homogeneos e o algoritmo Bagging. A Figura 3.6 ilustra uma estruturade um experimento usando o metodo Bagging.

Page 51: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.6 METODO BAGGING 32

Bagging, acronimo para bootstrap aggregation, e um metodo proposto por Breiman[Bre96] que pode ser usado em problemas de classificacao e de regressao para reduzir avariacao associada com a predicao. O metodo procura, desse modo, melhorar o processode predicao. A ideia consiste em usar versoes multiplas do conjunto de treinamento.Cada versao e criada selecionando aleatoriamente amostras do conjunto de treinamento,com reposicao, onde n e o numero de amostras do conjunto de treinamento original[Bre96]. Esse metodo consiste em criar novos conjuntos de dados a partir do conjunto detreinamento inicial e, para cada conjunto de dados criado, gerar um modelo de regressaoaplicando um algoritmo de aprendizagem. O algoritmo de aprendizagem deve ser omesmo em todas as iteracoes. Frequentemente, a predicao final e dada pela media daspredicoes de cada modelo de regressao criado [Bre96][WF05]. Esse metodo apresenta bonsresultados sempre que o algoritmo de aprendizagem e instavel [Bre96]. Um algoritmo deaprendizagem e instavel se gerar modelos de regressao diversos quando aplicado a conjuntode dados com pequenas diferencas [Bre96].

Figura 3.6 Estrutura de um experimento usando o metodo Bagging.

O metodo Bagging tem tres parametros:

1. bagSizePercent - tamanho de cada versao do conjunto de dados do treinamento;

2. classifier - classificador ou modelo de regressao a ser usado;

3. numIterations - numero de iteracoes.

As fases do treinamento e teste do algoritmo Bagging sao descritas abaixo.

• Treinamento

1. Selecionar conjunto de treinamento com n instancias

a Para cada iteracao t

b Criar um novo conjunto de treinamento T escolhendo uma porcentagem ndo conjunto de treinamento inicial, com reposicao;

c Aplicar o algoritmo de aprendizagem ao conjunto de treinamento T;

2. Armazenar os modelos de regressao construıdos.

Page 52: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.7 TECNICAS DE APRENDIZAGEM DE MAQUINA APLICADAS AO PROBLEMA 33

• Teste

1. Para cada modelo de regressao armazenado

a Predizer o valor de cada amostra do conjunto de treinamento inicial;

b Armazenar o valor predito.

2. Calcular a predicao final a partir da media dos valores preditos.

3.7 TECNICAS DE APRENDIZAGEM DE MAQUINA APLICADAS AO PRO-BLEMA

Aprendizagem de maquina esta relacionada com sistemas computacionais que geram re-gras e/ou modelos a partir de um conjunto de dados.

No problema de estimar esforco de software o objetivo e gerar um modelo que possaapoiar a decisao do gerente de projetos na hora de definir a quantidade de esforco ne-cessaria para o desenvolvimento de um novo projeto de software. Para gera-los, se faznecessaria a presenca de um conjunto de dados. Esse conjunto de dados e construıdo apartir das coletas das informacoes sobre projetos de software passados. Essas informacoesprecisam ser definidas com cuidado, para que elas sejam realmente importantes para de-finirmos o modelo, pois poderao influenciar significativamente o esforco a ser estimado.Informacoes como experiencia da equipe, experiencia do analista ou gerente, restricaode tempo e volatilidade dos requisitos sao variaveis importantes para definir o esforco,custo e cronograma do projeto de software e, por isso, devem estar presentes entre asinformacoes coletadas nos projetos.

De modo geral, a Figura 3.7 mostra o ciclo basico de um experimento, utilizandoas rede neurais artificiais, para se gerar um modelo de predicao para o problema deestimativa de esforco de software. Frequentemente divide-se o conjunto de dados daseguinte maneira: conjunto de treinamento, conjunto de validacao e conjunto de teste.

Figura 3.7 Ciclo basico de um experimento para gerar um modelo usando tecnicas de apren-dizagem de maquina.

Page 53: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.8 TECNICAS DE ESTIMATIVA DA CAPACIDADE DE GENERALIZACAO 34

O treinamento da tecnica de aprendizagem de maquina e feito usando o conjunto detreinamento e o conjunto de validacao [dPBdLFdCL07]. O conjunto de treinamento eutilizado para treinar a tecnica de forma a gerar o modelo de predicao que tenha o maiorpoder de generalizacao, enquanto que o conjunto de validacao avalia o erro do conjuntode treinamento a cada n epocas e, caso o erro seja maior do que era em n epocas passadas,o treinamento da tecnica e interrompido e o conjunto de pesos de n epocas passadas eutilizado como o resultado do treinamento [dPBdLFdCL07]. O conjunto de validacao eutilizado durante o treinamento para evitar a perda da capacidade de generalizacao domodelo, por exemplo, atraves da parada antecipada do treinamento. Assume-se que o errodo conjunto de validacao geralmente e uma estimativa otimista do erro de generalizacaono conjunto de teste [dPBdLFdCL07]. A precisao e acuracia do modelo gerado e avaliadapor meio do conjunto de teste. A partir desses resultados podemos analisar a capacidadede generalizacao do modelo criado.

3.8 TECNICAS DE ESTIMATIVA DA CAPACIDADE DE GENERALIZACAO

O erro de generalizacao e o indicador mais usado para medir o desempenho do modeloconstruıdo. A partir desse valor podemos ter uma estimativa de como nosso modelo secomportara na pratica [dPBdLFdCL07].

Diferentes particoes do conjunto dos dados resultarao em diferentes conclusoes. Dessaforma, e importante definir estrategias para a divisao do conjunto dos dados. A seguirapresentamos as estrategias mais praticadas atualmente.

3.8.1 Holdout

Consiste em dividir, aleatoriamente, o conjunto de dados em 3 grupos distintos, chama-dos comumente de treinamento, validacao e teste. Geralmente essa divisao segue umaporcentagem fixa, sendo a mais usual a divisao: 50% (treinamento), 25% (validacao)e 25% (teste). Vale ressaltar que nao existem fundamentos teoricos para a adocao dosreferidos valores. A Figura 3.8 ilustra esse procedimento de divisao.

O modelo de predicao e gerado utilizando os conjuntos de treinamento e validacao.Em seguida, o modelo e testado com as instancias do conjunto de teste. Os erros saoutilizados para avaliar a capacidade de generalizacao do modelo [WF05]. Essa estrategiae geralmente utilizada quando existe abundancia de dados.

3.8.2 Validacao Cruzada

A validacao cruzada e uma estrategia bastante utilizada para treinar e comparar a capa-cidade de generalizacao das tecnicas de aprendizagem de maquina. O conjunto dos dadose dividido em K particoes (K-fold) de tamanhos iguais ou aproximadamente iguais, nosquais K-1 partes sao utilizados como conjunto de modelagem e o bloco restante e usadocomo conjunto de teste [WF05].

Dessa forma, para realizar o treinamento do modelo usando essa tecnica serao ne-cessarias K iteracoes. O treinamento e feito da seguinte maneira. Na primeira iteracao, aprimeira particao e utilizada como conjunto de teste, enquanto as K-1 particoes restantes

Page 54: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.8 TECNICAS DE ESTIMATIVA DA CAPACIDADE DE GENERALIZACAO 35

sao utilizadas como conjunto de treinamento. Na segunda iteracao, a segunda particaoe utilizada como conjunto de teste e as K-1 particoes restantes como conjunto de treina-mento, e assim sucessivamente. A Figura 3.9 ilustra esse procedimento de treinamentocom K = 10. Ao final de cada iteracao, o erro do modelo, no conjunto de testes, e cal-culado; ao termino da ultima iteracao, a media aritmetica dos erros fornecidos por cadaum dos conjuntos de testes e apresentado como resultado [WF05].

Conjunto de teste Conjunto de treinamento

Conjunto de validação

Figura 3.8 Exemplo de holdout com a divisao 50% dos dados para treinamento, 25% paravalidacao e 25% para teste.

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

10

...

10 iterações

Conjunto de teste Conjunto de treinamento

Figura 3.9 Exemplo de validacao cruzada com 10 partes.

Essa tecnica tem vantagem sobre a tecnica holdout, pois utiliza a base de dados emsua totalidade, gerando um resultado mais confiavel. Sua aplicacao em experimentos eindicada quando a quantidade de instancias da base de dados em estudo for pequena.Entretanto, e importante observar que esta tecnica tem um custo computacional maiorque a tecnica holdout [WF05].

Page 55: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.9 MEDIDAS DE DESEMPENHO 36

3.8.3 Leave-one-out

LOOCV Leave-one-out Cross-Validation e simplesmente uma validacao cruzada com Kpartes (K-fold), em que K e igual ao numero de instancias do conjunto de dados. Parao treinamento, cada instancia, uma por vez, e deixada fora, e o treinamento e realizadousando todas as instancias restantes. Esse mesmo procedimento e realizado K-1 vezes. Oresultado final do erro de estimativa e calculado a partir da media aritmetica dos errosde todas as K iteracoes [WF05].

O uso dessa tecnica tem duas principais vantagens. A primeira e que aumenta, pro-vavelmente, a chance de o modelo construıdo ser mais preciso ja que a maior quantidadepossıvel de dados e utilizada para a formacao de cada modelo. A segunda vantagem e queesse procedimento e determinıstico, isto e, a amostragem aleatoria nao esta envolvida.Com isso, o mesmo resultado sera obtido todas as vezes que se executar uma tecnicade aprendizagem de maquina determinıstica com a mesma configuracao e com o mesmoconjunto de dados. A desvantagem principal do LOOCV e seu alto custo computacional,uma vez que todo o processo da aprendizagem deve ser executado K vezes e torna-se,geralmente, inviavel para grandes conjuntos de dados. No entanto, essa tecnica ofereceuma oportunidade de extrair o maximo de um pequeno conjunto de dados e obter umaestimativa mais exata quanto possıvel [WF05].

3.9 MEDIDAS DE DESEMPENHO

Para medir o desempenho das tecnicas de aprendizagem de maquina, faz-se necessario autilizacao de medidores de desempenho que ajudam na definicao de qual(is) tecnica(s)apresenta(m) melhor(es) resultado(s). Uma breve explicacao sobre cada medidor utilizadoneste trabalho e apresentado nas secoes seguintes.

Diferentes medidas de erro tem sido utilizadas por varios pesquisadores na area deestimativa de esforco de projetos de software, cada uma com suas particularidades. Asmedidas escolhidas neste trabalho foram: o PRED(25) e o MMRE (Mean Magnitude ofRelative Error).

A escolha dessas medidas deve-se ao fato de serem as mais comumente utilizadas emoutros trabalhos relacionados a estimativa de esforco de software, o que facilita o estudocomparativo dos resultados [SG00][BL01][Oli06][TSS08].

3.9.1 PRED

O PRED(N) representa a quantidade de estimativas que estao numa margem de ±N%dos valores das estimativas reais na base dados. Dado T testes, entao:

PRED(N) = 100T

∑Ti

{1 se |estimado−real|

real≤ N

100,

0 outros casos

Por exemplo, PRED(25) = 50% significa que 50% das estimativas se encontram dentrodo intervalo de ±25% dos valores das estimativas reais.

Page 56: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.10 INTERVALOS DE CONFIANCA ROBUSTOS 37

O PRED(N) e uma medida que prioriza o controle das previsoes. Ela ajuda os gerentesde projeto a analisarem se suas estimativas se encontram dentro de um intervalo de risco,definido pela empresa, para o desenvolvimento do software.

Os especialistas McConnell [McC06] e Boehm [BAB+00] citam que se o intervaloentre a estimativa realizada e a meta do projeto for menor ou igual a 25%, o gerentede projeto podera controlar: as funcionalidades que serao implementadas, o cronograma,o tamanho da equipe, dentre outros parametros para atingir os objetivos de negocio doprojeto [McC06].

Segundo Agarwal et al. [AKY+01], para que o modelo de estimativa de esforco desoftware seja acurado e necessario que o PRED(25)≥75%.

3.9.2 MMRE

O MMRE (Mean Magnitude of Relative Error) e a media da magnitude dos erros relativosde cada estimativa. O MMRE e representado pela expressao abaixo:

MMRE =1

n

n∑i=1

|Yi − Yi|Yi

Onde: Yi e a quantidade de esforco que o software necessitou para ser desenvolvido noprojeto i e Yi representa o esforco que a tecnica de regressao estimou para um determinadopadrao no conjunto de testes e n e o numero de instancias do conjunto de testes. Dessamaneira, o MMRE e a media dos erros relativos de cada um dos i projetos em um conjuntode testes composto por n instancias.

O MMRE e uma medida que prioriza a acuracia das previsoes. No entanto, umunico grande erro pode influenciar bastante o resultado final do MMRE [SS97]. SegundoAgarwal et al. [AKY+01], para que o modelo de estimativa de esforco de software sejaacurado e necessario que o MMRE≤0,25.

O MMRE e bastante utilizado como medidor de desempenho na area de estimativa deesforco de software, mas tem se levantado algumas crıticas sobre seu uso [SS97][FSKM03].Ele tende a preferir um modelo que subestima a um que superestime o valor do esforcode um projeto de software. Dependendo do caso, essa limitacao podera inviabilizar a suautilizacao.

3.10 INTERVALOS DE CONFIANCA ROBUSTOS

Na maioria dos artigos sobre estimativas de esforco de software, principalmente aquelesque usam a aprendizagem de maquina para problemas de regressao, somente os valorespreditos sao dados como resposta [BdOdLM07]. Na pratica, entretanto, e muito impor-tante fornecer tambem uma indicacao da confiabilidade destas predicoes [BdOdLM07].Isso pode ser conseguido usando intervalos da confianca.

Em muitas aplicacoes, os intervalos da confianca para predicoes sao calculados su-pondo que os erros seguem alguma distribuicao de probabilidade. Frequentemente, supoe-se que os erros seguem a distribuicao normal [dAM05]. Os erros sao usados, entao, paraestimar os parametros da distribuicao normal e construir o intervalo de confianca. Infe-

Page 57: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.10 INTERVALOS DE CONFIANCA ROBUSTOS 38

lizmente, em muitos casos, a suposicao sobre a distribuicao de probabilidade dos errosnao e a correta. Os intervalos de confianca robustos sao mais gerais porque nao fazemnenhuma suposicao sobre os erros [OM06]. Tais intervalos foram aplicados recentementepor Oliveira e Meira para deteccao de novidades para series temporais [OM06].

Nesta dissertacao realizamos alguns experimentos iniciais nas bases de dados NASA,Desharnais e COCOMO, aplicando essa tecnica. Os resultados serao descritos na secao6.2. E importante destacar que fomos os precursores na aplicacao da referida tecnica aopresente problema.

3.10.1 Calculando os Intervalos de Confianca Robustos

Um intervalo de confianca robusto para predicoes e construıdo atraves dos erros coletadosdo conjunto de treinamento, depois que o modelo de regressao e construıdo. A intuicaopor tras dos intervalos de confianca robustos e que a frequencia da ocorrencia dos errosno conjunto de treinamento e a mesma quando a tecnica da aprendizagem de maquina eusada na fase de teste (ou na pratica, estimar o esforco do software de um novo projeto)[OM06]. Essa intuicao so sera verdade se for evitado o overfitting no treinamento.

Para construir intervalos de confianca robustos, os erros oriundos da fase de treina-mento da tecnica devem ser coletados e guardados e ordenados crescentemente. Conside-remos que n e o numero de instancias do conjunto de treinamento, α e o nıvel desejadode confianca, e p e a fracao da probabilidade de remocao. Para colecoes muito grandesde erros e valores moderados de p, (n x p) valores devem ser retirados de cada extremi-dade da colecao de erros a fim de construir os intervalos de confianca. Para as amostrasmenores, entretanto, a quantidade recomendada a ser retirada de cada extremidade e (nx p)-1 [OM06]. Se o resultado for um numero real, esse devera ser truncado.

O procedimento padrao usado para construir os intervalos de confianca robustos, paraamostras pequenas, pode ser dividido em seis etapas, descritas abaixo [BdOdLM07]:

1. Treinar os modelos de regressao usando n instancias;

2. Obter a colecao dos erros das n instancias;

3. Classificar a colecao dos erros em ordem crescente;

4. Calcular a fracao da probabilidade de remocao;

5. Retirar (n x p)-1 erros de cada extremidade da colecao dos erros;

6. Obter os intervalos de confianca robustos para as predicoes futuras.

O seguinte exemplo pratico ilustra o procedimento usado para construir os intervalosde confianca robustos. Supondo que n = 20 instancias para o treinamento. Apos treinar,os erros no conjunto de treinamento sao computados (para cada amostra do treinamento).A colecao do erro e classificada entao: ~ε = [-0,6, -0,5, -0,45, -0,4, -0,3, -0,2, -0,1, -0,05, 0,0,0,0, 0,0, 0,0, 0,05, 0,1, 0,1, 0,1, 0,2, 0,3, 0,35, 0,4]. Supondo que o nıvel de confianca sejaα = 80%. Dessa forma, calculamos a fracao da probabilidade de remocao p = (1.0 - 0.8)/2

Page 58: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

3.11 COMENTARIOS FINAIS 39

= 0.1. Logo apos, computamos a quantidade de elementos que serao retirados de cadaextremidade (n x p)-1 = 1. Assim, um exemplo deve ser retirado de cada extremidadeda colecao dos erros. Dessa maneira, com um nıvel de confianca de 80%, um futuro valorpredito xp se encontrara dentro do intervalo [ xp - 0,5 , xp + 0,35 ].

3.11 COMENTARIOS FINAIS

Neste capıtulo foram discutidas as tecnicas de aprendizagem de maquina usadas paraestimar o esforco para desenvolver projetos de software. Os conceitos e o funcionamentode cada uma dessas tecnicas foram tambem apresentadas.

Discorremos sobre as tecnicas de estimativa da capacidade do erro de generalizacao,mostrando que a partir desse erro podemos ter uma estimativa de como nosso modelo secomportara na pratica. Falamos, tambem, das estrategias para a divisao do conjunto dosdados.

Apresentamos uma breve descricao sobre os medidas de desempenho mais usadas naarea e que aplicamos nesta dissertacao. Apresentamos, tambem, tecnicas para estimar acapacidade de generalizacao de tecnicas de aprendizagem de maquina.

Para melhorar o resultado das estimativas e necessario seguir um procedimento es-pecıfico para cada tecnica.

Page 59: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

CAPITULO 4

METODO PROPOSTO

Neste capıtulo e apresentado o modelo proposto por nos neste trabalho, o qual aplicaum algoritmo genetico para, simultaneamente, otimizar os parametros das tecnicas deaprendizagem de maquina e selecionar os atributos mais relevantes do conjunto de dados.A motivacao para isso e que a melhoria do desempenho das tecnicas de aprendizagemde maquina passa pelo ajuste dos valores parametros e pela definicao de quais atributospresentes no conjunto de dados tem maior relevancia para a tecnica [HW06]. Antes deapresentarmos e descrevermos o modelo proposto, iremos fazer uma breve introducao dosalgoritmos de otimizacao e revisao dos algoritmos geneticos.

4.1 INTRODUCAO

Algoritmos de otimizacao sao metodos de busca no qual o objetivo e encontrar umasolucao otima ou aproximadamente otima para um problema. Esses algoritmos podemestar sujeitos a um conjunto de restricoes [Eng06]. Embora a definicao seja simples, nemsempre os problemas a serem otimizados sao de simples resolucao. Problemas complexos,restricoes nao lineares, caracterısticas que podem mudar ao longo do tempo ou o problemapode ter objetivos conflitantes [Eng06]. Essa e apenas uma pequena lista de questoesque ilustram algumas das complexidades que um algoritmo de otimizacao pode ter deenfrentar.

Cada problema de otimizacao e composto por [Eng06]:

1. Uma funcao objetivo que representa a funcao a ser otimizada, ou seja, a funcaoque sera minimizada ou maximizada. Algumas funcoes, especificamente problemasde restricao-satisfacao (Constraint-Satisfaction Problems - CSP), nao definem umafuncao objetivo de forma explıcita. Ao inves disso, o objetivo e encontrar umasolucao que satisfaca todo o conjunto de restricoes.

2. Um conjunto variaveis que afeta os valores da funcao objetivo. Se x representauma variavel, tambem referida como variavel independente, entao f(x) quantificaa qualidade do candidato a solucao x.

3. Um conjunto de restricoes que limita os valores que podem ser atribuıdos as variaveis.A maior parte dos problemas define um conjunto de fronteiras de restricoes, quedeterminam o domınio de valores para cada variavel. As limitacoes podem, noentanto, ser mais complexas, excluindo alguns candidatos que estao sendo conside-rados como solucoes.

O objetivo dos metodos de otimizacao e, entao, atribuir valores, a partir do domıniovalido para a(s) variavel(is), de modo que a funcao objetivo e otimizada e todas asrestricoes sejam satisfeitas [Eng06].

40

Page 60: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

4.2 ALGORITMO GENETICO 41

Os problemas de otimizacao podem ser classificados pelo numero e tipos de variaveis,grau de nao-linearidade da funcao objetivo, restricoes utilizadas e multi-objetivos [Eng06].

No nosso modelo, utilizamos a tecnica de otimizacao chamada de algoritmo genetico(Genetic Algorithm - GA). Portanto, revisaremos esta tecnica a seguir.

4.2 ALGORITMO GENETICO

Apos anos de estudos e experimentacao, Charles Darwin apresentou em 1858 a sua teoriada evolucao. Essa teoria se baseia na selecao natural dos indivıduos, ou seja, indivıduoscom boas caracterısticas tem maiores chances de sobreviver e produzir indivıduos maisaptos para um determinado ambiente [Hol75].

A teoria da evolucao moderna, criada por volta de 1900, combinou a genetica com asideias de Darwin sobre a selecao natural dos indivıduos [Hol75]. Dessa combinacao, foicriado o princıpio basico da genetica populacional. Esse princıpio diz que a variabilidadeentre os indivıduos, dentro de uma populacao de seres vivos, e decorrente da mutacao eda recombinacao genetica [Hol92].

Na decada de 50, muitos matematicos e biologos comecaram a desenvolver simulacoescomputacionais baseadas em sistemas geneticos. Mas, foi John Holland quem acreditoumais seriamente que o princıpio da evolucao natural poderia ser implementado de formaalgorıtmica. Holland foi ajustando suas ideias e em 1975 publicou o seu livro Adapta-tion in Natural and Artificial Systems [Hol75]. Holland objetivava abstrair e explicar oprocesso adaptativo dos sistemas naturais como forma de tentar recriar esse modelo deforma artificial, isto e, por meio de software [Hol75].

Algoritmos geneticos (AGs) sao modelos computacionais inspirados na teoria da evolucao,usados no processo de busca por solucoes otimas em diversos problemas. Esses algorit-mos codificam uma solucao potencial de um problema especıfico em uma estrutura dedados como a de um cromossomo, tambem chamada de indivıduo, e aplicam operadoresde recombinacao a essas estruturas de dados com o intuito de preservar as informacoesmais relevantes [Eng06].

Os cromossomos representam indivıduos que permanecem ao longo das geracoes, evo-luindo de acordo com os princıpios de selecao natural e sobrevivencia dos mais aptos[dPBdLFdCL07]. Atraves desse processo evolutivo, os algoritmos geneticos (AGs) tem acapacidade de encontrar solucoes otimas ou aproximadamente otimas para problemas domundo real [Eng06].

Em geral, os indivıduos e os animais de uma mesma especie, presentes na natureza,competem entre si por recursos. Devido a isso, indivıduos ou animais que nao obtenhambom exito, tendem a ter um numero pequeno de descendentes, tendo assim a proba-bilidade de seus genes serem propagados ao longo das geracoes diminuıda [Rez03]. Acombinacao genetica entre indivıduos pode produzir um novo indivıduo melhor adaptadoas caracterısticas do meio onde ele vive [Rez03].

Os AGs sao construıdos a partir da analogia da evolucao da natureza, no qual cadaindivıduo representa uma possıvel solucao para o problema, e que cada um deles estaassociado a um grau de adaptacao. Aos indivıduos com maior grau de adaptacao temmaior probabilidade de realizar cruzamentos com outros da mesma populacao [Rez03].

Page 61: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

4.2 ALGORITMO GENETICO 42

A utilizacao dos AGs assegura que todos os pontos do espaco de busca tem probabi-lidade diferente de zero de serem alcancados. Porem, nao garante a convergencia para asolucao otima (mınimo ou maximo global) do problema.

Os AGs diferem dos metodos tradicionais de busca e otimizacao, sobretudo em quatroaspectos [Rez03]:

1. Utilizam uma codificacao do conjunto de parametros e nao os proprios parametros;

2. Trabalham com uma populacao (conjunto de solucoes candidatas) e nao com umunico candidato;

3. Utilizam informacoes da aptidao do candidato e nao derivadas ou outro conheci-mento auxiliar;

4. Utilizam regras probabilısticas e nao determinısticas.

Os AGs tem se mostrado muito eficientes na busca por solucoes otimas, ou aproxi-madamente otimas, em diversos problemas, pois nao estabelecem muitas das limitacoesimpostas pelos metodos de busca e otimizacao tradicionais. A estrutura basica de umalgoritmo genetico e ilustrada na Figura 4.1.

A primeira etapa de um AG consiste em determinar como os indivıduos deveraoser representados [Eng06]. A partir dessa representacao e que sera possıvel o uso dosoperadores geneticos para atuar sobre os indivıduos. Em seguida, e iniciada a geracaoda populacao, que quase sempre e feita de forma pseudo-aleatoria [Rez03]. Cada um dosindivıduos que compoem a populacao representa uma solucao candidata para o problema.Os AGs necessitam de uma funcao de avaliacao que quantifique a aptidao dos indivıduosao meio. Essa funcao avalia cada indivıduo, que recebe uma nota. Essa nota reflete seugrau de adaptacao ao ambiente. Uma fracao dos indivıduos mais aptos sao selecionados,enquanto os outros sao descartados. Os indivıduos selecionados podem sofrer alteracoesem suas caracterısticas atraves dos operadores de cruzamento e mutacao, dessa forma,gerando descendentes para a proxima geracao. Esse processo e repetido ate que umasolucao satisfatoria seja encontrada ou outro criterio de parada seja atingido [Rez03].

4.2.1 Representacao

O primeiro passo a ser dado para a utilizacao de AGs como ferramenta para a solucaode problemas de busca e otimizacao e a representacao ou codificacao dos indivıduos emuma estrutura [dPBdLFdCL07]. O indivıduo codificado de acordo com essa estrutura echamado de genotipo. O indivıduo antes de ser codificado e chamado de fenotipo. Parapodermos avaliar o grau de aptidao de cada indivıduo da populacao e preciso decodificarcada um deles para o fenotipo correspondente [dPBdLFdCL07].

A forma como codificamos os indivıduos pode influenciar no desempenho obtido peloAG. Na codificacao binaria o uso de pequenas ou grandes quantidade de bits para arepresentacao dos indivıduos pode dificultar o detalhamento das caracterısticas ou a ma-nipulacao de grandes quantidade de bits [Eng06].

Page 62: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

4.2 ALGORITMO GENETICO 43

Figura 4.1 Estrutura basica de um AG simples.

Page 63: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

4.2 ALGORITMO GENETICO 44

A recombinacao das cadeias de bits e outro problema encontrado com o uso da codi-ficacao binaria. Esse problema influencia os AGs na geracao de indivıduos com estruturasdiferentes, mas com aptidao equivalente [Eng06]. Isso faz que os AGs precisem, em geral,de mais geracoes para encontrar uma solucao satisfatoria, pelo fato de ocorrer a presencade indivıduos similares em termos de estrutura. A codificacao real trabalha com os valoresreais do problema [Eng06]. Com isso, temos a vantagem de nao precisarmos codificar e de-codificar constantemente os dados do problema. Por outro lado, essa abordagem dificultaa aplicacao dos operadores geneticos tradicionais de cruzamento e mutacao [Eng06].

4.2.2 Selecao

Um dos princıpios fundamentais para o funcionamento dos algoritmos geneticos e de-terminar um criterio para a selecao de indivıduos. A selecao objetiva que, ao longo dediversas geracoes, a populacao inicial de indivıduos gere indivıduos mais aptos [Eng06].Geralmente as tecnicas de selecao sao projetadas para tender a escolher indivıduos commaiores nıveis de aptidao [Eng06]. No entanto, os indivıduos com menores nıveis deaptidao podem permanecer, como forma de manter a diversidade da populacao [Eng06].

Uma tecnica de selecao muito utilizada e a roleta [Eng06]. Nela, os indivıduos de umapopulacao sao escolhidos para formarem a proxima populacao, atraves de um sorteio deroleta [Rez03]. A probabilidade de selecao de um indivıduo e diretamente proporcionalao valor de sua aptidao [Rez03].

Para ilustrar esta tecnica, considere um cırculo dividido em n partes (quantidade deindivıduos da populacao), onde o tamanho de cada parte e proporcional a aptidao doindivıduo [Rez03]. Coloca-se sobre esse cırculo x cursores, igualmente espacados. Aposum giro da roleta, a posicao dos cursores indica os indivıduos selecionados para a proximapopulacao [Rez03]. A roleta e girada, t vezes, ate que o numero de indivıduos da proximageracao seja atingido. A Figura 4.2 ilustra a tecnica de selecao roleta simples (apenas 1cursor).

Figura 4.2 Selecao utilizando o metodo de roleta simples.

Page 64: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

4.2 ALGORITMO GENETICO 45

4.2.3 Cruzamento

Apos a etapa de selecao, os indivıduos que foram selecionados sao cruzados. O cruza-mento e um operador cuja finalidade e recombinar as caracterısticas dos pais durantea reproducao. A partir da reproducao e que as proximas geracoes herdam essas carac-terısticas [Eng06].

O cruzamento e considerado o operador genetico predominante [Eng06]. Esse operadorpode ser implementado de varias maneiras:

• Um-ponto: um ponto para o cruzamento e escolhido e a partir deste ponto asinformacoes geneticas dos pais serao trocadas.

• Dois-pontos: e uma generalizacao do cruzamento de um-ponto. Sao definidos doispontos para o cruzamento. A Figura 4.3 ilustra essa operacao.

• Uniforme: nao utiliza pontos de cruzamento. E criada uma mascara que indicaos genes dos dois cromossomos que vao ser trocados. A mascara e gerada aleatori-amente.

• Permutacao: o cruzamento e feito atraves da troca de um conjunto de bits detamanho e posicao pre-definidos.

Pais Filhos

Figura 4.3 Metodo de cruzamento de dois pontos.

4.2.4 Mutacao

O operador de mutacao e importante para prover diversidade genetica a populacao. Comele, e assegurada uma probabilidade, diferente de zero, de alcancar qualquer ponto doespaco de busca do problema. Alem disso, atraves do uso desse operador e possıvelcontornar o problema de mınimos locais [Rez03].

Esse operador seleciona, arbitrariamente, uma ou mais posicao(oes) da estrutura doindivıduo e altera seu valor. Com isso, novos indivıduos sao inseridos na populacao[Eng06]. A Figura 4.4 ilustra esse operador.

Antes Depois

Figura 4.4 Metodo de mutacao.

Page 65: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

4.3 METODO PROPOSTO 46

Normalmente se utiliza uma taxa de mutacao pequena para diminuir a probabilidadede buscas puramente aleatorias [Rez03].

Quando uma nova populacao e criada por cruzamento e mutacao, nos temos chance deperder os melhores indivıduos [Rez03]. Para contornar esse problema, pode-se usar o eli-tismo, que e um processo que garante que uma certa quantidade dos melhores indivıduosde uma populacao nao seja perdida, isto e, os melhores indivıduos de uma populacaosao copiados na proxima geracao [Eng06]. Com o uso do elitismo podemos aumentar odesempenho do AG, porque evita a perda da(s) melhor(es) solucao(oes) ja encontrada(s)[Rez03].

4.3 METODO PROPOSTO

Dois fatores conflitantes influenciam o desempenho das tecnicas de aprendizagem demaquina: (1) a escolha de um subconjunto das caracterısticas de entrada e (2) a escolhados parametros das tecnicas de aprendizagem de maquina. Dessa maneira, a otimizacaodas caracterısticas de entrada do subconjunto e dos parametros das tecnicas devem ocorrersimultaneamente, sem degradar a precisao e a acuracia das tecnicas de aprendizagem demaquina. Algoritmos geneticos tem bom potencial para resolver esses conflitos.

4.3.1 Metodo Proposto Baseado em Algoritmos Geneticos

Cada tecnica de aprendizagem de maquina possui alguns parametros que devem ser defini-dos pelo usuario. Esses parametros influenciam significativamente o desempenho dessastecnicas. Neste trabalho, investigamos as tecnicas: SVR, MLP e M5P. A Tabela 4.1mostra os parametros que foram usados para cada tecnica.

Tecnicas ParametrosC - parametro de complexidade

SVR RBF ε - limite que os desvios sao toleradosγ - parametro do kernel

SVR Linear C - parametro de complexidadeε - limite que os desvios sao toleradosN - Numero de neuronios na camada escondida

MLP E - Numero de epocas do treinamentoL - Taxa de aprendizado para o algoritmo backpropagationM - Momentum para o algoritmo backpropagationI - Numero mınimo de instancias na folha

M5P P - Podar/Nao podar a arvoreS - Suavizar/Nao suavizar a arvore

Tabela 4.1 Parametros das tecnicas.

Cada indivıduo e dividido em duas partes, como mostrado na Figura 4.5. A primeiraparte, g1, ..., gn, representa os parametros das tecnicas de aprendizagem de maquina queserao otimizados. A segunda parte, gf , representa o conjunto de caracterısticas de entrada

Page 66: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

4.3 METODO PROPOSTO 47

que serao selecionadas. O sistema de codificacao binaria foi usado para representar oindivıduo.

Figura 4.5 O indivıduo com duas partes. A primeira parte representa os parametros dastecnicas de aprendizagem de maquina e a segunda representa as caracterısticas de entrada.

Na Figura 4.5, a cadeia de bits representa o genotipo do indivıduo (parametros dastecnicas de aprendizagem de maquina e caracterısticas de entrada). Para transformar ogenotipo em fenotipo e utilizada a Equacao .. A precisao dos parametros depende dotamanho da cadeia de bits. Nos adotamos, neste trabalho o tamanho igual a 20 por sersuficiente para a precisao desejada. Os valores de mınimo e o maximo de cada parametrosao definidos pelo usuario. No indivıduo, a descricao da representacao das caracterısticasde entrada e: o bit com valor ‘1’ indica que as caracterısticas nao devem ser removidase ‘0’ indica que elas devem ser removidas, ou seja, caracterısticas com valor ‘0’ nao saoapresentadas como entrada a tecnica de aprendizagem de maquina.

p = minp +maxp −minp

2l − 1X d (.)

p - fenotipo da cadeia de bits.minp - valor mınimo do parametro.maxp - valor maximo do parametro.d - valor decimal da cadeia de bits.l - tamanho da cadeia de bits.

4.3.1.1 Funcao Objetivo

Existem algumas medidas de desempenho usadas na literatura para avaliar a acuraciados metodos de predicao nas tarefas de estimar esforco de software. Neste trabalho, nosusamos as duas medidas que sao mais amplamente utilizadas [BL01]. Essas medidasforam usados por Shin e Goel [SG00] e Oliveira [Oli06], dentre outros. Foram elas: MeanMagnitude of Relative Error (MMRE) e o PRED(25).

Neste trabalho, nos usamos duas funcoes objetivo. Para as bases de dados NASA eDesharnais, nos objetivamos procurar indivıduos com alto PRED(25) e um baixo MMRE.Nos resolvemos esse criterio duplo criando uma funcao objetivo que combina os doiscriterios: fitness = (100− PRED(25)) + MMRE.

Para a base de dados COCOMO, nos criamos uma funcao objetivo que procuraum indivıduo com um pequeno MMRE. A escolha de cada funcao objetivo esta asso-ciada com a possibilidade de comparacao dos nossos resultados com outros reportadosna literatura. As comparacoes foram feitas considerando os resultados reportados em:[SG00][BL01][Oli06][TSS08].

Page 67: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

4.4 COMENTARIOS FINAIS 48

4.3.1.2 Arquitetura do sistema para a abordagem baseada em AG

A Figura 4.6 detalha as etapas principais do metodo proposto baseado em algoritmosgeneticos. A explicacao sobre as etapas sao:

1. Converter genotipo em fenotipo: converte cada parte (genotipo) do indivıduoem um fenotipo usando a Equacao ..

2. Subconjunto de caracterısticas: depois da conversao de subconjunto de carac-terısticas (genotipo) do indivıduo em fenotipo, um subconjunto de caracterısticas eselecionado.

3. Avaliacao da aptidao: cada indivıduo que representa os parametros das tecnicasde aprendizagem de maquina e as caracterısticas selecionadas e avaliado conside-rando a funcao objetivo.

4. Criterio de parada: se o criterio de parada foi satisfeito, o processo termina;senao, nos procedemos com a proxima geracao ou ate que o numero de geracoesdefinidas pelo usuario seja alcancada.

5. Operacao genetica: nessa etapa, o sistema procura as melhores solucoes para asoperacoes geneticas, incluindo: selecao, cruzamento, mutacao e elitismo.

E importante frisar que o metodo proposto por nos foi uma adaptacao e particula-rizacao do metodo desenvolvido por Huang [HW06]. O metodo desenvolvido por Huang seaplica a problemas de classificacao utilizando a tecnica SVM [Hay98]. O nosso modelo seaplica a problemas de regressao podendo ser utilizada qualquer tecnica de aprendizagemde maquina que possua parametros a serem ajustados.

4.4 COMENTARIOS FINAIS

Apresentamos e detalhamos, tambem, o metodo proposto por nos, que se baseia emaplicacao de algoritmo genetico para, simultaneamente, otimizar os parametros das tecnicasde aprendizagem de maquina e selecionar as caracterısticas mais relevantes.

Alem disso, neste capıtulo revisamos tecnicas de busca e otimizacao, focando nos algo-ritmos geneticos. Os conceitos, operadores e o funcionamento basico foram apresentados.Tambem, discorremos sobre a importancia de cada parametro do AG.

Page 68: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

4.4 COMENTARIOS FINAIS 49

Figura 4.6 Arquitetura do sistema do metodo proposto baseado em AG para selecionar carac-terısticas e otimizar os parametros das tecnicas de aprendizagem de maquina para problemasde regressao.

Page 69: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

CAPITULO 5

PROTOTIPO DA FERRAMENTA

Apresentamos o prototipo da ferramenta (SEE - Software Effort Estimation) que foi de-senvolvida nesta dissertacao, assim como a arquitetura das classes e suas funcionalidades,assim como a interface de interacao com o usuario. Alem disso discorremos brevementesobre o WEKA (Waikato Environment for Knowlegde Analysis). WEKA e uma ferra-menta que implementa diversos algoritmos de aprendizagem de maquina para resolucaode diversos tipos de problemas e que foi utilizada como suporte as tecnicas de aprendi-zagem de maquina utilizadas neste trabalho.

5.1 INTRODUCAO

A necessidade de uma ferramenta que tenha a capacidade de estimar esforco de softwarecom um certo grau de confianca e uma motivacao forte para a sua criacao. Existem variasferramentas que dao suporte a estimativa de esforco de desenvolvimento de software[Pre06], a maioria de cunho comercial, podendo assim dificultar, principalmente parapequenas e medias empresas, a adocao das mesmas no contexto de desenvolvimento desoftware.

Outro problema encontrado e que a maioria das ferramentas disponıveis forca que asempresas de software definam e adotem um conjunto de metricas de software como pre-condicao para o uso da ferramenta. Com isso, muitas vezes a adocao dessas ferramentastornam-se complicadas na pratica.

Muitos artigos cientıficos relatam a utilizacao, com sucesso, de tecnicas de aprendi-zagem de maquina no problema de estimativa de esforco, porem nao temos notıcia daexistencia de ferramentas que utilizem tais tecnicas, ou seja, existe uma grande carenciade ferramentas que aplicam as tecnicas de aprendizagem de maquina em ambientes dedesenvolvimento.

E sabido que ferramentas que aplicam tecnicas de aprendizagem de maquina, alem dacapacidade de dar respostas satisfatorias, tem a flexibilidade de se ajustar ao modelo decoletas de medidas de desenvolvimento de software adotado pela empresa. Isso e muitoimportante, visto que reduz a necessidade de mudancas drasticas no seu processo dedesenvolvimento de software.

Nas secoes seguintes apresentaremos a API (Application Programming Interface) WEKAque foi utilizada como suporte as tecnicas de aprendizagem de maquina e o prototipo de-senvolvido com as funcionalidades e seus detalhes.

5.2 WEKA

O WEKA (Waikato Environment for Knowlegde Analysis) e uma colecao de algoritmosde aprendizagem de maquina para resolucao de problemas de associacao, classificacao,

50

Page 70: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.2 WEKA 51

regressao e agrupamento [WEK07]. Desenvolvido em Java, pela Universidade de Waikato,Nova Zelandia, e uma ferramenta gratuita (sob a licenca General Public License) cominterface grafica simples, ilustrada na Figura 5.1 [WEK07].

Conforme se observa, o WEKA fornece quatro opcoes principais: Simple CLI, Explo-rer, Experimenter e KnowledgeFlow [WF05]. A opcao Simple CLI permite a realizacaode experimentos por meio de comandos (prompt), a opcao Explorer e utilizada para opre-processamento, escolha e aplicacao de tecnicas de aprendizagem de maquina, a opcaoExperimenter e usada para fins de comparacao entre as mais variadas tecnicas de inte-ligencia computacional; finalmente, a opcao KnowledgeFlow e uma nova interface graficapara o WEKA, ainda nao finalizada, mas que servira para definir, atraves de fluxos, oexperimento a ser executado. Das opcoes citadas, focamos no Explorer, por ser a maisusada.

Figura 5.1 WEKA GUIChooser.

Na tela do Explorer existem diversas abas, cada uma com sua finalidade. Quando atela do Explorer e carregada, somente a primeira aba esta ativa, isso porque e necessariocarregar um conjunto de dados antes de comecar a explora-los. Segue abaixo a descricaode cada aba presente na tela do Explorer.

• Preprocess: aba na qual se pode escolher o conjunto de dados que sera usado noexperimento e/ou pre-processar os dados desse conjunto (discretizar, normalizar,selecionar atributos e etc...). Alem disso, essa aba ainda mostra um histograma decada variavel da base.

• Classification: aba na qual se pode selecionar tanto o tipo de treinamento/testequanto a tecnica de aprendizagem de maquina que sera usada no experimento.

• Cluster: aba na qual se pode selecionar tecnicas de aprendizagem de maquinabaseadas em cluster (agrupamento).

Page 71: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.2 WEKA 52

• Associate: aba na qual e possıvel identificar todas as inter-relacoes dos atributosdo conjunto de dados apresentado. Para a utilizacao dessas tecnicas os atributostem que ser nominais.

• Select Attributes: aba na qual e possıvel escolher diversas tecnicas de selecao deatributos do conjunto de dados apresentado.

• Visualize: aba na qual e possıvel visualizar, atraves de graficos 2D, a dispersaodos dados.

O WEKA e mais comumente usado a partir do seu front-end, ou seja, toda a parte doexperimento e feita atraves da iteracao com a interface visual. E possıvel, tambem, inte-ragir com o WEKA a partir de codigo JAVA. Dessa forma, todas as funcionalidades queo WEKA disponibiliza podem ser exploradas via codigo, dando assim maior flexibilidadepara o desenvolvimento e experimentacao de tecnicas de aprendizagem de maquina. Oprojeto RapidMiner [Rap08] e um exemplo de uma ferramenta que integra o WEKA noseu projeto com o intuito de estender suas funcionalidades e assim aumentar as tecnicasde aprendizagem de maquina suportadas.

5.2.1 Formato ARFF

As bases de dados podem ser importadas de arquivos em varios outros formatos (ARFF(Attribute-Relation File Format) e CSV (Comma-Separated Value)). Alem disso, elaspodem ser lidas de uma URL (Uniform Resource Locator) ou a partir de uma base dedados. O formato mais comum e o que utilizamos, como padrao, dos arquivos de entradado prototipo foi o ARFF. Devido a isso, discorremos brevemente sobre esse formato dearquivo de entrada para o WEKA.

Os arquivos no formato ARFF sao formados por duas partes distintas:

• O cabecalho do arquivo ARFF que contem o nome da relacao, a lista de atributose seus tipos. Segue abaixo um exemplo de cabecalho da base de dados WEATHER[WEK07].

@relation weather

@attribute outlook sunny, overcast, rainy

@attribute temperature real

@attribute humidity real

@attribute windy TRUE, FALSE

@attribute play yes, no

• As informacoes sobre os dados. Os dados do arquivo WEATHER seguem abaixo:

@data

sunny,85,85,FALSE,no

sunny,80,90,TRUE,no

Page 72: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.3 PROTOTIPO DA FERRAMENTA 53

overcast,83,86,FALSE,yes

rainy,70,96,FALSE,yes

rainy,68,80,FALSE,yes

rainy,65,70,TRUE,no

overcast,64,65,TRUE,yes

sunny,72,95,FALSE,no

sunny,69,70,FALSE,yes

rainy,75,80,FALSE,yes

sunny,75,70,TRUE,yes

overcast,72,90,TRUE,yes

overcast,81,75,FALSE,yes

rainy,71,91,TRUE,no

Linhas que iniciam com um % sao consideradas como comentarios. As declaracoes@relation, @attribute e @data nao sao sensıveis a maiusculas e minusculas (case insensi-tive).

Os tipos dos atributos podem ser: numerico (numeric), nominal (nominal-specification),cadeia de caracter (string) e data (date).

No prototipo da ferramenta que construımos, o formato de arquivo ARFF foi o padraoadotado como interface de entrada dos dados.

5.3 PROTOTIPO DA FERRAMENTA

Como ja foi dito, a maioria das ferramentas encontradas na area de estimativas de es-forco de software impoe que se adote um conjunto de metricas de software para que sejapossıvel o uso das mesmas. O prototipo desenvolvido nesta dissertacao consegue reduzirfortemente a necessidade desse tipo abordagem que impoe um conjunto rıgido de metricascomo pre-condicao para que se calcule a estimativa de esforco. Esse objetivo e alcancadoaplicando-se as tecnicas de aprendizagem de maquina.

O prototipo tem uma interface simples e e de facil usabilidade. O escopo do prototiposuporta desde o treinamento da tecnica de aprendizagem de maquina escolhida ate oresultado da previsao da estimativa de esforco para o desenvolvimento do projeto desoftware. As Figuras 5.2 e 5.3 mostram a tela inicial e a tela principal do sistema,respectivamente, quando as mesmas sao inicializadas.

A otimizacao dos parametros das tecnicas, alem da selecao dos atributos mais rele-vantes do conjunto de dados, e feita atraves de um AG. Os parametros do AG podem serescolhidos, exceto o metodo de selecao (roleta simples) e o metodo de mutacao (binaria).Essa funcionalidade pode ser acessada a partir do menu Treinar � opcao � Experimento,conforme a Figura 5.4. A Figura 5.5 ilustra a tela na qual e possıvel escolher a tecnicade aprendizagem de maquina, os tipos de treinamentos e os parametros do AG.

Page 73: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.3 PROTOTIPO DA FERRAMENTA 54

Figura 5.2 Tela inicial.

Figura 5.3 Tela principal do sistema.

Como suporte as tecnicas de aprendizagem de maquina, foi utilizada a API WEKAque implementa varias tecnicas de regressao que foram investigadas por nos. As tecnicasescolhidas foram: MLP, RBF, M5P, SVR e Bagging.

As tecnicas de aprendizagem de maquina treinadas sao salvas em um arquivo, cujaextensao e .tamt, de maneira que possa ser utilizada para posteriores previsoes de esti-mativas. Essa funcionalidade pode ser acessada a partir do menu Estimar � opcao �Executar, conforme Figura 5.6.

A Figura 5.7 apresenta a tela na qual e possıvel carregar o modelo da tecnica, ante-riormente treinada, e o arquivo que contem o padrao que queremos estimar o esforco dedesenvolvimento de software. A tela que mostra a saıda de um processo de estimativa eilustrada na Figura 5.8.

As informacoes gerais sobre o prototipo podem ser acessadas por meio do menu Ajuda� opcao � Sobre, conforme ilustrada na Figura 5.9. A Figura 5.10 mostra a tela quecontem as informacoes gerais do prototipo, tais como: uma pequena descricao do projeto,

Page 74: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.4 CARACTERISTICAS TECNICAS 55

Figura 5.4 Menu Treinar � opcao � Experimento.

Figura 5.5 Tela de opcoes para o treinamento de uma tecnica de aprendizagem de maquina.

a versao que se encontra o atual prototipo, nome do prototipo, o nome do departamentoonde foi desenvolvido o prototipo e o site no qual ficarao disponıveis a atual e as proximasversoes do prototipo.

5.4 CARACTERISTICAS TECNICAS

O prototipo foi desenvolvido utilizando a linguagem Java, versao 6 [Sun08], sendo utili-zados os ambientes de desenvolvimento integrado (IDE - Integrated Development Envi-ronment) Eclipse versao 3.3 [Ecl08] e Netbeans versao 6.1 [Net08], em conjunto com aAPI WEKA [WEK07] para o desenvolvimento da mesma.

No desenvolvimento, teve-se o cuidado de criar uma interface visual bastante amigavele intuitiva, um codigo estruturado, de forma que o prototipo possa ser evoluıdo. Porexemplo, podemos adicionar novas tecnicas de selecao de atributos futuramente.

Page 75: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.4 CARACTERISTICAS TECNICAS 56

Figura 5.6 Menu Estimar � opcao � Executar.

Figura 5.7 Tela para a estimativa.

O prototipo esta dividido em tres modulos. Sao eles: o modulo que contem as classescuja a responsabilidade e a de dar suporte a interface grafica (GUI - Graphic User In-terfaces), o modulo que contem as classes do algoritmo genetico e o modulo que interagecom a API WEKA. Cada um desses modulos e detalhado nas secoes seguintes.

5.4.1 Modulo - GUI

As GUIs tem por objetivo melhorar a interacao homem-computador, ou seja, facilitar etornar pratico o uso de programas de computador atraves de representacoes visuais.

Para o nosso prototipo, utilizamos a biblioteca Swing do Java [Sun08] como suporteao desenvolvimento de toda a interface grafica. Na Figura 5.11 e mostrado o digrama declasses que fazem parte do modulo GUI. E importante observar que, como sao poucas astelas que fazem parte desta primeira versao do prototipo, nos resolvemos deixa-las dentrode um unico pacote. Uma breve descricao e feita sobre a responsabilidade de cada classecontida nesse modulo.

Page 76: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.4 CARACTERISTICAS TECNICAS 57

Figura 5.8 Tela de resultado da estimativa.

Figura 5.9 Menu Ajuda � opcao � Sobre.

• See - Tem a responsabilidade de iniciar a execucao de toda a aplicacao. E a classeque contem o metodo principal (start-up do sistema).

• SeeView - Inicializa a tela principal do sistema, no qual e possıvel acessar todasas funcionalidades do prototipo.

• SeeExperimento - Abre a tela dos experimentos. A partir dela, e possıvel escolhero tipo de treinamento que sera feito, assim como selecionar a tecnica que serautilizada no treinamento e os parametros do algorıtmo genetico.

• SeeEstimativa - Abre a janela da estimativa. Por meio dela, e possıvel carregarum arquivo que contem as caracterısticas do projeto que serao usadas para estimaro esforco para se desenvolver o projeto de software. Vale salientar que, sera precisocarregar, tambem, o arquivo com a .tamt que contem o modelo da tecnica deaprendizagem de maquina treinado.

• AbrirArquivo - Classe utilitaria responsavel por abrir uma janela para a escolhados arquivos de treinamento, modelo da tecnica de aprendizagem de maquina trei-nado e o arquivo que contem as caracterısticas do projeto que serao usados paraestimar o esforco.

Page 77: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.4 CARACTERISTICAS TECNICAS 58

Figura 5.10 Tela que contem as informacoes gerais do prototipo.

• SeeAboutBox - Classe que mostra informacoes gerais sobre o prototipo, conformeilustrado na Figura 5.10.

5.4.2 Modulo - Algoritmo Genetico

Este modulo prove mecanismos basicos, por meio dos algoritmos geneticos, que podemser facilmente aplicados a diversos tipos de problemas. Ele esta dividido em pacotes. Issose deve a necessidade de uma melhor organizacao do codigo, o que ajuda no aumento desua legibilidade. A Figura 5.12 mostra todos os pacotes que estao contidos nesse modulo.

• excecoes - contem classes que tratam as excecoes levantadas neste modulo.

• contantes - contem a classe na qual ficam todas as constantes usadas neste modulo.

• aleatorio - contem classes para gerar valores pseudo-randomicos.

• util - contem classes chamadas de utilitarias. Cada classe desse pacote contem umconjunto de metodos que podem ser uteis em diversas situacoes.

• individuo - contem a classe que representa o cromossomo (potencial solucao).

• operadores - contem as classes dos operadores geneticos basicos, tais como: metodode cruzamento, metodo de mutacao e metodo de selecao.

A Figura 5.13 mostra as classes pertencentes aos pacotes individuo e operadores. Odetalhamento desses pacotes em detrimento dos outros se deve ao fato de que esses pacotessao os mais importantes para a implementacao do algorıtmo genetico.

O pacote individuo contem a classe IndividuoGenerico que, como ja dito, repre-senta uma possıvel solucao do problema. Cada indivıduo e formado por um conjuntode fenotipos, um valor de aptidao e a quantidade de parametros a ser otimizado.

O pacote operadores contem classes que tem a responsabilidade de fazer cruzamentos,mutacoes e selecoes dos melhores indivıduos. Como forma de facilitar a adicao de novosmetodos de cruzamento, mutacao e selecao, foi utilizado o conceito de extensao pormeio de interfaces. Com essa tecnica, e possıvel adicionar uma nova funcionalidade, aoprototipo, apenas implementando o metodo da interface.

Page 78: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.4 CARACTERISTICAS TECNICAS 59

Figura 5.11 Diagrama de classes do modulo GUI.

Page 79: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.5 COMENTARIOS FINAIS 60

5.4.3 Modulo - Interface com WEKA

Este modulo interage diretamente com a API WEKA, de forma a realizar o treinamentodas tecnicas de aprendizagem de maquina. A saıda dos resultados das previsoes saoapresentadas as classes que calculam as metricas (medidores de desempenho) utilizadasneste trabalho. A Figura 5.14 apresenta os pacotes presentes nesse modulo. Segue abaixouma breve descricao sobre cada um dos pacotes.

• contantes - contem a classe no qual ficam todas as constantes usadas neste modulo.

• padrao - contem classes que definem os tipos de atributos de saıda suportados.

• funcoes - contem classes que calculam o erro de generalizacao em cada experimento.

• weka - contem classes que auxiliam o treinamento das tecnicas de aprendizagemde maquina, removem atributos da base de dados e recebem as saıdas geradas peloWEKA em cada experimento. A Figura 5.15 ilustra as classes que pertencem a essepacote.

• tecnicas - contem classes que representam as tecnicas de aprendizagem de maquinado WEKA. Atraves dessas classes, e feita a interface com as tecnicas suportadaspelo WEKA. A Figura 5.16 apresenta as classes que compoem esse pacote.

A Figura 5.17 apresenta as classes contidas nos pacotes padrao e funcoes. A concepcaodesses pacotes foi feita de forma a poder, de forma facil, adicionar novos tipos de padraoe novas funcoes que calculem novas metricas.

5.5 COMENTARIOS FINAIS

Neste capıtulo apresentamos uma breve descricao sobre a API WEKA [WEK07], seusconceitos e funcionalidades basicas que a tornam uma API de grande ajuda na area deinteligencia computacional.

No Apendice C analisamos algumas ferramentas usadas comercialmente que apoiamo processo de estimativas de esforco de projetos de software. Elas servirao de apoio paraa adicao de novas funcionalidades a ferramenta SEE - Software Effort Estimation.

Tambem discorremos e apresentamos o prototipo da ferramenta desenvolvido, suastelas, diagramas e funcionalidades. Mesmo sendo um versao inicial, a ferramenta seencontra apta a estimar esforco de software utilizando diversas possibilidades de tecnicasde aprendizagem de maquina. No desenvolvimento da mesma, tivemos o cuidado deutilizar boas praticas de programacao, como modularizacao e design patterns [Pre06],com o intuito de facilitar a adicao de novas funcionalidades a ferramenta.

Page 80: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.5 COMENTARIOS FINAIS 61

Figura 5.12 Diagrama dos pacotes do modulo Algoritmo Genetico.

Figura 5.13 Diagrama de classes do pacote operadores do modulo Algoritmo Genetico.

Page 81: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.5 COMENTARIOS FINAIS 62

Figura 5.14 Diagrama dos pacotes do modulo de interface com o WEKA.

Figura 5.15 Diagrama de classes dos pacotes weka do modulo interface com WEKA

Page 82: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.5 COMENTARIOS FINAIS 63

Figura 5.16 Diagrama de classes do pacote tecnicas do modulo interface com WEKA.

Page 83: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

5.5 COMENTARIOS FINAIS 64

Figura 5.17 Diagrama de classes dos pacotes padrao e funcoes.

Page 84: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

CAPITULO 6

EXPERIMENTOS

No presente capıtulo, descrevemos como foram realizados os experimentos, assim comoapresentamos e analisamos os resultados obtidos e os comparamos com outros resultadosreportados na literatura cientıfica. Os resultados e comparacoes foram feitos utilizandomedidas de desempenho bastante difundidas. Para os modelos que apresentaram os me-lhores resultados, construımos os intervalos de confianca robustos como forma de aumen-tar a confiabilidade do modelo gerado. A utilizacao dos intervalos de confianca robustos,neste problema, foi proposta por nos.

6.1 INTRODUCAO

O objetivo do estudo deste problema, estimar esforco para desenvolver projetos de soft-ware, e construir um modelo que possa ajudar um gerente de projetos a estimar a quanti-dade de esforco necessaria para o desenvolvimento de um novo projeto de software baseadoem projetos similares anteriores. Como ja dito, realizar estimativas precisas e uma ativi-dade de fundamental importancia para assegurar a competitividade no mercado. Aindaque existam diversas ferramentas comerciais disponıveis, nao podemos esquecer que elasforam desenvolvidas usando um conjunto de dados que, muito provavelmente, sera dife-rente dos dados da empresa em questao. Para aumentar o grau de precisao e a acuracia,e necessario calibrar as ferramentas com os dados da propria empresa.

E importante ter uma ideia de como os atributos (caracterısticas) devem ser utilizadospara produzir estimativas efetivas. Isso significa que e preciso determinar quais atribu-tos tem maior influencia sobre o esforco a ser estimado. Atributos categoricos comoexperiencia da equipe, restricao no cronograma, tipos de aplicacao e volatilidade dos re-quisitos podem ser parametros importantes para definir o esforco e o custo de desenvolverprojetos de software, embora nem sempre sejam essenciais.

Atraves dos estudos dos tres conjuntos de experimentos realizados nesta dissertacao,espera-se contribuir para que uma organizacao possa construir um modelo de estimativade esforco adequado ao seu processo de desenvolvimento atraves dos modelos propostos.Como resultado, apresentamos um modelo automatico que obteve os melhores resultadosreportados na literatura [SG00][BL01][Oli06][BdORdLM07][BdOdLM07][BdOdLM08].

Para medir o desempenho das tecnicas de aprendizagem de maquinas, faz-se necessariaa utilizacao de medidas de desempenho que ajudam na definicao de qual(is) tecnica(s)apresentam(m) melhor(es) resultado(s). Uma breve explicacao sobre cada medida dedesempenho utilizada neste trabalho foi apresentada na secao 3.9.

65

Page 85: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 66

6.2 EXPERIMENTOS

Para estimar esforco de desenvolvimento de software utilizando alguma tecnica de estima-tiva parametrica ou algorıtmica, e necessaria a presenca de dados de projetos anteriores.Esse processo consiste em examinar os atributos do conjunto de dados e, a partir deles,quantificar valores para atributos nao conhecidos. Por exemplo, para estimar o esforconecessario para desenvolver um projeto de software, em termos de homens/mes, podemosusar caracterısticas do projeto atual.

Como forma de aumentar a qualidade das pesquisas na area de computacao inteli-gente, e muito importante utilizar conjunto de dados padronizados (benchmarks). Isso sedeve a possibilidade de os resultados serem reproduzidos e comparados. As vezes, essareprodutividade nao e possıvel pela falta de alguma informacao, isto e, o experimentotorna-se irreprodutıvel e uma comparacao justa nao e possıvel.

Para nossos experimentos, utilizamos bases de dados bastante conhecidas na area deestimativa de esforco, como forma de haver possibilidades futuras de outros pesquisadorescompararem nossos resultados com os deles. A Tabela 6.1 mostra as bases de dados utili-zadas neste trabalho, com suas respectivas quantidade de padroes e numero de atributos.Em todos os experimentos foi utilizado um conjunto de validacao de 25% das amostrasdo conjunto de treinamento.

Neste trabalho, para nossos experimentos com as bases de dados citadas na Tabela6.1, nos utilizamos as seguintes tecnicas de aprendizagem de maquina: M5P/RT (Arvorede Regressao), M5P/MT (Arvore de Modelos), MLP, SVR e Bagging com M5P/RT,M5P/MT, MLP, RBF e SVR. A Tabela 6.2 descreve os parametros de cada tecnicade aprendizagem utilizada e mostra os valores ou faixa de valores usados para cadaparametro. Para os valores dos parametros usamos duas notacoes, que foram: {x1, x2,..., xn} para listas de valores e [xi, xf ] para intervalos compreendidos entre os valores.Para os experimentos que utilizam a abordagem baseada em algoritmo genetico, propostono capıtulo 4, nos executamos 10 simulacoes para cada base de dados, sendo que osresultados correspondem a media dessas execucoes.

Nome Quantidade de Padroes Numero de Atributos

NASA 18 3Desharnais 81 10COCOMO 63 19

Tabela 6.1 Base de dados com suas quantidades de padroes e numeros de atributos.

Para a definicao dos parametros do AG foram feitas diversas analises preliminares.A Tabela 6.3 apresenta os valores utilizados nessa analise. A configuracao que obteveos melhores resultados tem as seguintes caracterısticas: tamanho da populacao = 500,numero de geracoes = 25, taxa de cruzamento = 0,8, taxa de mutacao = 0,3, cruzamentode dois pontos selecionados aleatoriamente, roleta simples e elitismo. Essa configuracaofoi utilizada em todos os experimentos descritos neste capıtulo.

Page 86: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 67

Tecnicas Parametros Valores dos Parametros

R - (true) arvore de regressao ou (false) arvore de modelo {true, false}M5P I - Numero mınimo de instancias na folha [4, 15]

P - Podar/Nao podar a arvore {true, false}S - Suavizar/Nao suavizar a arvore {true, false}N - Numero de neuronios na camada escondida [5, 15]

MLP E - Numero de epocas do treinamento {2000, 2500}L - Taxa de aprendizado para o algoritmo backpropagation {10−2}M - Momentum para o algoritmo backpropagation {0.2, 0.3, 0.4, 0.5, 0.6}

RBF N - Numero de clusters para gerar o K-Means [4, 15]D - O mınimo desvio padrao para os clusters {10−1}C - parametro de complexidade {1, 10, 100, 1000}

SVR RBF ε - limite que os desvios sao tolerados {10−3, 10−4, 10−5}γ - parametro do kernel {1, 10−1, 10−2}

SVR Linear C - parametro de complexidade {1, 10, 100, 1000}ε - limite que os desvios sao tolerados {10−3, 10−4, 10−5}S - tamanho de cada versao do conjunto de dados do treinamento [70, 100]

Bagging I - numero de iteracoes [5, 30]C - classificador ou modelo de regressao a ser usado {LR, SVR, MLP, M5P, RBF}R - (true) arvore de regressao ou (false) arvore de modelo {true, false}

AG com M5P I - Numero mınimo de instancias na folha [4, 15]P - Podar/Nao podar a arvore {true, false}S - Suavizar/Nao suavizar a arvore {true, false}N - Numero de neuronios na camada escondida [5, 20]

AG com MLP E - Numero de epocas do treinamento [500, 2500]L - Taxa de aprendizado para o algoritmo backpropagation [10−4, 10−1]M - Momentum para o algoritmo backpropagation [0,1, 0,8]C - parametro de complexidade [10−2, 103]

AG com SVR RBF ε - limite que os desvios sao tolerados [10−7, 10−1]γ - parametro do kernel [10−5, 0,5]

AG com SVR Linear C - parametro de complexidade [10−2, 103]ε - limite que os desvios sao tolerados [10−7, 10−1]

Tabela 6.2 Parametros das tecnicas de aprendizagem de maquina e valores dos parametrosutilizados neste trabalho.

Parametros Valores dos Parametros

Tamanho da Populacao {50, 100, 200, 300, 500}Numero de Geracoes {20, 25, 50, 100, 200}Taxa de Cruzamento {0,5, 0,6, 0,65, 0,7, 0,8}

Taxa de Mutacao {0,05, 0,1, 0,2, 0,3}Tipo de cruzamento cruzamento de dois pontos

selecionados aleatoriamenteMetodo de selecao roleta simples

Elitismo {true, false}Tabela 6.3 Parametros do AG que foram utilizadas nas analises preliminares.

Page 87: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 68

6.2.1 Experimentos com a base de dados NASA

A base de dados da NASA (National Aeronautics and Space Administration) consistede duas variaveis independentes, total de linhas desenvolvidas (Developed Lines - DL) emetodologia (Methodology - ME), e uma variavel dependente, esforco (Effort - Y). O DLe uma medida do tamanho do software, e e dado em KLOC (thousands of lines of code).Esta base esta reproduzida por Oliveira [Oli06].

Para nossos experimentos com a base de dados NASA, nos usamos duas versoes[SG00][Oli06]. A primeira versao tem apenas uma variavel de entrada, DL. Assim, oesforco Y e estimado usando como entrada apenas o atributo DL. A segunda versao e abase de dados original, na qual o esforco Y e estimado tendo como entradas os atributosDL e ME. Para as duas versoes da base de dados NASA, nos utilizamos o metodo leave-one-out cross-validation (LOOCV) para estimar o erro de generalizacao [WF05][Oli06].Esse procedimento foi usado tambem por Shin e Goel [SG00] e Oliveira [Oli06].

Para avaliar o desempenho das tecnicas utilizadas, nos adotamos duas medidas que saoas mais usadas na literatura [SG00][BL01][Oli06]. Essas medidas foram usadas tambempor Shin e Goel [SG00] e Oliveira [Oli06]. As medidas de desempenho usadas nesse artigoforam os MMRE e os PRED(25). Para os melhores modelos gerados, definidos por meiodos medidores de desempenho, nos construımos os intervalos de confianca robustos.

O primeiro experimento, executado com a versao da base da NASA com uma variavelde entrada, aplicou as tecnicas de aprendizagem de maquina apresentadas neste trabalhocom o intuito de melhorar os resultados das predicoes do esforco de software reportadospor Shin e Goel [SG00] e Oliveira [Oli06].

A Tabela 6.4 compara as tecnicas investigadas neste trabalho com resultados repor-tados na literatura [SG00][Oli06]. Essas simulacoes foram executadas considerando aestimativa de esforco Y baseada somente sobre o DL. Os resultados da Tabela 6.4 foramos melhores obtidos por cada tecnica, exceto as que usam o modelo baseado no algoritmogenetico que compararemos posteriormente.

Os resultados da Tabela 6.4 mostram que a tecnica Bagging melhorou o desempenhoda maioria das tecnicas investigadas nessa dissertacao. Bagging com M5P/MT conseguiuo melhor PRED(25) e o Bagging com RBF obteve, ambos, o melhor desempenho emtermos do PRED(25) e MMRE em comparacao com resultados reportados na literatura[SG00][Oli06].

Nos tambem executamos simulacoes considerando a estimativa de esforco baseada nasvariaveis de entrada DL e ME, ou seja, usando a versao da base de dados NASA comduas variaveis de entrada. Os resultados dessas simulacoes sao mostrados na Tabela 6.5.Esses sao os melhores resultados obtidos por cada tecnica de aprendizagem de maquinainvestigada. E muito importante notar que a tecnica Bagging melhorou o desempenho detodas as tecnicas de aprendizagem de maquina investigadas nesse trabalho (Tabela 6.5).

Bagging com MLP, SVR RBF e SVR Linear obtiveram os melhores resultados emtermos do PRED(25), enquanto que Bagging com M5P/MT obteve o melhor resultadopara a medida de desempenho MMRE. A Tabela 6.5 tambem mostra que os resultadosobtidos, por essas tecnicas de aprendizagem de maquina, sao superiores aos apresentadosna literatura [SG00][Oli06].

Page 88: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 69

A partir dos resultados, podemos notar que a aplicacao da tecnica Bagging se mostroubastante satisfatoria quando aplicada as tecnicas investigadas neste trabalho.

Conduzimos alguns experimentos usando Bagging com MLP e RBF com o objetivode investigar a influencia dos parametros bagSizePercent (S) e numIterations (I) sobreo desempenho. Os resultados, ilustrados nas Figuras 6.1, 6.2, 6.3 e 6.4, foram obtidosusando a versao da base de dados NASA com duas variaveis de entrada. Os resultadosmostram que os parametros bagSizePercent (S) e numIterations (I) influenciam consi-deravelmente o desempenho e devem ser selecionados cuidadosamente para melhorar odesempenho do modelo construıdo. A influencia dos parametros da tecnica Bagging sobreseu desempenho foi tambem notada na versao da base de dados da NASA com apenasuma variavel de entrada DL.

30

35

40

45

50

55

(S=100,I=10)(S=90,I=10) (S=80,I=10) (S=70,I=10)(S=100,I=25)(S=90,I=25) (S=80,I=25) (S=70,I=25)

PR

ED

(25)

Parâmetros da técnica Bagging

50.00

44.44

38.89

33.33

50.00 50.00 50.00

44.44

Figura 6.1 PRED(25) (b) como uma funcao dos parametros da tecnica Bagging bagSizePercent(S) e numIterations (I) usando a rede neural MLP (L = 0,01, M = 0,3, H = 10, N = 2000) coma base de dados NASA com duas variaveis de entrada.

0,4

0,45

0,5

0,55

0,6

0,65

0,7

0,75

0,8

(S=100,I=10)(S=90,I=10) (S=80,I=10) (S=70,I=10)(S=100,I=25)(S=90,I=25) (S=80,I=25) (S=70,I=25)

MM

RE

Parâmetros da técnica Bagging

0.44

0.49

0.61

0.75

0.41

0.43

0.69

0.64

Figura 6.2 MMRE como uma funcao dos parametros da tecnica Bagging bagSizePercent (S)e numIterations (I) usando a rede neural MLP (L = 0,01, M = 0,3, H = 10, N = 2000) com abase de dados NASA com duas variaveis de entrada.

Page 89: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 70

Tecnica/Parametros PRED(25) MMRE

RBF-SG (δ = 1%, σ = 0, 55, m = 3) (resultados de [SG00]) 72,22 0,1870RBF (N = 9, D = 0,1) 72,22 0,2510Regressao Linear Multipla (resultados de [SG00]) 72,22 0,2330SVR Linear (C = 102, ε = 10−4) (resultados de [Oli06]) 83,33 0,1790SVR RBF (C = 102, ε = 10−3, γ = 10−2) (resultados de [Oli06]) 83,33 0,1890MLP (L = 10−2, M = 0,2, H = 13, N = 2x103) 83,33 0,1970M5P (R = true, P = true, S = true, N = 4) / RT 66,67 0,2861M5P (R = false, P = true, S = false, N = 7) / MT 83,33 0,1778Bagging (S = 89, C = Regressao Linear Multipla, I = 17) 83,33 0,2080Bagging (S = 92, C = MLP (L = 10−2, M = 0,3, H = 10, N = 2x103), I = 8) 83,33 0,1862Bagging (S = 89, C = M5P (R = true, P = true, S = true, N = 4), I = 10) / RT 77,78 0,2346Bagging (S = 77, C = M5P (R = false, P = false, S = true, N = 4), I = 26) / MT 88,89 0,1745Bagging (S = 89, C = SVR Linear (C = 1x103, ε = 10−4), I = 8) 83,33 0,1683Bagging (S = 100, C = SVR RBF (C = 1, ε = 10−5, γ = 1), I = 5) 83,33 0,1685Bagging (S = 100, C = RBF (N = 11, D = 0,1), I = 7) 88,89 0,1635

Tabela 6.4 Comparacao das tecnicas para a base de dados NASA com uma variavel de entrada(DL-Y).

Tecnicas/Parametros PRED(25) MMRE

RBF-SG (δ = 0, 1%, σ = 0, 85, m = 7) (resultados de [SG00]) 72,22 0,1907RBF (N = 18, D = 0,1) 77,78 0,3945Regressao Linear Multipla (resultados de [SG00]) 72,22 0,2330SVR Linear (C = 10, ε = 10−4) (resultados de [Oli06]) 88,89 0,1650SVR RBF (C = 102, ε = 10−3, γ = 10−2) (resultados de [Oli06]) 83,33 0,1780MLP (L = 10−2, M = 0,2, H = 6, N = 2x103) 83,33 0,1942M5P (R = true, P = true, S = true, N = 4) / RT 66,67 0,2861M5P (R = false, P = true, S = false, N = 7) / MT 83,33 0,1778Bagging (S = 77, C = Regressao Linear Multipla, I = 9) 88,89 0,1941Bagging (S = 89, C = MLP (L = 10−2, M = 0,3, H = 7, N = 2x103), I = 9) 94,44 0,1735Bagging (S = 100, C = M5P (R = true, P = true, S = true, N = 5), I = 17) / RT 77,78 0,2715Bagging (S = 83, C = M5P (R = false, P = false, S = true, N = 4), I = 13) / MT 88,89 0,1375Bagging (S = 70, C = SVR Linear (C = 10, ε = 10−3), I = 8) 94,44 0,1590Bagging (S = 70, C = SVR RBF (C = 10, ε = 10−3, γ = 1,0), I = 8) 94,44 0,1590Bagging (S = 77, C = RBF (N = 12, D = 0,1), I = 26) 83,33 0,3639

Tabela 6.5 Comparacao das tecnicas para a base de dados NASA com duas variaveis de entrada(DL-ME-Y).

Page 90: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 71

30

35

40

45

50

55

(S=100,I=10)(S=90,I=10) (S=80,I=10) (S=70,I=10)(S=100,I=25)(S=90,I=25) (S=80,I=25) (S=70,I=25)

PR

ED

(25)

Parâmetros da técnica Bagging

33.33

38.89

33.33

50.00

33.33 33.33

44.44

38.89

Figura 6.3 PRED(25) como uma funcao dos parametros da tecnica Bagging bagSizePercent(S) e numIterations (I) usando a rede neural RBF (N = 6, D = 0,1) com a base de dados NASAcom duas variaveis de entrada.

0,4

0,5

0,6

0,7

0,8

0,9

1

1,1

1,2

(S=100,I=10)(S=90,I=10) (S=80,I=10) (S=70,I=10)(S=100,I=25)(S=90,I=25) (S=80,I=25) (S=70,I=25)

MM

RE

Parâmetros da técnica Bagging

1.11

0.51

0.65

0.60

0.94

0.44

0.67

0.56

Figura 6.4 MMRE como uma funcao dos parametros da tecnica Bagging bagSizePercent (S)e numIterations (I) usando a rede neural RBF (N = 6, D = 0,1) com a base de dados NASAcom duas variaveis de entrada.

Page 91: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 72

Mostramos, a seguir, a melhor arvore de modelo gerada obtida com Bagging comM5P/MT para a versao da base de dados NASA com somente uma variavel de entrada,linhas desenvolvidas (DL). Mostramos tambem um exemplo de como seria uma estimativade esforco de desenvolvimento de software utilizando esse modelo.

1. Arvore de Modelo para DL-Y

(a) linhas desenvolvidas (DL) ≤ 34 :

i. (DL) ≤ 11,5 : (LM1) → esforco = 8,825

ii. (DL) > 11,5 : (LM2) → esforco = (0,5111 * (DL)) + 17,5111

(b) (DL) > 34 : (LM3) → esforco = (0,7597 * (DL)) + 45,3212

A arvore de modelo para DL-Y foi gerada utilizando a tecnica Bagging (S = 77, C =M5P (R = false, P = true, S = false, N = 4), I = 26). Essa arvore tem somente dois nos:se o valor de DL e menor ou igual a 34, entao: se o valor de DL e menor ou igual a 11,5aplique o modelo (LM1); senao, o (LM2); senao, o (LM3) e aplicado. Por exemplo, dadoum projeto com DL = 20,5, o modelo aplicado sera o LM2 e a quantidade de trabalho aser executado no desenvolvimento do projeto sera:

esforco = (0,5111 * (DL)) + 17,5111 = 0,5111 * 20,5 + 17,5111esforco = 27,9887 homens/mes ≈ 28 homens/mes

Executamos, tambem, experimentos utilizando o modelo proposto, baseado em algo-ritmos geneticos. A Tabela 6.6 apresenta os resultados dessa abordagem junto com seusrespectivos parametros e com a quantidade de atributos removidos em cada uma das 10execucoes, usando a base de dados NASA. Para esse conjunto de dados, nenhum atributofoi removido em nenhuma das simulacoes. Isso e um indıcio que as duas variaveis deentrada sao importantes para a predicao.

Os resultados obtidos pelo metodo proposto, comparados com resultados reportadospor Shin e Goel [SG00] e Oliveira [Oli06] e com os nossos proprios resultados encontra-dos usando o metodo Bagging, sao mostrados na Tabela 6.7. Os resultados apresenta-dos sao uma media sobre as 10 execucoes do metodo. Esses resultados mostram que ometodo proposto melhorou o desempenho dos seguintes metodos: SVR RBF (MMRE ePRED(25)), SVR linear (MMRE e PRED(25)) e MLP (MMRE), mas nao conseguiu omelhor resultado em termos do MMRE para a base de dados NASA com duas variaveis.

Realizamos experimentos para a construcao dos intervalos de confianca robustos. Ograu de confianca escolhido para esse experimento foi de 95%. As Figuras 6.5 e 6.6mostram valores previstos e reais, juntamente com os intervalos de confianca para astecnicas de aprendizagem de maquina que obtiveram os melhores resultados no conjuntode dados NASA com uma variavel de entrada. Em cada um desses graficos os intervalosde confianca robustos para as predicoes sao mostrados tambem. No grafico ilustrado naFigura 6.5, gerada usando a tecnica M5P, dois esforcos reais de projetos se encontramfora do intervalo de estimativas construıdo. No grafico apresentado na Figura 6.6, geradausando a tecnica RBF, quatro esforcos reais caem fora do intervalo. A Figura 6.7 foi obtida

Page 92: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 73

a partir da tecnica SVR Linear e mostra que tres valores dos esforcos reais de projetosse encontram fora dos limites dos intervalos. Isso mostra que os modelos construıdosapresentam uma certa instabilidade no que tange a determinacao dos limites de erro.Essa instabilidade pode ser decorrente da pequena quantidade de atributos, apenas um,de entrada (variaveis independentes).

Execucao SVR RBF SVR Linear

PRED(25) MMRE C ε γ Atributos PRED(25) MMRE C ε AtributosRemovidos Removidos

1 94,44 0,1649 811,2896 0,0071 0,0025 0 94,44 0,1610 668,5859 0,0121 02 94,44 0,1586 945,1375 0,0059 0,0035 0 94,44 0,1640 517,8943 0,0109 03 94,44 0,1599 235,3194 0,0082 0,0066 0 94,44 0,1647 683,8293 0,0123 04 94,44 0,1645 733,3827 0,0097 0,0028 0 94,44 0,1640 827,5172 0,0107 05 94,44 0,1631 89,2760 0,0079 0,0093 0 94,44 0,1635 627,0719 0,0110 06 94,44 0,1602 426,6781 0,0086 0,0041 0 94,44 0,1645 384,3687 0,0115 07 94,44 0,1710 282,6880 0,0213 0,0052 0 94,44 0,1628 548,4097 0,0110 08 94,44 0,1602 426,6781 0,0086 0,0041 0 94,44 0,1629 5,8140 0,0126 09 94,44 0,1554 240,7648 0,0030 0,0103 0 94,44 0,1651 245,3472 0,0113 010 94,44 0,1659 839,3026 0,0094 0,0016 0 94,44 0,1630 418,3116 0,0113 0

Media 94,44 0,1624 0,0 94,44 0,1636 0,0

Execucao MLP M5P/MTPRED(25) MMRE N E L M Atributos PRED(25) MMRE I P S Atributos

Removidos Removidos

1 94,44 0,1868 5 2200 0,0028 0,6525 0 83,33 0,1778 7 true false 02 94,44 0,1878 5 2339 0,0031 0,6515 0 83,33 0,1778 10 true false 03 94,44 0,1857 5 881 0,0056 0,6997 0 83,33 0,1778 8 true false 04 94,44 0,1880 5 517 0,0148 0,4999 0 83,33 0,1778 9 true false 05 94,44 0,1879 6 658 0,0086 0,5417 0 83,33 0,1778 10 true false 06 94,44 0,1881 5 908 0,0087 0,6259 0 83,33 0,1778 8 true false 07 94,44 0,1873 6 1060 0,0057 0,6759 0 83,33 0,1778 7 true false 08 94,44 0,1874 5 958 0,0065 0,7120 0 83,33 0,1778 9 true false 09 94,44 0,1867 5 1067 0,0058 0,6611 0 83,33 0,1778 7 true false 010 94,44 0,1876 5 710 0,0123 0,4370 0 83,33 0,1778 10 true false 0

Media 94,44 0,1873 0,0 83,33 0,1778 0,0

Tabela 6.6 Resultados experimentais para a base de dados NASA usando a abordagem baseadaem AG.

Por fim, realizamos, tambem, simulacoes para a construcao dos intervalos de confiancarobustos, com 95% de confianca, para a base NASA com duas variaveis de entrada. AsFiguras 6.8, 6.9 e 6.10 mostram valores estimados e reais, juntamente com os intervalos deconfianca robustos para os metodos que obtiveram os melhores resultados, SVR Linear,SVR RBF e MLP, respectivamente, assim como o intervalo construıdo. Como ilustradonos graficos, nenhuma das tecnicas conseguiu com que todas os esforcos reais dos projetosse encontrassem dentro dos limites de confianca, embora tenham conseguido uma melhoraem relacao aos resultados da base de dados NASA com uma variavel.

As Tabelas 6.8 e 6.9 mostram os valores para os intervalos de confianca construıdospara as tecnicas que foram selecionadas, utilizando as bases de dados NASA com uma ecom duas variaveis, respectivamente. E muito importante salientar que utilizando essametrica a estimativa do esforco necessario para o desenvolvimento do projeto de softwaree dada por meio de um intervalo ao inves de um unico valor. A estimativa por intervaloainda vem atrelada com um nıvel de confianca e que ajuda bastante aos gerentes deprojeto, visto que o nıvel de confianca pode ser interpretado como o nıvel de risco que seaceita para o modelo construıdo.

Page 93: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 74

Tecnica/Parametros PRED(25) MMRE

RBF-SG (δ = 0, 1%, σ = 0, 85, m = 7) (resultados de [SG00]) 72,22 0,1907SVR Linear (C = 10, ε = 10−4) (resultados de [Oli06]) 88,89 0,1650SVR RBF (C = 100, ε = 10−3, γ = 10−2) (resultados de [Oli06]) 83,33 0,1780MLP (N = 6, E = 2000, L = 0,01, M = 0,6) (resultados de [BdOdLM07]) 94,44 0,2030M5P (I = 7, P = true, S = false) / MT (resultados de [BdORdLM07]) 83,33 0,1778Bagging (S = 89, C = MLP (L = 10−2, M = 0,3, H = 7, N = 2x103), I = 9) 94,44 0,1735Bagging (S = 83, C = M5P (R = false, P = false, S = true, N = 4), I = 13) / MT 88,89 0,1375Bagging (S = 70, C = SVR Linear (C = 10, ε = 10−5), I = 8) 94,44 0,1590Bagging (S = 70, C = SVR RBF (C = 10, ε = 10−3, γ = 1,0), I = 8) 94,44 0,1590AG com SVR RBF 94,44 0,1624AG com SVR Linear 94,44 0,1636AG com MLP 94,44 0,1873AG com M5P 83,33 0,1778

Tabela 6.7 Comparacao da tecnica baseada em AG com outras tecnicas utilizando a base dedados NASA.

Tecnicas/Parametros Intervalos de Confianca

Bagging (S = 77, C = M5P (R = false, P = false, S = true, N = 4), I = 26) / MT [x - 47,21, x + 10,70]Bagging (S = 100, C = RBF (N = 11, D = 0,1), I = 7) [x - 9,25, x + 10,42]Bagging (S = 89, C = SVR Linear (C = 1x103, ε = 10−4), I = 8) [x - 31,17, x + 10,17]

Tabela 6.8 Intervalos de confianca robustos construıdos usando a base de dados NASA comuma variavel de entrada.

Tecnicas/Parametros Intervalos de Confianca

Bagging (S = 89, C = MLP (L = 10−2, M = 0,3, H = 7, N = 2x103), I = 9) [x - 15,05, x + 10,36]Bagging (S = 70, C = SVR Linear (C = 10, ε = 10−5), I = 8) [x - 20,26, x + 10,57]Bagging (S = 70, C = SVR RBF (C = 10, ε = 10−3, γ = 1,0), I = 8) [x - 20,26, x + 10,57]

Tabela 6.9 Intervalos de confianca robustos construıdos usando a base de dados NASA comduas variaveis de entrada.

Page 94: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 75

0

20

40

60

80

100

120

140

160

180

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.5 Intervalos de confianca robustos para predicoes da base de dados NASA com umavariavel de entrada usando M5P/MT.

0

20

40

60

80

100

120

140

160

180

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.6 Intervalos de confianca robustos para predicoes da base de dados NASA com umavariavel de entrada usando a rede neural RBF.

Page 95: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 76

0

20

40

60

80

100

120

140

160

180

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.7 Intervalos de confianca robustos para predicoes da base de dados NASA com umavariavel de entrada usando SVR Linear.

0

20

40

60

80

100

120

140

160

180

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.8 Intervalos de confianca robustos para predicoes da base de dados NASA com duasvariaveis de entrada usando SVR Linear.

Page 96: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 77

0

20

40

60

80

100

120

140

160

180

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.9 Intervalos de confianca robustos para predicoes da base de dados NASA com duasvariaveis de entrada usando SVR RBF.

0

20

40

60

80

100

120

140

160

180

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.10 Intervalos de confianca robustos para predicoes da base de dados NASA com duasvariaveis de entrada usando MLP.

Page 97: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 78

6.2.2 Experimentos com a base de dados Desharnais

O conjunto de dados Desharnais consiste, como ja dito, de 81 projetos de software des-critos por 11 variaveis, sendo que nove sao independentes e duas dependentes [BL01],reproduzidas na Tabela 2.2. A primeira variavel dependente e o esforco, Effort. A se-gunda variavel dependente e a duracao do projeto em meses, Length. Essa ultima foiignorada porque nosso objetivo e predizer o esforco total necessario para desenvolver pro-jetos de software. Para nossas simulacoes, nos dividimos o conjunto de dados em doisconjuntos diferentes: o conjunto do treinamento e o conjunto de teste.

Para o conjunto de teste foram selecionados, aleatoriamente, 18 projetos dos 81 [BL01].Os numeros que identificam, na base de dados Desharnais, os 18 projetos selecionadospara compor o conjunto de teste sao: 2, 8, 12, 15, 19, 20, 22, 35, 38, 42, 46, 50, 56,61, 63, 72, 76, 80. Os 63 projetos restantes foram usados no conjunto de treinamento.Esse procedimento foi usado tambem por Burgess [BL01]. Para os 4 projetos que contematributos de entrada ausentes, Burgess [BL01] trocou-os por amostras aleatorias de outrosprojetos. Dessa forma, nao sera possıvel fazer uma comparacao justa com os resultadosque Burgess obteve, entretanto compararemos nossos resultados com os obtidos por ele,de modo a termos uma comparacao secundaria com os resultados que obtivemos. Essabase pode ser encontrada no repositorio PROMISE [set07].

Nos executamos alguns experimentos aplicando a tecnica Bagging a tecnicas de apren-dizagem de maquina consideradas nessa dissertacao, para a base Desharnais, com o ob-jetivo de investigar a influencia dos parametros do Bagging, chamados bagSizePercent enumIterations, no desempenho (medido pelo MMRE e PRED(25)). Os resultados mos-trados nas 6.11, 6.12, 6.13 e 6.14 foram obtidos utilizando as redes neurais MLP e RBF,respectivamente. Os resultados das Figuras 6.11, 6.12, 6.13 e 6.14 mostram que tantobagSizePercent e numIterations influenciam consideravelmente o desempenho e, por isso,devem ser cuidadosamente selecionados para aumentar o desempenho daquela tecnica.

Avaliamos o desempenho dos metodos investigados, utilizando as medidores de de-sempenho MMRE e o PRED(25). Para os melhores modelos gerados, definidos por meiodos medidores de desempenho, nos construımos os intervalos de confianca robustos.

Executamos simulacoes, na base de dados Desharnais, utilizando as tecnicas de re-gressao investigadas nesta dissertacao. Os resultados se encontram na Tabela 6.10 emostram que o metodo Bagging melhorou o desempenho de todas as tecnicas investiga-das. Somente em um caso, Bagging com RBF, o MMRE nao foi melhorado. Os resultadosda Tabela 6.10 sao os melhores resultados obtidos em cada metodo. Credita-se essa me-lhora ao fato de as tecnicas investigadas serem sensıveis (instaveis) a pequenas amostrasdo conjunto de dados.

Bagging com M5P/MT e M5P/RT obtiveram os melhores desempenhos em termos doPRED(25), enquanto que Bagging com MLP obteve melhores resultados em termos doMMRE e do PRED(25). E importante tambem observar que Bagging com M5P/MT eM5P/RT constroem modelos que sao mais interpretaveis, isto e, mais faceis de entender.Diferentemente das redes neurais que trabalham como caixas pretas, o conhecimentoaprendido do ambiente e representado pelo valor dos pesos. A natureza distribuıda desseconhecimento torna difıcil a sua interpretacao [Hay98].

Page 98: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 79

Tambem fizemos experimentos com a base de dados Desharnais, utilizando a aborda-gem baseada em AG. Os resultados das simulacoes sao apresentados na Tabela 6.11. Noteque os parametros das tecnicas de aprendizagem de maquina, com excecao do metodoM5P/MT, obtidos em cada simulacao, sao diferentes. No entanto, conduzem a resultadossemelhantes. Tambem e importante notar que para essa base de dados, os atributos queforam removidos com maior frequencia, sao apresentados na Tabela 6.12.

Tecnicas/Parametros PRED(25) MMRE

SVR Linear (C = 103, ε = 10−3) 50,00 0,4898SVR RBF (C = 10, ε = 10−3, γ = 10−2) 55,56 0,4736MLP (L = 10−2, M = 0,3, H = 9, N = 2x103) 66,67 0,4069M5P (R = true, P = true, S = false, N = 8) / RT 55,56 0,6135M5P (R = false, P = true, S = false, N = 9) / MT 55,56 0,7545RBF (N = 6, D = 0,1) 44,44 0,7550Bagging (S = 88, C = MLP (L = 10−2, M = 0,6, H = 15, N = 2x103), I = 10) 72,22 0,3778Bagging (S = 81, C = M5P (R = true, P = true, S = true, N = 5), I = 9) / RT 72,22 0,4888Bagging (S = 81, C = M5P (R = false, P = true, S = false, N = 5), I = 9) / MT 72,22 0,4888Bagging (S = 83, C = SVR Linear (C = 103, ε = 10−4), I = 5) 61,11 0,4226Bagging (S = 85, C = SVR RBF (C = 102, ε = 10−3, γ = 1), I = 5) 61,11 0,4153Bagging (S = 91, C = RBF (N = 9, D = 0,1), I = 13) 66,67 0,8775

Tabela 6.10 Comparacao das tecnicas para a base de dados Desharnais.

A Tabela 6.12 apresenta os atributos mais frequentemente removidos por cada tecnicade aprendizagem de maquina que foi utilizada em conjunto com a abordagem baseadaem AG. Atraves de uma analise experimental, mostramos que a remocao dos atributosirrelevantes ajuda na construcao de melhores modelos de predicao.

A Tabela 6.13 compara os resultados obtidos pela nossa abordagem baseada em AGcom os resultados obtidos com outras tecnicas e com a tecnica Bagging. Os resultadosfornecidos pelo metodo baseado em AG sao medias de 10 execucoes do metodo. Essesresultados mostram que o metodo proposto melhorou substancialmente o desempenhoSVR RBF e SVR Linear e melhoraram o desempenho da tecnica MLP e M5P, com relacaoao MMRE e ao PRED(25). Note tambem que os resultados obtidos foram melhores doque aqueles alcancados pela tecnica Bagging com a rede neural MLP. Ver Tabela 6.13.

No Apendice B realizamos testes de hipotese estatıstica, t-student [dAM05], com ointuito de averiguar se as diferencas de desempenho obtidas pelas tecnicas Bagging e ometodo baseado em algoritmo genetico sao estatisticamente significativas. Para a hipotesede testes foram realizadas utilizando 95% nıvel de confianca.

Finalmente, realizamos simulacoes para a construcao dos intervalos de confianca ro-bustos, com 95% de confianca, para a base de dados Desharnais. As Figuras 6.15, 6.16,6.17 e 6.18 mostram valores estimados e reais, juntamente com os intervalos de confiancarobustos para os metodos que obtiveram os melhores resultados. Foram eles: Baggingcom MLP, Bagging com M5P, AG com SVR RBF e com MLP. Nelas, somente com aBagging com M5P, todas as predicoes para as estimativas do projeto encontram-se dentrodos limites dos intervalos de confianca e, dessa forma, mostra que o modelo construıdose comportou da forma esperada.

Page 99: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 80

Execucao SVR RBF SVR LinearPRED(25) MMRE C ε γ Atributos PRED(25) MMRE C ε Atributos

Removidos Removidos

1 72,22 0,2754 816,9670 0,0271 0,3290 2 66,67 0,3545 757,4780 0,0645 32 77,78 0,4066 11,7518 0,0454 0,3414 2 66,67 0,3659 510,3795 0,0677 33 77,78 0,2630 980,8571 0,0279 0,3716 3 66,67 0,3577 615,5621 0,0636 34 77,78 0,3617 289,4076 0,0343 0,4960 3 66,67 0,3583 855,7781 0,0650 35 77,78 0,2864 713,5961 0,0306 0,3419 2 66,67 0,3576 701,8469 0,0665 36 77,78 0,4206 819,8859 0,0397 0,3427 2 66,67 0,3551 614,0420 0,0651 37 77,78 0,4980 508,7229 0,0403 0,4940 3 66,67 0,3552 133,0101 0,0683 38 77,78 0,3466 491,5474 0,0316 0,4566 5 66,67 0,3675 512,0274 0,0691 39 61,11 0,3555 677,4058 0,0382 0,3749 5 66,67 0,3528 98,4998 0,0666 310 83,33 0,3569 859,5367 0,0337 0,3623 5 66,67 0,3579 648,0745 0,0620 3

Media 76,11 0,3571 3,2 66,67 0,3583 3,0

Execucao MLP M5P/MTPRED(25) MMRE N E L M Atributos PRED(25) MMRE I P S Atributos

Removidos Removidos

1 72,22 0,2977 7 2005 0,0087 0,6061 3 61,11 0,5945 3 false false 42 72,22 0,3132 8 1308 0,0244 0,2957 2 61,11 0,5945 5 false false 43 72,22 0,2855 5 1090 0,0126 0,7176 5 61,11 0,5945 10 false false 44 77,78 0,3137 8 2159 0,0429 0,2311 3 61,11 0,5945 8 false false 45 72,22 0,3132 17 2349 0,0184 0,1876 2 61,11 0,5945 1 false false 46 72,22 0,3108 10 1725 0,0208 0,2926 2 61,11 0,5945 2 false false 47 72,22 0,2898 13 2415 0,0425 0,6793 6 61,11 0,5945 8 false false 48 72,22 0,3091 19 2304 0,0225 0,2030 2 61,11 0,5945 4 false false 49 72,22 0,3049 9 1129 0,0340 0,3374 2 61,11 0,5945 4 false false 410 72,22 0,229 11 2406 0,0641 0,3397 6 61,11 0,5945 6 false false 4

Media 72,78 0,2967 3,3 61,11 0,5945 4,0

Tabela 6.11 Resultados experimentais para a base de dados Desharnais usando a abordagembaseada em AG.

Tecnicas Atributos mais Removidos MediaAtributos Removidos

AG com SVR RBF TeamExp, ManagerExp, Transactions, Envergure 3,2AG com SVR Linear Transactions, Entities, Envergure 3,0AG com MLP TeamExp, YearEnd, Transactions, PointsAdjust 3,3AG com M5P ManagerExp, Transactions, PointsAdjust, Envergure 4,0

Tabela 6.12 Atributos removidos com maior frequencia para cada tecnica utilizada na basede dados Desharnais.

Page 100: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 81

30

35

40

45

50

55

(S=100,I=10)(S=90,I=10) (S=80,I=10) (S=70,I=10)(S=100,I=25)(S=90,I=25) (S=80,I=25) (S=70,I=25)

PR

ED

(25)

Parâmetros da técnica Bagging

44.44

38.89 38.89

50.00

38.89

33.33 33.33 33.33

Figura 6.11 PRED(25) como uma funcao dos parametros da tecnica Bagging bagSizePercent(S) e numIterations (I) usando a rede neural MLP (L = 0,01, M = 0,3, H = 10, N = 2000) paraa base de dados Desharnais.

0,7

0,75

0,8

0,85

0,9

(S=100,I=10)(S=90,I=10) (S=80,I=10) (S=70,I=10)(S=100,I=25)(S=90,I=25) (S=80,I=25) (S=70,I=25)

MM

RE

Parâmetros da técnica Bagging

0.77

0.81

0.83

0.85

0.72

0.80

0.79

0.78

Figura 6.12 MMRE como uma funcao dos parametros da tecnica Bagging bagSizePercent (S)e numIterations (I) usando a rede neural MLP (L = 0,01, M = 0,3, H = 10, N = 2000) para abase de dados Desharnais.

Page 101: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 82

35

40

45

50

55

(S=100,I=10)(S=90,I=10) (S=80,I=10) (S=70,I=10)(S=100,I=25)(S=90,I=25) (S=80,I=25) (S=70,I=25)

PR

ED

(25)

Parâmetros da técnica Bagging

50.00

38.89

44.44

38.89

50.00

38.89

50.00 50.00

Figura 6.13 PRED(25) como uma funcao dos parametros da tecnica Bagging bagSizePercent(S) e numIterations (I) usando a rede neural RBF (N = 6, D = 0.1) para a base de dadosDesharnais.

0,7

0,75

0,8

0,85

0,9

(S=100,I=10)(S=90,I=10) (S=80,I=10) (S=70,I=10)(S=100,I=25)(S=90,I=25) (S=80,I=25) (S=70,I=25)

MM

RE

Parâmetros da técnica Bagging

0.86

0.78

0.74

0.73

0.83

0.78

0.75

0.77

Figura 6.14 MMRE como uma funcao dos parametros da tecnica Bagging bagSizePercent (S) enumIterations (I) usando a rede neural RBF (N = 6, D = 0.1) para a base de dados Desharnais.

Page 102: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 83

Como ilustrado nas Figuras 6.15, 6.16, 6.17 e 6.18, somente a tecnica Bagging comM5P conseguiu com que todos os esforcos reais dos projetos se encontrassem dentro doslimites de confianca. Nota-se tambem que o modelo gerado pela tecnica AG com MLPse mostrou mais confiavel que o construıdo pela tecnica Bagging com MLP.

Tecnicas/Parametros PRED(25) MMRE

SVR Linear (C = 103, ε = 10−3) 50.00 0.4898SVR RBF (C = 10, ε = 10−3, γ = 10−2) 55.56 0.4736MLP (L = 10−2, M = 0.3, H = 9, N = 2x103) 66.67 0.4069M5P (R = true, P = true, S = false, N = 8) / RT 55.56 0.6135M5P (R = false, P = true, S = false, N = 9) / MT 55.56 0.7545RBF (N = 6, D = 0.1) 44.44 0.7550Bagging (S = 88, C = MLP (L = 10−2, M = 0.6, H = 15, N = 2x103), I = 10) 72.22 0.3778Bagging (S = 81, C = M5P (R = true, P = true, S = true, N = 5), I = 9) / RT 72.22 0.4888Bagging (S = 81, C = M5P (R = false, P = true, S = true, N = 5), I = 9) / MT 72.22 0.4888Bagging (S = 83, C = SVR Linear (C = 103, ε = 10−4), I = 5) 61.11 0.4226Bagging (S = 85, C = SVR RBF (C = 102, ε = 10−3, γ = 1), I = 5) 61.11 0.4153Bagging (S = 91, C = RBF (N = 9, D = 0.1), I = 13) 66.67 0.8775AG com SVR RBF 76.11 0.3571AG com SVR linear 66.67 0.3583AG com MLP 72.78 0.2967AG com M5P 61.11 0.5945

Tabela 6.13 Comparacao da abordagem baseada em AG com outras tecnicas de aprendizagemde maquina utilizando a base de dados Desharnais.

A Tabela 6.14 mostra os valores para os intervalos de confianca construıdos para astecnicas que foram selecionadas, utilizando as bases de dados Desharnais.

Tecnicas/Parametros Intervalos de Confianca

Bagging (S = 88, C = MLP (L = 10−2, M = 0.6, H = 15, N = 2x103), I = 10) [x - 8981,17, x + 4094,25]Bagging (S = 81, C = M5P (R = true, P = true, S = true, N = 5), I = 9) / MT [x - 7430,94, x + 5889,97]AG com SVR RBF [x - 8619,96, x + 5819,84]AG com MLP [x - 7858,44, x + 3787,59]

Tabela 6.14 Intervalos de confianca robustos construıdos usando a base de dados Desharnais.

6.2.3 Experimentos com a base de dados COCOMO

Na base de dados COCOMO, cada um dos atributos de um projeto e classificado deacordo com o nıvel de impacto no esforco para o desenvolvimento de um projeto desoftware. Os nıveis sao: Muito Baixo, Baixo, Normal, Alto, Muito Alto e ExtremamenteAlto. Cada um desses nıveis possui um valor numerico associado, denominado fatoresde ajuste do esforco. Quando o fator contribui para aumentar o esforco, e atribuıdo umvalor maior que um para o mesmo. Ja quando o atributo contribui para a diminuicao doesforco, e atribuıdo um valor menor que um para o mesmo. Quando o fator nao contribuino esforco, e atribuıdo valor 1 para o mesmo. Na Tabela 2.4 vimos cada um dos atributose seus respectivos valores numericos.

Page 103: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 84

0

5000

10000

15000

20000

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.15 Intervalos de confianca robustos para predicoes da base de dados Desharnaisusando a tecnica Bagging com MLP.

0

5000

10000

15000

20000

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.16 Intervalos de confianca robustos para predicoes da base de dados Desharnaisusando a tecnica Bagging com M5P.

Page 104: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 85

0

5000

10000

15000

20000

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.17 Intervalos de confianca robustos para predicoes da base de dados Desharnaisutilizando a abordagem baseada em AG com SVR RBF.

0

5000

10000

15000

20000

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.18 Intervalos de confianca robustos para predicoes da base de dados Desharnaisutilizando a abordagem baseada em AG com MLP.

Page 105: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 86

Como foi dito, esses valores representam a influencia do atributo no esforco paradesenvolver o projeto. Essa base pode ser encontrada em Boehm [Boe81].

Antes do inıcio dos nossos experimentos com a base de dados COCOMO, essa basepassou por uma etapa de pre-processamento que permitiu uma melhor diferenciacao en-tre os nıveis de influencia dos atributos da base de dados. Esse pre-processamento foirealizado para ajustar os valores de cada uma das categorias das variaveis categoricas doprojeto. Esses valores foram atribuıdos tomando como referencia a analise de variancia(ANOVA) [dAM05] sobre os dados da base COCOMO.

A analise de variancia e um metodo capaz de medir o nıvel de influencia de cada umadas variaveis independentes do projeto sobre o valor da variavel dependente (Nesse caso, oesforco necessario para desenvolver um projeto de software). A analise de variancia podeinformar como diferentes valores de uma variavel afetam o valor da variavel dependente everifica se existem diferencas significativas entre os nıveis de cada variavel independente.Se as diferencas entre nıveis nao forem significativas, esses nıveis podem compor um uniconıvel, ou seja, atraves da analise de variancia, foi feita uma comparacao de cada nıvel davariavel independente sobre a variavel dependente e, atraves da comparacao do impacto,pode-se determinar se a diferenca entre os nıveis e significante. A Tabela A.1 tem todosos valores dos atributos antes e depois de aplicar o pre-processamento.

Por exemplo, tomemos a variavel Acap (capacidade do analista) que possui os se-guintes nıveis (1,2,3,4,5,6,7). Apos realizar a analise da variancia sobre essa variavel foiverificado que o impacto dos nıveis 2 e 3 sobre o esforco do projeto foram similares eque os impactos dos nıveis 5 e 6 tambem foram similares sobre o esforco. Devido a isso,teremos a juncao dos nıveis 2 e 3 para compor um unico nıvel e a juncao dos nıveis 5 e6 para compor outro nıvel. Dessa forma, ficamos com cinco nıveis para a variavel Acapapos a analise.

Alem de realizar um pre-processamento sobre as variaveis categoricas da base CO-COMO, as variaveis numericas ADJKDSI e EFFORT tambem passaram por um pre-processamento. Sabendo que a analise de regressao e a analise de variancia sao metodosestatısticos parametricos e precisam de uma distribuicao normal, Tronto et al. [TSS08]averiguaram se a variavel EFFORT possuıa uma distribuicao normal. Existem duas for-mas de se verificar se uma variavel possui distribuicao normal, sao elas: atraves de testesformais de normalidade e atraves de metodos visuais [TSS08]. Tronto et al. [TSS08] ado-taram a abordagem grafica. A Figura 6.19 ilustra o grafico de probabilidade normal davariavel EFFORT, no qual e possıvel notar que o diagrama de espalhamento dos valoresnao e linear, por isso e razoavel se assumir que os valores nao seguem uma distribuicaonormal.

Para estabilizar a variancia, uma transformacao logarıtmica natural e suficiente [TSS08].A Figura 6.20 ilustra o diagrama de probabilidade normal depois de aplicar o logaritmonatural sobre os valores do esforco. Com isso, o diagrama de espalhamento dos valoresrelativos ao esforco se tornaram muito mais lineares. Esse pre-processamento foi aplicadopara melhorar a normalidade (estabilizar a variancia). Vale ressaltar que depois temosque exponencializar o esforco para fazer a medicao do erro.

Com relacao a variavel independente ADJKDSI, tambem foi aplicada uma trans-formacao logarıtmica para permitir um ajuste melhor e resultados melhores na predicao.

Page 106: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 87

Nos utilizamos esse mesmo procedimento com o objetivo de realizar comparacoes entreos resultados obtidos no nosso trabalho com os obtidos por Tronto et al. [TSS08].

A analise sobre cada uma das variaveis da base COCOMO foi realizada por Trontoel al. [TSS08]. A abordagem inicial de aplicar analise de variancia sobre cada uma dasvariaveis foi baseada no trabalho de Angelis et al. [ASM01].

Em seus artigos [TSS06][TSS08], Tronto et al. mostraram que, a partir da adocaodessa etapa de pre-processamento, foi possıvel melhorar substancialmente os resultadosobtidos anteriormente. A Tabela 6.15 apresenta as melhorias obtidas por Tronto etal. [TSS06][TSS08]. Podemos notar que, mesmo tendo uma melhoria significativa nosresultados, os modelos, em termos do MMRE, obtidos por Tronto et al. [TSS08] nao eacurado [AKY+01]. Um modelo e acurado se o MMRE≤0,25 [AKY+01].

Base de dados Rede Neural Artificial Rede Neural Artificialsem pre-processamento [TSS06] com pre-processamento [TSS08]

MMRE MMRE

1 5,0600 0,36472 2,7800 0,46523 3,5300 0,37954 3,8400 0,25195 5,5900 0,39876 2,7800 0,6317

Tabela 6.15 Comparacao dos resultados obtidos por Tronto et al. sem [TSS06] e com o pre-processamento [TSS08].

Para a realizacao dos experimentos, a base de dados foi dividida em seis conjuntosde treinamento e seis conjuntos de testes. O conjunto de treinamento, como o proprionome informa, tem como objetivo treinar o modelo de previsao de esforco utilizado paraque, posteriormente, esse modelo seja testado utilizando um conjunto de testes e, combase nos resultados produzidos, medir a precisao e a acuracia do modelo. Os conjuntos detreinamento e de teste estao descritos na Tabela 6.16. Esse procedimento foi tambem uti-lizado por Tronto et al. [TSS06][TSS08]. Esse mesmo procedimento foi escolhido visandofazer comparacoes justas entre os nossos resultados e os de Tronto et al. [TSS06][TSS08].

Base de dados Conjunto de Teste (Projetos) Conjunto de Treinamento (Projetos)

1 1, 7, 13, 19, 25, 31, 37, 43, 49, 55 e 61 Projetos restantes2 2, 8, 14, 20, 26, 32, 38, 44, 50, 56 e 62 Projetos restantes3 3, 9, 15, 21, 27, 33, 39, 45, 51, 57 e 63 Projetos restantes4 4, 10, 16, 22, 28, 34, 40, 46, 52 e 58 Projetos restantes5 5, 11, 17, 23, 29, 35, 41, 47, 53 e 59 Projetos restantes6 6, 12, 18, 24, 30, 36, 42, 48, 54 e 60 Projetos restantes

Tabela 6.16 Pares do conjunto de treinamento e conjunto de teste da base de dados COCOMO.

As Tabelas 6.17 e 6.18 mostram os resultados obtidos somente utilizando as tecnicasde aprendizagem de maquina e a tecnica Bagging em conjunto com as tecnicas de apren-dizagem de maquina, respectivamente.

Page 107: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 88

Figura 6.19 Diagrama de probabilidade normal para os dados sem o pre-processamento.

Figura 6.20 Diagrama de probabilidade normal para os dados com o pre-processamento.

Page 108: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 89

Como podemos observar a partir das Tabelas 6.17 e 6.18, a tecnica Bagging obteve osmelhores resultados para todos os 6 conjuntos de teste, exceto para o MMRE (tecnicasMLP, SVR RBF e SVR Linear) no conjunto de dados 1, MMRE (tecnica RBF) noconjunto de dados 3 e PRED(25) (tecnica M5P/MT), no conjunto de teste numero 1.Isso demonstra que a tecnica Bagging conseguiu diminuir a instabilidade dos modelos depredicao gerados, melhorando, assim, os medidores de desempenho definidos.

Base de dados MLP RBF SVR Linear SVR RBF M5P/MT

PRED(25) MMRE PRED(25) MMRE PRED(25) MMRE PRED(25) MMRE PRED(25) MMRE

1 54,55 0,3188 27,27 1,4462 54,55 0,2540 63,64 0,2310 72,22 0,34682 45,45 0,4105 27,27 0,7153 45,45 0,3918 54,55 0,3516 54,55 0,52873 18,18 0,6612 27,27 0,6820 36,36 0,3442 36,36 1,175 45,45 0,49744 70,00 0,2929 30,00 1,1624 40,00 0,4158 60,00 0,3583 50,00 0,44155 40,00 0,5180 30,00 8,4912 40,00 0,4678 40,00 0,3660 40,00 3,35256 30,00 0,4820 40,00 1,7272 60,00 0,3137 40,00 0,3177 30,00 8,4912

Tabela 6.17 Resultados experimentais para a base de dados COCOMO usando as tecnicas deaprendizagem de maquina.

Base de dados Bagging com MLP Bagging com RBF Bagging com SVR Linear Bagging com SVR RBF Bagging com M5P/MT

PRED(25) MMRE PRED(25) MMRE PRED(25) MMRE PRED(25) MMRE PRED(25) MMRE

1 63,64 0,3222 54,55 0,8598 63,64 0,5049 72,73 0,3282 63,64 0,25822 63,64 0,3384 45,45 0,4900 63,64 0,3657 63,64 0,3115 63,64 0,41123 45,45 0,4299 54,55 0,7750 81,82 0,2183 45,45 1,0353 63,64 0,33614 70,00 0,3286 50,00 0,8110 70,00 0,3624 70,00 0,3295 80,00 0,21035 60,00 0,3683 40,00 3,3525 60,00 0,3454 60,00 0,3192 70,00 0,49806 90,00 0,1616 50,00 1,0512 70,00 0,2473 70,00 0,2547 70,00 0,2254

Tabela 6.18 Resultados experimentais para a base de dados COCOMO usando a tecnicaBagging em conjunto com as tecnicas de aprendizagem de maquina.

Os resultados obtidos foram, entao, comparados com os de Tronto et al. [TSS08]. ATabela 6.19 mostra essa comparacao. Podemos observar que, para todos os conjuntos dedados, a tecnica Bagging obteve melhores os resultados.

Base de dados Rede Neural Artificial [TSS08] Bagging com SVR RBF Bagging com SVR Linear Bagging com MLP Bagging com M5P

1 0,3647 0,3282 0,5049 0,3222 0,25822 0,4652 0,3115 0,3657 0,3384 0,41123 0,3795 1,0353 0,2183 0,4299 0,33614 0,2519 0,3295 0,3624 0,3623 0,21035 0,3987 0,3192 0,3454 0,3683 0,49806 0,6317 0,2547 0,2473 0,1616 0,2254

Tabela 6.19 Comparacao entre os resultados obtidos com a tecnica Bagging em conjunto comas tecnicas de aprendizagem de maquina e os resultados obtidos por Tronto el al. [TSS08].

Tambem fizemos simulacoes com a abordagem baseada em AG. A Tabela 6.20 mostraas medias dos resultados da abordagem baseada em AG, junto com a quantidade de atri-butos removidos para o conjunto de dados COCOMO. Os atributos mais frequentementeremovidos foram: Rely, Data, Time, Stor, Virt, Tool, Sched e Rvol. A partir da remocaodesses atributos foi possıvel construir melhores modelos de predicao.

No Apendice B sao descritos em mais detalhe os resultados para a abordagem baseadaem AG usando as tecnicas de aprendizagem de maquinas SVR Linear e MLP. Nele o errono conjunto de teste obtido em cada execucao e apresentado. Alem disso, realizamos teste

Page 109: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.2 EXPERIMENTOS 90

de hipotese estatıstica a fim de decidir se as diferencas de desempenho entre as tecnicassao estatisticamente significativas. A hipotese de testes foram realizadas utilizando 95%nıvel de confianca.

A Tabela 6.21 compara os melhores resultados, em termos do MMRE, obtidos nasnossas simulacoes com os resultados obtidos por Tronto et al. [TSS08]. Os resultadosdo metodo baseado em AG sao medias sobre 10 execucoes do metodo. Esses resultadosmostram que o metodo proposto melhorou substancialmente os resultados obtidos porTronto et. al. [TSS08], em todos os 6 subconjuntos de teste.

Base de dados Ag com SVR RBF AG com SVR Linear AG com MLP AG com M5P

PRED(25) MMRE Atributos PRED(25) MMRE Atributos PRED(25) MMRE Atributos PRED(25) MMRE AtributosRemovidos Removidos Removidos Removidos

1 72,73 0,1792 7,2 76,37 0,1588 6,4 72,73 0,1684 6,7 77,28 0,1716 6,82 64,55 0,2292 7,6 65,46 0,2329 6,8 66,37 0,2231 7,6 62,73 0,2987 6,43 65,46 0,2014 8,6 76,37 0,1652 8,2 84,55 0,1355 8,1 59,10 0,2633 9,24 76,00 0,1972 6,3 78,00 0,1918 6,0 77,00 0,2136 8,2 73,00 0,2616 8,35 75,00 0,1762 7,2 82,00 0,1495 5,2 80,00 0,1546 6,7 72,00 0,1934 8,96 71,00 0,1761 8,8 82,00 0,1463 8,3 82,00 0,1578 9,3 68,00 0,2039 7,7

Tabela 6.20 Media dos resultados experimentais para a base de dados COCOMO usando aabordagem baseada em AG.

Base de dados Rede Neural Artificial [TSS08] Metodo Proposto Metodo PropostoAG com SVR Linear AG com MLP

1 0,3647 0,1588 0,16842 0,4652 0,2329 0,22313 0,3795 0,1652 0,13554 0,2519 0,1918 0,21365 0,3987 0,1495 0,15466 0,6317 0,1463 0,1578

Tabela 6.21 Comparacao da abordagem baseada em AG com outros metodos, utilizando abase de dados COCOMO. A Tabela mostra o MMRE obtido em cada caso.

Tambem podemos comparar os resultados obtidos pela tecnica Bagging, Tabela 6.18,e pelo metodo baseado em AG, Tabela 6.20. Em todos os conjunto de dados, em termosde MMRE, o metodo baseado em AG obteve os melhores resultados.

Finalmente, realizamos, tambem, simulacoes para a construcao dos intervalos de con-fianca robustos, com 95% de confianca, para a devida base de dados. As Figuras 6.21,6.22, 6.23, 6.24, 6.25, 6.26, 6.27, 6.28, 6.29, 6.30, 6.31 e 6.32 mostram valores estimados ereais, juntamente com os intervalos de confianca robustos para os metodos que obtiveramos melhores resultados. Respectivamente foram: Bagging com SVR RBF (1), Baggingcom SVR RBF (2), Bagging com SVR Linear (3), Bagging com M5P/MT (4), Baggingcom M5P/MT (5), Bagging com MLP (6), AG com M5P/MT (1), AG com MLP (2),AG com MLP (3), AG com SVR Linear (4), AG com SVR Linear (5) e AG com SVRLinear (6).

Podemos observar, nos graficos, 6.21, 6.22, 6.23, 6.24, 6.25 e 6.26, gerados com atecnica Bagging, que nem todas as predicoes para as estimativas do projeto encontram-se dentro dos limites dos intervalos de confianca, como e esperado. Em contrapartida,

Page 110: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.3 COMENTARIOS FINAIS 91

os graficos, 6.27, 6.28, 6.29, 6.30, 6.31 e 6.32, construıdos a partir da abordagem base-ada em AG, obtiveram melhores resultados, pois todas as predicoes para as estimativasencontram-se dentro dos limites dos intervalos de confianca.

A Tabela 6.22 mostra os valores para os intervalos de confianca construıdos paraas tecnicas que foram selecionadas, utilizando as bases de dados COCOMO para os 6conjuntos de testes.

Base de Dados Tecnicas/Parametros Intervalos de Confianca

1 Bagging (S = 95, C = SVR RBF (C = 10, ε = 10−3, γ = 10−1), I = 13) [x - 1234,93, x + 480,31]1 AG com M5P/MT [x - 3141,33, x + 1793,25]2 Bagging (S = 100, C = SVR RBF (C = 100, ε = 10−2, γ = 10−2), I = 6) [x - 1093,71, x + 877,86]2 AG com MLP [x - 4509,95, x + 1080,53]3 Bagging (S = 74, C = SVR Linear (C = 1, ε = 10−5), I = 8) [x - 2766,45, x + 964,31]3 AG com MLP [x - 3027,48, x + 4307,38]4 Bagging (S = 97, C = M5P (R = true, P = true, S = false, N = 4), I = 11) / MT [x - 3857,36, x + 1122,74]4 AG com SVR Linear [x - 4504,33, x + 4093,40]5 Bagging (S = 100, C = M5P (R = true, P = true, S = false, N = 9), I = 10) / MT [x - 5729,61, x + 1038,60]5 AG com SVR Linear [x - 2985,04, x + 5922,05]6 Bagging (S = 95, C = MLP (L = 10−2, M = 0.4, H = 11, N = 2x103), I = 2) [x - 2283,77, x + 1446,54]6 AG com SVR Linear [x - 1020,14, x + 4084,85]

Tabela 6.22 Intervalos de confianca robustos construıdas usando a base de dados COCOMO.

6.3 COMENTARIOS FINAIS

Neste capıtulo, apresentamos os experimentos executados nesta dissertacao, assim comoapresentamos e analisamos os resultados obtidos e os comparamos com outros resultadosreportados na literatura cientıfica. Os resultados obtidos foram os melhores ate agoravistos na literatura, para as tres bases de dados consideradas, demonstrando que as abor-dagens utilizadas se mostraram bastante efetivas em proporcionar um caminho atravesdo qual uma meta de melhoria na estimativa do esforco de software pode ser atingida.

Agarwal [AKY+01] definiu limiares para dizer se as estimativas do MMRE e doPRED(25) sao acuradas. Para uma estimativa ser considerada acurada e necessario quetodos os metodos obtenham o MMRE≤0,25 e o PRED(25)≥75%. E importante destacarque o metodo baseado em AG obteve, para as tres bases de dados consideradas, resulta-dos dentro desse limiar definido por Agarwal [AKY+01], exceto para a medida MMREna base de dados Desharnais. Isso so vem ratificar que o metodo proposto por nos, paraproblemas de regressao, obtem estimativas acuradas, em termos de MMRE e PRED(25).

Finalmente, no proximo capıtulo sao apresentadas as conclusoes finais da dissertacaoe sugestoes de trabalhos futuros.

Page 111: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.3 COMENTARIOS FINAIS 92

0

1000

2000

3000

4000

5000

6000

7000

8000

0 1 2 3 4 5 6 7 8 9 10

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.21 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 1) utilizando usando a tecnica Bagging com SVR RBF.

0

2000

4000

6000

8000

10000

0 1 2 3 4 5 6 7 8 9 10

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.22 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 2) utilizando usando a tecnica Bagging com SVR RBF.

Page 112: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.3 COMENTARIOS FINAIS 93

−500

0

500

1000

1500

2000

2500

3000

3500

4000

0 1 2 3 4 5 6 7 8 9 10

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.23 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 3) utilizando usando a tecnica Bagging com SVR Linear.

−500

0

500

1000

1500

2000

2500

3000

0 1 2 3 4 5 6 7 8 9

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.24 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 4) utilizando usando a tecnica Bagging com M5P/MT.

Page 113: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.3 COMENTARIOS FINAIS 94

−500

0

500

1000

1500

2000

2500

3000

0 1 2 3 4 5 6 7 8 9

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.25 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 5) utilizando usando a tecnica Bagging com M5P/MT.

0

2000

4000

6000

8000

10000

12000

14000

0 1 2 3 4 5 6 7 8 9

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.26 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 6) utilizando usando a tecnica Bagging com MLP.

Page 114: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.3 COMENTARIOS FINAIS 95

0

2000

4000

6000

8000

10000

0 1 2 3 4 5 6 7 8 9 10

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.27 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 1) utilizando a abordagem baseada em AG com M5P/MT.

0

2000

4000

6000

8000

10000

0 1 2 3 4 5 6 7 8 9 10

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.28 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 2) utilizando a abordagem baseada em AG com MLP.

Page 115: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.3 COMENTARIOS FINAIS 96

0

1000

2000

3000

4000

5000

6000

7000

8000

0 1 2 3 4 5 6 7 8 9 10

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.29 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 3) utilizando a abordagem baseada em AG com MLP.

0

1000

2000

3000

4000

5000

6000

0 1 2 3 4 5 6 7 8 9

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.30 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 4) utilizando a abordagem baseada em AG com SVR Linear.

Page 116: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

6.3 COMENTARIOS FINAIS 97

0

2000

4000

6000

8000

10000

0 1 2 3 4 5 6 7 8 9

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.31 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 5) utilizando a abordagem baseada em AG com SVR Linear.

0

2000

4000

6000

8000

10000

12000

14000

0 1 2 3 4 5 6 7 8 9

Esf

orço

Projetos

realestimado

intervalo de confiança

Figura 6.32 Intervalos de confianca robustos para predicoes da base de dados COCOMO(conjunto de dados 6) utilizando a abordagem baseada em AG com SVR Linear.

Page 117: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

CAPITULO 7

CONCLUSOES

O presente trabalho apresentou, primeiramente, um levantamento bibliografico da aplicacaode tecnicas de aprendizagem de maquina na area de estimativas de esforco para o desen-volvimento de projetos de software. Ao longo desse trabalho, esse tema foi abordado sobo ponto de vista das tecnicas de aprendizagem de maquina. Vimos que a estimativa deesforco e uma parte importante no desenvolvimento de um software. A partir da estima-tiva, e possıvel construir, analisar a viabilidade e firmar contratos de um projeto. Dessaforma, a estimativa precisa do esforco de projetos de software e um grande diferencial demercado para empresas de software.

Tambem apresentamos uma introducao na area de estimativas de esforco de software.Descrevemos sobre a importancia das metricas de software no processo de desenvolvi-mento de software. Alem disso, discorremos sobre as principais tecnicas que sao atual-mente utilizadas pelas fabricas de software para estimar o tamanho e o esforco necessariopara o desenvolvimento de um projeto de software, assim como os erros cruciais quedevem ser evitados no processo de estimar software.

Tres bases de dados publicas de projetos de software foram selecionadas, descri-tas e utilizadas como forma de avaliarmos os metodos propostos. Foram elas: NASA[SG00][Oli06], Desharnais [set07] e COCOMO [Boe81]. Embora todas essas bases sejampara problemas de estimativas de esforco de projetos de software, a quantidade de atri-butos que compoem cada uma dessas bases e variavel. Isso foi importante para mostrarque o modelo proposto se adequa bem a essa variabilidade da quantidade de atributos.

Apresentamos o proposito principal dos modelos de regressao, que e a previsao. Ainda,tecnicas de aprendizagem de maquina foram revisadas, detalhadas e conceituadas, fo-cando nas tecnicas que se aplicam a problemas de regressao. Dentre as tecnicas utili-zadas, encontram-se: Bagging, Maquinas de Vetor de Suporte para Regressao (SVR),Perceptron Multi-Camadas (MLP), Redes de Funcao de Base Radial (RBF) e Tecnicasde Arvore para Regressao (M5P).

A tecnica de busca e otimizacao denominada de algoritmo genetico foi apresentada.Seus conceitos, aplicacoes e funcionamento foram discorridos. Tambem foi apresentadouma abordagem baseada em AG, cujo objetivo e, simultaneamente, otimizar os valoresdos parametros das tecnicas de aprendizagem de maquina e selecionar os atributos maisrelevantes do conjunto de dados.

Discorremos brevemente sobre o WEKA (Waikato Environment for Knowlegde Analy-sis). Uma ferramenta que implementa diversos algoritmos de aprendizagem de maquinapara resolucao de diversos tipos de problemas e que foi utilizada como suporte as tecnicasde aprendizagem de maquina utilizadas neste trabalho. Tambem apresentamos o prototipoda ferramenta (See - Software Effort Estimation) que foi desenvolvida nesta dissertacao,assim como a arquitetura das classes e as funcionalidades da ferramenta.

98

Page 118: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

CONCLUSOES 99

O prototipo da ferramenta para estimativa de esforco foi desenvolvida com a con-cepcao OO (orientada a objetos). Atraves do prototipo, o profissional que trabalha comestimativas de esforco de software podera realizar experimentos. Alem da estimativagerada, a ferramenta podera apoiar a decisao da previsao dada pelo gerente do projetoquanto ao esforco necessario para o desenvolvimento do projeto de software. A ferra-menta tambem podera ser utilizada por aqueles que pretendem estende-la, acrescentandoa ela novas funcionalidades.

A concepcao OO foi escolhida com o intuito de facilitar a reusabilidade dos modulos ecodigos. Tambem utilizou-se o conceito de pacotes que facilita na navegabilidade dentrodo codigo e ajuda no reuso. O prototipo suporta o treinamento das tecnicas de aprendiza-gem de maquina e previsao do esforco de software. A concepcao modularizada do sistemapermite o desenvolvimento de extensoes do prototipo, desenvolvido neste trabalho.

O prototipo desenvolvido e apresentado neste trabalho, quando treinado com dadoshistoricos de metricas de software retirados de projetos anteriores, pode ser aplicado asmais diversas empresas de desenvolvimento de software. Isso oferece uma flexibilidadeinteressante para que empresas incorporem um modelo de estimativas no seu processo dedesenvolvimento de software.

Varias tecnicas foram aplicadas e testadas no problema estimativa de esforco, como objetivo de validar e obter os melhores modelos de previsao de esforco. Os melhoresmodelos foram incorporados no prototipo desenvolvido.

No levantamento bibliografico feito nesta dissertacao, mencionamos que existem di-versas abordagens que sao empregadas na estimativa de esforco de software. Ainda, naose tem um consenso sobre qual a melhor tecnica para uma determinada empresa. Porcausa disso, varias simulacoes foram realizadas neste trabalho, com o objetivo de encon-trar tecnicas que pudessem ajudar, os gerentes de projeto, a realizar estimativas commaior nıvel de confianca. Para isso, propomos o uso dos intervalos de confianca robustoscomo forma de aumentar a confiabilidade nas estimativas geradas e assim controlar orisco na fase inicial do projeto.

Utilizamos tambem os AG (algoritmos geneticos) para, simultaneamente, otimizar osparametros das tecnicas de aprendizagem de maquina utilizadas neste trabalho e seleci-onar as caracterısticas (atributos) mais relevantes da base de dados analisada.

Os resultados das simulacoes foram avaliados utilizando os medidores de desempenho,PRED(25) e MMRE. A escolha desses medidores deve-se ao fato de serem as mais comu-mente utilizadas em outros trabalhos relacionados a estimativa de esforco de software, oque facilita o estudo comparativo dos resultados [SG00][BL01][Oli06][TSS08]. Os resulta-dos obtidos foram os melhores ate agora vistos na literatura, para as tres bases de dadosconsideradas, demonstrando que as abordagens utilizadas se mostraram bastante efeti-vas em proporcionar um caminho para a melhoria da estimativa do esforco em projetossoftware.

Page 119: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

7.1 CONTRIBUICOES 100

7.1 CONTRIBUICOES

As principais contribuicoes deste trabalho estao sumarizadas abaixo:

1. Investigacao da tecnica Bagging no problema de estimativa de esforcode software - Em recente artigo [BdORdLM07], nos investigamos, propomos emostramos que a tecnica de combinacao Bagging pode melhorar o desempenhodos metodos de regressao para a estimativa de esforco de projetos de software[BdORdLM07], sendo que essa melhora no processo de predicao esta associadacom a reducao da variacao do conjunto de dados. Conseguimos obter resultadosequivalentes a SVR [Oli06] usando a tecnica M5P (arvore de modelo) em conjuntocom a tecnica Bagging, com a vantagem de produzir resultados mais interpretaveis.

2. Investigacao de tecnicas para construir intervalos de confianca robustos -A literatura, em sua maioria, reporta somente as medidas de desempenho PRED(25)e MMRE como resultados das estimativas [BL01][MCHL06][Oli06][BdORdLM07][HHRC07][JMBH07]. Os intervalos de confianca robustos foram aplicados, origi-nalmente, por Oliveira e Meira para a deteccao de novidades em series temporais[OM06]. Os intervalos de confianca robustos sao mais genericos que os intervalosde confianca tradicionais, pois nao fazem suposicao sobre a distribuicao dos erros[OM06]. Como forma de aumentarmos a confiabilidade das estimativas de esforco,propusemos o uso dos intervalos de confianca robustos e que eles sejam forneci-dos junto com outras medidas de desempenho [BdOdLM07]. Os resultados obtidosforam bastante satisfatorios.

3. Proposta e avaliacao do metodo baseado em algoritmo genetico - Algo-ritmo genetico tem se mostrado muito eficiente na procura de solucoes otimas ouaproximadamente otimas em uma grande variedade de problemas [Eng06]. Recen-temente, Huang e Wang propuseram uma abordagem baseada em AG para, si-multaneamente, selecionar os atributos da base de dados e otimizar os parametrosda maquina de vetor de suporte. Com a aplicacao dessa abordagem, conseguiu-se melhorar os resultados para problemas de classificacao [HW06]. Nos fizemosuma adaptacao e particularizacao do metodo proposto por Huang e Wang parao problema de estimativa de esforco de software, problema conhecidamente de re-gressao. A aplicacao desse modelo ajudou a melhorar todos os resultados reportados[SS97][SG00][Oli06] [TSS06][BdORdLM07][BdOdLM07][HHRC07][TSS08]

4. Construcao de um prototipo de ferramenta - Desenvolvemos um prototipode ferramenta, que intitulamos (SEE - Software Effort Estimation). A partir dotreinamento das tecnicas de computacao inteligente e possıvel obter uma estima-tiva de esforco necessario para desenvolver um projeto de software. O prototipodesenvolvido consegue reduzir fortemente a necessidade de um conjunto rıgido demetricas como pre-condicoes para que se calcule a estimativa de esforco.

A aplicacao das abordagens propostas e utilizadas se mostraram bastante efetivasem proporcionar um caminho atraves do qual uma meta de melhoria na estimativa do

Page 120: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

7.2 TRABALHOS FUTUROS 101

esforco de software pode ser atingida. Utilizou-se tecnicas de aprendizagem de maquinacombinadas com a tecnica Bagging e com o algorıtmo genetico com o intuito de melhoraras predicoes. Os resultados obtidos foram muito bons quando comparados com trabalhosda area [SS97][SG00][BL01][Oli06][TSS08].

A partir destes resultados, tivemos tres publicacoes aceitas nas conferencias, Qua-lis A, internacionais IJCNN/2007 (International Joint Conference on Neural Networks)[BdORdLM07], ICTAI/2007 (International Conference on Tools with Artificial Intelli-gence) [BdOdLM07] e SAC/2008 (ACM Symposium on Applied Computing) [BdOdLM08].

Diante destes resultados, acreditamos que o modelo que propomos, para o problemade estimativa de esforco de projetos de software, traz relevantes contribuicoes para aspesquisas na area de estimativas de esforco de software.

7.2 TRABALHOS FUTUROS

Entre os principais topicos possıveis de extensao em trabalhos futuros podemos citar:

• Adicionar novas funcionalidades ao prototipo, tais como: geracao de relatorios,planilha de acompanhamento do projeto, planilha dos recursos disponibilizados noprojeto, sistema web, estimativa de custos e cronograma, etc. A adicao das no-vas funcionalidades tera como ponto de partida a analise feita e apresentada noApendice C.

• Pesquisar sobre metodos que auxiliem a etapa de analise e pre-processamento dosdados;

• Pesquisar outras tecnicas de selecao de atributos e tecnicas de otimizacao e buscacom o intuito de conseguir melhorar as estimativas;

• Utilizar, no problema de estimativa de esforco de software, o metodo baseado emalgoritmo genetico junto com a tecnica Bagging;

• Mencionamos que a medida de desempenho MMRE e criticada. Foss et al. [FSKM03]investigaram e propuseram outras medidas de desempenho do erro, para serem uti-lizados na area, ao inves do MMRE. Dentre elas estao: SD (Standard Deviation)e LSD (Logarithmic Standarde Deviation). Sendo assim, e importante investigar aadocao de novas medidas de desempenho com o objetivo de definirmos o melhormodelo para predicao;

• Pesquisar mais sobre intervalos de confianca e outras tecnicas que ajudem no au-mento da confiabilidade do modelo de predicao construıdo;

• Outras bases de dados tambem podem e devem ser utilizadas, para avaliar aindamais a capacidade dos metodos de estimativa de esforco;

• Finalmente, a abordagem utilizada, certamente, podera ser estendida para outrasatividades da area de engenharia de software, tal como a previsao de esforco totalpara a fase de teste de um projeto de software.

Page 121: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

APENDICE A

FATORES DE AJUSTE DO ESFORCO E NIVEIS DASVARIAVEIS

Tabela A.1: Fatores de ajuste do esforco e nıveis dasvariaveis antes e depois do pre-processamento.

Variaveis Nıveis Valores Originais Valores apos Pre-processamentoMuito Baixo 0,75 1,00Baixo 0,88; 0,94 2,00

Rely Normal 1,00 3,00Alto 1,15 4,00Muito Alto 1,40 5,00

Baixo 0,94 1,00Normal 1,00 2,00

Data Alto 1,04 3,00Muito Alto 1,08 4,00Extremamente Alto 1,16 5,00

Muito Baixo 0,70 1,00Baixo 0,85 2,00

Cplx Normal 1,00 3,00Alto 1,07 4,00Muito Alto 1,15 5,00Extremamente Alto 1,30; 1,65 6,00

Normal 1,00 1,00Time Alto 1,11 2,00

Muito Alto 1,30 3,00Extremamente Alto 1,66 4,00

Normal 1,00 1,00Stor Alto 1,06 2,00

Muito Alto 1,21 3,00Extremamente Alto 1,56 4,00

Baixo 0,87 1,00Virt Normal 1,00 2,00

Alto 1,15 3,00Muito Alto 1,30 4,00

Baixo 0,87 1,00Continua na proxima pagina

102

Page 122: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

FATORES DE AJUSTE DO ESFORCO E NIVEIS DAS VARIAVEIS 103

Tabela A.1 – continuacao da tabelaVariaveis Nıveis Valores Originais Valores apos Pre-processamentoTurn Normal 1,00 2,00

Alto 1,07 3,00Muito Alto 1,15 4,00

Muito Baixo 1,46 1,00Baixo 1,19 2,00

Acap Normal 1,00 3,00Alto 0,86 4,00Muito Alto 0,71 5,00

Muito Baixo 1,29 1,00Baixo 1,13 2,00

Aexp Normal 1,00 3,00Alto 0,91 4,00Muito Alto 0,82 5,00

Muito Baixo 1,42 1,00Baixo 1,17 2,00

Pcap Normal 1,00 3,00Alto 0,86 4,00Muito Alto 0,70 5,00

Muito Baixo 1,21 1,00Vexp Baixo 1,10 2,00

Normal 1,00 3,00Alto 0,90 4,00

Muito Baixo 1,14 1,00Lexp Baixo 1,07 2,00

Normal 1,00 3,00Alto 0,95 4,00

Muito Baixo 1,24 1,00Baixo 1,10 2,00

Modp Normal 1,00 3,00Alto 0,91 4,00Muito Alto 0,82 4,00

Muito Baixo 1,24 1,00Baixo 1,10 2,00

Tool Normal 1,00 3,00Alto 0,91 4,00Muito Alto 0,83 5,00

Muito Baixo 1,23 1,00Baixo 1,08 2,00

Sched Normal 1,00 3,00

Continua na proxima pagina

Page 123: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

FATORES DE AJUSTE DO ESFORCO E NIVEIS DAS VARIAVEIS 104

Tabela A.1 – continuacao da tabelaVariaveis Nıveis Valores Originais Valores apos Pre-processamento

Alto 1,04 4,00Muito Alto 1,10 5,00

Baixo 0,91 1,00Normal 1,00 2,00

Rvol Alto 1,19 3,00Muito Alto 1,38 4,00Extremamente Alto 1,62 5,00X Organico 1,00

Mode X Semi-destacado 2,00X Embutido 3,00

Page 124: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

APENDICE B

COMPARACOES COM TESTES DE HIPOTESES

Este apendice apresenta, em maiores detalhes, a comparacao dos resultados obtidos nas10 execucoes do modelo baseado em algoritmo genetico e os da tecnica Bagging, para asbases de dados Desharnais e COCOMO, com o intuito de analisar se os resultados obtidostem significancia estatıstica, dado um nıvel de significancia previamente escolhido.

Nao procedemos com comparacoes para a base de dados NASA, porque o metodobaseado em AG nao obteve melhores resultados que a tecnica Bagging.

O nıvel de significancia sao os limites que definimos para afirmar que um certo desvioe decorrente do acaso ou nao. Ele deve ser definido antes de o experimento ser realizadoe corresponde ao risco que se corre de rejeitar uma hipotese verdadeira ou aceitar umahipotese falsa. Frequentemente, os nıveis mais escolhidos sao: P = 0,05 e P = 0,01, ouseja, 5% e 1% respectivamente.

Os testes de hipoteses sao metodos para aceitar, ou rejeitar, uma hipotese estatısticacom base nas amostras. Existem dois tipos de hipoteses, a nula e a alternativa.

A hipotese nula (H0) e uma hipotese que credita-se como verdadeira ate que testesestatısticos indiquem o contrario. Ja a hipotese alternativa (H1) e a hipotese que queremosprovar. A H1 deve ser contraria a H0, e nunca devera ocorrer o caso em que ambas saoverdadeiras. Assim, quando se aceita a H0 rejeita-se a H1 e vice-versa.

Quanto realizamos testes estatısticos para aceitar ou rejeitar uma hipotese H0, doistipos de erros podem aparecer. Podemos rejeitar a hipotese H0, quando ela e verdadeira,ou aceitar a hipotese H0, quando ela e falsa.

Com o intuito de comparar os resultados obtidos pela tecnica Bagging e pelo modelobaseado em algorıtmo genetico, utilizamos um teste (t-student) [dAM05] para analisarmosse os resultados tem significancia estatıstica. Consideramos satisfatorio o limite de 5% deprobabilidade de erro (nıvel de significancia), nao sendo significativas as diferencas quetiverem uma probabilidade acima desse limite.

Primeiramente, nos coletamos os valores, PRED(25) e MMRE, do conjunto de teste.xi sao os resultados obtidos pelo modelo baseado em AG e y o resultado obtido pelatecnica Bagging. Entao, nos calculamos di = xi - y, que e usado para calcular t.

t =d√

sd2/n

Onde d e a media de di, sd e o desvio padrao de di e n e o numero de execucoesrealizadas. Nos nossos experimentos, n = 10. Para esse nıvel de confianca, a partir databela da distribuicao t-student com n - 1 = 9, obtemos z = 1,833. Assim, para o nıvelde confianca de 95%, os resultados serao considerados estatisticamente significativos se t> z ou t < −z.

105

Page 125: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

COMPARACOES COM TESTES DE HIPOTESES 106

A Tabela B.1 mostra os resultados obtidos pelo metodos baseado em AG utilizandoas tecnicas SVR RBF e MLP em cada uma das suas 10 execucoes, assim como a mediae o desvio padrao, para a base de dados Desharnais. Tambem e apresentado o valor tcalculado. Os resultados da Tabela B.1 mostram que as melhorias do modelo AG comSVR RBF (MMRE) e AG com MLP (PRED(25)) em relacao aos melhores resultadosobtidos pela tecnica Bagging 6.13 nao tem significancia estatıstica, com 95% de confianca.

SVR RBF MLP

PRED MMRE PRED MMRE61,11 0,2754 77,78 0,297772,22 0,4066 72,22 0,313277,78 0,2630 72,22 0,285577,78 0,3617 72,22 0,313777,78 0,2864 72,22 0,313277,78 0,4206 72,22 0,310877,78 0,4980 72,22 0,289877,78 0,3466 72,22 0,309177,78 0,3555 72,22 0,304983,33 0,3569 72,22 0,2290

Media 76,11 0,3571 72,776 0,2967Desvio 5,89 0,0723 1,758226379 0,025842792

t 2,0911 -0,9072 1,0000 -9,9251

Tabela B.1 Resultados experimentais para a base de dados Desharnais usando a abordagembaseada em AG.

Realizamos tambem comparacoes para a base de dados COCOMO. A Tabela B.2mostra os resultados obtidos pelo metodos baseado em AG utilizando as tecnicas SVRLinear e MLP em cada uma das suas 10 execucoes, assim como a media e o desvio padrao.Tambem e apresentado o valor t calculado. Os resultados da Tabela B.2 mostram queem todos os conjuntos de teste tiveram significancia estatıstica, com 95% de confianca,quando comparados aos resultados da tecnica Bagging 6.19.

Page 126: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

COMPARACOES COM TESTES DE HIPOTESES 107

SVR Linear

MMRE (1) MMRE (2) MMRE (3) MMRE (4) MMRE (5) MMRE (6)0,1546 0,2592 0,1738 0,1755 0,1567 0,12960,1657 0,2498 0,1692 0,1984 0,1657 0,13120,1557 0,2480 0,1664 0,2003 0,1442 0,14740,1492 0,2510 0,1763 0,2056 0,1575 0,15690,1723 0,2506 0,1624 0,2023 0,1747 0,15070,1654 0,2336 0,1703 0,1802 0,1601 0,15510,1552 0,1996 0,1703 0,1944 0,1057 0,14360,1373 0,2072 0,1353 0,1819 0,1613 0,14380,1576 0,1713 0,1593 0,1951 0,1352 0,14110,1748 0,2583 0,1685 0,1846 0,1341 0,1633

Media 0,1588 0,2329 0,1652 0,1918 0,1495 0,1463Desvio 0,0112 0,0299 0,0116 0,0105 0,0201 0,0108

t -58,2307 -24,5579 -58,3503 -3,4689 -8,4358 -26,6995

MLP

MMRE (1) MMRE (2) MMRE (3) MMRE (4) MMRE (5) MMRE (6)0,1546 0,2611 0,1195 0,2105 0,2009 0,15040,1657 0,2124 0,1398 0,2151 0,1433 0,18910,1557 0,1962 0,1265 0,2230 0,1674 0,14820,1492 0,2068 0,1433 0,2252 0,1641 0,14320,1723 0,2264 0,1579 0,1948 0,1470 0,15420,1654 0,2038 0,1504 0,1876 0,1328 0,15800,1552 0,1923 0,1284 0,2093 0,1599 0,16770,1373 0,2506 0,1210 0,2278 0,1395 0,14790,1576 0,1987 0,1402 0,2333 0,1666 0,13660,1748 0,2827 0,1283 0,2096 0,1247 0,1825

Media 0,1588 0,2231 0,1355 0,2136 0,1546 0,1578Desvio 0,0112 0,0312 0,0128 0,0145 0,0220 0,0170

t -58,2307 -24,5064 -60,2710 -8,3568 -35,0978 -84,6895

Tabela B.2 Resultados experimentais para a base de dados COCOMO usando a abordagembaseada em AG.

Page 127: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

APENDICE C

FERRAMENTAS PARA GERENCIAMENTO DEPROJETOS DE SOFTWARE

Este apendice tem por objetivo apresentar, brevemente, algumas ferramentas para metricasde software e efetuar uma analise visando detectar as diferentes funcionalidades imple-mentadas como forma de embasar e ampliar os conhecimentos para o desenvolvimentofuturo da ferramenta que foi construıda neste trabalho. Detectou-se que sao poucos ossoftwares existentes, atualmente no mercado, que viabilizam a estimativa de esforco deprojetos de software. Cada software apresenta um conjunto de caracterısticas diferentes,que estao descritas brevemente neste apendice.

Para a analise das ferramentas os criterios adotados foram:

• Linguagem por LOC : Quais as linguagens consideradas pela ferramenta para adaptacaoda quantidade de linhas de codigo, bem como se a ferramenta permite a inclusaode novas linguagens.

• Metricas/Indicadores : Quais as metricas ou indicadores foram implementados pelaferramenta.

• Processo: Se existir, qual o processo de desenvolvimento adotado pela ferramenta .

• Visualizacao Grafica: Se a ferramenta gera algum grafico comparativo para facilitara analise dos resultados.

• Relatorios : Forma de apresentacao dos relatorios.

• Recursos : Quais os recursos podem ser estimados pela ferramenta.

• Ajuda: Se a ferramenta apresenta alguma forma de documentacao.

C.1 COSTAR

Costar e um Software que auxilia no gerenciamento de custos, de tempo e avalia metricaspara desenvolvimento de projetos. Foi desenvolvido pela empresa SoftstarSystems.Ele pode ser encontrado no endereco http://www.softstarsystems.com. Atualmente, osoftware esta na versao 7.0.

O Costar estima esforco medido pela quantidade de pessoas para realizar o projeto,tempo e custo de projetos atraves da associacao das atividades de projeto com as pessoasque irao realizar as atividades.

Para estimar o esforco, o software recebe as caracterısticas tecnicas do desenvolvedorque ira realizar a atividade. Dentre as quais podemos citar: a experiencia e o valor

108

Page 128: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

C.2 CALICO 109

recebido por determinada pessoa. A experiencia pode ser dividida em: experiencias emmaquina, em linguagem, sistemas e plataformas.

O Costar considera as seguintes informacoes do software que sera produzido: tamanhode banco de dados, complexidade do produto, requisitos de recursos, dentre outros. Parao calculo das estimativas consideram-se todas as informacoes coletadas, de pessoal e doproduto, para obter informacoes referentes a: esforcos medido em pessoas/mes, duracaodo projeto em meses e custos.

O Costar oferece tambem visualizacoes graficas da distribuicao de pessoal e custos,marcos de referencia e alguns relatorios. Os relatorios apresentam, de maneira textual,informacoes referentes a esforco, o custo e a duracao do projeto.

C.2 CALICO

O Calico e um software que realiza calibracoes em equacoes do modelo COCOMO[Boe81][BAB+00]. Foi desenvolvido pela mesma empresa que desenvolve o Costar, porem,o Calico e utilizado para calibrar equacoes do modelo COCOMO 81 [Boe81] e do mo-delo COCOMO II [BAB+00]. Atualmente, o Calico encontra-se na versao 7.0. Tomandocomo base os seguintes dados de entrada: linguagem de programacao utilizada, custo pormes dos integrantes do projeto, horas de trabalho por mes e distribuicao de esforco entreetapas. O Calico calcula as equacoes otimas para o projeto em questao. Ele pode serencontrado no endereco: http://www.softstarsystems.com/calico.htm.

O Calico permite editar as variaveis de entrada que definem o modelo COCOMO, osfatores de ajustes de esforco, permite mudar as distribuicoes de esforco e as equacoes domodelo. Alem disso, o Calico tambem faz conversao de informacoes referentes a tecnicade analise de ponto de funcao para linhas de codigo, conversao que e possıvel devido aoconhecimento da linguagem de programacao utilizada.

Todas as informacoes geradas pelo software podem ser vistas apenas na tela do mesmo,ou seja, nao sao gerados relatorios.

C.3 USC-COCOMO

O software USC−COCOMO foi desenvolvido pela University of Southern California. Euma ferramenta de analise que tem como objetivo gerar resultados automatizados visandofacilitar o processo de gerencia de projetos de software [Boe81][BAB+00]. Ela pode ser en-contrada no endereco: http://sunset.usc.edu/csse/research/COCOMOII/cocomo main.html.

USC − COCOMO realiza estimativas do custo medido em pessoas/mes e do tempomedido em meses. O software adiciona 20% ao tempo computado que serve como margemde erro.

O USC−COCOMO gera tambem relatorios textuais com as estimativas de cada fasedo processo. As fases correspondem ao ciclo de vida classico, modelo cascata, no qual oesforco de cada atividade e calculado como uma porcentagem do esforco total consumidodurante uma fase.

Page 129: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

C.4 COST XPERT 110

C.4 COST XPERT

CostXpert, estima tempo e custo para o desenvolvimento de projetos de software. De-senvolvido pela empresa Marotz Inc., o CostXpert mantem informacoes gerais sobre oprojeto e sobre o usuario responsavel pela informacao dos dados. Quando se tratam dosdados relativos ao projeto, pode-se classificar o projeto por tipos e associa-lo a padroes eciclos de vida. O software permite a edicao dos parametros definidos como padrao.

Pode-se utilizar sete metodos para calculo de estimativa do tamanho do projeto, saoeles: SLOC, Function Points, Feature Points, GUI Metrics, Object Metrics, Bottom Upe Top Down.

O software realiza analise de risco atraves do calculo de valores que afetam o esforcoe tambem o tempo de entrega. Os fatores ambientais que podem afetar o custo e ocronograma de um projeto sao distribuıdos entre as seguintes categorias:

1. Pessoal : considera fatores como experiencia em analise, com o tipo de aplicacao,linguagem e ferramenta, plataforma e programacao.

2. Plataforma: refere-se aos recursos para desenvolvimento.

3. Projeto: considera ambiente e ferramentas disponıveis para desenvolvimento.

4. Produto: refere-se a fatores relacionados com complexidade do produto, reusabili-dade e tratamento de falhas.

5. Fatores de Escalonamento: considera fatores como riscos amenizados atraves do ge-renciamento, flexibilidade dos requisitos, experiencia de desenvolvimento do tipo deprojeto, nıvel da empresa segundo CMMI (Capability Maturity Model Integration)e interacao da equipe.

CostXpert possibilita refinar a estimativa baseada em varios fatores. Entre os quaisestao tempo versus custo, esforco requerido para planejamento, esforco para testar eintegrar o projeto, tempo para revisao por parte do cliente e contatos com o cliente parasolucionar duvidas e fatores relacionados com problemas eventuais. Os resultados podemser visualizados graficamente ou atraves de relatorios.

Page 130: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

REFERENCIAS BIBLIOGRAFICAS

[AKY+01] R. Agarwal, Manish Kumar, Yogesh, S. Mallick, R. M. Bharadwaj, eD. Anantwar, Estimating software projects. SIGSOFT Software Engi-neering Notes. Vol. 26, nr. 4, p. 60-67, 2001.

[ASM01] L. Angelis, I. Stamelos, e M. Morisio, Building a software cost esti-mation model based on categorical data. Seventh International SoftwareMetrics Symposium, p. 4-15, 2001.

[BAB+00] Barry W. Boehm, Chris Abts, A. Winsor Brown, Sunita Chulani, Brad-ford K. Clark, Ellis Horowitz, Ray Madachy, Donald Reifer, e BertSteece, Software cost estimation with cocomo ii, Prentice Hall, Agosto2000.

[BB81] J. W. Bailey e Victor R. Basili, A meta-model for software developmentresource expenditures. International Conference on Software Enginee-ring, p. 107-116, 1981.

[BdOdLM07] Petronio Luna Braga, Adriano Lorena Inacio de Oliveira, e Silvio Ro-mero de Lemos Meira, Software effort estimation using machine le-arning techniques with robust confidence intervals. IEEE InternationalConference on Tools with Artificial Intelligence, p. 181-185, 2007.

[BdOdLM08] Petronio Luna Braga, Adriano Lorena Inacio de Oliveira, e Silvio Ro-mero de Lemos Meira, A ga-based feature selection and parameters op-timization for support vector regression applied to software effort esti-mation. ACM Symposium on Applied Computing, p. 1788-1792, 2008.

[BdORdLM07] Petronio Luna Braga, Adriano Lorena Inacio de Oliveira, Gustavo Hen-rique Tavares Ribeiro, e Silvio Romero de Lemos Meira, Bagging predic-tors for estimation of software project effort. IEEE International JointConference on Neural Networks, p. 1595-1600, 2007.

[BL01] Colin J. Burgess e Martin Lefley, Can genetic programming improvesoftware effort estimation? a comparative evaluation. Information &Software Technology. Vol. 43, nr. 14, p. 863-873, 2001.

[Boe81] Barry Boehm, Software engineering economics, Prentice Hall, Novem-ber 1981.

[Bre96] Leo Breiman, Bagging predictors. Machine Learning. Vol. 24, nr. 2, p.123-140, 1996.

111

Page 131: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

REFERENCIAS BIBLIOGRAFICAS 112

[Cap98] Jones Capers, Estimating software costs, McGraw-Hill, New York, 1998.

[Cha05] Robert N. Charette, Why software fails. IEEE Spectrum. Vol. 42, nr.9, p. 42-49, 2005.

[CV95] Corinna Cortes e Vladimir Vapnik, Support-vector networks. MachineLearning. Vol. 20, nr. 3, p. 273-297, 1995.

[dAM05] Gilberto de Andrade Martins, Estatıstica geral e aplicada, 3 ed., Atlas,2005.

[dPBdLFdCL07] Antonio de Padua Braga, Andre Ponce de Leon F. de Carvalho, e Te-resa Bernarda Ludermir, Redes neurais artificiais - teoria e aplicacoes,2 ed., LTC, 2007.

[Dra05] Marcos David Drach, Aplicabilidade de metricas por pontos de funcaoem sistemas baseados em web, Master’s thesis, Universidade Estadualde Campinas, Janeiro 2005.

[dRV07] Antonio do Rego Valenca, Implantacao de processo de estimativa deesforco de desenvolvimento de software - caso pratico, Master’s thesis,UFPE, Abril 2007.

[Ecl08] Eclipse, Techinical report, Eclipse Foundation, Software disponıvel em:http://www.eclipse.org, Acesso em 5 de marco de 2008.

[Eng06] Andries P. Engelbrecht, Fundamentals of computational swarm intelli-gence, Wiley, Janeiro 2006.

[FL02] Gary William Flake e Steve Lawrence, Efficient svm regression trainingwith smo. Machine Learning. Vol. 46, nr. 1-3, p. 271-290, 2002.

[FP98] Norman E. Fenton e Shari Lawrence Pfleeger, Software metrics: Arigorous and practical approach, 2 ed., PWS Publishing Co., Boston,MA, USA, Fevereiro 1998.

[FSKM03] Tron Foss, Erik Stensrud, Barbara Kitchenham, e Ingunn Myrtveit, Asimulation study of the model evaluation criterion mmre. IEEE Tran-sactions on Software Engineering. Vol. 29, nr. 11, p. 985-995, 2003.

[GJO06] S. Grimstad, M. Jorgensen, e K. Molokken Ostvold, Software effortestimation terminology: The tower of babel. Information and SoftwareTechnology. Vol. 48, nr. 4, p. 302-310, 2006.

[Gro04] Standish Group, Project success rates improvedover 10 years, Techinical report, Standish Group,http://www.softwaremag.com/L.cfm?Doc=newsletter/2004-01-15/Standish, 2004.

Page 132: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

REFERENCIAS BIBLIOGRAFICAS 113

[Has95] Mohamad H. Hassoun, Fundamentals of artificial neural networks, MITPress, Cambridge, MA, 1995.

[Hay98] Simon Haykin, Neural networks: A comprehensive introduction, 2 ed.,Prentice Hall, Julho 1998.

[HHRC07] Xishi Huang, Danny Ho, Jing Ren, e Luiz Fernando Capretz, Improvingthe cocomo model using a neuro-fuzzy approach. Applied Soft Compu-ting. Vol. 7, nr. 1, p. 29-40, 2007.

[Hol75] John Holland, Adaptation in natural and artificial systems, 1 ed., Uni-versity of Michigan Press, 1975.

[Hol92] John H. Holland, Adaptation in natural and artifical systems, MITPress, Cambridge, MA, 1992.

[Hug96] Robert T. Hughes, Expert judgement as an estimating method. Infor-mation & Software Technology. Vol. 38, nr. 2, p. 67-75, 1996.

[HW06] Cheng Lung Huang e Chieh Jen Wang, A ga-based feature selection andparameters optimization for support vector machines. Expert Systemswith Applications. Vol. 31, nr. 2, p. 231-240, 2006.

[ISB01] ISBSG, Practical project estimation: A toolkit for estimating softwaredevelopment effort and duration, Techinical report, International Soft-ware Benchmarking Standards Group, March 2001.

[JMBH07] Omid Jalali, Tim Menzies, Dan Baker, e Jairus Hihn, Column pruningbeats stratification in effort estimation. International Workshop on Pre-dictor Models in Software Engineering, 2007.

[Kem87] Chris F. Kemerer, An empirical validation of software cost estimationmodels. Communications of the ACM. Vol. 30, nr. 5, p. 416-429, 1987.

[KK04] J. Kaczmarek e M. Kucharski, Size and effort estimation for applicati-ons written in java. Information and Software Technology. Vol. 46, nr.9, p. 589-601, 2004.

[Kra03] Jerry Krasner, Embedded software development issues and challen-ges, Techinical report, Embedded Market Forecasters whitepaper,http://www.embeddedforecast.com, 2003.

[Laa07] Laatukonsultointi, Techinical report, Laatukonsul-tointi P. Kantelinen Ab, Software disponıvel em:http://www.laatuk.com/tools/effort estimation tools.html, Acessoem 13 de julho de 2007.

[Lar07] Craig Larman, Utilizando uml e padroes, 3 ed., Bookman, 2007.

Page 133: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

REFERENCIAS BIBLIOGRAFICAS 114

[LP92] Albert L. Lederer e Jayesh Prasad, Nine management guidelines forbetter cost estimating. Communications of the ACM, p. 51-59, 1992.

[McC06] Steve McConnell, Software estimation: Demystifying the black art, Mi-crosoft Press, 2006.

[MCHL06] Tim Menzies, Zhihao Chen, Jairus Hihn, e Karen T. Lum, Selectingbest practices for effort estimation. IEEE Transactions on Software En-gineering. Vol. 32, nr. 11, p. 883-895, 2006.

[Net08] Netbeans, Techinical report, Netbeans Community, Software disponıvelem: http://www.netbeans.org, Acesso em 5 de marco de 2008.

[Oli06] Adriano Lorena Inacio Oliveira, Estimation of software project effortwith support vector regression. Neurocomputing. Vol. 69, nr. 13-15, p.1749-1753, 2006.

[OM06] Adriano Lorena Inacio Oliveira e Silvio Romero Lemos Meira, Detectingnovelties in time series through neural networks forecasting with robustconfidence intervals. Neurocomputing. Vol. 70, nr. 1-3, p. 79-92, 2006.

[PM03] Lawrence H. Putnam e Ware Myers, Five core metrics: The intelli-gence behind successful software management, Dorset House PublishingCompany, Maio 2003.

[Pre06] Roger S. Pressman, Engenharia de software, 6 ed., McGraw-Hill, 2006.

[Pro07] ESTIMATE Professional, Techinical report, Software ProductivityCentre, Software disponıvel em: http://www.spc.ca/, Acesso em 13de julho de 2007.

[PWL05] Shari Lawrence Pfleeger, Felicia Wu, e Rosalind Lewis, Software costestimation and sizing methods, Rand Corporation, 2005.

[Qui92] Ross J. Quinlan, Learning with continuous classes. Australian JointConference on Artificial Intelligence, p. 343-348, 1992.

[Rap08] RapidMiner, Techinical report, RapidMiner (YALE) – Java Data Mi-ning, Software disponıvel em: http://sourceforge.net/projects/yale,Acesso em 5 de maio de 2008.

[Rez03] Solange Oliveira Rezende, Sistemas inteligentes - fundamentos eaplicacoes, Manole, Barueri, SP, Brasil, 2003.

[set07] PROMISE Data sets, Techinical report, PROMISE Data, Software dis-ponıvel em: http://promisedata.org/, Acesso em 13 de julho de 2007.

Page 134: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

REFERENCIAS BIBLIOGRAFICAS 115

[SG00] Miyoung Shin e Amrit L. Goel, Empirical data modeling in software en-gineering using radical basis functions. IEEE Transactions on SoftwareEngineering. Vol. 26, nr. 6, p. 567-576, 2000.

[Sim99] Carlos Alberto Simoes, Sistematica de metricas, qua-lidade e produtividade, Techinical report, BFPUG,http://www.bfpug.com.br/Artigos/sistematica metricas simoes.htm,1999.

[SS97] Martin J. Shepperd e Chris Schofield, Estimating software project effortusing analogies. IEEE Transactions on Software Engineering. Vol. 23,nr. 11, p. 736-743, 1997.

[SS04] Alex Smola e Bernhard Scholkopf, A tutorial on support vector regres-sion. Statistics and Computing. Vol. 14, nr. 3, p. 199-222, 2004.

[Sun08] Sun, Techinical report, Sun Microsystems, Software disponıvel em:http://java.sun.com/, Acesso em 5 de marco de 2008.

[Sys07] Softstar Systems, Techinical report, Costar, Software disponıvel em:http://www.softstarsystems.com/, Acesso em 13 de julho de 2007.

[TSS06] Iris Fabiana Barcelos Tronto, Jose Demısio Simoes Silva, e NilsonSant’Anna, Uma investigacao de modelos de estimativas de esforco emgerenciamento de projeto de software. Simposio Brasileiro de Engenha-ria de Software, p. 224-240, 2006.

[TSS08] Iris Fabiana Barcelos Tronto, Jose Demısio Simoes Silva, e NilsonSant’Anna, An investigation of artificial neural networks based predic-tion systems in software project management. The Journal of Systemsand Software. Vol. 81, nr. 3, p. 356-367, 2008.

[VSA06] Carlos Eduardo Vazquez, Guilherme Siqueira Simoes, e Renato Ma-chado Albert, Analise de pontos de funcao, 5 ed., Erica, 2006.

[WEK07] WEKA, Techinical report, Universidade de Waikato, Software dis-ponıvel em: http://www.cs.waikato.ac.nz/ ml/weka/, Acesso em 10 dejulho de 2007.

[WF05] Ian H. Witten e Eibe Frank, Data mining: Practical machine learningtools and techniques, 2 ed., Morgan Kaufmann, 2005.

[WW97] Y. Wang e I. Witten, Inducing model trees for continuous classes, Eu-ropean Conference on Machine Learning, April 1997.

[Xpe07] Cost Xpert, Techinical report, Cost Xpert Group, Software disponıvelem: http://www.costxpert.com/en/index.html, Acesso em 13 de julhode 2007.

Page 135: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

Livros Grátis( http://www.livrosgratis.com.br )

Milhares de Livros para Download: Baixar livros de AdministraçãoBaixar livros de AgronomiaBaixar livros de ArquiteturaBaixar livros de ArtesBaixar livros de AstronomiaBaixar livros de Biologia GeralBaixar livros de Ciência da ComputaçãoBaixar livros de Ciência da InformaçãoBaixar livros de Ciência PolíticaBaixar livros de Ciências da SaúdeBaixar livros de ComunicaçãoBaixar livros do Conselho Nacional de Educação - CNEBaixar livros de Defesa civilBaixar livros de DireitoBaixar livros de Direitos humanosBaixar livros de EconomiaBaixar livros de Economia DomésticaBaixar livros de EducaçãoBaixar livros de Educação - TrânsitoBaixar livros de Educação FísicaBaixar livros de Engenharia AeroespacialBaixar livros de FarmáciaBaixar livros de FilosofiaBaixar livros de FísicaBaixar livros de GeociênciasBaixar livros de GeografiaBaixar livros de HistóriaBaixar livros de Línguas

Page 136: FERRAMENTA PARA ESTIMATIVA DE ESFORC»O DE PROJETOS DE SOFTWARE BASEADA EM TECNICAS DE ...livros01.livrosgratis.com.br/cp145846.pdf · 2016-01-26 · DE PERNAMBUCO Universidade de

Baixar livros de LiteraturaBaixar livros de Literatura de CordelBaixar livros de Literatura InfantilBaixar livros de MatemáticaBaixar livros de MedicinaBaixar livros de Medicina VeterináriaBaixar livros de Meio AmbienteBaixar livros de MeteorologiaBaixar Monografias e TCCBaixar livros MultidisciplinarBaixar livros de MúsicaBaixar livros de PsicologiaBaixar livros de QuímicaBaixar livros de Saúde ColetivaBaixar livros de Serviço SocialBaixar livros de SociologiaBaixar livros de TeologiaBaixar livros de TrabalhoBaixar livros de Turismo