metodo de estimacion de costos cocomo construtive cost model.pdf

36
TEMA III. Planificación y Control de Proyectos Informáticos

Upload: leydicahuich

Post on 05-Dec-2015

23 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

TEMA III. Planificación y Control de Proyectos Informáticos

Page 2: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

PRESENTACIÓN

Al igual que un proyecto constructivo, mecánico o de cualquier producto

nuevo, los de elaboración de software, necesitan de una planificación

detallada y de un control riguroso de su realización.

En numerosas ocasiones, se emprenden trabajos de esta naturaleza

obviando estas actividades y los ejecutores o jefes de proyectos, no tienen ni

siquiera una fecha de su terminación, su costo, los beneficios económicos

que aportará, etc.

Esto se debe a:

a. La poca conciencia que posee el personal de informática de la importancia

de dichas tareas, debido en muchas ocasiones a que estas actividades no se

tratan en los cursos o carreras donde se forma a este personal.

b. La creencia del personal informático, de que dichas tareas no debe

hacerlas él sino "otro"; olvidando que el deber elemental de todo

profesionista es saber, inclusive para satisfacción propia, cual es su

productividad, los beneficios que aporta su trabajo, lo que ha costado, etc.

C. La creencia también arraigada de que es muy "difícil", que el trabajo

informático es "distinto", que no se hayan valores "exactos" y otras

cuestiones completamente subjetivas, ya que la actividad informática es

como otra cualquiera. Es menos difícil planificar un proyecto informático que

cortar mil arrobas de caña en un día y no hay nada más inexacto que saber si

uno va a estar vivo mañana y mucha gente tiene su agenda llena de

actividades programadas para el mes próximo.

D. La inexistencia de un método formalizado que sirva de guía para la

ejecución de estas actividades.

Con este texto se quiere dar solución a estas cuatro dificultades y se

pretende que además sirva de base para cursos, seminarios o de estudio

para el personal informático y a la vez como un método formalizado para la

ejecución de estas actividades. Por otra parte, se tratará de hacer ver que

estas tareas deben ser desarrolladas por el personal informático, que no son

difíciles ni distintas, que son tan exactas como se necesitan y que en muchos

casos su exactitud depende de uno mismo.

Page 3: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

TEMA I. PLANIFICACIÓN DE TRABAJOS DE PRODUCCIÓN DE SOFTWARE.

1.1. INTRODUCCION.

Hacer un edificio sin planos, sin un cronograma de ejecución de la obra y sin

un presupuesto, a nadie se le ocurre. Emprender una travesía transoceánica

sin cartas de navegación y sin rumbo preestablecido, es de una persona que

no esta bien psíquicamente. Pero en el terreno de las aplicaciones de la

computación, estas premisas, tan lógicas para todo proyecto son muchísimas

veces olvidadas y emprendemos una tarea sin saber, qué tiempo se va a

demorar, qué personal se necesita y cuánto va a costar. Numerosos proyectos

de desarrollo de software comienzan con el personal que se tenga, no importa

lo que cueste y durara lo que tenga que durar. Hay quien piensa que eso no

importa, que lo importante es que se trabaje "duro" y "a conciencia"; sin

embargo esa misma persona es incapaz de mandar a hacer algún mueble a un

carpintero, sin decirle para que día lo quiere, de que madera lo prefiere y

cuanto esta dispuesto a pagar.

La excusa para esto es: que es muy difícil de estimar, que no existen datos,

que ninguna tarea es igual a otra, que no hay actividades repetitivas, que

depende del "arte" del analista, etc., etc. Pero lo cierto es que cuando se

quiere, cosas más difíciles se planifican y se le calculan los costos; como por

ejemplo predecir cuando va a haber una vacuna contra el SIDA o cuando va a

concluir y cuanto cuesta un proyecto de desarrollo espacial y ambas cosas se

hacen, porque ningún empresario en el mundo que lo sea de verdad y le

interese su dinero o el dinero que el Estado o su empresa pone bajo su

administración, manda a ejecutar una tarea sin saber cuando se va a terminar,

cuanto le va a costar y que beneficios representará para él y/o la compañía.

Se ha dicho lo anterior porque la actividad de planificación de proyectos de

desarrollo de software, no ha tiene la prioridad que debe tener.

Los métodos de la Ruta Crítica, PERT, CPM, etc. que se aplican para planificar

los proyectos constructivos pueden ser utilizados para la planificación de los

proyectos de software, al igual que los Métodos Económico-Matemáticos o de

Investigación de Operaciones, en especial la Programación Lineal Discreta,

pero hay que estimar muchos parámetros de una forma muy subjetiva o tener

un sistema estadístico de control muy potente.

En las dos últimas décadas en el mundo se ha venido trabajando para

encontrar un método especifico para planificar proyectos de desarrollo de

software y aunque se sigue trabajando en este sentido, una etapa fundamental

terminó con la publicación del libro Software Engineering de B.W.Bohem que

recoge su propia experiencia en muchos proyectos desarrollados en los

Estados Unidos y trabajos hechos por otros autores anteriores a él.

Page 4: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

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 permita estimar el esfuerzo (hombres-mes) y tiempo

requerido para desarrollar un proyecto, en términos de número de

instrucciones fuente utilizadas en la codificación del producto de software.

Puede ser que en las condiciones latinoamericanas, las formulaciones

descritas por él no se cumplan exactamente, pero desde el punto de vista

metodológico y de la filosofía de estimación de los parámetros, es de gran

utilidad. Más adelante se detallará como se puede llegar a obtener indicadores

propios para lograr estos parámetros; pero lo que sí es cierto es que nadie

puede planificar sin datos, y que cada organización debe poseer los

necesarios para poder planificar sus trabajos en el terreno de la computación

y para ello, los trabajos de Bohem y otros autores pueden servir de punto de

partida.

Como antecedente del método que se explicará se desarrollaron algunos

modelos de este mismo tipo, como fueron:

- Modelo SDC 1965 (Nelson 1966)

- Modelo TRW (Wolverton, 1974)

- Modelo SLIM Putman (Putman, 1978)

- Modelo Doty (Herd y otros, 1977)

- Modelo RCA PRICES (Putman Park, 1979)

- Modelo IBM-FDS (Walston-Felix, 1977)

- Modelo Boeing 1977 (Black y Otros, 1977)

- Modelo GRC 1979 (Carriere-Tribodeau, 1979)

- Meta-Modelo Bailey-Basill (Bailey-Basill, 1981)

En este tema se tratará la planificación de proyectos de elaboración de

software o sea, planificación del trabajo de análisis, diseño, programación,

puesta a punto, prueba e implantación de sistemas automatizados utilizando

los principios del COCOMO.

1.2.FORMA DE APLICACIÓN. DEFINICIONES Y SUPOSICIONES.

Este método es aplicable en todo trabajo relacionado con los procesos de

producción de un software nuevo, su mantenimiento o modificación.

Existen tres niveles de profundidad en su aplicación y a cada uno

corresponderá un conjunto de ecuaciones. El nivel se escogerá en

dependencia del grado de conocimiento que se posea del objeto de estudio.

Los niveles son:

a. básico.

alfonso mendoza
Resaltado
alfonso mendoza
Resaltado
alfonso mendoza
Resaltado
Page 5: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

