Está en la página 1de 8

PLANIFICACIÓN DE PROYECTOS DE DESARROLLO DE SOFTWARE

UTILIZANDO EL MODELO COCOMO


Dentro de los diferentes métodos de Estimación de Costos de Productos de Software, el Modelo COCOMO
(COnstructive COst MOdel) desarrollado y presentado en 1981 por Barry W. Bohem, se enmarca en el grupo
de los modelos algorítmicos que tratan de establecer una figura de mérito o relación matemática que permi ta
estimar el esfuerzo (Hombres-Mes) y tiempo requerido para desarrollar un proyecto, en términos de número de
instrucciones fuente desarrolladas en el "Producto Software".

I. FORMA DE APLICACIÓN

1. Este método es aplicable en todo trabajo relacionado con la aplicación de la computación a los procesos de
desarrollo de un nuevo software y su mantenimiento o modificación.

2. En lo que respecta al desarrollo de un nuevo software o su modificación, se puede aplicar en tres niveles de
profundidad en dependencia del grado de conocimiento que se posea del objeto de estudio:

a. Nivel Básico. Las ecuaciones del Nivel Básico son adecuadas para realizar estimaciones de forma
rápida aunque sin gran precisión. Su precisión esta necesariamente limitada dado que no tiene en
cuenta los diferentes atributos que afectan al proyecto como: calidad y experiencia del personal,
restricciones del hardware empleado, utilización de técnicas y herramientas modernas de desarrollo de
software, etc. Estos sí son considerados en los otros niveles.

b. Nivel Intermedio. En este nivel, estos atributos se consideran como adicionales al costo total del
proyecto.

c. Nivel Detallado. Mientras que en este nivel se tiene en consideración la forma en que cada uno de esos
atributos afecta las diferentes fases que componen el proyecto.

3. El factor principal sobre el que se basan las estimaciones es el tamaño del producto, es decir el número de
instrucciones fuente desarrolladas (F).

El producto de todo proceso de desarrollo, mantenimiento y conversión de software son instrucciones,


agrupadas en programas y en sistemas y a partir de su conocimiento se debe programar el trabajo.

Las instrucciones se definen como líneas de código y por tanto toda línea que contenga dos o más sentencias
fuente, se considera como una sola instrucción.

4. En el modelo de desarrollo de software se planifican sólo las fases del período de desarrollo comprendidas
desde el comienzo de la etapa de análisis hasta el final de la etapa de implantación. Los parámetros de la fase
de estudio preliminar se deben estimar separadamente.

5. Las estimaciones cubren todos los costos directos del proyecto. Es decir, incluye el desarrollo del proyecto y
trabajos de documentación pero excluye los correspondientes a la operación, explotación, así como los de
apoyo, como los ejecutados por las secretarias, los dirigentes, etc. O sea, los que no están ligados
directamente al desarrollo del proyecto.

6. Los indicadores de planificación que se pueden obtener a través del método son:

Esfuerzo (ESF) Hombres-mes.


Tiempo de desarrollo (TDES) Meses.
Personal necesario (CH) Hombres.
Productividad (P) Instr/Hombre-mes.
Costo (C) Pesos.

La unidad de esfuerzo Hombre-Mes supone un total de 152 horas de trabajo por persona, sobre la base
de la experiencia práctica y a consideraciones sobre vacaciones, permisos, enfermedad, etc.

1
Para convertir unidades consideradas en el método de Hombre-Mes, a otras unidades se utilizan las
equivalencias mostradas en la tabla siguiente:
----------------------------------
: Hombres-Mes x 152 = hombres-hora:
----------------------------------
: Hombres-Mes x 19 = hombres-día:
----------------------------------
: Hombres-Mes / 12 = Hombres-Año:
----------------------------------

7. En los parámetros por etapas se incluyen todos aquellos que se produzcan durante el período de tiempo
que dure esta. Es decir los costos relativos a los trabajos propios de la etapa de desarrollo no son sólo los
costos de programación sino también los de la documentación y otros trabajos directos de esa etapa.

II. MODOS DE DESARROLLO DE SOFTWARE

Hay tres modos de desarrollo de software, que aunque matemáticamente pueden expresarse de forma similar,
conducen a estimaciones diferentes en los parámetros de planificación, se denominan: Orgánico o Familiar,
Semilibre y Fuertemente Restringido.

