You are on page 1of 10

MODELO Co.Co.Mo.

(Constructive Cost Model - Barry W.Boehm - 1981)


El enfoque ms cientfico para estimar los costes de software y asignarles tiempos, consiste
en usar un modelo algortmico de costes. Tal modelo se puede construir por medio del anlisis
de los costes de proyectos terminados y establecer una frmula matemtica que relacione los
costes con el tamao del proyecto, nmero de programadores, etc.
El modelo de costes del software mejor documentado y cuyos parmetros se pueden
adecuar a la mayora de proyectos es el Co.Co.Mo. descrito por W.Boehm en 1981.

Permite estimaciones de costes rpidas.


Fundamento emprico. (Basado en un conjunto de experiencias)
Su precisin est limitada por el N de variables que se manejan segn el grado de
desarrollo en el que se trabaje (Bsico, Intermedio o Detallado).
Mtodo de clculo sencillo y analtico (mediante formulacin).

Definiciones y supuestos de partida:

1.- Segn el nmero de variables que intervienen en la estimacin de costes distinguimos 3


modos o niveles de desarrollo del Modelo Co.Co.Mo :

Bsico: una sola variable para la estimacin.(tamao del producto)


Intermedio: modo bsico + 15 factores adicionales.
Detallado: superior

A su vez, este modelo, descompone cada nivel de desarrollo, segn el tamao del proyecto..., en
3 modos o categoras: (i)Orgnico, (ii)Semilibre y (iii)Fuertemente restringido.

2.- Tamao del producto (S): son el nmero de instrucciones fuente desarrolladas.
- Lneas de cdigo (aunque tenga 2 o ms sentencias): instrucciones, declaraciones
de datos, etc...
- No incluye Lneas de Comentarios.
S =Nmero de lneas de cdigo fuente desarrolladas.
kS =Nmero de miles de instrucciones fuente desarrolladas.
k = Factor de ponderacin (1/1000)

3.- El modelo Co.Co.Mo. Bsico solo considera la "fase de desarrollo" del producto. Las
fases de Mantenimiento, etc... deben estimarse por separado.
4.- En la estimacin de costes (en el Co.Co.Mo.Bsico) no se incluyen los
de:
- Formacin del usuario.
-Planificacin de la instalacin.
- Trabajos de conversin.

5.- La estimacin cubre todos los COSTES DIRECTOS del proyecto pero excluye los de
personal no directamente ligado al mismo.
6.- Conversin de Unidades: (unidades de esfuerzo):
- 1 Hombre/mes = 152 horas de trabajo por persona (=152 hombres/hora).
- 1 Hombre/mes = 19 hombres/da (no son 20 porque se estiman los perodos de baj
a por enfermedad...
- 12 Hombres/mes = 1 hombre/ao.
7.- Se parte con que las Especificaciones de partida "no cambiarn" sustancialmente. (Si las
modificaciones fuesen significativas se estara obligado a revisar las estimaciones calculadas).
8.- Los modelos Co.Co. Mo. Bsico e Intermedio, no consideran los factores que afectan al
coste no incluidos en las fases de desarrollo (Para Co. Co. Mo. bsico e intermedio) y
mantenimiento (para Co.Co.Mo. intermedio).
9.- En los "costes por fase", se incluyen todos aquellos que se produzcan durante ese
periodo de tiempo.
10.-La conversin de estimaciones obtenidas en unidades de esfuerzo (hombre/mes) a unidades
monetarias (no contemplado por el modelo) la mejor solucin es aplicar un "valor medio" de
unidades monetarias (ej: pesetas) por unidad de esfuerzo para cada una de las fases.

Determinacin del modo de desarrollo en que se encuentra un producto software:

A) MODO ORGANICO. Caractersticas:

1.- Equipo de desarrollo relativamente pequeo y bajo un entorno altamente familiar.


2.- Las personas relacionadas con el proyecto tienen amplia experiencia en otros
proyectos relacionados con la misma organizacin.
3.- Conocen bien como el sistema en desarrollo contribuir objetivos de su
organizacin.
4.- Existe gran facilidad para establecer los requisitos y las especificaciones de cada una
de las fases del proyecto.(No existen grandes necesidades de comunicaciones).
5.- El equipo de trabajo tiene fcil el cambiar algunas especificaciones del desarrollo
para hacerlo ms fcil.
6.- Entorno de desarrollo estable.
7.- Mnimas necesidades de algoritmos innovadores.
8.- El tamao del proyecto es relativamente pequeo (menor o igual a 5OkS, aunque
puede existir algn tamao superior si ya exista software).

B) MODO SEMILIBRE. Caractersticas:

