Modelo COCOMO
• Barry Boehm [BOE81] introduce una jerarquía
de modelos de estimación de software que
COCOMO II lleva el nombre de COCOMO, COnstructive
COst MOdel (Modelo Constructivo de Costos).
• Varios niveles según avance.
Administración de Proyectos
• COCOMO evolucionó en COCOMO II [BOE96,
BOE00].
01/09/2010
1 2
COCOMO II COCOMO II
• Soporta el modelo de desarrollo en espiral, • Cuenta con varios niveles:
prototipos, reuso, CASE y engloba varios 1. Nivel de construcción de prototipos
niveles que producen estimaciones detalladas 2. Nivel de diseño inicial
de forma incremental. Éstos pueden utilizarse 3. Nivel de reutilización
en sucesivas iteraciones en el desarrollo en 4. Nivel de postarquitectura
espiral.
Sommerville
3 4
1
13/09/2010
7 8
2
13/09/2010
9 10
11 12
3
13/09/2010
Reutilización Reutilización
• La cifra calculada se suma al número de líneas • ESLOC tiene en cuenta el esfuerzo necesario para
de código nuevo a desarrollar del nivel de comprender el software, para hacer cambios en
postarquitectura. el código a reutilizar y los cambios en el sistema
para integrar este código.
• Las estimaciones en el nivel de reutilización
son: • ESLOC = ASLOC x (1 – AT/100) x AAM.
• ASLOC : Número de líneas de código en los • ASLOC se reduce de acuerdo con un porcentaje
de código automáticamente generado.
componentes que deben ser adaptados.
• AAM es el multiplicador de ajuste de la
• ESCLOC : Número equivalente en líneas de adaptación, el cual tiene en cuenta el esfuerzo
código nuevo. requerido en la reutilización de código.
13 14
Reutilización Reutilización
• AAM es la suma de tres componentes: – Los valores de SU van desde 50 para código
– Un componente de adaptación (llamado AAF) que complejo no estructurado hasta 10 para código
representa el coste de hacer los cambios en el orientado a objetos bien escrito.
código reutilizado. Éste tiene en cuenta cambios • Un factor (llamado AA) que representa el
de diseño, código e integración. coste de la toma de decisiones para la
– Un componente de comprensión (llamado SU) que reutilización. AA varía entre 0 y 8 según la
representa el coste de entender el código que se cantidad de esfuerzo necesaria.
va a reutilizar y la familiarización del ingeniero con
el código.
15 16
4
13/09/2010
17 18
calcula utilizando tres componentes: Precedentes Refleja la experiencia previa de la organización con este tipo de
proyectos. Muy bajo significa sin experiencia previa; Extra alto significa
– Una estimación del número total de líneas nuevas de que la organización está completamente familiarizada con este
dominio de aplicación
código a desarrollar. Flexibilidad de desarrollo Refleja el grado de flexibilidad en el proceso de desarrollo. Muy bajo
– Una estimación del número de líneas de código fuente significa que se utiliza un proceso prescrito; Extra alto significa que el
cliente establece sólo metas generales.
equivalentes (ESLOC) calculadas usando el nivel de Resolución de la arquitectura/riesgo Refleja la amplitud del análisis de riesgo que se lleva a cabo. Muy bajo
reutilización. significa poco análisis; Extra alto significa un análisis de riesgo
completo y detallado.
– Una estimación del número de líneas de código que Cohesión del equipo Refleja qué tan bien se conocen entre ellos los miembros del equipo de
tienen que modificarse debido a cambios en los desarrollo y qué tan bien trabajan juntos. Muy bajo significa
requerimientos. interacciones muy difíciles; Extra alto significa un equipo integrado y
efectivo sin problemas de comunicación.
• Estas estimaciones se añaden para obtener el Madurez del proceso Refleja la madurez del proceso de la organización. El cálculo de este
tamaño del código (KSLOC). valor depende del Cuestionario de Madures del CMM pero se puede
alcanzar una estimación sustrayendo el nivel de madurez del proceso
de CMM de 5.
19 20
5
13/09/2010
Multiplicadores (1/2)
Tabla 4. Multiplicadores del coste del proyecto
Multiplicadores (2/2)
Tabla 4. Multiplicadores del coste del proyecto
RELY Producto Fiabilidad requerida del sistema
PCON Personal Continuidad del personal
CPLX Producto Complejidad de los módulos del sistema
PCAP Personal Capacidad de los programadores
DOCU Producto Amplitud de la documentación requerida
PEXP Personal Experiencia de los programadores en el dominio de
DATA Producto Tamaño de la base de datos utilizada la aplicación
RUSE Producto Porcentaje de componentes reutilizables AEXP Personal Experiencia de los analistas en el dominio de la
requeridos aplicación
TIME Computadora Restricciones de tiempo de ejecución LTEX Personal Experiencia en el lenguaje y las herramientas de
desarrollo
PVOL Computadora Volatilidad de la plataforma de desarrollo TOOL Proyecto Utilización de herramientas de software
STOR Computadora Volatilidad de la plataforma de desarrollo
SCED Proyecto Comprensión de los tiempos de desarrollo
ACAP Personal Continuidad del personal
SITE Proyecto Ámbito de los distintos lugares de trabajo y sus
comunicaciones
21 22
22
6
13/09/2010
Valores de Modificadores
Extra Muy Bajo Nominal Alto Muy Extra
bajo bajo alto alto
RCPX 0.73 0.81 0.98 1.00 1.30 1.74 2.38
RUSE --- --- 0.95 1.00 1.07 1.15 1.24
PDIF --- --- 0.87 1.00 1.29 1.81 2.61
PERS 2.12 1.62 1.26 1.00 0.83 0.63 0.50
PREX 1.59 1.33 1.12 1.00 0.87 0.71 0.62
FCIL 1.43 1.30 1.10 1.00 0.87 0.73 0.62
SCED --- 1.43 1.14 1.00 1.00 1.00 ---
25