lunes, 27 de septiembre de 2010

COCOMO

El Modelo Constructivo de Costes (o COCOMO, por su acrónimo del inglés COnstructive COst MOdel) es un modelo matemático de base empírica utilizado para estimación de costes de software. Incluye tres submodelos, cada uno ofrece un nivel de detalle y aproximación, cada vez mayor, a medida que avanza el proceso de desarrollo del software: básico, intermedio y detallado. 

La función básica que utilizan los tres modelos es:
E = a(Kl)b * m(X) donde:
a y b son constantes con valores definidos en cada submodelo
Kl es la cantidad de líneas de código, en miles.
m(X) Es un multiplicador que depende de 15 atributos.
El resultado se da en unidades salario/mes y horas-hombre.
A la vez, cada submodelo también se divide en modos que representan el tipo de proyecto, y puede ser:
  • Modo orgánico: un pequeño grupo de programadores experimentados desarrollan software en un entorno familiar. El tamaño del software varía desde unos pocos miles de líneas (tamaño pequeño) a unas decenas de miles (medio).
  • Modo semilibre o semiencajado: corresponde a un esquema intermedio entre el orgánico y el rígido; el grupo de desarrollo puede incluir una mezcla de personas experimentadas y no experimentadas.
  • Modo rígido o empotrado: el proyecto tiene fuertes restricciones, que pueden estar relacionadas con la funcionalidad y/o pueden ser técnicas. El problema a resolver es único y es difícil basarse en la experiencia, puesto que puede no haberla.

Modelo básico: Se utiliza para obtener una primera aproximación rápida del esfuerzo, y hace uso de la siguiente tabla de constantes para calcular distintos aspectos de costes:

MODO a b c d
Orgánico 2.40 1.05 2.50 0.38
Semilibre 3.00 1.12 2.50 0.35
Rígido 3.60 1.20 2.50 0.32
Estos valores son para las fórmulas:
  • Personas necesarias por mes para llevar adelante el proyecto (MM) = a*(Klb)
  • Tiempo de desarrollo del proyecto (TDEV) = c*(MMd)
  • Personas necesarias para realizar el proyecto (CosteH) = MM/TDEV
  • Costo total del proyecto (CosteM) = CosteH * Salario medio entre los programadores y analistas.
Se puede observar que a medida que aumenta la complejidad del proyecto (modo), las constantes aumentan de 2.4 a 3.6, que corresponde a un incremento del esfuerzo del personal.

 Modelo intermedio: Este añade al modelo básico quince modificadores opcionales para tener en cuenta en el entorno de trabajo, incrementando así la precisión de la estimación. Para este ajuste, al resultado de la fórmula general se lo multiplica por el coeficiente surgido de aplicar los atributos que se decidan utilizar. Los valores de las constantes a reemplazar en la fórmula son:

MODO a b
Orgánico 3.20 1.05
Semilibre 3.00 1.12
Rígido 2.80 1.20
Se puede observar que los exponentes son los mismos que los del modelo básico, confirmando el papel que representa el tamaño; mientras que los coeficientes de los modos orgánico y rígido han cambiado, para mantener el equilibrio alrededor del semilibre con respecto al efecto multiplicador de los atributos de coste.

Atributos: Cada atributo se cuantifica para un entorno de proyecto. La escala es muy bajo - bajo - nominal - alto - muy alto - extremadamente alto. Dependiendo de la calificación de cada atributo, se asigna un valor para usar de multiplicador en la fórmula (por ejemplo, si para un proyecto el atributo DATA es calificado como muy alto, el resultado de la fórmula debe ser multiplicado por 1000).

El valor de cada atributo, de acuerdo a su calificación, se muestra en la siguiente tabla:

Atributos Valor
Muy bajo Bajo Nominal Alto Muy alto Extra alto
Atributos de software
Fiabilidad 0,75 0,88 1,00 1,15 1,40
Tamaño de Base de datos
0,94 1,00 1,08 1,16
Complejidad 0,70 0,85 1,00 1,15 1,30 1,65
Atributos de hardware
Restricciones de tiempo de ejecución

1,00 1,11 1,30 1,66
Restricciones de memoria virtual

1,00 1,06 1,21 1,56
Volatilidad de la máquina virtual
0,87 1,00 1,15 1,30
Tiempo de respuesta
0,87 1,00 1,07 1,15
Atributos de personal
Capacidad de análisis 1,46 1,19 1,00 0,86 0,71
Experiencia en la aplicación 1,29 1,13 1,00 0,91 0,82
Calidad de los programadores 1,42 1,17 1,00 0,86 0,70
Experiencia en la máquina virtual 1,21 1,10 1,00 0,90

Experiencia en el lenguaje 1,14 1,07 1,00 0,95

Atributos del proyecto
Técnicas actualizadas de programación 1,24 1,10 1,00 0,91 0,82
Utilización de herramientas de software 1,24 1,10 1,00 0,91 0,83
Restricciones de tiempo de desarrollo 1,23 1,08 1,00 1,04 1,10

Modelo Detallado: Presenta principalmente dos mejoras respecto al anterior:

  • Los factores correspondientes a los atributos son sensibles o dependientes de la fase sobre la que se realizan las estimaciones. Aspectos tales como la experiencia en la aplicación, utilización de herramientas de software, etc., tienen mayor influencia en unas fases que en otras, y además van variando de una etapa a otra.
  • Establece una jerarquía de tres niveles de productos, de forma que los aspectos que representan gran variación a bajo nivel, se consideran a nivel módulo, los que representan pocas variaciones, a nivel de subsistema; y los restantes son considerados a nivel sistema.



No hay comentarios:

Publicar un comentario