1) MODO ORGÁNICO. En este modo, el equipo de desarrollo es relativamente pequeño y se


desenvuelven en un entorno altamente familiar, la gran mayoría de la gente relacionada con el proyecto tiene
una amplia experiencia en otros proyectos relacionados con la misma organización y tienen un buen
conocimiento de cómo el sistema en desarrollo contribuirá a los objetivos de la organización.

Esto significa que la mayoría de las personas pueden contribuir de forma efectiva a la terminación puntual de
cada una de las etapas sin que se generen grandes fallas en la comunicación para de terminar con precisión las
tareas que cada uno debe desarrollar en el proyecto. Existe por tanto una gran facilidad para establecer los
requisitos y las especificaciones de cada una de las interfaces del proyecto.

Normalmente el equipo de trabajo puede negociar con facilidad la modificación de algunas de las
especificaciones para hacer más fácil este desarrollo sin que sea demasiado difícil acomodarlo a las
necesidades del desarrollo.

Según el contenido que establece Bohem para cada una de las etapas se puede hacer un símil entre éstas y las
que normalmente se establecen, como se demuestra a continuación:

BOHEM NORMALMENTE

Planificación y Requisitos--------------------------------> Estudio Preliminar

Diseño--------------------------------------------------------> Análisis

Diseño detallado--------------------------------------------> Diseño

Codificación y Prueba--------------------------------------> Desarrollo

Integración y Prueba----------------------------------------> Prueba e implantación


Tabla I.1 Ciclo de vida para el proyecto según Bohem y comparación con el establecido normalmente

Otros factores característicos del modo orgánico son:

- Un entorno de desarrollo estable, con poco desarrollo concurrente de nuevo hardware asociado.
- Unas necesidades mínimas de introducir algoritmos innovadores o nuevas arquitecturas de proceso.
- Un trabajo de proyecto relativamente pequeño. Pocos proyectos desarrollados en modo orgánico
sobrepasan los 50 MF. (50000 instrucciones fuente)

2
- Los proyectos en modo orgánico de mayor tamaño pueden desarrollarse utilizando software ya
existente.

2) MODO SEMILIBRE. Este modo representa un estado intermedio entre el modo orgánico y el modo
fuertemente restringido.

Con respecto a la "experiencia del equipo de trabajo", cualquiera de las siguientes situaciones pudiera
considerarse propia de un entorno de desarrollo en modo semilibre:

- Todos los miembros del equipo de diseño tienen un nivel medio de experiencia en sistemas
relacionados con el proyecto.
- El equipo de desarrollo esta formado por una mezcla de gente experta e inexperta.
- Los miembros del equipo tienen experiencia en algunos de los aspectos del sistema que se pretende
desarrollar pero no en todos.

Esta flexibilidad parcial explica el origen del término SEMIDETACHED (semidesligado, semilibre).
El tamaño del producto en este modo puede llegar a 300 MF.

3) MODO FUERTEMENTE RESTRINGIDO. La característica principal de un proyecto de software de este


tipo, es que debe desarrollarse sometido a fuertes restricciones. El producto debe operar en entornos de
software y hardware fuertemente acoplados.

En general los costos de modificar parte del proyecto son tan altos que por sus características se podrían
considerar inmodificables. Como resultado, en estos proyectos no se puede o no existe la posibilidad de
negociar fácilmente cambios en el software y en tal caso precisará un mayor tiempo para acomodar o asegurar
que los cambios cumplan las especificaciones (mayor costo de verificación y validación) y asegurarse de que
los cambios se hacen correctamente (mayor coste de gestión de la configuración).

Los proyectos en modo fuertemente restringido generalmente abarcan áreas más amplias y también menos
conocidas que los casos anteriores.

III. ESTIMACIONES EN MODO ORGÁNICO.

Con los supuestos anteriores y conocidas las etapas del proyecto que considera el modelo, véase como se
calcula el esfuerzo (ESF) y el tiempo de desarrollo (TDES).

El esfuerzo (hombre-mes) total necesario en un proyecto, desarrollado en unas condiciones propias del modo
orgánico viene dado por:

1,05
ESF = 2,4 (MF)

