Está en la página 1de 8

Cocomo (Constructive Cost Model) es un modelo de regresión

basado en LOC, es decir, número de líneas de código . Es un


modelo de estimación de costos de procedimiento para proyectos
de software y, a menudo, se usa como un proceso para predecir de
manera confiable los diversos parámetros asociados con la
realización de un proyecto, como el tamaño, el esfuerzo, el costo, el
tiempo y la calidad. Fue propuesto por Barry Boehm en 1970 y se
basa en el estudio de 63 proyectos, lo que lo convierte en uno de los
modelos mejor documentados.

Los parámetros clave que definen la calidad de cualquier producto


de software, que también son un resultado de Cocomo, son
principalmente Effort & Schedule:

 Esfuerzo: cantidad de trabajo que se requerirá para completar


una tarea. Se mide en unidades meses-persona.
 Programación: simplemente significa la cantidad de tiempo
necesario para completar el trabajo, que es, por supuesto,
proporcional al esfuerzo realizado. Se mide en unidades de
tiempo como semanas, meses.

Se han propuesto diferentes modelos de Cocomo para predecir la


estimación de costos a diferentes niveles, basados en la cantidad de
precisión y corrección requerida. Todos estos modelos se pueden
aplicar a una variedad de proyectos, cuyas características
determinan el valor de la constante que se utilizará en los cálculos
posteriores. Estas características pertenecientes a diferentes tipos
de sistemas se mencionan a continuación.

Definición de Boehm de sistemas orgánicos, adosados e integrados:

1. Orgánico: se dice que un proyecto de software es de tipo


orgánico si el tamaño del equipo requerido es suficientemente
pequeño, el problema se comprende bien y se ha resuelto en
el pasado y también los miembros del equipo tienen una
experiencia nominal con respecto al problema.
2. Adosado: se dice que un proyecto de software es del tipo
Adosado si las características vitales como el tamaño del
equipo, la experiencia y el conocimiento de los diversos
entornos de programación se encuentran entre las de orgánico
e integrado. Los proyectos clasificados como Pareados son
comparativamente menos familiares y difíciles de desarrollar
en comparación con los orgánicos y requieren más
experiencia y mejor orientación y creatividad. Por ejemplo: los
compiladores o diferentes sistemas integrados se pueden
considerar del tipo Semi-Independiente.
3. Integrado: un proyecto de software que requiere el nivel más
alto de complejidad, creatividad y experiencia se incluye en
esta categoría. Dicho software requiere un equipo de mayor
tamaño que los otros dos modelos y también los
desarrolladores deben tener suficiente experiencia y
creatividad para desarrollar modelos tan complejos.

Todos los tipos de sistemas anteriores utilizan diferentes


valores de las constantes utilizadas en los cálculos de
esfuerzo.

Tipos de modelos: COCOMO consta de una jerarquía de tres


formas cada vez más detalladas y precisas. Cualquiera de las
tres formas se puede adoptar según nuestros requisitos. Estos
son tipos de modelo COCOMO:

1. Modelo básico COCOMO


2. Modelo COCOMO intermedio
3. Modelo COCOMO detallado

El primer nivel, Basic COCOMO se puede utilizar para


cálculos rápidos y ligeramente aproximados de los costos de
software. Su precisión está algo restringida debido a la
ausencia de suficientes consideraciones de factores.

El COCOMO intermedio tiene en cuenta estos factores de


costo y el COCOMO detallado también tiene en cuenta la
influencia de las fases individuales del proyecto, es decir, en el
caso de Detallado, tiene en cuenta ambos factores de costo y
también se realizan cálculos por fases para obtener un
resultado más preciso. Estos dos modelos se analizan con
más detalle a continuación.

Estimación del esfuerzo: cálculos -

4. Modelo basica -
5.

6.

7.

La fórmula anterior se utiliza para la estimación de


costes del modelo COCOMO básico y también se utiliza
en los modelos posteriores. Los valores constantes a, b,
cyd para el Modelo Básico para las diferentes categorías
de sistema:

PROYECTOS DE SOFTWARE A B C D
Orgánico 2.4 1.05 2.5 0,38
Semi separado 3,0 1.12 2.5 0,35
Incorporado 3.6 1,20 2.5 0,32

El esfuerzo se mide en meses-persona y, como se


desprende de la fórmula, depende de Kilo-líneas de
código.
El tiempo de desarrollo se mide en meses.

Estas fórmulas se utilizan como tales en los cálculos del


Modelo Básico, ya que no se tienen en cuenta muchos
factores como la confiabilidad, la experiencia, de ahora
en adelante la estimación es aproximada.

A continuación se muestra el programa C++ para


COCOMO básico
// C++ program to implement basic COCOMO
#include<bits/stdc++.h>
using namespace std;
  
// Function for rounding off float to int
int fround(float x)
{
    int a;
    x=x+0.5;
    a=x;
    return(a);
}
  
// Function to calculate parameters of Basic COCOMO
void calculate(float table[][4], int n,char mode[][15], int size)
{
    float effort,time,staff;
  
    int model;
      
    // Check the mode according to size
      
    if(size>=2 && size<=50)
        model=0;        //organic
      
    else if(size>50 && size<=300)
        model=1;        //semi-detached
      
    else if(size>300)
        model=2;        //embedded
  
    cout<<"The mode is "<<mode[model];
  
    // Calculate Effort
    effort = table[model][0]*pow(size,table[model][1]);
  
    // Calculate Time
    time = table[model][2]*pow(effort,table[model][3]);
  
    //Calculate Persons Required
    staff = effort/time;
  
    // Output the values calculated
    cout<<"\nEffort = "<<effort<<" Person-Month";
  
    cout<<"\nDevelopment Time = "<<time<<" Months";
  
    cout<<"\nAverage Staff Required = "<<fround(staff)<<"
Persons";
      
}
  
  
int main()
{
    float table[3]
[4]={2.4,1.05,2.5,0.38,3.0,1.12,2.5,0.35,3.6,1.20,2.5,0.32};
  
    char mode[][15]={"Organic","Semi-Detached","Embedded"};
  
    int size = 4;
  
    calculate(table,3,mode,size);
      
    return 0;
}