1.- Todos los miembros del equipo de trabajo tienen un nivel intermedio de experiencia
con sistemas relacionados con el proyecto.
2.- El equipo de desarrollo est formado por una mezcla de gente "experta e inexperta".
3.- Los miembros del equipo tienen experiencia en algunos de los aspectos que se
pretende desarrollar, pero no en todos.
4.- Su tamao medio es de aproximadamente 300 kS.
C) MODO FUERTEMENTE RESTRINGIDO. Caractersticas:

1. Caracterstica principal: el producto debe operar en entornos software-hardware fuertemente


restringidos.
2. No existe prcticamente la posibilidad de negociar fcilmente cambios en el software.
3. Estos proyectos suelen abarcar reas ms amplias y tambin menos conocidas que en los
casos anteriores.

CO.CO.M O. BASICO
(Estimacin del Esfuerzo y Tiempo de Desarrollo)

Realiza estimaciones basadas nicamente en una variable:

- "El Nmero de instrucciones fuente desarrolladas".

a)Esfuerzo Total (MM) necesario para el desarrollo de un proyecto:


Modo Orgnico: MM=2'4 (kS) 1'05 Hombres/Mes
Modo Semilibre: MM=3'0 (kS) 1'12 "
Modo F. Restringido: MM=3'6 (kS) 1'20 "

b) Productividad:
PR= S/MM Lneas/Hombre-mes.

e) Tiempo de Desarrollo:
Modo Orgnico: TD=2'5 (MM) 0'38 Meses
Modo Semilibre: TD=2'5 (MM) 0'35 "
Modo F.Restringido: TD=2'5 (MM) 0'32 "

Segn W.Brooks ("El Mtico hombre/mes"): un "producto software" requiere al menos tres
veces ms esfuerzo que un programa de tamao equivalente sin las exigencias propias de un
programa producto. (Producto =>Software+documentacin+pruebas+correccin+...)

Proyectos estndar
Consideraremos un producto software como estndar cuando su tamao coincida con los
valores de la siguiente tabla media:

(Tabla 1)
(Proyectos estndar : Co. Co. Mo. Bsico Orgnico)

Tamao (kS) Esfuerzo Productividad Tiempo PE


(miles lneas) (H./ Mes) (Lineas- Hom /mes) (Meses) (Hombres)

Pequeo: 2 kS 5'0 400 4'6 1'1


Intermedio: 8 kS 21'3 376 8'0 2'7
Medio: 32 kS 91'0 352 14'0 6'5
Grande: 128 kS 392'0 327 24'0 16'0

Distribucin del esfuerzo y tiempo de desarrollo entre las distintas etapas de lafase de
desarrollo:
Etapas de la fase de desarrollo:

1.- Planificacin y requisitos.


2.- Diseo del producto.
3.- Programacin:
- Diseo detallado.
- Codificacin y pruebas.
4.- Integracin y prueba.

( Tabla 2 )
(Distribucin del esfuerzo y tiempo de desarrollo
por cada etapa de la fase de desarrollo)

Esfuerzo Pequeo Intermedio Medio Grande


(2 kS) (8 kS) (32 kS) (128 kS)
Planificacin y 6% 6% 6% 6%
requisitos
Diseo del producto 16 % 16 % 16 % 16 %
Programacin

...Diseo Detallado 26 % 25 % 24 % 23 %
... Codif. y Pruebas 42 % 40 % 38 % 36 %
68 % 65 % 62 % 59 %

Integracin y prueba 16 % 19 % 22 % 25 %

Total 100 % 100 % 100 % 100 %

Tiempo (2 kS) (8 kS) (32 kS) (128 kS)


Planificacin y 10 % 11 % 12 % 13 %
requisitos
Diseo del producto 19 % 19 % 19 % 19 %
Programacin 63 % 59 % 55 % 51 %
Integracin y prueba 18 % 22 % 26 % 30 %

Total 100 % 100 % 100 % 100 %

Observaciones sobre la Tabla 2:


1) Proyectos Grandes: dedican mucho tiempo y esfuerzo para Integracin y prueba y poco en
Programacin, ya que se distribuye esta actividad entre un mayor nmero de programadores
trabajando simultneamente.

2)Proyectos Pequeos: se distribuyen ms uniformemente, dedicando relativamente mas


recursos a diseo y programacin que a integracin y pruebas.

NOTA: La etapa de Planificacin y requisitos (6%) no se considera en el Co.Co.Mo. Bsico (ver


Supuesto 4).
Ejemplo 1:
Una compaa desea desarrollar un proyecto que gestione sus Facturas, para lo cual decide
realizarlo mediante su propio equipo de analistas y programadores, que desde hace varios aos
vienen desarrollando aplicaciones parecidas en la empresa.
Un estudio inicial (determinado por consultores) determina que el tamao del producto
rondar las 32.000 lneas de programa.

