Juliana Jenny Kolb
Home > Engenharia de Software > Sumário > Projeto de Software > Métricas
COCOMO II
O Modelo COCOMO II (CII) teve como precursor o COCOMO (+), também conhecido como COCOMO 81. Devido à idade dos projetos que embasaram o modelo, assim como sua incapacidade de lidar com ciclos de vida iterativos e com a utilização de componentes Commercial-Off-The-Shelf (COTS), o COCOMO 81 é atualmente considerado obsoleto, tendo sido substituído por sua versão II, publicada em 2000. O COCOMO II aplicado ao RUP estima o esforço, prazo e equipe média para as fases de Elaboration e Construction. As fases de Inception e Transition são estimadas como percentuais da soma Elaboration+Construction. Os marcos que caracterizam o escopo abrangido pelo CII são:
– 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 Inception.
– IOC – Initial Operational Capability – Ponto no qual é concluído o desenvolvimento do software, estando o sistema pronto para entrega e teste final.
O COCOMO II produz estimativas para a região do ciclo de vida do RUP situada entre os marcos LCO e IOC. Estabelecido o escopo de estimativa do CII, vejamos como o modelo prevê o Esforço.
O COCOMO II define o Esforço (PM = Persons-Month), em pessoas-mês, como:
PM = A * (Size^E) * Produtório (i=1 até n, EM(i)) [a], onde
E = B + 0,001 * Somatório (j=1 até 5, SF(j)) [b].
A = Constante que deve ser calibrada para o ambiente, a partir de dados históricos.
Size = Tamanho do software em LOC. Caso o tamanho seja dado em Pontos de Função, estimar a quantidade de LOC a partir de tabelas de backfiring, que permitem converter Pontos de Função para LOC.
EM(i) = Effort Multipliers = Até 17 fatores que irão adequar o modelo ao projeto específico. A quantidade de fatores utilizados dependerá do momento no qual será feita a estimativa.
No início do projeto e até o final da Elaboration utiliza-se o Early Design Model, com apenas 7 multiplicadores. Após a definição da arquitetura deve ser utilizado o Post-Architecture Model, com 16 multiplicadores.
Os multiplicadores referem-se a fatores relativos ao produto, à plataforma, ao pessoal e ao projeto. Um fator freqüentemente considerado em separado é aquele que diz respeito à compressão do prazo de desenvolvimento, ou seja, a exigência de que o projeto seja concluído antes do que seria o prazo normal. O significado de cada um dos fatores e a orientação para a sua determinação podem ser encontrados em:
E = Expoente do Esforço, dado pela fórmula [b] acima.
B = Constante que deve ser calibrada 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. Deve-se tomar cuidado ao ajustar estes fatores, uma vez que o impacto dos mesmos sobre as estimativas é exponencial.
Por sua vez, o Prazo (TDEV), em meses, é calculado como:
TDEV = C * PM^F [c], onde
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. Quando cabível, deverá ser aplicada compressão de prazo sobre a fórmula [c] acima.
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.
Calibração do Modelo
O Modelo COCOMO II foi originalmente calibrado com dados de 161 projetos. Os mesmos foram selecionados dentre mais de 2000 projetos candidatos. Para cada um dos 161 projetos escolhidos foram realizadas entrevistas e visitas, a fim de garantir a consistência das definições e suposições do modelo. O modelo nominal vem calibrado para esses projetos, cuja natureza pode diferir daquele que se deseja estimar.
Embora o COCOMO II 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. Os dados históricos selecionados devem ser validados antes de sua utilização, alimentando-os no software escolhido, calculando os coeficientes calibrados e, posteriormente, verificando se a diferença percentual (estimado – real)/estimado encontra-se compatível com o nível de erro pretendido para as estimativas. Devido ao seu impacto exponencial, não é recomendável calibrar os coeficientes B e D nas equações [b] e [d] acima quando houver menos de 10 projetos disponíveis para a calibração.
Roteiro para Estimativa
A seguir, fornecemos um roteiro simplificado para a obtenção de estimativas com o COCOMO II no início do projeto, utilizando o software USC CII:
(1) Calibrar o COCOMO II 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 COCOMO II ;
(3) Determinar os 7 Effort Multipliers do Early Design Model e entrar com eles no USC COCOMO II ;
(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).
Referência Bibliográfica:
ESTIMANDO OS PROJETOS COM COCOMO II (PDF Download Available). Available from: https://www.researchgate.net/publication/265360773_ESTIMANDO_OS_PROJETOS_COM_COCOMO_II [accessed Apr 11 2018].