![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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050517/5fa0de26bfcb0d271c56adb8/html5/thumbnails/42.jpg)
www.metricas.com.br 42
ResumoReferências