Monte Carlo em Estimativas de Software Mauricio Aguiar ti MÉTRICAS Ltda www.metricas.com.br 1
Agenda Introdução Um Exemplo Simples Outro Exemplo Reamostragem Faça Você Mesmo Resumo www.metricas.com.br 2
www.metricas.com.br 3 Introdução
Introdução Estimativas Estimativas são projeções quantitativas de características dos projetos, tais como: Tamanho do Produto Esforço Requerido Prazo Requerido Qualidade www.metricas.com.br 4
Introdução Incerteza 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) www.metricas.com.br 5
Introdução Entradas de um Modelo de Estimativa Tamanho (Pontos de Função, etc.) Características do Produto e do Projeto Esforço Estimado por Atividade etc. www.metricas.com.br 6
Introdução Modelando a Incerteza Permitir que as entradas variem segundo distribuições estatísticas definidas Ex.: Tamanho Distribuição Normal 950 PF 1000 PF 1050 PF www.metricas.com.br 7
www.metricas.com.br 8 Um Exemplo Simples
Um Exemplo Simples O Problema Executar construção e teste unitário para 5 módulos (classes, funções, subrotinas...) Assuma que o trabalho será feito sequencialmente www.metricas.com.br 9
Um Exemplo Simples Como 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? www.metricas.com.br 10
Um Exemplo Simples Modelando a Incerteza www.metricas.com.br 11
Um Exemplo Simples Monte 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 www.metricas.com.br 12
Um Exemplo Simples Monte Carlo www.metricas.com.br 13
Um Exemplo Simples Histograma do Prazo Simulado www.metricas.com.br 14
Um Exemplo Simples Frequencia Acumulada do Prazo Simulado 38,4 90% Prazo menor ou igual a 38 dias com 90% de probabilidade de acerto www.metricas.com.br 15
Um Exemplo Simples Questionamento As distribuições utilizadas correspondem à realidade? A probabilidade de terminar antes é a mesma de terminar depois? www.metricas.com.br 16
Um Exemplo Simples Questionamento www.metricas.com.br 17
Um Exemplo Simples Questionamento 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 www.metricas.com.br 18
Um Exemplo Simples Questionamento www.metricas.com.br 19
Um Exemplo Simples Questionamento O prazo agora é 39 dias www.metricas.com.br 20
www.metricas.com.br 21 Outro Exemplo
Outro Exemplo Produtividade de 9 Projetos Produtividade em Horas/Pontos de Função Nota: Dados fictícios www.metricas.com.br 22
Outro Exemplo Estimando o Erro MRE = (ABS(Estimado Real)/Real) * 100 MMRE = Mean MRE www.metricas.com.br 23
Outro Exemplo Dados 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? www.metricas.com.br 24
Outro Exemplo Dados de Esforço MRE = (ABS(Estimado Real)/Real) * 100 MMRE = Mean MRE www.metricas.com.br 25
Outro Exemplo Dados de Esforço O erro éinferior a 40% com 90% de probabilidade. O máximo é 42%. www.metricas.com.br 26
www.metricas.com.br 27 Reamostragem
Reamostragem A 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 www.metricas.com.br 28
Reamostragem Um 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) www.metricas.com.br 29
Reamostragem Intervalo de Confiança - Percentil 18,3 22,8 www.metricas.com.br 30
www.metricas.com.br 31 Faça Você Mesmo
Faça Você Mesmo Simulando a Distribuição Triangular com o Excel www.metricas.com.br 32
Faça Você Mesmo Simulando a Distribuição Triangular com o Excel www.metricas.com.br 33
Faça Você Mesmo Simulando a Distribuição Triangular com o Excel www.metricas.com.br 34
Faça Você Mesmo Simulando a Distribuição Triangular com o Excel www.metricas.com.br 35
Faça Você Mesmo A 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 www.metricas.com.br 36
Faça Você Mesmo Simulando a Distribuição Triangular com o R www.metricas.com.br 37
Faça Você Mesmo Simulando a Distribuição Triangular com o R www.metricas.com.br 38
Faça Você Mesmo Simulando a Distribuição Triangular com o R www.metricas.com.br 39
www.metricas.com.br 40 Resumo
Resumo O 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.) www.metricas.com.br 41
Resumo Referências www.metricas.com.br 42
A PSM Transition Organization info@metricas.com.br www.metricas.com.br 43