Solucin

1 ) Esfuerzo: MM= 2'4 (kS) 1'05 = 2'4 (32) 1'05 = 91 hombres/mes.


2)Productividad: PR=S/MM=32.000/91=352 lneas-hombre/mes.
3) Tiempo de desarrollo: TD = 2'5 (MM)0'38 = 2'5 (91)0'38 = 14 meses.
4)El valor medio del nmero de personas que a tiempo completo se precisaran para desarrollar
el proyecto en el tiempo de desarrollo previsto sera:

PE = MM / TD = 91 / 14 = 6'5 hombres.

Ejemplo:
Calcular el esfuerzo, Tiempo y Nmero medio equivalente de personas (PE) durante la
"etapa de Integracin y prueba" del proyecto:( Tabla 2

Solucin.
1) Esfuerzo: Integracin y prueba = 22 % del esfuerzo total
MMInt. y Pr. = (0'22)MMtot= 0'22 * 91 hombres/mes = 20 hombres/mes.

2) Tiempo: Integracin y prueba = 26 % del Tiempo total.


TDInt. y Pr. = (0'26) TDtot = 0'26 * 14 meses = 3'64 meses.

3) Valor medio del nmero de personas atiempo completo:


PEint.ypr.= MMInt.yPr.. / TDlnt.yPr. = 20 / 3'64 = 5'49 personas.
Proyectos No estndar

Cuando el tamao de un proyecto no est reflejado en tablas (NO ESTANDAR),


recurriremos a calcular sus valores medios por el mtodo del interpolacin.

Ejemplo:
Calcular el esfuerzo en la etapa de programacin del producto de software de 13.200 lneas e
tamao.

Solucin:
- Tamao = 13.200 lneas -> kS 13'2
- Un tamao de 13'2 en la Tabla 2, est comprendido entre los valores kS: 8 y 32.
- El esfuerzo en programacin para el proyecto de tamao:
8 kS=65%
32 kS = 62 %

INTERPOLACION:

La ecuacin de una recta que pasa por 2 puntos es:

Y=65 + [(13'2 - 8) / (32 - 65)] (62-65) = 64'94 %

-Esfuerzo dedicado a la etapa de programacin:


a) MMprog = (0'6494) MMtot = 0'6494 * 91 = 59'10 Hombres-rnes
b) TDprog = idntico procedimiento de interpelacin.
Estimacin del esfuerzo de mantenimiento:
Como se mencion en las hiptesis de partida, el Co.Co.Mo. Bsico no contempla el
esfuerzo de mantenimiento, por lo que para su clculo procederemos de la siguiente manera:

Entendemos por mantenimiento de un producto software a "todo proceso de modificacin


realizado en un producto software operacional, de forma que se mantengan intactas sus
funciones primarias".
-Para su clculo definimos:

TCA = Trfico de Cambio Anual = Parmetro de estimacin de mantenimiento


Anual (Co-Co-Mo.) = "Porcin de instrucciones fuente que sufren algn cambio
durante 1 ao, bien porque se han aadido o por modificacin".

Ejemplo-. A un proyecto software de 8 kS se le aaden 3000 instrucciones


nuevas y otras 1200 sufren modificacin durante el primer ao de mantenimiento.
3000 + 1200
----------------
TCA = = 0'53
8000

Estimacin del Esfuerzo de Mantenimiento Anual: (MM)mant.: Conocido el esfuerzo de


desarrollo estimado (MM):

(MM)rnant. = 1'0 (TCA) MM

"Valor medio del nmero de personas a tiempo completo dedicadas a mantenimiento durante
12 meses":

PEmant. = (MM)mant. / 12 meses.

Introduccin al Co. Co. Mo. Intermedio


(Estimacin del esfuerzo de desarrollo nominal)

A.- Versin ampliada del Co.CO.MO. Bsico, pero con un mayor nivel de detalle y seguridad,
manteniendo la misma sencillez del modelo bsico.
B.- Incorpora 15 factores ms que afectan a la mayora de los proyectos software.
b.1-- Estos 15 factores adicionales han sido extrados de la totalidad existentes siguiendo
criterios de:

1 .- Generalidad: valoracin media.


2.- Independencia: sin tener en cuenta los aspectos puntuales del desarrollo de un
proyecto software.

b.2. Estos 15 factores los agrupamos en 4 categoras.

1.- Atributos del Producto:

1.1. Restricciones en la fiabilidad del software.


1.2.Tamao de la base de datos.
1.3.Complejidad del producto.
2.- Atributos del Ordenador:

2.1. Restricciones del tiempo de ejecucin.


2.2. Restricciones de la Memoria principal.
2.3. Volatilidad de la mquina virtual.
2.4. Tiempo de respuesta del ordenador.

3.- Atributos del personal:

3.1. Capacidad de los analistas.


3.2. Experiencia en la aplicacin.
3.3. Capacidad de los programadores.
3.4. Experiencia en el Sistema Operativo utilizado.
3.5. Experiencia en lenguajes de programacin.

4.- Atributos del proyecto:

4.1. Uso de tcnicas actualizadas de programacin.


4.2. Uso de herramientas software.
4.3. Requisitos de planificacin.

Esfuerzos de desarrollo:
A) Esfuerzos Nominales:
Modo Orgnico: (MM)nom = 3'2 (kS) 1'05
ModoSemilibre: (MM)nom = 3'0 (kS) 1'12
Modo F.Restringido: (MM)nom = 2'8 (kS) 1'20