b. intermedio

c. detallado

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, en este nivel no se tienen en cuenta los diferentes

atributos que afectan la realización del proyecto como: calidad y experiencia

del personal, restricciones del hardware empleado, utilización de modernas

técnicas y herramientas de producción de software, etc. En el nivel

intermedio, estos factores se consideran como adicionales al costo total del

proyecto, mientras que en el nivel detallado, se toma en consideración la

forma en que, cada uno de estos factores afecta la ejecución en cada una las

diferentes etapas individuales en que se divide el proyecto.

El factor principal sobre el que se basan las estimaciones es el tamaño del

producto, es decir el número de miles de instrucciones fuente desarrolladas

(mf).

El producto de todo proceso de elaboración, mantenimiento y/o conversión de

un software son instrucciones, agrupadas en programas y en sistemas y a

partir de su conocimiento se debe planificar el trabajo. El análisis de sistemas

y su diseño, no tiene objetivo si este no se programa, al igual que no tiene

objetivo la producción de tres piezas de un equipo que debe tener cuatro.

En mf se incluyen todas las instrucciones creadas o por crear por el personal

asignado al proyecto, y procesadas en código de máquina por alguna de las

combinaciones de preprocesadores, compiladores o ensambladores,

excluyendo las líneas de comentarios. Se consideran las instrucciones de

lenguaje de control de trabajos, las sentencias de formatos y las declaraciones

de datos.

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.

En el modelo COCOMO se planifican sólo las fases del periodo de elaboración

comprendidas desde el comienzo de la etapa de análisis hasta el final de la

etapa de implantación. Los parámetros correspondientes a la etapa anterior

(por ej. Estudio Preliminar) se deben estimar separadamente.

Los parámetros estimados mediante este modelo no incluyen los

relacionados con las actividades de formación de los usuarios, planificación

de las instalaciones y trabajos de conversión. Sí comprende los relativos a la

documentación de todas y cada una de las etapas, tanto técnica como

dirigida al usuario, etc.

alfonso mendoza
Resaltado
Page 6: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

Las estimaciones cubren todos los costos directos del proyecto, o sea de las

actividades individuales señaladas en el punto anterior. Es decir, incluye la

elaboración del proyecto y los trabajos de documentación pero excluye las

correspondientes al personal operador de las computadoras, secretarias,

dirigentes, etc. , a no ser que estos estén ligados directamente al desarrollo

del proyecto.

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

son se muestran en la siguiente tabla::

Indicador Medida

esfuerzo (esf) hombres-mes

tiempo de desarrollo (tdes) meses

personal necesario (ch ) hombres

productividad (p) miles de instrucciones/hombre-mes

costo (c) pesos

Tabla 1.- Relación de indicadores que se calculan en el COCOMO

La unidad de esfuerzo hombres-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.

Para convertir unidades consideradas como hombres-mes, a otras se utilizan

las equivalencias mostradas en la tabla siguiente:

Unidad Conversión

hombres-mes x 152 hombres-hora

hombres-mes x 19 hombres-día

hombres-mes / 12 hombres-año

Tabla 2.- Conversión a otras de la medida hombres-mes

En los parámetros por etapas se incluyen todos aquellos que se produzcan

durante el periodo de tiempo que dure ésta. Es decir los costos relacionados

con los trabajos relativos a la etapa de programación no son sólo los costos

de codificación sino también los de la documentación y otros trabajos

directos de esa etapa.

El costo se puede estimar de manera tradicional, acumulando todos y cada

uno de sus componentes, pero también de una forma más sencilla, a partir

del costo por hombres-mes.

Se supone que después de la etapa donde se establezcan las

especificaciones, estas no cambiarán sustancialmente, aunque

evidentemente esto será inevitable. No obstante, si se producen

modificaciones significativas deben revisarse las estimaciones realizadas.

Page 7: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

1.3. PROYECTOS DE PRODUCCIÓN DE SOFTWARE.

La base de cálculo para la producción de software es la cantidad, en miles de

instrucciones fuentes (ejecutables) que tendrá su sistema. ¿Cómo se puede

conocer esto?

Esto sólo se puede estimar sobre la base de la experiencia que posea la

persona que vaya a planificar o a desarrollar el software, por analogía con

otros proyectos semejantes o por ciertos cálculos que se pueden realizar

como se mostrará más adelante. Esta experiencia se puede adquirir sola-

mente sabiendo la cantidad de instrucciones que tienen gran cantidad de

proyectos desarrollados por uno o por otras personas. Si nunca ha contado

las instrucciones que tiene un sistema, nunca podrá estimar esta cifra, del

mismo modo que si nunca ha tenido hijos no puede conocer el amor que se

siente hacia ellos.

Entonces lo principal es que desde ahora, que ya Ud. conoce la necesidad

que hay de estimar las instrucciones que puede tener su sistema, debe

contar las instrucciones de los sistemas por Ud. desarrollados o por otros.

Además, como un deber elemental de una persona que realiza determinado

trabajo, se debe conocer lo que uno es capaz de producir. A cualquier obrero

agrícola o industrial que uno le pregunte, es capaz de decir lo que él es

puede de hacer en determinada actividad, cualquier proyectista de la rama de

la construcción o mecánica también lo hace; sin embargo, los especialistas

encargados de producir software en muchos casos ni se imaginan su

productividad (instrucciones/mes) y esto es debido a la poca costumbre de

tomar datos estadísticos o económicos de los proyectos desarrollados.

1.3.1. 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.3.1.1 MODO ORGÁNICO.

En el modo orgánico, 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

como, el sistema bajo desarrollo contribuirá a los objetivos de su

organización.

Page 8: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

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 generar

grandes necesidades de comunicación para determinar 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

podemos hacer un símil entre ellas y las que se usan normalmente como

sigue:

BOHEM NORMAL

Planificación y Requisitos Estudio preliminar

Diseño Análisis

Diseño detallado Diseño

Codificación Desarrollo

Integración y Prueba Prueba e implantación

Tabla 3.- Ciclo de vida para el proyecto según Bohem y comparación con el

establecido más comúnmente.

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

- Entorno de desarrollo estable, con poco desarrollo concurrente de nuevo

hardware asociado.

- Mínimas necesidades de introducir algoritmos innovadores o nuevas

arquitecturas de proceso.

- Un trabajo de proyecto relativamente pequeño. Muy pocos proyectos

desarrollados de modo orgánico sobrepasan los 50 mf (50000 instrucciones

fuente)

- Proyectos en modo orgánico de mayor tamaño pueden desarrollarse

utilizando software ya existente.

1.3.1.2. MODO SEMILIBRE.

Este modo representa un estado intermedio entre el modo orgánico y el

modo fuertemente restringido. Este nivel intermedio puede referirse bien a

las características del proyecto, o bien que el proyecto presenta una mezcla

Page 9: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

de características propias de modo orgánico y otras del modo fuertemente

restringido.

Con respecto a la "experiencia del equipo de trabajo", cualquiera de las

siguientes situaciones puede 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, semimovido, semilibre).

El tamaño del producto en este modo puede llegar a 300 mf.

1.3.1.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 software y hardware fuertemente acoplados.