Donde como ya se indicó anteriormente MF es el número de instrucciones fuente desarrolladas. El esfuerzo


(ESF) es la cantidad de hombres-mes estimado para las etapas del ciclo de vida, representado en la tabla I.1.

El tiempo de desarrollo expresado en meses de un proyecto en modo orgánico viene dado por:

0,38
TDES = 2,5 (ESF)

Ejemplo I.1. Supongamos que una empresa cualquiera desea diseñar un proyecto que gestione sus
inventarios y decide desarrollarlo mediante su propio equipo de analistas y programadores que anteriormente y
durante muchos años, vienen desarrollando aplicaciones similares en la misma empresa.

3
Si un estudio inicial determina que el tamaño del producto en alrededor de 32 000 líneas de programa fuente
(32 MF). ¿Cuáles serán las características del proyecto?.

Solución:

Este es un buen ejemplo de desarrollo de software de modo orgánico, entonces:

1,05 1,05
Esfuerzo: ESF = 2,4 (MF) = 2,4(32) = 91 hombres-mes

MF*1000 32 000
Productividad: P = ------------ = --------- = 352 F/hombre-mes
ESF 91

Tiempo de desarrollo:

0,38 0,38
TDES = 2,5 (ESF) = 2,5 (91) = 14 meses

Número de personas trabajando en el proyecto:

CH = ESF/TDES = 91/14 = 6,5 hombres

IV. DISTRIBUCIÓN DE TIEMPO Y ESFUERZO DE POR ETAPAS.

Los proyectos de gran tamaño precisan mayor tiempo y esfuerzo para desarrollar las actividades de prueba e
implantación mientras que pueden reducir el tiempo en la etapa de programación, distribuyendo esta activi dad
entre mayor número de programadores trabajando simultáneamente. En los pequeños programas hay que
dedicar relativamente más recursos a la etapa de diseño y programación que a las de prueba e implantación.

Ejemplo I.2. Tomemos de nuevo la situación planteada en el ejemplo anterior en el que se tenia un proyecto de
32 MF, 91 HM de esfuerzo y 14 meses de tiempo de desarrollo, supongamos que deseamos conocer el
esfuerzo, el tiempo y el número medio equivalente de personas durante las etapas de diseño y desarrollo
(programación) de este proyecto.

Solución:

Utilizando la tabla I.2 obsérvese que las etapas de diseño y programación requieren el 62% del esfuerzo
total y el 55% del tiempo total, por tanto:

Esfuerzo: ESF = 0,62(91) = 56 hombres-mes

Tiempo: TDES = 0,55(14) = 7,7 meses

Personal: CH = 55/7,7 = 7,5 hombres

V. PROYECTOS DE TAMAÑO NO ESTÁNDAR. INTERPOLACIÓN.

En el supuesto de que el tamaño del producto no se ajuste a los tamaños estándares de las tablas 1.2 podemos
obtener el perfil de nuestro proyecto por interpolación entre los datos de los proyectos de tamaño inferior y
superior.

4
Por ejemplo, supóngase que se desea obtener el esfuerzo de desarrollo en la etapa de programación
(desarrollo) de un producto software cuyo tamaño se fija en 12 800 líneas fuente. Aplicando las ecuaciones ya
conocidas obtenemos fácilmente el esfuerzo total y el tiempo de desarrollo:

1,05
Esfuerzo: ESF = 2,4(12,8) ESF = 35 hombres-mes

0,38
Tiempo de desarrollo: TDES = 2,5(35) TDES = 9,7 meses

Para obtener el esfuerzo necesario en la etapa de programación, utilizamos los datos de la tabla 1.2 referidos a
los proyectos de 8 MF y 32 MF. El porcentaje sobre el esfuerzo total de nuestro proyecto estará comprendido
entre el 65% y el 62%.

(12,8 - 8)
% prog = 65 + -------------- (62-65) = 64,4
( 32 - 8 )

y por tanto el esfuerzo dedicado en la fase de programación seria:

ESF prog = 0,644 x 35 = 22,5 hombres-mes

De la misma forma se obtiene el tiempo consumido en la etapa de desarrollo, que supone el 58,2 % del tiempo
total (5,6 meses) y por tanto el valor medio de personal equivalente en la fase de programación seria de:

