43
www.metricas.com.br 1 Monte Carlo em Estimativas de Software Mauricio Aguiar ti MÉTRICAS Ltda

Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 1

Monte Carlo em Estimativas de Software

Mauricio Aguiarti MÉTRICAS Ltda

Page 2: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 2

Agenda

•Introdução

•Um Exemplo Simples

•Outro Exemplo

•Reamostragem

•Faça Você Mesmo

•Resumo

Page 3: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 3

Introdução

Page 4: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 4

IntroduçãoEstimativas

•Estimativas são projeções quantitativas de características

dos projetos, tais como:

• Tamanho do Produto

• Esforço Requerido

• Prazo Requerido

• Qualidade

Page 5: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 5

IntroduçãoIncerteza e Monte Carlo

•Há um grau de incerteza nos parâmetros de entrada de

um modelo de estimativa

•Desejamos avaliar como essa incerteza pode afetar os

resultados

• Isso pode ser feito através de simulação (Monte Carlo

Simulation)

Page 6: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 6

IntroduçãoEntradas de um Modelo de Estimativa

•Tamanho (Pontos de Função, etc.)

•Características do Produto e do Projeto

•Esforço Estimado por Atividade

•etc.

Page 7: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 7

IntroduçãoModelando a Incerteza

•Permitir que as entradas variem segundo distribuições

estatísticas definidas

950 PF 1000 PF 1050 PF

Ex.: Tamanho

Distribuição Normal

Page 8: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 8

Um Exemplo Simples

Page 9: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 9

Um Exemplo SimplesO Problema

•Executar construção e teste unitário para 5 módulos

(classes, funções, subrotinas...)

•Assuma que o trabalho será feito sequencialmente

Page 10: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 10

Um Exemplo SimplesComo Fazer Melhor

•Com 100% de probabilidade de acerto, o prazo seria 48

dias

•Um prazo menor com 90% de probabilidade de acerto

seria suficiente

•Qual seria esse prazo?

Page 11: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 11

Um Exemplo SimplesModelando a Incerteza

Page 12: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 12

Um Exemplo SimplesMonte Carlo

•Simular 10000 vezes a execução da construção e teste

unitário dos 5 módulos

• Variar os prazos individuais conforme as respectivas

distribuições

• Avaliar a variação do prazo total

Page 13: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 13

Um Exemplo SimplesMonte Carlo

Page 14: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 14

Um Exemplo SimplesHistograma do Prazo Simulado

Page 15: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 15

Um Exemplo SimplesFrequencia Acumulada do Prazo Simulado

Prazo menor ou igual a 38 dias com 90% de probabilidade de acerto

38,4 – 90%

Page 16: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 16

Um Exemplo SimplesQuestionamento

•As distribuições utilizadas correspondem à realidade?

•A probabilidade de terminar antes é a mesma de terminar

depois?

Page 17: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 17

Um Exemplo SimplesQuestionamento

Page 18: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 18

Um Exemplo SimplesQuestionamento

•Simular 10000 vezes a execução da construção e teste

unitário dos 5 módulos, utilizando a distribuição lognormal

somente no caso anteriormente “normal”

Page 19: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 19

Um Exemplo SimplesQuestionamento

Page 20: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 20

Um Exemplo SimplesQuestionamento

O prazo agoraé 39 dias

Page 21: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 21

Outro Exemplo

Page 22: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 22

Outro ExemploProdutividade de 9 Projetos

Produtividade em Horas/Pontos de FunçãoNota: Dados fictícios

Page 23: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 23

Outro ExemploEstimando o Erro

MMRE = Mean MRE

MRE = (ABS(Estimado – Real)/Real) * 100

Page 24: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 24

Outro ExemploDados de Esforço

•Muitas vezes a qualidade dos dados de esforço é

questionável

•Como o erro nos dados de esforço afetaria o erro de

estimativa?

Page 25: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 25

Outro ExemploDados de Esforço

MMRE = Mean MRE

MRE = (ABS(Estimado – Real)/Real) * 100

Page 26: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 26

Outro ExemploDados de Esforço

O erro é inferior

a 40% com90% de

probabilidade.

O máximo é42%.

Page 27: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 27

Reamostragem

Page 28: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 28

ReamostragemA Idéia

•Monte Carlo exige que façamos suposições sobre as

distribuições

•A Reamostragem basea-se na replicação de uma amostra

(podendo haver repetições)

•As estatísticas baseadas em reamostragem aproximam-se

dos valores reais, conforme cresce o número de amostras

•A Reamostragem independe de suposições sobre as

distribuições

Page 29: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 29

ReamostragemUm Exemplo

•Construir um intervalo de confiança a 90% para a

produtividade do COBOL, com base no banco de dados

ISBSG V10

•Os dados: 615 projetos, produtividade média 20.5 H/PF

• Foram extraídas 10000 amostras dos 615 projetos (cada

amostra com 615 projetos, podendo haver repetições)

Page 30: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 30

ReamostragemIntervalo de Confiança - Percentil

18,3 22,8

Page 31: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 31

Faça Você Mesmo

Page 32: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 32

Faça Você MesmoSimulando a Distribuição Triangular com o Excel

Page 33: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 33

Faça Você MesmoSimulando a Distribuição Triangular com o Excel

Page 34: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 34

Faça Você MesmoSimulando a Distribuição Triangular com o Excel

Page 35: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 35

Faça Você MesmoSimulando a Distribuição Triangular com o Excel

Page 36: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 36

Faça Você MesmoA Linguagem/Ambiente “R”

• “R” é uma linguagem e um ambiente, específicos para cálculos e gráficos estatísticos

• “R” é software gratuito (“GNU General Public License”)

• “R” é uma implementação “free” da linguagem “S”desenvolvida nos Laboratórios Bell (produto comercial S-Plus)

• Existem vários livros, artigos e documentos descrevendo a linguagem “S” e o “R”

•Conheça e baixe o “R” em www.r-project.org

Page 37: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 37

Faça Você MesmoSimulando a Distribuição Triangular com o R

Page 38: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 38

Faça Você MesmoSimulando a Distribuição Triangular com o R

Page 39: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 39

Faça Você MesmoSimulando a Distribuição Triangular com o R

Page 40: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 40

Resumo

Page 41: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 41

ResumoO Que Vimos

•Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas

•A escolha das distribuições estatísticas é muito importante em Monte Carlo

•A Reamostragem funciona mesmo quando a distribuição édesconhecida

•É possível fazer muita coisa com Excel/VBA e mais ainda com o R

•Existem ferramentas profissionais para Monte Carlo (Crystal Ball, @Risk, XLSim, etc.)

Page 42: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 42

ResumoReferências

Page 43: Estimativas de Software Monte Carlo em · •Monte Carlo ajuda a identificar a variação nos resultados em função da incerteza nas entradas •A escolha das distribuições estatísticas

www.metricas.com.br 43

A PSM Transition Organization

[email protected]