Estimación con el método de Cocomo
Enviado por Anderson Jordan • 13 de Septiembre de 2021 • Tarea • 1.085 Palabras (5 Páginas) • 189 Visitas
Estimación con el método de Cocomo
Entre los distintos métodos de estimación de costes de desarrollo de software, el modelo COCOMO (COnstructive COst MOdel) desarrollado por Barry M. Boehm, se engloba en el grupo de los modelos algorítmicos que tratan de establecer una relación matemática la cual permite estimar el esfuerzo y tiempo requerido para desarrollar un producto.
Por un lado, COCOMO define tres modos de desarrollo o tipos de proyectos:
- Orgánico: proyectos relativamente sencillos, menores de 50 KDLC líneas de código, en los cuales se tiene experiencia de proyectos similares y se encuentran en entornos estables.
- Semi-acoplado: proyectos intermedios en complejidad y tamaño (menores de 300 KDLC), donde la experiencia en este tipo de proyectos es variable, y las restricciones intermedias.
- Empotrado: proyectos bastante complejos, en los que apenas se tiene experiencia y se engloban en un entorno de gran innovación técnica. Además, se trabaja con unos requisitos muy restrictivos y de gran volatilidad.
Y por otro lado existen diferentes modelos que define COCOMO:
- Modelo básico: Se basa exclusivamente en el tamaño expresado en LDC.
- Modelo intermedio: Además del tamaño del programa incluye un conjunto de medidas subjetivas llamadas conductores de costes.
- Modelo avanzado: Incluye todo lo del modelo intermedio además del impacto de cada conductor de coste en las distintas fases de desarrollo.
Para nuestro caso el modelo intermedio será el que usaremos, dado que realiza las estimaciones con bastante precisión.
Así pues, las fórmulas serán las siguientes:
- E = Esfuerzo = a KLDC b * FAE (persona x mes)
- T = Tiempo de duración del desarrollo = c Esfuerzo d (meses)
- P= Personal = E/T (personas)
[pic 1]
Para calcular el Esfuerzo, necesitaremos hallar la variable KDLC (Miles de líneas de código), donde los PF son 261,36 (dato conocido) y las líneas por cada PF equivalen a 32 según vemos en la tabla que se ilustra a continuación:
LENGUAJE | LDC/PF |
Ensamblador | 320 |
C | 150 |
COBOL | 105 |
Pascal | 91 |
Prolog/LISP | 64 |
C++ | 64 |
Visual Basic[pic 2] | 32 |
SQL | 12 |
Así pues, tras saber que son 32 LDC por cada PF, por el hecho de ser Visual Basic el resultado de los KDLC será el siguiente:
KLDC= (PF * Líneas de código por cada PF) /1000 = ? KDLC
¿Qué tipo de modo se usará? ¿Y Porqué?
_____________________
Los coeficientes que usaremos serán las siguientes:
PROYECTO SOFTWARE | a | b | c | d |
Orgánico | 3,2 | 1,05 | 2,5 | 0,38 |
Semi-acoplado | 3,0 | 1,12 | 2,5 | 0,35 |
Empotrado | 2,8 | 1,20 | 2,5 | 0,32 |
Y por otro lado también hemos de hallar la variable FAE, la cual se obtiene mediante la multiplicación de los valores evaluados en los diferentes 15 conductores de coste que se observan en la siguiente tabla:
CONDUCTORES DE COSTE | VALORACIÓN | |||||
Muy bajo | Bajo | Nominal | Alto | Muy alto | Extr. alto | |
Fiabilidad requerida del software | 0,75 | 0,88 | 1.00 | 1,15 | 1,40 | - |
Tamaño de la base de datos | - | 0,94 | 1.00 | 1,08 | 1,16 | - |
Complejidad del producto | 0,70 | 0,85 | 1.00 | 1,15 | 1,30 | 1,65 |
Restricciones del tiempo de ejecución | - | - | 1.00 | 1,11 | 1,30 | 1,66 |
Restricciones del almacenamiento principal | - | - | 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 del ordenador | - | 0,87 | 1.00 | 1,07 | 1,15 | - |
Capacidad del analista | 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 | - |
Capacidad de los programadores | 1,42 | 1,17 | 1.00 | 0,86 | 0,70 | - |
Experiencia en S.O. utilizado | 1,21 | 1,10 | 1.00 | 0,90 | - | - |
Experiencia en el lenguaje de programación | 1,14 | 1,07 | 1.00 | 0,95 | - | - |
Prácticas de programación modernas | 1,24 | 1,10 | 1.00 | 0,91 | 0,82 | - |
Utilización de herramientas software | 1,24 | 1,10 | 1.00 | 0,91 | 0,83 | - |
Limitaciones de planificación del proyecto | 1,23 | 1,08 | 1.00 | 1,04 | 1,10 | - |
...