CH = 22,5 / 5,6 = 4 hombres.

VI. MODO SEMILIBRE Y FUERTEMENTE RESTRINGIDO. NIVEL BÁSICO.

La tabla A presenta las ecuaciones actuales para los tres modos de desarrollo del nivel básico.

Las estimaciones obtenidas para los diferentes proyectos estándares a los que se le ha añadido uno nuevo de
512 MF (muy grande), se presentan en la tabla B.

------------------------------------------------------------------------------------------------------------
MODO ESFUERZO TIEMPO DE DESARROLLO
------------------------------------------------------------------------------------------------------------
1,05 0,38
ORGÁNICO ESF = 2,4(MF) TDES = 2,5(ESF)
------------------------------------------------------------------------------------------------------------
1,12 0,35
SEMILIBRE ESF = 3,0(MF) TDES = 2,5 (ESF)
------------------------------------------------------------------------------------------------------------
FUERTEMENTE 1,20 0,32
RESTRINGIDO ESF = 3,6(MF) TDES = 2,5 (ESF)

Tabla A. Esfuerzos y tiempos de desarrollo en el nivel básico.

5
INDICADOR\MODO PEQUEÑO INTERM. MEDIO GRANDE MUY GRANDE
2 MF 8 MF 32 MF 128 MF 512 MF
------------------------------------------------------------------------------------------------------------
ESFUERZO
------------------------------------------------------------------------------------------------------------
ORGÁNICO 5,0 21,3 91,0 392,0
SEMILIBRE 6,5 31,0 146,0 687,0 3250,0
F.RESTRINGIDO 8,3 44,0 230,0 1216,0 6420,0
------------------------------------------------------------------------------------------------------------
PRODUCTIVIDAD
------------------------------------------------------------------------------------------------------------
ORGÁNICO 400 376 352 327
SEMILIBRE 308 258 219 186 158
F. RESTRINGIDO 241 182 139 105 80
------------------------------------------------------------------------------------------------------------
TIEMPO DE DESARROLLO
------------------------------------------------------------------------------------------------------------
ORGÁNICO 4,6 8,0 14,0 24,0
SEMILIBRE 4,8 8,3 14,0 24,0 42,0
F.RESTRINGIDO 4,9 8,4 14,0 24,0 41,0
------------------------------------------------------------------------------------------------------------
PERSONAL
------------------------------------------------------------------------------------------------------------
ORGÁNICO 1,1 2,7 6,5 16,0
SEMILIBRE 1,4 3,7 10,0 29,0 77,0
F.RESTRINGIDO 1,7 5,2 16,0 51,0 157,0
------------------------------------------------------------------------------------------------------------
Tabla B. Estimaciones en nivel básico para productos estándares.

VII. DISTRIBUCIÓN DE ESFUERZO Y TIEMPO POR ETAPAS.

Una vez presentados los tres modos de desarrollo y vista la diferencia entre ellos, es de esperar que las
estimaciones para cada una de las etapas del proyecto difieran considerablemente de un modo al otro.

La tabla 1.2 muestra la distribución del esfuerzo y tiempo para cada una de las etapas en los tres modos de
desarrollo, su utilización es idéntica al caso del modo orgánico presentado anteriormente.

Se observa que un proyecto en modo fuertemente restringido consume mucho más esfuerzo en la etapa de
implantación como consecuencia de la necesidad de realizar un seguimiento más cuidadoso para comprobar y
verificar todas las unidades del producto.

Sin embargo, proporcionalmente, se precisa menos esfuerzo para la etapa de desarrollo. No porque se le
dedique menos esfuerzo a la codificación, sino porque, comparativamente, los otros modos consumen más
esfuerzo en las otras etapas, en trabajos de modificación y acomodación de cambios en las especificaciones.

Igualmente, un proyecto fuertemente restringido consume un porcentaje menor de tiempo en la etapa de


programación, como resultado de la necesidad de dedicar mayor cantidad de tiempo total de desarrollo.

