Professional Documents
Culture Documents
2011
COCOMO II
Breve historia
El modelo COCOMO ha evolucionado debido a los constantes avances en
el mercado de desarrollo de software.
En el ao 1981 Barry Boehm publica el modelo COCOMO, acorde a las prcticas de desarrollo de
software de aquel momento [Boehm 1981]. Durante la dcada de los 80, el modelo se continu
perfeccionando y consolidando, siendo el modelo de estimacin de costos ms ampliamente
utilizado en el mundo.
En el ao 1983 se introduce el lenguaje de programacin Ada (American National Standard
Institute) para reducir los costos de desarrollo de grandes sistemas. Algunos aspectos de Ada
provocaron un gran impacto en los costos de desarrollo y mantenimiento, as Barry Boehm y
Walker Royce definieron un modelo revisado, llamado Ada COCOMO [Boehm 1989].
En los 90, las tcnicas de desarrollo de software cambiaron dramticamente, surgieron la necesidad
de reusar software existente, la construccin de sistemas usando
libreras, etc. Estos cambios comenzaron a generar problemas en la
aplicacin del modelo COCOMO. La solucin fue reinventar el
modelo. Despus de algunos aos y de un esfuerzo combinado de
USC-CSE (University of Southern California- Center For Software
Engineering), IRUS at UC Irvine y organizaciones privadas, aparece
COCOMO II. Las incorporaciones a este modelo lo reforzaron e
hicieron apto para ser aplicado en proyectos vinculados a
tecnologas como orientacin a objetos, desarrollo incremental,
composicin de aplicacin, y reingeniera. COCOMO II consta de tres
modelos, cada uno de los cuales ofrece una precisin acorde a cada
etapa de desarrollo del proyecto. Enunciados en orden creciente de
fidelidad son, modelo de Composicin de Aplicacin, Diseo Temprano y Post Arquitectura.
El USC- CSE implement los dos ltimos modelos en una herramienta de software. Esta
herramienta le permite al planificador hacer rpidamente una exploracin de las posibilidades de
un proyecto, analizando qu efectos provoca el ajuste de requerimientos, recursos y staff sobre la
estimacin de costos y tiempos.
Para evitar confusin el modelo COCOMO original fue redesignado con el nombre COCOMO 81. As
todas las referencias de COCOMO encontradas en la literatura antes de 1995 se refieren a lo que
ahora llamamos COCOMO81. La mayora de las referencias publicadas a partir de 1995 se refieren
a COCOMO II.
2011
Cocomo II
Es un modelo de estimacin de costes.
COnstrucive COst MOdel (MOdelo COnstructivo de Costo.
Creado por Barry W. Boehm.
Los objetivos principales que se tuvieron en cuenta para construir el modelo COCOMO II fueron:
Desarrollar un modelo de estimacin de costo y cronograma de proyectos de software que
se adaptara tanto a las prcticas de desarrollo de la dcada del 90 como a las futuras.
Construir una base de datos de proyectos de software que permitiera la calibracin
continua del modelo, y as incrementar la precisin en la estimacin.
Implementar una herramienta de software que soportara el modelo.
Proveer un marco analtico cuantitativo y un conjunto de herramientas y tcnicas que
evaluaran el impacto de las mejoras tecnolgicas de software sobre los costos y tiempos en
las diferentes etapas del ciclo de vida de desarrollo.
COCOMO II est compuesto por tres modelos denominados: Composicin de Aplicacin, Diseo
Temprano y Post-Arquitectura.
stos surgen en respuesta a la diversidad del mercado actual y futuro de desarrollo de software.
Esta diversidad podra representarse con el siguiente esquema
2011
Generadores de Aplicaciones:
En este sector operan firmas como Lotus, Microsoft, Novell, Borland con el objetivo de
crear mdulos pre-empaquetados que sern usados por usuarios finales y
programadores.
2011
1. Modelo I:
Nivel inicial de prototipado - Modelo Composicin de Aplicacin.
El esfuerzo necesario para concretar un proyecto de desarrollo de software, cualquiera sea el
modelo empleado, se expresa en meses/persona (PM) y representa los meses de trabajo de
una persona fulltime, requeridos para desarrollar el proyecto.
Estimacin del Esfuerzo
Estimaciones realizadas con puntos de objeto y una frmula simple para el clculo del esfuerzo
Soporta proyectos con prototipado y proyectos que hacen uso intensivo de la
reutilizacin.
Basado en estimaciones estndar de la productividad del desarrollador en puntosobjeto/mes.
Tiene en cuenta el uso de herramientas CASE
La frmula es:
.
Clculo de Esfuerzo
PM = ( NOP * (1 - %reuse/100 ) ) / PROD
Donde:
NOP (Nuevos Puntos Objeto): Tamao del nuevo software a desarrollar expresado
en Puntos Objeto y se calcula de la siguiente manera:
%reuso: Porcentaje de reuso que se espera lograr en el proyecto
PROD: Es la productividad promedio determinada a partir del anlisis de datos de
proyectos en [Banker 1994], mostrada en
2. Modelo II:
Modelo para Diseo Temprano (EDM)
Este modelo se usa en las etapas tempranas de un proyecto de software, cuando se conoce
muy poco del tamao del producto a ser desarrollado, de la naturaleza de la plataforma, del
personal a ser incorporado al proyecto o detalles especficos del proceso a utilizar. Este modelo
podra emplearse tanto en productos desarrollados en sectores de Generadores de Aplicacin,
Sistemas Integrados o Infraestructura.
El modelo de Diseo Temprano ajusta el esfuerzo nominal usando siete factores de costo. La
frmula para el clculo del esfuerzo es la siguiente:
2011
Donde
PMEstimado: es el esfuerzo nominal ajustado por 7 factores, que reflejan otros aspectos
propios del proyecto que afectan al esfuerzo necesario para la ejecucin del mismo.
KSLOC: es el tamao del software a desarrollar expresado en miles de lneas de cdigo
fuente.
A es una constante que captura los efectos lineales sobre el esfuerzo de acuerdo a la
variacin del tamao, (A=2.94).
B es el factor exponencial de escala, toma en cuenta las caractersticas relacionadas con las
economas y deseconomas de escala producidas cuando un proyecto de software
incrementa su tamao.
EMi corresponde a los factores de costo que tienen un efecto multiplicativo sobre el
esfuerzo, llamados Multiplicadores de Esfuerzo (Effort Multipliers). Cada factor se puede
clasificar en seis niveles diferentes que expresan el impacto del multiplicador sobre el
esfuerzo de desarrollo. Esta escala vara desde un nivel Extra Bajo hasta un nivel Extra Alto.
Cada nivel tiene un peso asociado. El peso promedio o nominal es 1.0.
Si el factor provoca un efecto nocivo en el esfuerzo de un proyecto, el valor del
multiplicador correspondiente ser mayor que 1.0, caso contrario el multiplicador ser
inferior a 1.0.
Los multiplicadores reflejan la capacidad de los desarrolladores, requerimientos no funcionales,
la familiaridad con la plataforma de desarrollo, etc.
1. Abrev. Descripcin
Ponderacin
2. RCPX
Fiabilidad de producto y complejidad 0 a 1
3. RUSE Reutilizacin requerida
0a1
4. PDIF
Dificultad de la plataforma
0a1
5. PREX
Experiencia del personal
0a1
6. PERS
Capacidad del personal
0a1
7. SCED
Agenda requerida
0a1
8. FCIL
Facilidades de soporte de grupo
0a1
PM refleja la cantidad de cdigo generada automticamente
2011
3. Modelo III:
Nivel post-arquitectura.
Es el modelo de estimacin ms detallado y se aplica cuando la arquitectura del proyecto est
completamente definida. Este modelo se aplica durante el desarrollo y mantenimiento de
productos de software incluidos en las reas de Sistemas Integrados, Infraestructura y
Generadores de Aplicaciones.
El esfuerzo nominal se ajusta usando 17 factores multiplicadores de esfuerzo. El mayor nmero
de multiplicadores permite analizar con ms exactitud el conocimiento disponible en las
ltimas etapas de desarrollo, ajustando el modelo de tal forma que refleje fielmente el
producto de software bajo desarrollo. La frmula para el clculo del esfuerzo es la siguiente:
Estimacin de Esfuerzo
Personas Mes Nominales
.
(A= 2.94)
Factor de Escala
B = 0,91 + 0,01 Wi
Clculo de Esfuerzo
PM = PMnominal * EMi
2011
N Factores de escala Fi
Abreviatura
1.
2.
3.
4.
5.
PREC
FLEX
RESL
TEAM
PMAT
Precedentes
Flexibilidad de desarrollo
Resolucin de arquitectura riesgo
Cohesin del equipo de trabajo
Madurez del Proceso
Tabla de Puntuacin:
Definicin
Caractersticas
Optimizado
0.00
Mejoramiento
realimentando al proceso
Productividad y calidad
Proceso medido
Gestionado
cuantitativamente
1.56
Definido
3.12
Proceso
definido
institucionalizado
Repetible
4.68
Inicial
Superior 6.24
Inferior 7.80
2011
Proceso dependiente de
individuo
Catico - Riesgo
2011
Las Medidas de complejidad del mdulo versus Tipo de mdulo proporciona la escala de
valores CPLX de Cocomo II. La complejidad se decide en 5 reas: Funcionamiento de
control, Funcionamiento computacional, Funcionamiento de Dispositivos dependientes,
Funcionamiento del sector de datos y Funcionamiento del Gestor de Interfaz de Usuario.
Se seleccionar el rea o combinacin de reas que caracterizan al producto o a un
subsistema del producto. La medida de complejidad es la media subjetiva de estas reas.
3.1. Funcionamiento de control
Muy Bajo: cdigo con unos pocos operadores de programacin no anidados.
Bajo: anidamiento sencillo de operadores de programacin estructurados.
Nominal: Mayora de anidamiento simple.
Alto: Operadores de programacin estructurados altamente anidados
compuestos de muchos predicados.
Muy Alto: Codificacin recursiva. Manejo de interrupciones con prioridades
fijadas. Sincronizacin de tareas, retorno de llamadas complejas, proceso
distribuido, etc.
Extra Alto: Mltiples recursos de planificacin con cambio dinmico de
prioridades. Control a nivel de microcdigo. Control distribuido en tiempo real.
3.2. Funcionamiento computacional
Muy Bajo: Evaluacin de expresiones simples, por ejemplo
Bajo: Evaluacin de expresiones de nivel moderado: p.ej
Nominal: Uso de rutinas matemticas y estadsticas estndar.
Alto: Anlisis numrico bsico: ecuaciones diferenciales ordinarias.
Muy Alto: Anlisis numrico difcil pero estructurado: ecuaciones de matrices,
ecuaciones diferenciales parciales.
Extra Alto: Anlisis numrico difcil y sin estructurar.
9
2011
10
2011
11
2011
12
Bajo
Nominal
Alto
Muy alto
Extra alto
RELY
0.75
0.88
1.00
1.15
1.39
1.00
DATA
1.00
0.93
1.00
1.09
1.19
1.00
CPLX
0.75
0.88
1.00
1.15
1.30
1.66
RUSE
1.00
0.91
1.00
1.14
1.29
1.49
DOCU
0.89
0.95
1.00
1.06
1.13
1.00
TIME
1.00
1.00
1.00
1.11
1.31
1.67
STOR
1.00
1.00
1.00
1.06
1.21
1..57
PVOL
1.00
0.87
1.00
1.15
1.30
1.00
ACAP
1.50
1.22
1.00
0.83
0.67
1.00
PCAP
1.37
1.16
1.00
0.87
0.74
1.00
PCON
1.24
1.10
1.00
0.92
0.84
1.00
AEXP
1.22
1.10
1.00
0.89
0.81
1.00
PEXP
1.25
1.12
1.00
0.88
0.81
1.00
LTEX
1.22
1.10
1.00
0.91
0.84
1.00
TOOL
1.24
1.12
1.00
0.86
0.72
1.00
SITE
1.25
1.10
1.00
0.92
0.84
1.00
SCED
1.29
1.10
1.00
1.00
1.00
1.00
Cantidad de Personal
CH= E/Tdes
13
2011
2011
EJERCICIOS
Para un software se ha hallado que el total de Puntos de Funcin Ajustados fue de 349.6
TLDC = N medio de LDC de x lenguaje de programacin x PFA/1000
TLDC= 53 x 349.6 / 1000
TLDC= 18.52
Determinacin de los factores de escala
E= A * (Tamao)B X EMi
E= Esfuerzo nominal
Tamao= Puntos de Funcin Ajustados
14