Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 COnstructive COst MOdel (COCOMO) Prof. Maria Augusta Vieira Nelson Prof. Poliana Aparecida Corrêa de Oliveira PUC Minas Bibliografia � Pressman, Roger S. Engenharia de Software. 5a ed. Rio de Janeiro: McGraw Hill. 2002. � capítulo 5 � Pfleeger, Shari Lawrence. Engenharia de Software: Teoria e Prática. 2a ed. São Paulo: Prentice Hall. 2004. � capítulo 3 Modelos paramétricos � Assumem a existência de uma relação matemática entre tamanho, esforço e prazo � Os relacionamentos são baseados em suposições teóricas e/ou dados históricos � COCOMO � SLiM Outros modelos � Modelos baseados em atividades � Estimativa bottom-up, enumerar todas as atividades e estimar esforço e prazo para cada uma delas � Analogia � Baseada na comparação de características do projeto com as de outros projetos concluídos � Relações simples de estimativa � Simplificação dos modelos paramétricos � Relações matemáticas simples aplicadas sobre dados históricos Estrutura dos modelos de estimativa � Derivado usando análise de regressão de dados coletados em projetos de softwares anteriores � E = A + B X (ev)c � A, B e C são constantes derivadas empiricamente � E = esforço (pessoa-mês) � ev = variável de estimativa (LOC ou PF) � Componente de ajuste ao projeto que permite que E seja adequado a outras características do projeto (complexidade, experiência da equipe, ambiente de desenvolvimento) Estrutura dos modelos de estimativa � Alguns modelos � E = 5,2 x (KLOC)0,91 modelo de Walston-Felix � E = 5,5 + 0,73 x (KLOC)1,16 modelo de Bailey-Basili � E = 3,2 x (KLOC)1,05 modelo de Boehm simples � E = 5,288 x (KLOC) 1,017 modelo de Doty, KLOC>9 2 Estrutura dos modelos de estimativa � Alguns modelos � E = -91,4 + 0,355 FP modelo de Albrecht e Gaffney � E = -37 + 0,96 FP modelo de Kemerer � E = -12,88 + 0,405 FP modelo de regressão para pequenos projetos O que é o COCOMO? � É um modelo estatístico de estimativa de tamanho, esforço, prazo, custo e recursos humanos � Criado por Barry Boehm em 1981 � Baseado em uma análise de 63 projetos de software � Baseado no modelo em cascata � Revisado em 1996 – COCOMO II (CII) � O modelo de estimativa mais utilizado na indústria O que é o COCOMO? � Foi e continua sendo desenvolvido pela University of Southern California (USC) � Implementado e disponibilizado em uma ferramenta gratuita � Adicionalmente, existem várias implementações sofisticadas do CII � Projeto mantido por diversas organizações filiadas, dentre as quais está a Rational Modos de desenvolvimento � O COCOMO considera três modos de desenvolvimento: � Modo orgânico - aplicável a ambientes de desenvolvimento estáveis, com pouca inovação e a projetos com equipes de dimensão relativamente pequena; � Modo semi-destacado - aplicável a projetos com características entre o modo orgânico e o embutido � Modo embutido - aplicável no desenvolvimento de sistemas complexos embutidos em hardware (ex.: sistemas de tempo-real), com muita inovação, com restrições severas e/ou com requisitos muito voláteis. Modos de desenvolvimento � O COCOMO considerada três modos de desenvolvimento: � Modo orgânico � esforço = 2.4 * KLOC1.05 pessoas-mês � M = 2.5 * esforço0.38 meses � Modo semi-destacado � esforço = 3.0 * KLOC1.12 pessoas-mês � M = 2.5 * esforço0.35 meses � Modo embutido � esforço = 3.6 * KLOC1.20 pessoas-mês � M = 2.5 * esforço0.32 meses Esforço em função de KLOC COCOMO Models 0 1000 2000 3000 4000 5000 6000 7000 0 100 200 300 400 500 600 Thousands of lines of code P e r s o n -m o n th s Organic Semidetached Embedded 3 Fatores Influenciadores do Custo Fator Muito Baixa Baixa Média Alta Muito Alta Extra Alta Fatores relativos ao produto Nível de confiabilidade exigido 0.75 0.88 1.00 1.15 1.40 Dimensão da base de dados 0.94 1.00 1.08 1.16 Complexidade do Produto 0.70 0.85 1.00 1.15 1.30 1.65 Suporte Computacional Restrições ao tempo de execução 1.00 1.11 1.30 1.66 Restrições ao espaço de armazenamento 1.00 1.06 1.21 1.56 Volatilidade da máquina virtual 0.87 1.00 1.15 1.30 Tempo de resposta do computador 0.87 1.00 1.07 1.15 Fatores Influenciadores do Custo Fator Muito Baixa Baixa Média Alta Muito Alta Extra Alta Pessoal Capacidade dos Analistas 1.46 1.19 1.00 0.86 0.71 Experiência no domínio da aplicação 1.29 1.13 1.00 0.91 0.82 Capacidade dos programadores 1.42 1.17 1.00 0.86 0.70 Experiência utilização da máquina virtual 1.21 1.10 1.00 0.90 Experiência na linguagem de programação 1.14 1.07 1.00 0.95 Processo Adoção de técnicas modernas de programação 1.24 1.10 1.00 0.91 0.82 Uso de ferramentas atuais 1.24 1.10 1.00 0.91 0.83 Cumprimento com prazo definido 1.23 1.08 1.00 1.04 1.10 Aplicado ao RUP � Pode ser usado para esforço, prazo e equipe para as fases de elaboração e construção � Concepção e transição são baseadas em percentuais da soma elaboração+construção � As estimativas são feitas entre os marcos: � LCO – Lyfe Cycle Objectives – Ponto no qual é escolhida uma possível arquitetura para o projeto (não necessariamente aquela que será de fato utilizada). Ocorre ao final da concepção. � IOC – Initial Operational Capability – Ponto no qual é concluído o desenvolvimento do software, estando o sistema pronto para entrega e teste final. Aplicado ao RUP � Esforço (PM = Pessoa-Mês) � PM = A * (Size^E) * Produtório (i=1 até n, EM(i)) [a] � A = Constante que deve ser calibrada para o ambiente, a partir de dados históricos � Size = Tamanho do software em LOC (em caso de PF, estimar a quantidade de LOC a partir de tabelas de backfiring � EM(i) = Effort Multipliers = Até 17 fatores que irão adequar o modelo ao projeto específico Aplicado ao RUP � Prazo (TDEV), em meses � TDEV = C * PM^F [c] � F = D + (0,2 * 0,01) * Somatório (j=1 até 5, SF(j)) [d] � C e D são constantes que devem ser calibradas a partir de dados históricos � SF(j) = Scale Factors = Cinco fatores que irão ajustar o expoente do Esforço, de modo a adequar a fórmula a um projeto específico � A Equipe Média é obtida através da divisão do Esforço pelo Prazo � O CII considera um mês equivalente a 152 horas de trabalho, já excluídos fins de semana e feriados. Este valor pode ser modificado para um ambiente específico Exemplo � Precisa-se produzir 10 KLOC � Projeto pequeno � Experientes no desenvolvimento � Usar modelo orgânico � esforço = 2.4 * 101.05 = 26.9 pessoas-mês � tempo de desenvolvimento = 2.5 * 26.90.38= 8.7 meses � pessoas necessárias em média = 26.9 PM/ 8.7 meses = 3 pessoas 4 Exemplo � Outras características do projeto � capacidade dos analistas é baixa, 1.19 � experiência no domínio da aplicação é baixa, 1.13 � capacidade dos programadores é baixa, 1.17 � experiência na linguagem de programação é alta, 0.95 � Fator de ajuste 1.19*1.13*1.17*.95 = 1.49 � PM = 26.9*1.49 = 40 pessoas-mês � Tempo de desenvolvimento = 2.5 * 400.38 = 10.2 meses � Pessoas necessárias em média = 40 PM/ 10.2 meses = 3.9 pessoas Calibração do modelo � Originalmente calibrado com dados de 161 projetos selecionados dentre mais de 2000 projetos candidatos � Embora o CII possa ser executado com os parâmetros nominais, sua correta utilização pressupõe a calibração para o ambiente-alvo � Na ausência de dados históricos disponíveis para o ambiente-alvo em questão, devem ser selecionados projetos equivalentes para efetuar a calibração Calibração do modelo � Calcula-se os coeficientes calibrados e, posteriormente, verifica-se a diferença percentual (estimado-real) /estimado é compatível com o nível de erro pretendido para as estimativasRoteiro para estimativa � (1) Calibrar o CII para a base histórica de projetos obtida, salvando os coeficientes obtidos em um modelo; (2) Caso a organização-alvo não trabalhe com LOC, estimar o tamanho do aplicativo em Pontos de Função, utilizando o método da NESMA, obtendo a quantidade de LOC a partir de backfiring, utilizando a tabela contida no USC CII; � (3) Determinar os 7 Effort Multipliers do Early Design Model e entrar com eles no USC CII; � (4) Determinar o Esforço, o Prazo e a Equipe Média; � (5) Obter a distribuição do Esforço e Prazo por fase do projeto (Inception, Elaboration, Construction e Transition, se for utilizado o RUP – notar que o USC CII também trabalha com o modelo Waterfall - Cascata). CMMI � O modelo CoCoMo II contribui para o atendimento das práticas relativas à estimativa de esforço e custo, que se encontram nas Áreas de Processo de Planejamento de Projetos e de Monitoramento e Controle de Projetos, ambas de nível 2 do CMMI (SEI 2004), considerando representação por estágios Ferramenta gratuita USC COCOMO II 5 Validando as estimativas � É recomendável utilizar mais de uma abordagem nas estimativas � ISBSG (International Software Benchmarking Standards Group Limited) - www.isbsg.org � A versão 7 contem cerca de 1300 projetos (mas não é gratuito, desconto para filiados IFPUG)
Compartilhar