B) Estimacin del efecto de los atributos sobre el desarrollo total:


Cada atributo de los anteriormente descritos tiene asociado un factor multiplicador para
estimar el efecto de este sobre el esfuerzo de desarrollo total:

(MM)nom * Factor multiplicador =Estimacin del efecto del


atributo sobre el desarrollo total.
(Tabla 3)
(Factores multiplicadores)

Atributos que afectan al coste Muy Bajo Nominal Alto Muy Extra
Bajo Alto Alto
A) DEL PRODUCTO
Restricc. fiabilidad del Sw. ,75 ,88 1,00 1,15 1,40
Tamao base de Datos. ,94 1,00 1,08 1,16
Complejidad del Producto. ,70 ,85 1,00 1,15 1,30 1,65
B) DEL ORDENADOR
Rest. Tiempo Ejecucin. 1,00 1,11 1,30 1,66
Rest. Memoria. 1,00 1,06 1,21 1,56
Volatibilidad Maq. Virtual. ,87 1,00 1,15 1,30
Tiempo Respuesta. ,87 1,00 1,07 1,15
C) DEL PERSONAL
Capac. Analistas 1,46 1,19 1,00 ,86 ,71
Exper. Aplicacin. 1,29 1,13 1,00 ,91 ,82
Capac. Programadores. 1,42 1,17 1,00 ,86 ,70
Exp. S.O. usado. 1,21 1,10 1,00 ,90
Exp. Leng. Prog. 1,14 1,07 1,00 ,95
D) DEL PROYECTO
Uso Tec. Actuales del Prog. 1,24 1,10 1,00 ,91 ,82
Uso Herramients Soft. 1,24 1,10 1,00 ,91 ,83
Requis. Planificacin 1,23 1,08 1,00 1,04 1,10

Estimacin de los efectos de adaptacin de un software ya existente:

Algunas partes de un proyecto software pueden adaptarse para desarrollar un nuevo


producto.

Valoracin:
Definimos ES como el nmero equivalente de instrucciones fuente desarrolladas que se
emplean en sustitucin de las lneas fuente desarrolladas (S).

Clculo:
a) N' de lneas fuente adaptadas al nuevo producto (AS)
b) % del diseo del software que es modificado para adaptarlo a los objetivos del
nuevo producto (MD) -cantidad subjetiva-.
e) % del cdigo modificado (MC) con el fin de adaptarlo al nuevo entorno.
d) % del esfuerzo de integracin (MI) necesario del software adaptado al conjunto
del nuevo producto.
Factor de adaptacin: (FA)

FA = 0'40 (MD) + 0'30 (MC) + 0'30 (MI)

40%= Valor medio de


los porcentajes Codificacin Integracin y
dedicados a tareas de Prueba
diseo

N de lnes equivalentes:
ES= AS FA
100

Ejemplo:
Deseamos convertir un programa de gestin de nminas escrito en RPG, de un tamaio de 75.
000 lneas, desarrollado en modo orgnico, desde un entomo hardsoftware determinado a otro.
Consideramos:
MD=0 (No existen cambios en el diseo del programa).
MC = 12 (Aprox. 12% de las lneas de cdigo debern cambiarse para adaptarlo a las
caractersticas propias del nuevo sistema operativo, lenguaje de control,..)

MI= 4 (Se precisa una pequea cantidad de esfuerzo para integrar estos cambios).

Solucin:

FA = 0'40 (0) + 0'30 (12) + 0'30 (4) = 4'8 - 5


ES = 75 kS [FA / 100] = 75.000 [5 / 100] = 3.750 lneas.

Modo semilibre:
(MM)adapt= 3'0 (kS) 1'12 = 3'0 (3'75) 1'12 =13'18 hombres/mes.

You might also like