6
------------------------------------------------------------------------------------------------------------
IND/MODO FASES 2 MF 8 MF 32 MF 128 MF 512 MF
------------------------------------------------------------------------------------------------------------
ESFUERZO
------------------------------------------------------------------------------------------------------------
ORGÁNICO Estudio Preliminar 6% 6% 6% 6%
Análisis 16% 16% 16% 16%
Diseño y desarrollo 68% 65% 62% 59%
Diseño 26% 25% 24% 23%
Desarrollo 42% 40% 38% 36%
Prueba e implantación 16% 19% 22% 25%
------------------------------------------------------------------------------------------------------------
SEMILIBRE Estudio Preliminar 7% 7% 7% 7% 7%
Análisis 17% 17% 17% 17% 17%
Diseño y desarrollo 64% 61% 58% 55% 52%
Diseño 27% 26% 25% 24% 23%
Desarrollo 37% 35% 33% 31% 29%
Prueba e implantación 19% 22% 25% 28% 31%
------------------------------------------------------------------------------------------------------------
FUERTEMENTE Estudio Preliminar 8% 8% 8% 8% 8%
RESTRINGIDO Análisis 18% 18% 18% 18% 18%
Diseño y desarrollo 60% 57% 54% 51% 48%
Diseño 28% 27% 26% 25% 24%
Desarrollo 32% 30% 28% 26% 24%
Prueba e implantación 22% 25% 28% 31% 34%
------------------------------------------------------------------------------------------------------------
TIEMPO DE DESARROLLO
------------------------------------------------------------------------------------------------------------
ORGÁNICO Estudio Preliminar 10% 11% 12% 13%
Análisis 19% 19% 19% 19%
Diseño y desarrollo 63% 59% 55% 51%
Prueba e implantación 18% 22% 26% 30%
------------------------------------------------------------------------------------------------------------
SEMILIBRE Estudio Preliminar 16% 18% 20% 22% 24%
Análisis 24% 25% 26% 27% 28%
Diseño y desarrollo 56% 52% 48% 44% 40%
Prueba e implantación 20% 23% 26% 29% 32%
------------------------------------------------------------------------------------------------------------
FUERTEMENTE Estudio Preliminar 24% 28% 32% 36% 40%
RESTRINGIDO Análisis 30% 32% 34% 36% 38%
Diseño y desarrollo 48% 44% 40% 36% 32%
Prueba e implantación 22% 24% 26% 28% 30%

Tabla 1.2. Esfuerzo y tiempo por fases en todos los modos.

Ejemplo I.3. Un grupo de trabajo va a desarrollar un proyecto que se estima tenga 20 MF. El proyecto se
desarrollará con las siguientes condiciones:

-- El grupo de trabajo tiene experiencia y es muy unido.


-- El grupo de trabajo no pertenece a la organización.
-- Las especificaciones del proyecto no pueden variarse bajo ningún concepto.
-- No hay que introducir algoritmos innovadores.
-- Proyecto pequeño.
-- Esfera de trabajo poco conocida.

Estime para ese proyecto todos sus parámetros por etapas.

7
Solución:

El modo de desarrollo es evidentemente SEMILIBRE.

Para 20 MF en MODO SEMILIBRE interpolando en la tabla B:

ESF = 88,5 hombres-mes

TDES = 11.1 meses

Cálculos:

CH = ESF / TDES = 88,5/11,1 = 7,9 hombres.

P = MF / ESF = 226 Instr / hombres-mes

Esfuerzo por Etapas (hombres-mes): Interpolando en la tabla 1.2.

1. Etapa Estudio Preliminar:

7 % de ESF = 7(88,5) = 6,19

2. Etapa Análisis:

17 % de ESF = 17(88,5)= 15,04

3+4. Etapas Diseño y Desarrollo:

59,5 % DE ESF = 59,5(88,5) = 52,66

5. Etapas Prueba e Implantación:

23,5 % de ESF = 23,5(88,5) = 20,8

Tiempo de desarrollo por etapas (meses): Interpolando en la tabla 1.2.

1. 19 % de TDES 19(11,1) = 2,11

2. 25,5 % de TDES 25,5(11,1) = 2,83

3+4. 50 % de TDES 50(11,1) = 5,55

5. 24,5 % de TDES 24,5(11,1) = 2,71

Hombres por etapas:

1. 6,19/2,11 = 2,9 hombres

2. 15,04/2,83 = 5,3 hombres

3+4. 52,66/5,55 = 9,5 hombres

5. 20,8 /2,71 = 7,7 hombres

También podría gustarte