En general los costos de modificar parte del proyecto es tan alto que por sus

características se podrían considera 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 arreas

más amplias y también menos conocidas que los casos anteriores.

1.3.2. ESTIMACIONES EN MODO ORGÁNICO.

Con los supuestos anteriores y conocidas las etapas del proyecto que

considera el modelo veáse como se calcula el esfuerzo (esf) y el tiempo de

desarrollo (tdes).

Page 10: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

El esfuerzo (hombres-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 3.

El tiempo de desarrollo expresado en meses de un proyecto en modo

orgánico viene dado por:

0,38

tdes = 2,5 (esf)

Ejemplo 1. Supóngase 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, viene desarrollando aplicaciones similares para la empresa. Sí

un estudio inicial determina que el tamaño del producto en alrededor de

32000 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 32000

Productividad: p = = = 352 (if/hombres-mes)

esf 91

0,38 0,38

Tiempo de desarrollo: 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

La cantidad de hombres nos da la medida del número equivalente de

personas trabajando a tiempo completo en el proyecto.

La Tabla 4 nos da el tamaño promedio de los proyectos informáticos y la

Tabla 5 nos muestra los perfiles obtenidos de aplicar las anteriores

ecuaciones a proyectos de tamaño promedio.

Page 11: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

Tipo Tamaño

Pequeño 2000 instrucciones fuentes

Intermedio 8000 " "

Medio 32000 " "

Grande 128000 " "

Tabla 4.- Proyectos de tamaño estándar

Obsérvese que un proyecto "pequeño" es esencialmente el trabajo de una

persona, mientras que un proyecto considerado como "grande" requiere un

nivel medio de 16 personas. Además, hay que hacer notar que en la tabla 2 la

estimación de 5 hombres/mes para un proyecto pequeño se refiere al

desarrollo de 2000 instrucciones fuente de producto software, incluyendo por

tanto, el esfuerzo de documentación, pruebas, correcciones, etc.

Por supuesto, muchos programadores han desarrollado 2 000 instrucciones

de software de uso personal en mucho menos tiempo, por lo que se pueden

recordar las estimaciones de W. Brooks (The Mythical Man-Month) según las

cuales un producto software requiere tres veces más esfuerzo que un

programa personal de tamaño equivalente o las estimaciones que aparecen

en el libro de Carlos Díaz Llorca.

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

La Tabla 6 presenta los porcentajes de distribución del esfuerzo y tiempo de

desarrollo entre las distintas etapas del ciclo de desarrollo definido en la

Tabla 3. Esta distribución varia en función del tamaño del producto. 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 actividad 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. En modo orgánico todos

los proyectos presentan una distribución relativamente plana, comparados

con otros modos de desarrollo de software más restringidos como se verá

más adelante.

Tamaño Esfuerzo Productividad Tiempo Personal

hombres-mes If/hombres-mes meses hombres

Pequeño (2000) 5,0 400 4,6 1,1

Intermedio (8000) 21,3 376 8,0 2,7

Medio (32 000) 91,0 352 14,0 6,5

Grande (128 000) 392,0 327 24,0 16,0

Page 12: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

Tabla 5.- Estimaciones en modo orgánico, nivel básico para proyectos

estándares.

FASES TIPOS

PEQUEÑO INTERMEDIO MEDIO GRANDE

ESFUERZO 2 mf 8 mf 32 mf 128 mf

Estudio preliminar 6% 6% 6% 6%

Análisis 16% 16% 16% 6%

Diseño y desarrollo 68% 65% 62% 59%

De ella:

Diseño 26% 25% 24% 23%

Desarrollo 42% 40% 38% 36%

Prueba e implantación 16% 19% 22% 25%

TIEMPO

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%

Tabla 6.- Distribución de tiempo y esfuerzo por etapas, modo orgánico, nivel

básico.

Ejemplo 2. Tómese de nuevo la situación planteada en el ejemplo anterior en

el que se tenia un proyecto de 32 mf, 91 hombres/mes de esfuerzo y 14 meses

de tiempo de desarrollo, supóngase que se desea 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 6 se observa 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,56(14) = 7,7 meses

Personal: ch = 56/7,7 = 7,5 hombres

Los valores nominales obtenidos para cada tamaño del proyecto estándar se

dan en la Tabla 7, junto con los valores relativos a la productividad del

proyecto total y el personal equivalente necesario en cada etapa.

En las Tablas 6 y 7 se expresan también los valores correspondientes a la

etapa de estudio preliminar aunque esta no es considerada dentro de las

estimaciones del modelo. Nótese que la suma de todos los por cientos

menos los de esta etapa suman 100%.

Page 13: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

De la Tabla 7 se pueden extraer algunos datos comparativos, relativos al

esfuerzo y tiempo dedicados entre las diferentes etapas así como respecto a

la magnitud de algunos efectos que aparecen cuando incrementamos el

tamaño del producto. Así, con respecto a la productividad observamos que

se produce una disminución casi proporcional según va aumentando el

tamaño del producto. Las principales razones por las cuales los grandes

productos software incurren en esta disminución de productividad son las

siguientes:

1. Soportar las actividades paralelas de un gran número de programadores

exige un esfuerzo relativamente mayor para establecer minuciosamente las

especificaciones del diseño en el ámbito de cada una de las unidades.

2. Se precisa mayor esfuerzo para verificar y validar, cuanto mayor sea el

número de especificaciones establecidas.

3. Incluso cuando las especificaciones del producto se establecen

minuciosamente, en un gran proyecto, los programadores consumen más

tiempo comunicando y resolviendo interfaces útiles.

4. Se precisa un mayor esfuerzo de integración entre las diferentes unidades

que componen el producto total.

5. En general se requieren unas pruebas más amplias y detalladas para

verificar y validar un producto software de mayor tamaño.

6. Los grandes proyectos normalmente exigen mayor esfuerzo.

1.3.4. 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 4 y 5 se puede obtener el perfil del proyecto por

interpolación de los datos de los proyectos estándares de tamaño inferior y

superior de las citadas Tablas.

Ejemplo 3. Supóngase que se desea obtener el esfuerzo necesario en la etapa

de programación (desarrollo) de un producto de software cuyo tamaño se fija

en 12800 líneas fuente. Aplicando las ecuaciones ya conocidas se obtiene

fácilmente el esfuerzo total y el tiempo de desarrollo:

1,05

Esfuerzo: esf = 2,4(12,8) = 35 hombres-mes

0,38

Tiempo de desarrollo: tdes = 2,5(35) = 9,7 meses

Page 14: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

Para obtener el esfuerzo necesario en la etapa de programación, utilizamos

los datos de la Tabla 6 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 a 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.

1.3.5. MODOS SEMILIBRE Y FUERTEMENTE RESTRINGIDO. NIVEL BÁSICO

La Tabla 8 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 9.

Page 15: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

F A S E S PEQUEÑO INTERMEDIO MEDIO GRANDE

2 MF 8 MF 32 MF 128 MF

ESFUERZO

Estudio Preliminar 0,3 1,3 5,0 24,0

Análisis 0,8 3,4 15,0 63,0

Diseño y desarrollo 3,4 13,8 56,0 231,0

De ella:

Diseño 1,3 5,3 22,0 90,0

Desarrollo 2,1 8,5 34,0 141,0

Prueba e implantación 0,8 4,1 20,0 98,0

TIEMPO

Estudio Preliminar 0,5 0,8 1,7 3,1

Análisis 0,9 1,5 2,7 4,6

Diseño y desarrollo 2,9 4,7 7,7 12,2

Prueba e implantación 0,8 1,8 3,6 7,2

PERSONAL

Estudio Preliminar 0,6 1,4 2,9 8,0

Análisis 0,9 2,3 5,6 14,0

Diseño y desarrollo 1,2 2,9 7,3 19,0

Prueba e implantación 1,0 2,3 5,6 14,0 % DE CH POR FASE

RESPECTO

AL TOTAL DEL PROYECTO

Estudio Preliminar 60% 55% 50% 46%

Análisis 84% 84% 84% 84%

Diseño y desarrollo 108% 110% 113% 116%

Prueba e implantación 89% 87% 85% 83%

Productividad

En todo el proyecto 400 376 352 327

Tabla 7.- Indicadores en por cientos, modo orgánico, nivel básico para

proyectos estándares.

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

Una vez presentados los tres modos de desarrollo y vistas las diferencias

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 10 da 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

Page 16: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

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.

Ejemplo 4. Un grupo de trabajo va a desarrollar un proyecto que se estima

tenga 20 mf. El proyecto se desarrollará bajo 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.

Solución:

EL modo de desarrollo es evidentemente semilibre.

Para 20 mf en modo semilibre interpolando en la Tabla 9:

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 mf/hombres-mes

Page 17: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

Esfuerzo por Etapas (hombres-mes):

Interpolando en la Tabla 10:

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. Etapa Prueba e Implantación:

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

Tiempo de desarrollo por etapas (meses):

Interpolando en la Tabla 10.

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

Personal (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

Esfuerzo por Etapas (hombres-mes):

Interpolando en la Tabla 10:

1. Etapa Estudio Preliminar:

Page 18: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

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. Etapa Prueba e Implantacación:

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

Tiempo de desarrollo por etapas (meses):

Interpolando en la Tabla 10:

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

Como se observa, la cantidad de hombres necesarios por etapas no es la misma ni

da un número entero. Esto puede llevarnos a la necesidad de ajustar el número

obtenido a una cantidad determinada y como se posee el esfuerzo necesario, volver

a calcular el tiempo de desarrollo y así establecer un balance entre las necesidades

del proyecto y las posibilidades de fuerza de trabajo que se puede asignar a éste

para una etapa determinada.

MODO ESFUERZO TIEMPO DE

DESARROLLO

Page 19: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

ORGÁNICO 1,05

esf = 2,4(MF)

0,38

tdes = 2,5 (esf)

SEMILIBRE 1,12

esf = 3,0(MF)

0,35

tdes = 2,5 (esf)

FUERTEMENTE

RESTRINGIDO

1,20

esf = 3,6(MF)

0,32

tdes = 2,5 (esf)

Tabla 8.- Esfuerzo y tiempo de desarrollo, nivel básico.

1.3.6. NIVEL INTERMEDIO.

En el nivel intermedio se toman en cuenta un conjunto de factores que

afectan el proyecto en su totalidad y no se toma la afectación particular de

estos factores en las distintas etapas o fases.

Para el nivel intermedio los valores de esfuerzo y tiempo de desarrollo son

semejantes a los del nivel básico aunque en estudios más recientes se

plantea que en las ecuaciones del esfuerzo hay una ligera variación con

respecto a las del nivel básico estas son:

1,05

modo orgánico: esf = 3,2 (mf )

1,12

modo semilibre: esf = 3,0 (mf )

1,20

modo fuertemente restringido: esf = 2,8 (mf )

En el nivel intermedio este esfuerzo que se pudiera llamar "nominal", se ve

afectado por una serie de coeficientes que dependen de las características o

atributos del producto, de la computadora para la cual se esta haciendo el

proyecto, del personal y del propio proyecto.

En la Tabla 11 se muestran los factores que afectan el esfuerzo nominal y la

cuantía en que se afectan estos de acuerdo a los niveles que pose el proyecto

en cada uno de ellos: muy bajo, bajo, nominal, alto, muy alto y extra alto.

En la Tabla 13 se muestran las características que hacen que cada atributo sea

considerado en algunas de estas categorías, se hace una excepción con el

atributo "Complejidad del Producto" (CPR) cuya valoración se muestra en

Tabla 12. Este atributo depende a su vez de la complejidad de las operaciones

de control, aritméticas, de entrada y salida y de manejo en la base de datos.

Nótese en la Tabla 12 que algunos factores hacen que se aumente el esfuerzo

nominal y otros que disminuya.

Page 20: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

INDICADOR/

MODO

PEQUEÑO

2 MF

INTERMEDIO

8 MF

MEDIO

32 MF

GRANDE

128 MF

MUY

GRANDE

512 MF

ESFUERZO

ORGÁNICO 5,0 21,3 91,0 392,0 -

SEMILIBRE 6,5 31,0 146,0 687,0 3250,0

FUERTEMENTE

RESTRINGIDO

8,3 44,0 230,0 1216,0 6420,0

PRODUCTIVIDAD

ORGÁNICO 400 376 352 327 -

SEMILIBRE 308 258 219 186 158

FUERTEMENTE

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

FUERTEMENTE

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

FUERTEMENTE

RESTRINGIDO

1,7 5,2 16,0 51,0 157,0

Tabla 9.- Estimaciones en nivel básico para productos estándares.

Los factores se muestran en la Tabla 11.

Se detallará ahora cada uno de los indicadores y cómo se determina su nivel.

1.3.6.1. Requerimientos de Seguridad del Software. (RSS)

Se consideran los siguientes niveles de este indicador:

Muy bajo: El efecto de una falla en el software diseñado es simplemente un

defecto del sistema.

Bajo: El efecto de una falla en el software diseñado es de bajo nivel con

pérdidas fácilmente recuperables para los usuarios. Como ejemplo se

pueden citar los errores que surgen en una planificación a largo plazo.

INDICADOR/MODO ETAPAS PEQUEÑO

2 mf

INTERMEDIO8

8 mf

MEDIO

32 mf

GRANDE

128 mf

MUY

GRANDE

512 mf

Page 21: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

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

RESTRINGIDO

Estudio

Preliminar

8% 8% 8% 8% 8%

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

implant

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

implant

20% 23% 26% 29% 32%

FUERTEMENTE

RESTRINGIDO

Estudio

Preliminar

24% 28% 32% 36% 40%

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 10. Esfuerzo y tiempo de desarrollo por estapas. Todos los modos.

Nominal: El efecto de una falla es de pérdidas moderadas para los usuarios

pero una situación de la cual uno puede salir sin una penalización extrema.

Ejemplo de ello son los sistemas de Abastecimiento Técnico Material.

SIGLAS ATRIBUTOS DEL PRODUCTO

Page 22: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

RSS Requerimientos de Seguridad del Software

TBD Tamaño de la Base de Datos

CPR Complejidad del Producto

ATRIBUTOS DE LA COMPUTADORA

RTE Restricciones de Tiempo de Ejecución

RMP Restricciones de Memoria Principal

VMC Velocidad con que cambian los Medios de Cómputo

TRC Tiempo de Respuesta de la Computadora

ATRIBUTOS DEL PERSONAL

CAN Capacidad de los Analistas

EAN Experiencia de los Analistas

CPRO Capacidad de los Programadores

ESO Experiencia en el Sistema Operativo

ELP Experiencia en el Lenguaje de Programación

ATRIBUTOS DEL PROYECTO

UTP Uso de Técnicas modernas de Programación

UHS Utilización de las Herramientas de Software

RPL Requisitos de Planificación

Tabla 11.- Factores que se analizan en el modo intermedio.

Alto: El efecto de una falla implica grandes pérdidas financieras o molestias a

un gran número de personas. Ejemplo de ello los sistemas de distribución

eléctrica.

Muy alto: El efecto de una falla puede significar pérdidas de vidas humanas.

1.3.6.2. Tamaño de la Base de Datos. (TBD)

Se toma el tamaño de la base de datos en kbytes y se divide entre la cantidad

de instrucciones mf, en dependencia del valor obtenido se toma la complejidad

de este indicador. Es lógico que para poder obtener el tamaño de la base de

datos, deban estar definidos, los archivos, los campos, la longitud de estos y

estimadas la cantidad de artículos. La fuente de información para ello es el

diccionario de datos del análisis y el estudio del sistema actual realizado.

Para la familia dBase a los archivos de datos se le puede calcular su volumen

por la fórmula:

Dbase II. V.dbf = 9 + (CC*16) + CA(LA + 1) (caracteres)

Dbase III. V.dbf = 34 + (CC*32) + CA(LA + 1) (caracteres)

N I V E L E S

FACTOR MUY BAJO BAJO NOMINAL ALTO MUY ALTO EXTRA ALTO

RSS 0,75 1,00 1,15 1,40 -

Page 23: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

TBD - 0,94 1,00 1,08 1,16 -

CPR 0.70 0,85 1,00 1,15 1,30 1.65

RTE - - 1,00 1,11 1,30 1.66

RMP - - 1,00 1,06 1,30 1,58

VMC - 0,87 1,00 1,15 1,30 -

TRC - 0,87 1,00 1,07 1,15 -

CAN 1,46 1,19 1,00 0,86 0,71 -

EAN 1,29 1,13 1,00 0,91 0,82 -

CPRO 1,42 1,17 1,00 0,86 0,70 -

ESO 1,21 1,10 1,00 0,96 - -

ELP 1,14 1,07 1,00 0,95 - -

UTP 1,24 1,10 1,00 0,91 0,82 -

UHS 1,24 1,10 1,00 0,91 0,83 -

RPL 1,23 1,08 1,00 1,04 1,10 -

Tabla 12.- Valores de los factores que afectan el esfuerzo.

Donde: CC - Cantidad de campos del arch ivo de datos.

CA - Cantidades registros de datos estimada.

LA - Longitud del registro de datos (caracteres).

V.dbf- Volumen del arch ivo de datos (Bytes).

Para los archivos índices:

dBase II CK = 509/ (LK + 4)

dBase III CK = 509/ (LK + 8)

dBase III+ CK = 507/ (LK + CBC)

FoxBase CK = 509/ (LK + 8)

Clipper CK = 1022/(LK + 8)

Donde: CBC = 8 si RESTO = 0

CBC = 9 si RESTO = 1

CBC = 10 si RESTO = 2

CBC = 11 si RESTO = 3

y: RESTO = LK - {[Parte Entera(LK/4)]*4}

Para todos los dBase:

CB1 = CA/CK

B2 = CB1/CK

n

CBT = CBi

I=1

CBn = 1

y: V.ndx = 512 + 512 CBT

V.idx = 512 + 512 CBT

Page 24: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

V.ntx = 1024 + 1024 CBT

Donde: CK - Cantidad de entradas de llave

LK - Longitud de la llave (caracteres)

CA - Cantidad de registros de datos

CBn- Cantidad de bloques de datos en el nivel n

CBT- Cantidad de bloques de datos total

V.ndx - Volumen de datos del arch ivo.ndx (Bytes)

V.idx - Volumen de datos del arch ivo.idx (Bytes)

V.ntx - Volumen de datos del arch ivo.ntx (Bytes)

Para otros tipos de archivos, consultar la literatura especializada

1.3.6.3. Complejidad del Producto.(CPR)

La complejidad del producto, subsistemas o tareas a desarrollar depende del

tipo de operaciones de control, aritméticas, de entrada y salida y de manejo de

la base de datos que contenga dicho producto. Se debe ver en la Tabla 14 que

nivel tiene en su producto estas operaciones y ponderando según lo que

usted conoce del análisis del sistema actual obtener un nivel único general.

1.3.6.4. Restricciones de Tiempo de Ejecución.

Se debe estimar el tiempo necesario para la ejecución de este componente y

calcular el tiempo disponible de computación, se divide uno entre otro y se

multiplica por 100 para hallar el por ciento, con este número se entra a la Tabla

13 para hallar el nivel de complejidad de este indicador.

El tiempo de ejecución podrá determinarse mediante la siguiente fórmula:

TE = TED + TEA + TSD (Horas/día)

Donde: TED - Tiempo consumido en la entrada de los datos (hr/día)

TEA - Tiempo de ejecución y acceso a archivos (hr/día)

TSD - Tiempo consumido en la salida de los datos (hr/día)

VDE

TED =

RE * 3600

VDS

TSD =

RS * 3600

Donde: VDE - Volumen de datos de entrada (caracteres/día)

Page 25: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

RE- Rapidez de la entrada de datos (cps)

VDS - Volumen de datos de salida (caracteres/día)

RS - Rapidez de salida de los datos (cps)

n

VDE o VDS = Ij (caracteres)

j=1

m

CIj = Aij

i=1

Donde: Aij - Longitud del dato i en el flujo j. (caracteres)

CIj - Capacidad de información del flujo j (caracteres)

m - Cantidad de datos de un flujo

n - Cantidad de flujos de entrada o de salida.

El tiempo de ejecución y acceso a archivo depende del tipo de proyecto

(gestión, inteligencia artificial, cálculo científico, etc.), del tipo de máquina, del

sistema operativo, del sistema de gestión de base de datos, etc.

Este tiempo puede calcularse, a través de programas realizados anteriormente

del mismo tipo o diseñados para ello propiamente, que simulen la ejecución de

las instrucciones y los accesos y a partir de ellos calcular "k11" (tiempo

promedio de ejecución en segundos por cada mil instrucciones) y entonces se

puede calcular TEA así:

k11 * mf

TEA = (horas/día)

3600

El tiempo de ejecución y acceso a archivos, es despreciable frente a

(TED+TSD) en sistemas de gestión y es grande con respecto a (TED+TSD) en

procesos que contengan Métodos Económico-Matemáticos, Estadísticos, de

Simulación, etc.

N I V E L E S

MUY BAJO BAJO NOMINAL ALTO MUY ALTO EXTRA

ALTO

RSS SÓLO

DEFECTOS

POCAS

PÉRDIDAS

PÉRDIDAS

MODERADAS

GRANDES

PÉRDIDAS

FINANCIERAS

PÉRDIDAS

HUMANAS

MUCH AS

PÉRDIDAS

HUMANAS

TBD KB/MF >10<= 10 KB/MF - -

Page 26: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

> 100 <= 100 > 1000 <= 1000

V E R F I G U R A 1.10

RTE - - MENOS DEL

50% DEL

USO DEL

TIEMPO

DISPONIBLE

< 70% < 85% < 95%

RMP - - MENOS DEL

50% DEL

USO DE LA

MEMORIA

DISPONIBLE

< 70% < 85% < 95%

VMC - MAYOR 12m

MENOS 1m

MAYOR 6m

MENOR 2s

MAYOR 2m

MENOR 1s

MAYOR 2s

MENOR 2d

-

TRC - INTERACTIV

O

< 4 Horas 4 - 12 Horas | > 12 Horas -

CAN 15 perc. 35 perc. 55 perc. 75 perc. 90 perc. -

EAN 4 meses 1 año 3 años 6 años 12 años -

CPRO 15 perc. 35 perc. 55 perc. 75 perc. 90 perc. -

ESO 1 mes 4 meses 1 año 3 años - -

ELP 1 mes 4 meses 1 año 3 años - -

UTP NO SE USAN SE USAN

EXPERIMEN-

TALMENTE

TIENEN

ALGÚN USO

TIENEN

BASTANTE USO

SON DE

USO

RUTINARIO

-

UHS HERRAM.

BÁSICAS

MICROCOMP|

HERR. BÁS.

MINICOMP.

O FUERTES

MICROCOMP

.

HERR. BÁS.

MAINFRAME

O FUERTES

MINICOMP.

UTILIT.

MÍNIMOS DEL

MAINFRAME

TODOS LOS

UTILIT. DEL

MAINFRAME

-

RPL 75% TDES

NOMINAL

85% TDES

NOMINAL

100% TDES

NOMINAL

130% TDES

NOMINAL

160% TDES

NOMINAL

-

Tabla 13.- Forma de determinar el nivel del factor.

El tiempo de ejecución y acceso a archivos, es despreciable frente a

(TED+TSD) en sistemas de gestión y es grande con respecto a (TED+TSD) en

procesos que contengan Métodos Económico-Matemáticos, Estadísticos, de

Simulación, etc.

1.3.6.5. Restricciones de Memoria Principal. (RMP)

Se estima la cantidad de memoria que se necesita para la ejecución de este

componente, se divide entre la memoria disponible del computador y se

multiplica por 100 para hallar el por ciento, con este número se entra a la Tabla

12 para hallar el nivel de complejidad de este indicador.

NIVEL OPERACIONES DE

CONTROL

OPERACIONES

MATEMÁTICAS

OPERACIONES DE

ENTRADA/SALIDA

OPERACIONES

DE MANEJO DE

DATOS

MUY BAJO Códigos lineales:

DO

IF-THEN-ELSE

Evaluación de

expresiones

matemáticas simples:

Lecturas simples

Escrituras con formatos

simples.

Arreglos

simples en

memoria RAM.

Page 27: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

Predicados simples,

pocas subrutinas.

C = A+B*(D-E).

BAJO Subrutinas en

secuencia la mayor

parte en predicados

simples.

Evaluación de

expresiones

reiteradas. Raíces y

Potencias.

No se necesitan

procesos especiales de

E/S. Sólo toma y

entrega de información.

No hay solapamiento.

Arch ivos

simples sin

cambios en la

estructura de

datos.

NOMINAL Programación

Estructurada (PE).

Mayormente

subrutinas simples.

Tablas de decisión.

Uso de subrutinas

matemáticas y

estadísticas.

Operaciones con

matrices y vectores.

E/S comprende

selecciones, chequeos

de estado y tratamiento

de errores.

Múltiples archi-

vos de E/S.

Cambios

simples en la

estructura de

datos.

ALTO Programa

estructurado con

muchas subrutinas.

Considerables

módulos. Colas.

Pilas.

Análisis numérico.

Interpolación

multivariable.

Ecuaciones

diferenciales.

Optimización del

solapamiento de E/S.

Operaciones de E/S a

nivel fisico.

Complejas

reestructuracio

nes de los

datos.

Subrutinas

activadas por el

FD.

MUY ALTO Código reentrante y

recursivo. Prioridad

fija de interrupción

manual.

Ecuaciones con

matrices singulares.

Ecuaciones

diferenciales

parciales. Análisis

numérico difícil.

Subrutinas para

interrumpir el servicio.

Manejo de líneas de

comunicación.

Uso

generalizado de

lo anterior.

Archivo

comando de

procesamiento.

Optimización de

búsqueda.

EXTRA

ALTO

Programación

múltiple. Cambios

dinámicos de

prioridad.

Microcódigo.

Análisis numérico

difícil y no

estructurado. Análisis

muy preciso. Métodos

estocásticos.

Operaciones

microprogramables.

Dirección de

datos en

lenguaje

natural.

Estructuras

dinámicas

altamente

enlazadas

Tabla 14.- Evaluación del factor complejidad del producto.

La cantidad de memoria principal ocupada se puede calcular mediante la

fórmula:

MP = MOS + MOP + MOD

Donde: MOS - Memoria ocupada por el Software instalado.

MOP - Memoria ocupada por los programas.

MOD - Memoria ocupada por los datos.

La MOS debe conocerse con anticipación y dominarse.

Por ejemplo:

COMMAND.COM (VER 3.2) 23612 COMMAND.COM (VER 2.1) 25276

FOXPLUS.EXE 240640 FOXPLUS.OVL 136592

BASICA.COM 25984 CLIPPER.LIB 307019

Page 28: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

WS 142388 APPEND.COM 1725

ASSIGN.COM 1523 PARK.COM 376

SYS.COM 4607 RESTORE.EXE 21750

BACKUP.EXE 23404 DEBUG.EXE 15647

DISKCOMP.EXE 3808 DISKCOPY.EXE 4096

FORMAT.EXE 11015

La MOP se puede calcular a partir de las instrucciones fuente que tendrá su

sistema y un indicador estadístico k4 que se posea de la siguiente forma:

MOP = k4 * mf

Donde: mf - miles de instrucciones fuente

k4 - kbytes de memoria por cada mil instrucciones

Este indicador k4 dependerá del lenguaje a utilizar y puede ser hallado a través

de programas hechos por Ud. o por otras personas. Según cálculos

realizados:

PROLOG k4 = 34 bytes/ instrucción

BASIC. k4 = 44 bytes/ instrucción

Turbopascal k4 = 31 bytes/ instrucción

Wordstar k4 = 48 bytes/ línea

La Memoria ocupada por los datos será:

MOD = CBA * DB

CBA - Cantidad de buffers abiertos por la configuración

DB - Dimensión del buffer

1.3.6.6 Velocidad con que cambian los Medios de Computo. (VMC)

La velocidad de cambio de los medios de cómputo es la frecuencia de cambio

del hardware y el software necesario para las tareas.

* Si el proyecto a desarrollar es un sistema operativo es la velocidad con que

cambia el hardware de la computadora.

* Si el proyecto a desarrollar es un Sistema de Gestión de Base de Datos

(SGBD) es la velocidad con que cambia el hardware de la computadora y el

sistema operativo.

* Si el subsistema a desarrollar es una aplicación del Sistema de Base de

Datos es la velocidad del cambio del hardware de la computadora, el sistema

operativo y el sistema de base de datos.

Page 29: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

De acuerdo con la frecuencia de cambio se entrará en la Tabla 12 y se hallará

el nivel de este indicador.

1.3.6.7. Tiempo de Respuesta del Computador. (TRC).

Al mandar a correr una tarea esta se demora determinado tiempo desde que se

entrega por el usuario hasta que esta se devuelve. Según se estime que sea

este tiempo se entra en la Tabla 12 y se halla el nivel de este indicador.

Todos los trabajos que se realicen en forma interactiva tienen este indicador

"bajo". Para el trabajo en lote son los demás niveles.

1.3.6.8. Capacidad de los analistas. (CAN)

La capacidad de los analistas se mide en términos de percentiles con respecto

a la población total de analistas de sistemas. Los atributos que deben ser

considerados son: habilidad para el análisis, eficiencia e integridad y habilidad

para la comunicación y cooperación. Este atributo es del conjunto de analistas

como un equipo más que una suma de ellos individualmente. De acuerdo al

valor estimado por Usted se entra en la Tabla 12 para hallar el nivel de este

indicador.

1.3.6.9. Experiencia de los Analistas. (EAN)

Es el tiempo de trabajo promedio que lleva el grupo de analistas en la actividad

de análisis dentro de la rama en que se esta haciendo el sistema esta. Con

este valor se entra en la Tabla 12 para hallar el nivel de este indicador.

1.3.6.10. Capacidad de los programadores. (CPRO)

De este indicador se puede decir lo mismo que de CAP salvo que lo principal

es la habilidad para programar en vez de la habilidad para el análisis. El

percentil será con respecto a la población de programadores. Con el valor del

percentil se entra a la Tabla 12 y se halla el nivel de este indicador.

1.3.6.11. Experiencia en el Sistema Operativo. (ESO)

Es el tiempo promedio de experiencia en el sistema operativo de todo el grupo

de analistas y programadores. Con este valor se entra en la Tabla 12 para

hallar el nivel de este indicador.

1.3.6.12. Experiencia en el Lenguaje de Programación. (ELP)

Es el tiempo promedio de experiencia en el lenguaje de programación de

analistas y programadores. Con este valor se entra en la Tabla 12 para hallar el

nivel del indicador.

Page 30: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

1.3.6.13. Uso de Técnicas modernas de Programación. (UTP)

En el uso de modernas técnicas de programación esta incluido:

- Análisis y diseño TOP-DOWN.

- Uso de una notación modular y jerárquica en el diseño.

- Hacer preplanes para revisar el diseño detallado y la codificación

de cada unidad de software.

- Código estructurado.

- Uso de programas de gestión de bibliotecas.

El nivel se determinará así:

- Muy bajo - No se usan estas herramientas.

- Bajo - Se usan experimentalmente.

- Nominal - Tienen algún uso.

- Alto - Tienen bastante uso.

- Muy alto - Se utilizan de forma rutinaria.

De acuerdo al uso que tengan estas técnicas por el equipo de diseño se entra

en la Tabla 12 y se halla el nivel de este indicador.

1.3.6.14. Uso de modernas Herramientas de Software. (UHS)

Se considera el uso de:

Muy bajo: Ensamblador

Editor de enlaces básico

Monitor básico

Programas de auxilio para la eliminación de errores de

programación

Bajo: Compilador lenguaje de alto nivel

Macroemsamblador

Editor de enlaces overlay

Monitor de lenguaje independiente

Editor de documentos en lote

Biblioteca básica de ayuda

Sistema Base de Datos Básico

Nominal: Sistema operativo tiempo real o compartido

Sistema de Dirección de Base de Datos (DBMS)

Biblioteca simple de programación

Editor de documentos interactivo

Editor de enlaces overlay extendido

Programa de auxilio para la eliminación de

Page 31: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

errores interactivo

Alto: Sistema operativo de memoria virtual

Sistema de ayuda al diseño de Base de Datos

Biblioteca de apoyo a la programación con

ayuda para el manejo de la configuración

Analizador de uso fijo

Analizador del flujo de programas y textos

Editor de textos básico

Muy Alto: Sistema de documentación integrado

Sistema de control de proyectos

Herramientas automatizadas de diseño

Sistema automático de verificación

Herramientas de propósito especifico

Simuladores de conjuntos de instrucciones

Formateador de display

Herramientas del proceso de comunicación

de control de entrada de datos, ayuda a la

conversión, etc.

1.3.6.15. Requisitos de Planificación. (RPL)

Según el por ciento del TDES nominal que se quiera acelerar el proyecto o

desacelerar así será el nivel de este indicador que se halla en la Tabla 12. La

aceleración del proyecto por encima del 75 % del tiempo de desarrollo nominal

es considerado imposible al igual que un alargamiento de más de un 60%.

1.3.6.16. Factor de Esfuerzo compuesto. (FEC)

Si un proyecto se desarrolla en modo orgánico con 32 mf en nivel intermedio y

la capacidad de los analistas es muy alta entonces el esfuerzo real será:

De la Tabla 9: esf nom = 91 hombres-mes

De la Tabla 12: CAN = 0,71

Entonces:

esf real = 0,71 (91) = 64,6 hombres-mes

Para el mismo proyecto, si la capacidad de los analistas es muy baja entonces:

De la Tabla 12: CAN = 1,46

Page 32: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

esf real = 1,46(91) = 132,9 hombres-mes

Claro esta que a un proyecto no lo afecta un solo factor sino muchos a la vez

por lo que el Factor de Esfuerzo Compuesto (FEC) será:

15

FEC = FEi

i=1

donde FEi es el factor de esfuerzo para cada característica o atributo i que se

toma de la Tabla 11.

Ejemplo 7. Un proyecto de 32 mf desarrollado en un modo fuertemente

restringido tiene las siguientes características:

RSS- Bajo VMC- Nominal ESO- Alto

TBD- Nominal TRC- Bajo ELP- Bajo

CPR- Alto CAN- Nominal UTP- Nominal

RTE- Nominal EAN- Alta UHS- Baja

RMP- Muy alto CPRO- Nominal RPL- Muy alto

Determine el valor del esfuerzo necesario.

Solución:

De la Tabla 12:

RSS- 0,88 VMC- 1,0 ESO- 0,90

TBD- 1,0 TRC- 0,87 ELP- 1,07

CPR- 1,15 CAN- 1,0 UTP- 1,0

RTE- 1,0 EAN- 0,91 UHS- 1,10

RMP- 1,21 CPRO- 1,0 RPL- 1,10

FEC = (0,88)(1,15)(1,21)(0,87)(0,91)(0,90)(1,07)(1,10)(1,10)

FEC = 1,067

De la Tabla 9: esf nom = 230 hombres-mes

esf real = esf nom (FEC) = 230 (1,067) = 245,4 hombres-mes.

Ejemplo 8. Suponga que usted desea determinar el esfuerzo de desarrollo de

un proyecto en modo fuertemente restringido que se estima en 10 mf y posee

las siguientes características:

a. Pérdidas moderadas

b. Base de datos 20 000 bytes

c. La complejidad puede considerarse muy alta

D. Se usará el 70% del tiempo disponible de la computadora

Page 33: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

e. Se usarán 450 K de memoria de las 640 K disponibles

f. Se usará una microcomputadora comercial

g. Tiempo de respuesta 2 horas

h. Muy buenos analistas con tres años de experiencia promedio

i. Muy buenos programadores con seis meses de experiencia promedio en el

Sistema Operativo y doce en el lenguaje de programación

j. Son utilizadas much as de las herramientas modernas de programación

desde hace alrededor de un año

k. Serán utilizadas las herramientas básicas del software de un

microcomputador

l. Se debe desarrollar el sistema en nueve meses

m. El costo por hombres-mes de desarrollo del software es de $2000

Determine:

1. Esfuerzo nominal.

2. El nivel de cada atributo a aplicar y su valor correspondiente.

3. Esfuerzo real.

4. Si usted no contrata analistas y programadores muy buenos si no de una

capacidad nominal, el costo por Hombres-mes se reduce a $1500. ¿Traería

eso algún beneficio?

5. Si se puede comprar por $8000 una computadora de 96 K de memoria

¿traería esto algún ahorro?

Solución:

a. Interpolando para hallar el esfuerzo:

10 - 8

esf = esf + (ESF - esf )

10 8 32 - 8 32 8

esf = 44 + 1/12 (230 - 44) Utilizando la Tabla 9.

10

esf = 60 Hombres-mes aprox

10

b. Nivel de cada atributo:

RSS- Nominal (1,0) VMC- Nominal (1,0) ESO- Bajo (1,10)

TBD- Bajo (0,94) TRC- Nominal (1,0) ELP- Nominal (1,0)

CPR- Muy alto (1,30) CAN- Alto (0,86) UTP- Alto (0,91)

RTE- Alto (1,11) EXP- Nominal (1,0) UHS- Bajo (1,10)

RMP- Alto (1,06) CPRO Alto (0,86) RPL- Nominal (1,0)

c. Esfuerzo real.

Page 34: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

FEC = (0,94)(1,30)(1,11)(1,06)(0,86)(0,86)(1,10)(0,91)(1,10)

FEC = 1,17

esf real = esf nom (FEC) = 60(1,17) = 70,2 hombres-mes

costo = 70,2(2000) = $140 040

d. Con analistas y programadores muy buenos:

CAN y CPRO pasan del valor 0,86 a 1,00

Recalculando FEC FEC = 1,58

esf real = esf nom (FEC) = 60(1,58) = 94,8 hombres-mes

costo = 94,8(1500) = 142 200

Esta variable no implica ahorro sino todo lo contrario cuesta $2160 pesos más.

e. Comprando una computadora:

Para esta variante RMP = 1,0 ya que Mem Disp = 450/960 antes RMP era igual a

1,06.

Recalculando FEC FEC = 1,10

esf real = ESFnom (FEC) = 60 (1,10) = 66 hombres-mes

costo = 66 (2000) = $132 000

Se ahorran en el diseño del software 8040 pesos mientras el costo de la

microcomputadora es de 8000. Es conveniente la inversión.

Page 35: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

Tabla 15.- Indicadores de los fatores para el nivel detallado.

N I V E L E S

INDICADOR FASES MUY

BAJO

BAJO NOMINAL ALTO MUY

ALTO

EXTRA

ALTO

RSS 2

3

4

5+6

0,80

0,80

0,80

0,60

0,90

0,90

0,90

0,80

1,00

1,00

1,00

1,00

1,10

1,10

1,10

1,30

1,30

1,30

1,30

1,70

-

-

-

-

TBD

2

3

4

5+6

0,95

0,95

0,95

0,90

1,00

1,00

1,00

1,00

1,10

1,05

1,05

1,15

1,20

1,10

1,10

1,30

-

-

-

-

-

-

-

-

CPR

2

3

4

5+6

0,70

0,70

0,70

0,70

0,85

0,85

0,85

0,85

1,00

1,00

1,00

1,00

1,15

1,15

1,15

1,15

1,30

1,30

1,30

1,30

1,65

1,65

1,65

1.65

RTE

2

3

4

5+6

1, 00

1,00

1,00

1,00

1,10

1,10

1,10

1,15

1,30

1,25

1,25

1,40

1,65

1,55

1,55

1,95

-

-

-

-

-

-

-

-

RMP

2

3

4

5+6

1,00

1,00

1,00

1,00

1,05

1,05

1,05

1,10

1,20

1,15

1,15

1,35

1,55

1,45

1,45

1,85

-

-

-

-

-

-

-

-

VMC

2

3

4

5+6

0,95

0,90

0,85

0,80

1,00

1,00

1,00

1,00

1,10

1,12

1,15

1,20

1,20

1,25

1,30

1,40

-

-

-

-

-

-

-

-

TRC

2

3

4

5+6

0,98

0,95

0,70

0,90

1,00

1,00

1,00

1,00

1,00

1,00

1,10

1,15

1,02

1,05

1,20

1,30

-

-

-

-

-

-

-

-

CAN

2

3

4

5+6

1,80

1,35

1,35

1,50

1,35

1,15

1,15

1,20

1,00

1,00

1,00

1,00

0,87

0,90

0,90

0,85

0,75

0,75

0,75

0,70

-

-

-

-

EAN

2

3

4

5+6

1,40

1,30

1,25

1,25

1,20

1,15

1,10

1,10

1,00

1,00

1,00

1,00

0,87

0,95

0,92

0,92

0,75

0,90

0,85

0,85

-

-

-

-

Page 36: Metodo de Estimacion de costos COCOMO COnstrutive COst MOdel.pdf

1.3.7. NIVEL DETALLADO.

En el nivel detallado se consideran los mismos factores o atributos que en el

nivel intermedio pero no afectando a la totalidad del proyecto sino a cada

etapa. En la Tabla 15 se muestran los valores de los factores para cada una de

ellas. Como puede verse hay factores que no afectan a determinada etapa.

El procedimiento para determinar el esfuerzo por fases es el siguiente:

a. Hallar el esfuerzo total nominal

b. Hallar el esfuerzo por etapas

c. Determinar el nivel de cada factor

d. Determinar el valor de cada factor por etapa

e. Determinar el valor del Factor de Esfuerzo Compuesto (FEC) para cada

etapa

f. Determinar el esfuerzo real por etapa

Todos estos cálculos son el producto de estudios hechos por B. W. Bohem

para las condiciones de Estados Unidos. El procedimiento se puede

automatizar para hacerlo mucho más rápido y más exacto ya que se pudiera

trabajar con las ecuaciones exponenciales originales y no mediante la

interpolación, muchas de las Tablas pueden pasar a formar parte de la Base de

Datos para los cálculos. Este método, como se dijo al principio del capítulo ha

sido el producto de análisis de más de 60 proyectos de distintos tipos

realizados por el autor y de otros cálculos y estimaciones. Se supone que los

valores a los que se arriba por medio de sus cálculos sean una buena

estimación y cuanto más se alejen de ellos peor es.