Post on 07-Feb-2023
¿Qué es COCOMO II?
COCOMO original se publicó por primera vez en 1981 por Barry Boehm y reflejaba las prácticas en desarrollo de software de aquel momento.
COCOMO II, es un modelo de estimación de costos, esfuerzo y tiempo que refleja los cambios en la práctica de desarrollo de software profesional que surgido a partir de los años 70.
COCOMO II es un modelo que está asociado a los ciclos de vida modernos.
Familia de modelos COCOMO II
Para apoyar a los distintos sectores del mercado software, COCOMO II proporciona una familia de modelos de estimación de costos de software cada vez más detallado y tiene en cuenta las necesidades de cada sector y el tipo de información disponible para sostener la estimación del costo software.
Familia de modelos COCOMO II
El modelo de Composición de Aplicaciones. Indicado para proyectos construidos con herramientas modernas de construcción de interfaces gráficos para usuario.
Factores de calidad de McCall
El modelo de Diseño anticipado. Este modelo puede utilizarse para obtener estimaciones aproximadas del costo de un proyecto antes de que estédeterminada por completo su arquitectura. Está basado en Punto de Función sin ajustar o KSLOC (Miles de Líneas de Código Fuente).
Factores de calidad de McCall
El modelo Post-Arquitectura. Este es el modelo COCOMO II más detallado. Se utiliza una vez que se ha desarrollado por completo la arquitectura del proyecto.
El Modelo de Diseño Anticipado y Post-Arquitectura
Los modelos de Diseño Anticipado y Post-Arquitectura se basan en la misma filosofía a la hora de proporcionar una estimación.
La fórmula básica para obtener una estimación de esfuerzo con ambos modelos es:
Esfuerzo = 2.94 * EAF * (Tamaño SLOC)E
Estimación de esfuerzoLa medida está en unidades de líneas de código fuente(KSLOC). Esto se deriva de la medida de módulos software que constituirán el programa de aplicación, puede estimarsetambién a partir de Puntos de Función sin ajustar convirtiendoa SLOC y luego dividiendo por 1000.
EAF e el factor de ajuste de esfuerzo derivado de los driversde costo
El factor de escala (exponencial E), explica el ahorro ó gastorelativo de escala encontrado en proyectos software de distintos tamaños.
La constante 2.94, se usa para cortar los efectosmultiplicativos de esfuerzo en proyectos de tamañoincremental.
Estimación de esfuerzo: tamaño
Variable Tamaño,
Tamaño = Tamaño X [1 + BRAK/100]COCOMO II utiliza un porcentaje de Rotura BRAK para ajustar el tamaño eficaz del producto. La rotura refleja la volatilidad de los requisitos en un proyecto. Es el porcentaje de código desperdiciadodebido a la volatilidad de los requisitos. El factor BRAK no se usa en el Modelo de Composición de Aplicaciones donde se espera un cierto grado de iteración en el producto y se incluye en la calibración de datos.
Estimación de esfuerzo: tamaño
Por ejemplo, un proyecto que parte de 100.000 instrucciones (Size= 100.000) perodesecha el equivalente a 20.000 instrucciones tiene un valor de BRAK de 20. Esto debe usarse para ajustar el tamañoefectivo del proyecto a 120.000 instrucciones para una estimaciónCOCOMO II.
( Size = 100.000 x [1 + ( 20/100 )] )
Estimación de esfuerzo: tamaño
En la nueva versión COCOMO II el tamaño de KSLOC puede estimarsetambién a partir de Puntos de Funciónsin ajustar convirtiendo a SLOC y luego dividiendo por 1000.
Ejem: 120,000/1000 = 120
Estimación de esfuerzo: tamaño
Por ejemplo, si al aplicar el procedimiento de cálculo para puntos de función sin ajustar se obtiene un resultado de 165 UNFP (Puntos de Función sin Ajustar) y el proyecto va a desarrollarseen el lenguaje de programación C++:
165 UNFP x 29 = 4785 SLOC
Haciendo la conversión mencionada anteriormente:
4785/1000= 4.785 KSLOC
Estimación de esfuerzo: Variable E
Variable E (ahorro y gasto software de escala).
E = 0.91+ 0.01 x ∑5 SFjJ=1
SF = Factores de Escalamiento
Factores de escalamiento SFFactor de Escala
Muy bajo Bajo Nominal Alto Muy Alto
Extra Alto
PRECDesarrollo previos similares
6.20 Totalmente diferente
4.96Muy diferente
3.72Aspectos novedosos
2.46Bastante parecido
1.24Muy diferente
0.00Nuevo desarrollo es idéntico a previos
FLEXFlexibilidad en el proceso desarrollo en relación con los requerimientos
5.07Riguroso
4.05Flexibilidad ocasional
3.04Cierta flexibilidad
2.03Acuerdo general
1.01Cierto acuerdo
0.00Metas son generales
RESLManejo de riesgos de arquitectura
7.07 5.65 4.24 2.83 1.41 0.00
Factores de escalamiento SF:RESL Manejo de riesgos de arquitectura
Factor de escala
Valor Descripción
Muy bajo 7.07
5.65
Plan no identifica los riesgos críticos, calendario y presupuesto no toma en cuenta los riesgos, arquitecturapuede tomarse hasta el 5% del esfuerzo de desarrollo, hay problemas con la disponibilidad del arquitecto (disp. menordel 20%), herramientas no disponibles para resolver/mitigarriesgos y verificar especif. de la arq., extrema incertidumbreentrega, interfaz con usuario, tecnología, desempeño, másde 10 riesgos críticos.
Bajo Plan identifica pocos riesgos críticos y establece hitos pararesolverlos, calendario y presupuesto toma en cuenta pocosriesgos, arquitectura puede tomarse hasta el 10% del esfuerzo de desarrollo, hay problemas con la disponibilidaddel arquitecto (disp. menor al 40%), pocas herramientasdisponibles para resolver/mitigar riesgos y verificar especif. de la arq., significativa incertidumbre entrega, interfaz con usuario, tecnología, desempeño, entre 5-10 riesgos críticos
Factores de escalamiento SF: RESL Manejo de riesgos de arquitectura
Factor de escala
Valor Descripción
Nominal 4.24
2.83
Plan identifica algunos de los riesgos críticos y establecehitos para resolverlos, calendario y presupuesto toma en cuenta algunos de los riesgos, arquitectura puede tomarsehasta el 17% del esfuerzo de desarrollo, hay problemas con la disponibilidad del arquitecto, algo de herramientasdisponibles para resolver/mitigar riesgos y verificar especif. de la arq., considerable incertidumbre entrega, interfaz con usuario, tecnología, desempeño, entre 2-4 riesgos críticos.
Alto Plan identifica muchos de los riesgos críticos y establecehitos para resolverlos, calendario y presupuestogeneralmente toma en cuenta riesgos, arquitectura puede tomarse hasta el 25% del esfuerzo de desarrollo, herramientas regularmente disponibles pararesolver/mitigar riesgos y verificar especif. de la arq., algo de incertidumbre entrega, interfaz con usuario, tecnología, desempeño, no más de un riesgo crítico.
Factores de escalamiento SF:RESL Manejo de riesgos de arquitectura
Factor de escala
Valor Descripción
Muy Alto 1.41
0.00
Plan identifica la mayoría de los riesgos críticos y establecehitos para resolverlos, calendario y presupuesto toma en cuenta la mayoría de los riesgos, arquitectura puedetomarse hasta el 33% del esfuerzo de desarrollo, herramientas disponibles para resolver/mitigar mayoría de riesgos y verificar especif. de la arq., poca incertidumbreentrega, interfaz con usuario, tecnología, desempeño, riesgos no son críticos.
Extra Alto Plan identifica todos los riesgos críticos y establece hitospara resolverlos, calendario y presupuesto toma en cuentariesgos, arquitectura puede tomarse hasta el 40% del esfuerzo de desarrollo, herramientas disponbles pararesolver/mitigar riesgos y verificar especificaciones de la arquitectura, muy poca incertidumbre entrega, interfaz con usuario, tecnología, desempeño, riesgos no son críticos;
Factores de escalamiento SF:TEAM Cohesión del equipo de desarrollo
Factor de escala
Valor Descripción
Muy bajo 5.48
4.38
Interacciones difíciles, objetivos y culturas de accionistaspoco consistentes, poca habilidad y disponibilidad de accionistas para acomodar objetivos de otros accionistas, nada de experiencia previa operando como equipo, visión y compromisos nada compartidos.
Bajo Interacciones difíciles, objetivos y culturas de accionistasalgo consistentes, algo habilidad y disponibilidad de accionistas para acomodar objetivos de otros accionistas, poca de experiencia previa operando como equipo, visión y
compromisos nada compartidos.
Factores de escalamiento SF:TEAM Cohesión del equipo de desarrollo
Factor de escala
Valor Descripción
Nominal 3.29
2.19
Interacciones básicas cooperativas, objetivos y culturas de accionistas básicamente consistentes, habilidad y disponibilidad básica de accionistas para acomodar objetivosde otros accionistas, poca experiencia previa operandocomo equipo, visión y compromisos poco compartidos.
Alto Interaccones principalmente cooperativas, objetivos y culturas de accionistas considerablemente consistentes, considerable habilidad y disponibilidad de accionistas paraacomodar objetivos de otros accionistas, medianaexperiencia previa operando como equipo, visión y compromisos medianamente compartidos.
Factores de escalamiento SF:TEAM Cohesión del equipo de desarrollo
Factor de escala
Valor Descripción
Muy Alto 1.01
0.00
Interacciones altamente cooperativas, objetivos y culturas de accionistas fuertamente consistentes, fuerte habilidad y disponibilidad de accionistas para acomodar objetivos de otros accionistas, considerable experiencia previa operandocomo equipo, visión y compromisos considerablemente
compartidos.
Extra Alto Interacciones fluidas, objetivos y culturas de accionistastotalmente consistentes, total habilidad y disponibilidad de accionistas para acomodar objetivos de otros accionistas, dilatada experiencia previa operando como equipo, visión y compromisos 100% compartidos.
Factores de escalamiento del exponente SF
Factor de Escala
Muy bajo Bajo Nominal Alto Muy Alto
Extra Alto
PMATNivel de madurez esperada
7.80Nivel 1, inferior
6.24Nivel 1, superior
4.68Nivel 2
3.12Nivel 3
1.56Nivel 4
0.00Nivel 5
Estimación de esfuerzo: Variable E
Variable E (ahorro y gasto software de escala).
E = 0.91+ 0.01 x ∑5 SFjJ=1
E=0.91+0.01 x (6.20+5.07+7.0+5.48+7.80)E=0.91+0.01 x (31.62)E=0.91+ 0.3162E= 1.2262
Esfuerzo (Con EAF nominal 1.0)
Esfuerzo = 2.94 X EAF (Tamaño KSLOC)E
Tamaño = (137 UNPF * 60 LOC Java /1000)= 8.2
Esfuerzo = 2.94 * (1.0) (8.2) 1.2262
= 2.94 * 13.1983= 38.80 persona-meses
Calendario
Duración = C X (Esfuerzo)0.28+0.002* ∑5 SFjJ=1
En donde C= 3.67
Duración = 3.67 * (38.80) 0.28+0.002*1.2262
= 3.67 * (38.91)0.3457
= 3.67 * 3.5455= 13.01
Multiplicadores de esfuerzo: Personal
Multiplicador Muy bajo
Bajo Nominal Alto Muy Alto
Extra Alto
ACAPCapacidad de los analistas
15% 35% 55% 75% 90%
APEXExperiencia previa en área de aplicación
<=2 meses
6 meses
1 año 3 años 6 años
PCAPCapacidad de los programadores
15% 35% 55% 75% 90%
Multiplicadores de esfuerzo: Personal
Multiplicador Muy bajo
Bajo Nominal Alto Muy Alto
Extra Alto
PLEXExperiencia previa con la plataforma
<=2 meses
6 meses
1 año 3 años 6 años
LTEXExperiencia previa con el lenguaje y herramienta de desarrollo
<=2 meses
6 meses
1 año 3 años 6 años
PCONVolatilidad del personal
48% 24% 12% 6% 3%
Multiplicadores de esfuerzo: Proyecto
Multiplicador Muy bajo Bajo Nominal Alto Muy Alto
TOOLUso de herramientas de software
Herramientas de Edición, codificación y debug
Herramientas para frontend y backend, poca integración
Herramientas para ciclo básico, integración moderada
Fuerte, Herramientas para ciclo de vida madura, integración moderada
Maduro, Fuerte, Herramientas para ciclo de vida proactivos , integrado con procesos, métodos y reuso
SITEDesarrollo de localidades distribuidas
InternacionalUso de teléfono, correo
Multiciudad o multicompañía. Correo
Misma ciudad, área metropolitana. Comunicación electrónica por banda ancha
Mismo edificio o complejo. Ocasionalmente videoconferencia
Colocación total. Multimedia interactiva
Multiplicadores de esfuerzo: Proyecto
Multiplicador Muy bajo Bajo Nominal Alto Muy Alto
Extra Alto
SCEDExigencias sobre el calendario
75% 85% 100% 130% 160%
Multiplicadores de esfuerzo: Plataforma de desarrollo
Multiplicador Muy bajo
Bajo Nominal Alto Muy Alto
Extra Alto
TIMEExigencias sobre capacidad de ejecución
<=50% 70% 85% 95%
STORExigencias sobre almacenamiento del sistema
<=50% 70% 85% 95%
Multiplicadores de esfuerzo: Plataforma de desarrollo
Multiplicador Muy bajo
Bajo Nominal Alto Muy Alto Extra Alto
PVOLVolatilidad de la plataforma.
Cambios mayores cada 12 meses; cambios menores cada mes
Cambios mayores cada 6 meses; cambios menores cada 2 semanas
Cambios mayores cada 2 meses; cambios menores cada semana
Cambios mayores cada 2 meses; cambios menores cada 2 días
Multiplicadores de esfuerzo: relacionados con el producto
Multiplicador Muy bajo Bajo Nominal Alto Muy Alto
Extra Alto
RELYConfiabilidad exigida al software
Incovenientes leves
Bajo, pérdidasfácilmenterecuperables
Moderado, pérdidasfácilmenterecuperables
altapérdidafinanciera
riesgo a la vidahumana
DATATamaño de la BD. Esfuerzo para probar el producto
(BD bytes/SLOC/ < 10
10 <= (BD bytes /SLOC) < 100
100 <= (BD bytes /SLOC) < 100
(BD bytes /SLOC) >= 1000
Multiplicadores de esfuerzo: relacionados con el producto
Multiplicador Muy bajo Bajo Nominal
Alto Muy Alto
Extra Alto
CPLXComplejidad del producto.
Codificación simple, computaciones simples
Codificación simple, algunas computaciones simples, GUI simples
Codifica ciónanidada, rutinas matemáticas estándar, múltiples archivos
Codifica cióncompleja, análisis numérico, I/0 físicas
Códigoreentrante o en tiemporeal. ecuacionesdiferencialesparciales
Microcódigo. Análisisnuméricodifícil, interfaznatural del lenguaje
Multiplicadores de esfuerzo: relacionados con el producto
Multiplicador Muy bajo
Bajo Nominal Alto Muy Alto
Extra Alto
RUSECapacidad de los analistas
Ninguno A través del Proyecto
A través del Programa
A través de una Línea de producto
A través de Múltiples líneas de producto
DOCUExperiencia previa en área de aplicación
Muchas necesidades del ciclo de vida no están cubiertas
Algunas necesidadesdel ciclo de vida no están cubiertas
Necesidades correctas del ciclo de vida
Necesidades excesivas del ciclo de vida
Necesidades muy excesivas del ciclo de vida
Esfuerzo con EAF calculado
Esfuerzo = 2.94 X EAF (Tamaño KSLOC)E
EAF= Multiplicación de los drives. Estos valores se adquieren de acuerdo al ciclo de vida
Tamaño = (137 UNPF * 60 LOC Java /1000)= 8.2Suponiendo que el valor del proyecto es 1.34 y la experiencia del lenguaje y herramientas 1.09 con los demás drives nominales 1.0 entonces:
Esfuerzo = 2.94 * (1.36*1.09) * (8.2) 1.2262
= 2.94 * 1.46 * 13.1983= 56.65 persona-meses
Referencias
University of Southern California Center for Software Engineering. http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html. Septiembre de 2009University of Southern California Center for Software Engineering. http://csse.usc.edu/csse/research/COCOMOII/cocomo_downloads.htm. Septiembre de 2009http://www.ldc.usb.ve/~teruel/ci4713/clases2001/cocomo2.htmlhttp://www.softstarsystems.com/demo.htm