Producción:
El modo es orgánico
Esfuerzo = 10.289 persona-mes
Tiempo de desarrollo = 6.06237 meses
Personal promedio requerido = 2 personas

8. Modelo intermedio -

El modelo básico de Cocomo asume que el esfuerzo es


solo una función del número de líneas de código y
algunas constantes evaluadas según los diferentes
sistemas de software. Sin embargo, en realidad, el
esfuerzo y el cronograma de ningún sistema pueden
calcularse únicamente sobre la base de las líneas de
código. Para eso, varios otros factores como
confiabilidad, experiencia, capacidad. Estos factores se
conocen como controladores de costos y el modelo
intermedio utiliza 15 de estos factores para la estimación
de costos.
Clasificación de los generadores de costos y sus
atributos:

(i) Atributos del producto -

 Grado de confiabilidad del software requerido


 Tamaño de la base de datos de la aplicación
 La complejidad del producto

(ii) Atributos de hardware -

 Restricciones de rendimiento en tiempo de


ejecución
 Restricciones de memoria
 La volatilidad del entorno de la máquina virtual.
 Tiempo de giro requerido

(iii) Atributos del personal -

 Capacidad de analista
 Capacidad de ingeniería de software
 Experiencia en aplicaciones
 Experiencia de máquina virtual
 Experiencia en lenguaje de programación

(iv) Atributos del proyecto -

 Uso de herramientas de software


 Aplicación de métodos de ingeniería de software
 Calendario de desarrollo requerido

NOMINAL
MUY MUY
IMPULSORES DE COSTOS BAJO ELEVADO
BAJO ALTO
;
Atributos del producto
Fiabilidad de software
0,75 0,88 1,00 1,15 1,40
requerida
Tamaño de la base de datos de
0,94 1,00 1.08 1,16
la aplicación
Complejidad del producto 0,70 0,85 1,00 1,15 1,30
Atributos de hardware
NOMINAL
MUY MUY
IMPULSORES DE COSTOS BAJO ELEVADO
BAJO ALTO
;
Restricciones de rendimiento
1,00 1,11 1,30
en tiempo de ejecución
Restricciones de memoria 1,00 1.06 1,21
Volatilidad del entorno de la
0,87 1,00 1,15 1,30
máquina virtual
Tiempo de giro requerido 0,94 1,00 1.07 1,15
Atributos del personal
Capacidad de analista 1,46 1,19 1,00 0,86 0,71
Experiencia en aplicaciones 1,29 1,13 1,00 0,91 0,82
Capacidad de ingeniero de
1,42 1,17 1,00 0,86 0,70
software
Experiencia de máquina virtual 1,21 1,10 1,00 0,90
Experiencia en lenguaje de
1,14 1.07 1,00 0,95
programación
Atributos del proyecto
Aplicación de métodos de
1,24 1,10 1,00 0,91 0,82
ingeniería de software
Uso de herramientas de
1,24 1,10 1,00 0,91 0,83
software
Calendario de desarrollo
1,23 1.08 1,00 1.04 1,10
requerido

El gerente de proyecto debe calificar estos 15


parámetros diferentes para un proyecto en particular en
una escala de uno a tres. Luego, dependiendo de estas
calificaciones, se toman los valores apropiados del
generador de costos de la tabla anterior. Luego, estos 15
valores se multiplican para calcular el EAF (Factor de
ajuste del esfuerzo). La fórmula de COCOMO intermedio
ahora toma la forma:

Los valores de ayb en el caso del modelo intermedio son


los siguientes:

PROYECTOS DE SOFTWARE A B
Orgánico 3.2 1.05
Semi separado 3,0 1.12
PROYECTOS DE SOFTWARE A B
Embeddedc 2.8 1,20

9. Modelo
detallado: COCOMO detallado incorpora todas las
características de la versión intermedia con una
evaluación del impacto del generador de costos en cada
paso del proceso de ingeniería de software. El modelo
detallado utiliza diferentes multiplicadores de esfuerzo
para cada atributo del generador de costos. En cocomo
detallado, todo el software se divide en diferentes
módulos y luego aplicamos COCOMO en diferentes
módulos para estimar el esfuerzo y luego sumar el
esfuerzo.

Las seis fases del COCOMO detallado son:

1. Planificación y requisitos
2. Diseño de sistemas
3. Diseño detallado
4. Prueba y código del módulo
5. Integración y prueba
6. Modelo constructivo de costes

El esfuerzo se calcula en función del tamaño del


programa y se proporciona un conjunto de factores de
costo de acuerdo con cada fase del ciclo de vida del
software.

Lea también: Modelo de cascada clásico , Modelo de cascada


iterativo , Modelo de prototipos , Modelo en espiral

¡Atención lector! No dejes de aprender ahora. Obtenga todos


los conceptos importantes de Teoría de CS para entrevistas
SDE con el Curso de Teoría de CS a un precio amigable para
los estudiantes y prepárese para la industria.

También podría gustarte