Cocomo 2
Cocomo 2
Cocomo 2
Consultar la página siguiente para información actualizada sobre los dos aspectos
anteriores:
http://sunset.usc.edu/research/COCOMOII/cocomo_main.html
ÍNDICE
Página
ANOTACIONES 1
INTRODUCCIÓN
SITUACIÓN 2
COCOMO v.2.0
INTRODUCCIÓN 14
i
Página
MODELO POST-ARQUITECTURA 34
+ NORMAS PARA CONTAR LAS LÍNEAS DE CÓDIGO 34
+ PUNTOS FUNCIÓN 36
+ PARÁMETROS DE COSTE 36
- Factores del Producto 36
- Factores de la Plataforma 39
- Factores Personales 39
- Factores del Proyecto 40
GLOSARIO 42
Apéndice A: ECUACIONES 45
+ COMPOSICIÓN DE APLICACIONES 45
+ DISEÑO INICIAL 46
+ POST-ARQUITECTURA 47
+ ESTIMACIÓN DE LA PLANIFICACION 48
ESTADO ACTUAL 55
BIBLIOGRAFIA 56
ii
ANOTACIONES
1
SITUACIÓN
Este desarrollo de software, y ante los problemas que se encuentran en él, hizo que
desde la década de los 70 creciera un interés en el estudio de los problemas que lleva
consigo el software, surgiendo conceptos como control de calidad (SQA),
metodologías de análisis y diseño, ingeniería del software, etc...
- Los problemas más costosos se producen en las fases más tempranas del
desarrollo del software.
2
INTRODUCCIÓN A LAS TÉCNICAS
TÉCNICAS DE ESTIMACIÓN DE
COSTES
Debido a lo que se conoce como "crisis del software", con problemas como los
anteriormente descritos, comienza una preocupación por controlar los costes de
desarrollo, así como la distorsión de este desarrollo respecto a la planificación
establecida.
Para intentar dar solución a estos problemas se han introducido en la Ingeniería del
Software una serie de técnicas, utilizadas dentro de las tareas de planificación, que
ayudan a planificar y controlar el esfuerzo y el tiempo necesario de desarrollo:
Existen algunos trabajos que intentan desde un estudio estadístico de una muestra,
elegida de manera representativa, de un conjunto de casos reales, establecer modelos
básicamente empíricos, que ayuden a realizar dichas estimaciones con un mayor
grado de fiabilidad.
3
Hoy en día ambas afirmaciones pueden considerarse erróneas o al menos
inexactas, ya que:
Así, algunos investigadores de estos temas han llegado a decir, por ejemplo, que la
funcionalidad de una LDC PL1 es casi el doble que la de una COBOL, y que una de un
4GL proporciona entre dos y cuatro veces más funcionalidad que la de un lenguaje de
programación convencional.
• debido a que los datos de entrada que solicita el modelo y sus resultados
son mucho más claros y precisos que en otros modelos.
4
PUNTOS FUNCIÓN.
Los estudios realizados sobre la utilización de este método reflejan la bondad del
mismo y la existencia de un elevado grado de correlación entre el número de líneas de
código (LDC) y la estimación total de los puntos función.
• Simple
• Medio
• Complejo
Tras esta división de las funciones de usuario según su tipo y complejidad se les
aplica un peso, como aparece reflejado en la tabla adjunta, obteniendo el total de los
puntos función sin ajustar:
5
Nivel de complejidad
Tipo de función Simple Medio Complejo Total
Entradas ___ x3= ___ ___ x4= ___ ___ x6= ___ _____
Salidas ___ x4= ___ ___ x5= ___ ___ x7= ___ _____
Ficheros lógicos internos ___ x7= ___ ___ x10= ___ ___ x15= ___ _____
Ficheros externos ___ x5= ___ ___ x7= ___ ___ x10= ___ _____
Consultas ___ x3= ___ ___ x4= ___ ___ x6= ___ _____
Esta complejidad puede verse afectada según este método por catorce
características, las cuales se evalúan de conformidad a una escala de "grados de
influencia" que toma valores enteros comprendidos entre 0 (sin influencia alguna) y 5
(grado de influencia más elevado). Es decir:
Características GI
C1 Transmisión de datos ____
C2 Proceso distribuido ____
C3 Rendimiento, respuesta ____
C4 Configuración ____
C5 Indice de transacciones ____
C6 Entrada de datos on-line ____
C7 Eficiencia de usuario ____
C8 Actualización on-line ____
C9 Complejidad del proceso ____
C10 Reusabilidad ____
C11 Facilidad de instalación ____
C12 Sencillez en operación ____
C13 Adaptabilidad ____
C14 Flexibilidad
Total Grados de Influencia GI = ____
Características de la aplicación
6
Ejemplo:
RECUENTO DE FUNCIONES
Nivel de complejidad
Tipo de función Simple Medio Complejo Total
Entradas . x3= . . x4= . . 4 x6= 24 . . 24 .
Salidas . x4= . . 4 x5= 20 . . x7= . . 20 .
Ficheros lógicos internos . x7= . . x10= . . 6 x15= 70 . . 90 .
Ficheros externos . x5= . . x7= . . x10= . . .
Consultas . x3= . . 5 x4= 20 . . x6= . . 20 .
Total Puntos función sin ajustar CF = 154
Características GI Características GI
C1 Transmisión de datos . . C8 Actualización on-line . .
C2 Proceso distribuido . . C9 Complejidad del proceso . .
C3 Rendimiento, respuesta . 4 . C10 Reusabilidad . .
C4 Configuración . . C11 Facilidad de instalación . .
C5 Indice de transacciones . 4 . C12 Sencillez de operación . .
C6 Entrada de datos on-line . . C13 Adaptabilidad . .
C7 Eficiencia de usuario . . C14 Flexibilidad . 5 .
Total Grados de Influencia GI 13 .
7
MODELO COCOMO'81 (Constructive Cost Model, versión de 1981)
Este fue presentado por Barry Boehm en 1981 y se convirtió en el más conocido y
referenciado, además del más documentado de todos los modelos de estimación de
esfuerzo de las actividades de diseño, codificación, pruebas y mantenimiento.
Por otra parte Boehm presenta una jerarquía de modelos de estimación según el
nivel de detalle empleado en su utilización:
8
1. Modelo Básico.
Productividad PR = LDC / ED
FSP (Full-Time equivalent Software Personel)
Nº medio de personas PE = ED / TD h
TCA (Tráfico de cambio anual): porción de instrucciones fuente que
sufren algún cambio durante un año, bien sea por adición o por
Esfuerzo modificación.
De EM = TCA x ED
Mantenimiento Y por tanto el valor medio del número de personas a tiempo completo,
dedicadas a mantenimiento durante 12 meses sería:
(PE)M = EM / 12
h=hombre, m=mes, h-m=hombres-mes
Ejemplo.
Un estudio inicial determina que el tamaño del producto estará alrededor de 32.000
LDC, a partir de las anteriores ecuaciones obtendríamos que las características del
proyecto serían:
Por el tamaño del producto a desarrollar vemos que debemos aplicar las ecuaciones
asociadas al modo orgánico, obteniendo lo siguiente:
9
2. Modelo Intermedio.
Este modelo es una versión ampliada del modelo Básico, en la que se presenta
una mayor precisión en las estimaciones, manteniendo prácticamente la misma
sencillez del anterior modelo. Esta mayor precisión viene dada por la incorporación de
15 factores que reflejan la influencia de ciertos elementos sobre el coste del software.
Cada uno de estos 15 atributos tiene asociado un factor multiplicador para estimar
el efecto de éste sobre el esfuerzo nominal.
Valor
Atributos Muy Bajo Nominal Alto Muy Extra
bajo alto alto
Atributos del producto
Fiabilidad ,75 ,88 1,00 1,15 1,40
Tamaño base de datos ,94 1,00 1,08 1,16
Complejidad ,70 ,85 1,00 1,15 1,30 1,65
Atributos del computador
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 ,87 1,00 1,15 1,30
Tiempo de respuesta ,87 1,00 1,07 1,15
Atributos del personal
Capacidad de análisis 1,46 1,19 1,00 ,86 ,71
Experiencia en la aplicación 1,29 1,13 1,00 ,91 ,82
Calidad de los programadores 1,42 1,17 1,00 ,86 ,70
Experiencia en la máquina virtual 1,21 1,10 1,00 ,90
Experiencia en el lenguaje 1,14 1,07 1,00 ,95
Atributos del proyecto
Técnicas actualizadas de programación 1,24 1,10 1,00 ,91 ,82
Utilización de herramientas software 1,24 1,10 1,00 ,91 ,83
Restricciones de tiempo de desarrollo 1,23 1,08 1,00 1,04 1,10
Factores multiplicadores del esfuerzo de desarrollo de software
10
Si se observan los valores para el modelo Intermedio, se puede ver que los
coeficientes escalares (3'2, 3'0, 2'8) decrecen a medida que se incrementa la
complejidad del modo de desarrollo, al contrario que en el modelo Básico.
3. Modelo Detallado.
El modelo puede ajustarse para mejorar la precisión de sus estimaciones, por las
características propias de una instalación particular.
Veamos cómo podría ser una posible calibración de las ecuaciones propuestas por
el modelo Intermedio para su modo orgánico:
11
1. Calibración de una constante:
ED = c (KLDC)1,05 * ϑ
E1 = c (KLDC1)1,05 ϑ1
E2 = c (KLDC2)1,05 ϑ2
............
En = c (KLDCn)1,05 ϑn
Haciendo
Qi = (KLDCi)1,05 ϑi
y sustituyendo
15
E = 3 (c Qi - Ei)2
i=1
c = 3 E i Q i / 3 Q i2
ED = c (KLDC)b * ϑ
12
En este caso nos interesa minimizar
a0 ln(c) + a1b = d0
a1 ln(c) + a2b = d1
donde
a0 = n (número de proyectos)
a1 = 3 ln(KLDCi)
a2 = 3 ( ln(KLDCi) )2
d0 = 3 ln(Ei/ϑi)
d1 = 3 ln(Ei/ϑi) ln(KLDCi)
resolviendo obtenemos:
13
COCOMO 2.0
INTRODUCCIÓN .
Estos argumentos han llevado a realizar una nueva formulación del modelo
COCOMO, sucesor de los anteriores COCOMO 81 de Boehm (1981) y el COCOMO
Ada de Royce (1989).
OBJETIVOS:
2. Desarrollar una base de datos indicativa del coste del software y un soporte de
herramientas con la capacidad suficiente para el continuo progreso y
perfeccionamiento del modelo.
14
COCOMO 2.0 : FUNDAMENTOS Y ESTRATEGIA .
1. Preservar las habilidades y apertura del modelo original, para que continúe siendo
un modelo abierto y público (algoritmos, parametrizaciones, etc...)
2. Adaptar la estructura de COCOMO 2.0 a los futuros sectores del mercado software
descritos antes.
La siguiente figura indica el efecto de las incertidumbres del proyecto tienen sobre
la precisión del tamaño del software y la estimación del coste. En los primeros
estados, al comienzo, no puede conocerse la naturaleza específica del producto a
desarrollar con una aproximación mayor de un factor 4. Según el ciclo de vida avanza,
y se realizan decisiones sobre el producto, la naturaleza del producto y su
consecuente tamaño son mejor conocidos, y la naturaleza del proceso y sus
consecuentes parámetros de coste son mejor conocidos:
Figura 2. Precisión de tamaño y coste software dependiendo de la fase en que se encuentre el proceso.
15
COCOMO 2.0 permite a los proyectos suministrar a los parámetros de coste una
información rudamente granulada en los primeros estados del proyecto, para ir
incrementandola más detalladamente granulada según se avanza en los estados.
3. Una vez que el proyecto esta listo para ser desarrollado se debería tener una
arquitectura de ciclo de vida, la cual proporcionase más información detallada
sobre las entradas de los parámetros de coste, y permitieses mayor precisión en la
estimación del coste. Para soportar esta etapa, COCOMO 2.0 proporciona el
Modelo Post-Arquitectura.
16
Un análisis de los datos debería permitir también la calibración de las relaciones
entre puntos objeto, puntos función, y líneas de código fuente para varios lenguajes y
composición de sistemas, permitiendo mayor flexibilidad al elegir los parámetros que
influyen en la clasificación del tamaño.
COCOMO 2.0 expresa el esfuerzo en terminos de Personas Mes (PM). Todas las
ecuaciones del esfuerzo están representadas en el apéndice A. Una persona mes es
la cantidad de tiempo que una persona dedica a trabajar sobre el proyecto de
desarrollo software durante un mes. El número de personas mes es diferente del
tiempo que tomará el proyecto para ser completado; a esto se le llama planificación de
desarrollo. Por ejemplo, un proyecto puede estimarse en requerir 50 PM de esfuerzo,
pero tener una planificación temporal de 11 meses.
Breakage.
El Modelo COCOMO 2.0 utiliza un porcentaje del código "breakage" (BRAK) para
ajustar el tamaño efectivo del producto. El término Breakage hace referencia a la
volatilidad de los requerimientos de un proyecto. Esto es, el porcentaje de código que
se desecha. Por ejemplo, un proyecto formado finalmente por 100.000 instrucciones
de las que se han descartado otras 20.000 instrucciones adicionales, entonces BRAK
tendrá un valor de 20. Esto debería usarse para ajustar el tamaño efectivo del proyecto
a 120.000 instrucciones. Ese factor BRAK no se utiliza en el modelo de Composición
de Aplicaciones, donde se espera un cierto grado de interacción del producto, incluida
una calibración de los datos.
Ajustando la reusabilidad.
17
reutilización del código, y como resultado indica que este coste queda expresado por
una función no lineal, debido a dos razones principales:
Siempre teniendo en cuenta que el tamaño que supone este tiempo de comprensión
del software y de chequeo del interface puede ser reducido mediante una buena
estructura sofware.
18
Un modelo para tener en cuenta la reusabilidad: el modelo COCOMO 2.0 trata esta
reutilización del software usando un modelo de estimación no lineal. Esto incluye una
estimación de la cantidad de software a ser adaptado, ASLOC, y tres parámetros
según el grado de modificación: porcentaje de diseño modificado (DM), porcentaje de
código modificado (CM), y porcentaje del esfuerzo original que supone integrar el
software reutilizable (IM).
El otro incremento no lineal sobre la reusabilidad tiene que ver con el grado de
Valoración y Asimilación (AA) necesarias para determinar si un cierto módulo software
completamente reutilizable es apropiado para la aplicación, e integrar su descripción
dentro de la descripción global del producto. La Tabla 2 siguiente proporciona una
escala para este porcentaje:
Ecuación 2
19
Ajustando la Conversión o Reingeniería.
Para realizar esta estimación se incluye un parámetro adicional, AT, que indica el
porcentaje de código que es tratado en esta reingeniería mediante translación
automática:
Ecuación 3
Los parámetros de coste (cost drivers) son utilizados para capturar características
del desarrollo del software que afectan al esfuerzo para completar el proyecto. Estos
parámetros de coeste expresan el impacto del parámetro sobre el esfuerzo de
desarrollo, en Personas Mes (PM). Este rango va de Muy Bajo a Extra Alto, y tiene un
peso asociado según el rango al que pertenezca cada parámetro. Este peso es
llamado multiplicador de esfuerzo (EM), siendo la media asignada a cada uno de 1'0
(rango medio o nominal). Este valor será mayor que 1'0 si influye incrementando el
esfuerzo, y menor que 1'0 si lo disminuye.
Ecuación 4
La ecuación base inicial para mostrar la planificación para los tres estados de
COCOMO 2.0 es:
Ecuación 5
20
donde TDEV es un calendario temporal expresado en meses, utilizado para determinar
que los requerimientos del producto se han completado y que quedan certificados. PM
"negado" indica la estimación Personas-Mes excluyendo el multiplicador de esfuerzo
SCED. B es la suma de los factores exponentes de escala.
Rangos de salida.
Los tres estados del modelo COCOMO 2.0 permiten que la estimación sea
expresada dentro de un rango de valores, que teniendo en cuenta la Figura 2 de
"Precisión de tamaño y coste de software según la fase en que se encuentra el
proyecto" expresa el resultado E (esfuerzo estimado) como un conjunto de
estimaciones pesimitas y optimistas.
21
ESCALA DE PRODUCTIVIDAD DEL SOFTWARE.
Ya el análisis de datos del COCOMO original indicaba que los proyectos mostraban
una escala desfavorable económicamente, así existian ya tres clases de modelos de
desarrollo software (Orgánico, Semiempotrado, y Empotrado), cada uno con un
exponente distinto (B=1'05, B=1'12, B=1'20 respectivamente).
22
una gran variación, el incremento provocado por un cambio en un único parámetro
representa tan sólo el 4'7%.
Factor de Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
Escala (Wi) (5) (4) (3) (3) (1) (0)
PREC Mínima Poca Algo Medianamente Muy familiar Altamente
familiar familiar
FLEX Poca o Ocasional Alguna alta Muy alta Tendiendo a
ninguna (muy optima (metas
riguroso) generales)
RESLa Reducción del Idem 40% Idem 60% Idem 75% Idem 90% Idem 100%
riesgo entorno
al 20%
TEAM Interacciones Algunas Interacciones Muy Altamente Cooperación
muy dificiles interacciones para una cooperativo cooperativo óptima
dificiles cooperación
básica
PMAT
peso medio de las respuestas afirmativas en el cuestionario Madured CMM
Tabla 5. Escala de Factores para los modelos de Diseño Inicial y Post-Arquitectura.
Estos dos escalas de factores capturan en gran medida las diferencias entre los
modos, del COCOMO original, Orgánico, Semiempotrado y Empotrado. La Tabla 6
reorganiza las características de un proyecto en estos términos. Esta tabla puede ser
usada para más de una profundidad de exploración para los factores PREC y FLEX
dados por la Tabla 19.
23
Resolución de Arquitectura/Riesgos (RESL).
Este factor combina a dos de los factores de escala del modelo Ada COCOMO:
"Diseo minucioso mediante examen del Diseño del Producto (PDR)", y "Eliminación de
riesgos mediante PDR". La Tabla 7 consolida estos factores del modelo Ada
COCOMO para formar una definición más comprensiva de los niveles de valores
RESL en COCOMO 2.0. Esta valoración del RESL es una medida de los pesos
subjetiva.
El factor de escala de Cohesión del Equipo cuenta las fuentes que originan
turbulencias y entropia en el proyecto debido a las dificultades de sincronización:
usuarios, clientes, desarrolladores, personal encargado del mantenimiento, interfaces,
otros. Estas diferencias pueden deberse a diferencias culturales, dificultades para
reconocer objetivos, hasta familiaridad para trabajar en equipo. La Tabla 8 proporciona
una definición detallada para el conjunto completo de niveles TEAM. La valoración
final es la media subjetiva de los pesos.
24
• Casi siempre: cuando los objetivos son consistentemente alcanzables y bien establecidos en
procedimientos operativos estándar.
• Frecuentemente: cuando los objetivos son alcanzables con relativa frecuencia, pero en
algunas ocasiones son emitidas bajo circunstancias difíciles (entre el 60% y 90% de las
veces).
• Sobre la mitad: cuando los objetivos son alcanzables sobre la mitad de las veces (entre el
405 y 60% de las veces).
• Ocasionalmente: cuando los objetivos son alcanzados algunas veces, pero poco frecuentes
(entre el 10% y 40% de las veces).
• Raramente (si acaso): cuando los objetivos raramente son alcanzados (menos del 10% de
las veces).
• No se aplica: cuando se tiene el conocimiento requerido sobre el proyecto u organización y
el KPA, pero se tiene un sentimiento de que los KPAs circunstancialmente no se pueden
aplicar.
• Se desconoce: cuando no se tiene certeza de cómo responderán los KPAs.
Ecuación 7
25
MODELO DE COMPOSICIÓN DE APLICACIÓN.
Este modelo está dirigido a aplicaciones que están demasiado diversificadas como
para crear rápidamente una herramienta específica dentro de un dominio. Ejemplos de
estos sistemas basados en componentes son los generadores de interfaces de usuario
(GUI), gestores de objetos o bases de datos, procesamiento distribuido o de
transacciones, manejadores hipermedia, pequeños buscadores de datos, y
componentes de un dominio específico tales como domínios financieros, médicos, o
paquetes de control de procesos industriales.
Objeto de este estudio son estos sistemas que se caracterizan por llevar asociados
esfuerzos de prototipado, uso de ICASE (CASE integrado) para obtener una
composición rápida asistida por la computadora, que proporcionan generadores de
interfaces gráficos de usuario, herramientas de desarrollo software, y un largo número
de componentes de aplicaciones e infraestructuras. En estas áreas se ha demostrado
el buen funcionamiento de los Puntos Función para realizar estimaciones sobre un
conjunto no trivial de aplicaciones.
Definición de términos:
• NOP: Nuevos Puntos Objeto (cuenta de los Puntos Objeto ajustados para
su reutilización).
• srvr: número de servidores de datos (mainframes o equivalentes).
• clnt: número de clientes de datos (estaciones de trabajo personales).
• %reutilización: porcentaje de pantallas, informes y módulos 3GL
reutilizados por aplicaciones previas, según su grado de reutilización.
Pasos:
Pantallas Informes
Número Total < 4 Total < 8 Total 8+ Número Total < 4 Total < 8 Total 8+
de de
vistas ( <2 srvr ( 2-3 ( >3srvr seccion ( <2 srvr ( 2-3 ( >3 srvr
que <3 clnt ) srvr >5 clnt ) es que <3 clnt ) srvr >5 clnt )
contiene 3-5 clnt ) contiene 3-5 clnt )
<3 Simple Simple Medio 0o1 Simple Simple Medio
3-7 Simple Medio Alto 2o3 Simple Medio Alto
>8 Medio Alto Alto 4+ Medio Alto Alto
26
3. Valorar con un peso (número) como los mostrados en la siguiente tabla, ue
reflejan el esfuerzo relativo requerido para implementar una instancia de
ese objeto dependiendo del nivel de complejidad:
Complejidad
Tipo de Objeto Simple Media Alta
Pantalla 1 2 3
Informe 2 5 8
Componente 3GL 10
4. Sumar todos los pesos de los objetos instanciados para obtener un único
número, que será la cuenta de Puntos Objeto.
Ecuación 8
Capacidad y experiencia
de los desarrolladores Muy Baja Baja Nominal Alta Muy Alta
Capacida y madured de
ICASE Muy Baja Baja Nominal Alta Muy Alta
PROD 4 7 13 25 50
Ecuación 9
27
MODELO DE DISEÑO INICIAL (ANTICIPADO).
Entrada Externa Cuenta cada dato de usuario o tipo de entrada de control del usuario que
(Entradas) (1) se introduce desde el exterior del sistema y (2) que añade o modifica
datos en un fichero lógico interno.
Salida Externa Cuenta cada dato de usuario o tipo de entrada de control que abandona el
(Salidas) sistema hacia el exterior.
Ficheros Lógicos Internos Ficheros pasados o compartidos entre sistemas software que deberían
(Ficheros) contarse como tipos de ficheros de interface externos que están dentro del
sistema.
Consultas Externas Cuenta cada combinación de entrada-salida única, donde una entrada
(Informes) causa y genera una salida inmediata, como un tipo de consulta externa.
Tabla 9: Tipos de Funciones de Usuario.
28
PROCEDIMIENTO DE CUENTA DE PUNTOS FUNCIÓN DESAJUSTADOS
3. Aplicar los pesos asignados a cada nivel de complejidad: utilizar los pesos del
siguiente esquema (los pesos reflejan el valor relativo de cada función para el
usuario):
Complejidad-Peso
Tipos de Función Bajo Medio Alto
Ficheros Lógicos Internos 7 10 15
Ficheros de Interface Externos 5 7 10
Entradas Externas 3 4 6
Salidas Externas 4 5 7
Consultas Externas 3 4 6
4. Calcular los Puntos Función Desajustados: sumar todos los pesos contados para
obtener un único número, número que determina el valor de los Puntos Función
Desajustados.
COCOMO 2.0 realiza esto para los modelos de Diseño Inicial y Post-Arquitectura
mediante el uso de tablas para poder transladar estos Puntos Función Desajustados
en el equivalente a SLOC:
Lenguaje SLOC/FP
Ada 71
AI Shell 49
APL 32
Ensamblador 320
Ensamblador (Macro) 213
29
Lenguaje SLOC/FP
ANSI/Quick/Turbo Basic 64
Basic-Compilado 91
Basic-Interpretado 128
C 128
C++ 29
ANSI Cobol 85 91
Fortran 77 105
Forth 64
Jovial 105
Lisp 64
Modula 2 80
Pascal 91
Prolog 64
Generador de Informes 80
Hoja de Cálculo 6
Tabla 10: Conversión de Puntos Función a Líneas de Código.
El modelo de Diseño Inicial utiliza KSLOC para valorar el tamaño. Los Puntos
Función Desajustados son convertidos a su equivalente en SLOC y luego a KSLOC.
La aplicación de los factores de escala del proyecto es igual en el modelo de Diseño
Inicial y en el modelo Post-Arquitectura. En el modelo de Diseño Inicial un reducido
conjunto de parámetros de coste es utilizado. Los parámetros de coste del modelo de
Diseño Inicial se obtienen por combinación de los parámetros de coste del modelo
Post-Arquitectura de la Tabla 19. La ecuación de esfuerzo es la misma que la dada por
la Ecuación 4.
La escala de ratios del modelo de Diseño Inicial siempre tiene un total nominal
igual a la suma de los ratios nominales de los elementos del modelo Post-Arquitectura
con los que se han formado.
30
El siguiente ejemplo ilustrará esta aproximación. El parámetro de coste PERS del
Diseño Inicial combina los parámetros de coste Post-Arquitectura de capacidad del
analista (ACAP), capacidad del programador (PCAP), y continuidad del personal
(PCON). Cada uno de estos tiene una escala de ratios desde Muy Bajo (=1) a Muy
Alto (=5). Sumando estos ratios numéricos se produce un rango de valores entre 3 y
15. Estos son diseñados sobre una escala, y los niveles de ratio PERS del Diseño
Inicial son asignados a ellos, tal y como muestra la Tabla 19.
Extra Bajo Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
Suma de
rangos ACAP, 3, 4 5, 6 7, 8 9 10, 11 12, 13 14, 15
PCAP, PCON
Combinación
porcentajes 20% 39% 45% 55% 65% 75% 85%
ACAP y PCAP
Personal que
anualmente 45% 30% 20% 12% 9% 5% 4%
regresa
Tabla 12: Niveles de ratio PERS
El ratio personal PERS con valor 9 corresponde a la suma (3+3+3) de los ratios
nominales para ACAP, PCAP y PCON, y su multiplicador de esfuerzo correspondiente
es 1'0. Tener en cuenta que de todas formas el ratio nominal PERS de 9 resulta de
poder haber sumado otras combinaciones, por ejemplo 1+3+5=9 para ACAP=Muy
Bajo, PCAP=Nominal, y PCON=Muy Alto.
Las escalas de ratio y los multiplicadores de esfuerzo para PCAP y los otros
parámetros de coste de Diseño Inicial mantienen la consistencia relacional con sus
equivalentes en el modelo Post-Arquitectura. Por ejemplo, los niveles de ratio Extra
Bajo de PERS (20% combinando ACAP y PCAP, y el 25% de movimiento de personal)
representan niveles de ratio medios de ACAP, PCAP, y PCON por encima del 3 o 4.
Manteniendo estas relaciones de consistencia entre los niveles de ratio del Diseño
Inicial y Post-Arquitectura se asegura la consistencia en las estimaciones de coste de
estos dos modelos (de Diseño Inicial y Post-Arquitectura).
Estos parámetros de coste del Diseño Inicial combinan los cuatro parámetros de
coste Post-Arquitectura (Confianza Software Requerida (RELY), tamaño de la base de
datos (DATA), Complejidad del Producto (CPLX), y Documentación asociada a las
necesiddes del ciclo de vida (DOCU)). A diferencia de los componentes PERS, los
componentes RCPX tienen escalas de ratio con diferente margen. Los rangos de
RELY y DOCU van desde Muy Bajo a Muy Alto; los rangos de DATA van desde Bajo a
Muy Alto; y los rangos de CPLX van desde Muy Bajo a Extra Alto. Y con un valor
numérico entre 5 (Muy Bajo, Bajo, Muy Bajo, Muy Bajo) y 21 (Muy Alto, Muy Alto, Extra
Alto, Muy Alto).
La Tabla 19 asigna los ratios RCPX a través de este rango, y asocia escalas de
ratio apropiadas a cada uno de los ratios RCPX (desde Extra Bajo a Extra Alto).
31
Extra Muy Bajo Nominal Alto Muy Extra
Bajo Bajo Alto Alto
Simple ejo complejo damente
complejo
Tamaño de la base da datos Pequeño Pequeño Pequeño Moderado grande Muy Muy
grande grande
Tabla 13: Niveles de ratio de RCPX
Este parámetro de coste del Diseño Inicial combina los tres parámetros de coste
Post-Arquitectura (tiempo de ejecución (TIME), almacenamiento principal (STOR), y
volatilidad de la plataforma (PVOL)). TIME y STOR tienen rangos desde Nominal a
Extra Alto; PVOL rangos desde Bajo a Muy Alto. Y con un valor numérico entre 8
(Nominal, Nominal, Bajo) y 17 (Extra Alto, Extra Alto, Muy Alto).
Este parámetro de coste del Diseño Inicial combina los tres parámetros de coste
Post-Arquitectura (experiencia en la aplicación (AEXP), experiencia en la plataforma
(PEXP), y experiencia en las herramientas y lenguajes (LTEX)). Cada uno de estos
con un rango desde Muy Bajo a Muy Alto. Y con un valor numérico entre 3 y 15.
32
Facilidades (FCIL).
Este parámetro de coste del Diseño Inicial combina dos parámetros de coste
Post-Arquitectura: uso de herramientas software (TOOL) y desarrollo multisitio o
distribuido (SITE). TOOL tiene un rango desde Muy Bajo a Muy Alto; el rango de SITE
va desde Muy Bajo a Extra Alto. El valor numérico suma de estos ratios está entre 2
(Muy Bajo, Muy Bajo) y 11 (Muy Alto, Extra Alto).
Planificación (SCED).
33
MODELO POST-ARQUITECTURA.
En COCOMO 2.0 las sentencias lógicas fuente han sido elegidas como el estándar
para determinar la línea de código. Definir el concepto de línea de código es una difícil
tarea debido a las diferencias conceptuales que suponen para diferentes lenguajes las
sentencias ejecutables y declaraciones de datos. El objetivo es medir la cantidad de
trabajo intelectual puesto en el desarrollo del programa, pero surgen dificultades
cuando intentamos definir medidas consistentes para lenguajes diferentes. Para
minimizar estos problemas, la definición que da el Instituto de Ingeniería del Software
(SEI) de sentencia lógica fuente es utilizada para definir la medida de líneas de
códigos.
Algunos cambios fueron realizados para definir línea de código para apartarse de
la definición por defecto. Estos cambios eliminan categorías de software las cuales
resultan ser generalmente pequeñas fuentes de esfuerzo del proyecto. El código
generado con generadores de código fuente no está incluido, aunque sin embargo
será tenido en cuenta para soportar el análisis.
34
Figura 5
35
PUNTOS FUNCIÓN
Para la estimación de puntos función del modelo Post-Arquitectura, son válidos los
cálculos utilizados para convertir los Puntos Función Desajustados a KSLOC que se
utilizan en el modelo de Diseño Inicial. COCOMO 2.0 permite que algunos
componentes sean evaluados utilizando puntos función, y otros (en los cuales los
punto función no los describen correctamente, tales como cálculos científicos o en
tiempo real) en SLOC. Toda medida es expresada en KSLOC y usada en la Ecuación
4. El Apéndice A muestra la ecuación para el modelo Post-Arquitectura.
PARÁMETROS DE COSTE
Ecuación 10
DATA toma un valor bajo si D/P es menor de 10, y toma un valor muy alto si
es mayor de 100.
36
el producto, o a un subsistema o parte del producto. La escala de
complejidad es una valoración subjetiva media de estas áreas.
37
Muy baja Baja Nominal Alta Muy alta Extra alta
Operaciones Lineas simples Uso anidado Mayoría de los Programación Codigo Múltiple
de control de código con de operadores
anidamientos altamente reentrante y planificación
poco codigo y de de operadores anidada con recursivo. de recursos
sin estructuras programaciónson simples. mucha Manejo de con prioridades
anidadas: estructuradaAlgún control composición interrupciones que cambian
DOs, CASEs, de forma
entre modulos. de predicados. con prioridad. dinamicamente
IFTHENELSs. directa. Tablas de Procesos Sincronización . Control a
Llamadas a Mayoritariame
decisión. Paso distribuidos. de tareas, nivel de
procedimientos nte uso de de mensajes, Control en control en microcódigo.
simples. predicados incluyendo tiempo real tiempo real Control
simples. proceso simple. complejo. distribuido en
distribuido a tiempo real.
medio nivel
Operaciones Evaluación Evaluación de Uso de rutinas Analisis Dificil y Analisis
de computo simple de expresiones a estandar, numérico estructurado numérico dificil
expresiones: nivel medio: matemáticas y básico: análisis y no
A=B+C*(D-E) SQRT(B2- estadísticas. multivariable, numérico: estructurado:
4*A*C) Operaciones interpolacion, ecuaciones análisis
básicas sobre ecuaciones matriciales, altamente
matrices o diferenciales ecuaciones preciso de
vectores. de primer diferenciales ruido, datos
orden. parciales. estocásticos.
Paralelización Paralelización
simple. compleja.
Operaciones Lecturas No es El proceso de Operaciones Rutinas para Codificación
dependientes simples, necesario I/O incluye de I/O a nivel diagnóstico, de con control de
de escritura de conocimiento selección de fisico servicio, de tiempos de
dispositivos declaraciones sobre dispositivos, (traducción de enmascaramie dispositivos,
con formas procesadores comprobación direcciones nto de operaciones
simples. I/O de estado, y físicas, interrupciones. de
particulares. La proceso de los posicionamient Manejo de lina microprograma
I/O se realiza a errores. os en de ción. Sistemas
niivel de memoria, comunicacione de proceso
GET/PUT. lecturas, ...). s. Sistemas de crítico.
proceso
intensivo.
Operaciones Arrays Tramtamiento Entrada desde Simples Coordinación Altamente
de manejo de sencillos en de ficheros de varios ficheros, señales de de bases de acoplados,
datos memoria forma simple, y salida única. activación datos relacionados
principal. sin cambios en Cambios flujos de distribuidas. dinámicamente
Consultas y la estrucutra simples en la datos. Señales de y con
actualizaciones de datos, sin estructura. Reestructuraci activación estructura de
simples de la ficheros Consultas y ón de datos complejas. objetos.
base de datos. intermedios, ... actualizaciones compleja. Optimización Manejo de
Consultas y complejas. de búsquedas. lenguaje
actualizaciones natural de
moderadas de datos.
la base de
datos.
Operaciones Formularios de Uso de GUIs Uso simple de Desarrollo de Moderadament Multimedia
para gestión entrada simples. elementos de elementos de e complejo, compleja,
del interfaz de simples. interfaz. interfaz. 2D/3D, realidad virtual.
usuario Generador de Multimedia y gráficos
listados. I/O simple con dinámicos.
voz.
Tabla 20. Valoración de complejidad según el tipo de modulo
38
Factores de la Plataforma:
Factores Personales:
39
experiencia de los programadores no debería de ser considerada aquí, ya
que es valorada con AEXP.
40
del porcentaje de planificación que se alarga o acelera con respecto a la
planificación media para un proyecto que necesita una cantidad de
esfuerzo determinado. Planificaciones temporales aceleradas tienden a
producir más esfuerzo en las últimas fases de desarrollo debido a que más
asuntos son dejados para ser determinados posteriormente. Una
planificación comprimida un 74% es valorada como un porcentaje Muy
Bajo, y un alargamiento del 160% es valorada como un porcentaje Muy
Alto.
41
GLOSARIO
DI Grado de Influencia.
FCIL Facilidades.
FP Puntos Función
42
ICASE Entorno Software Integrado Asistido por Computador
OS Sistemas Operativos
PL Linea de Producto
43
STOR Restricción de Almacenamiento Principal
44
Apéndice A: ECUACIONES
COMPOSICIÓN DE APLICACIONES .
Ecuación 11
Capacidad y Experiencia del Muy Bajo Bajo Medio Alto Muy Alto
desarrollador
Capacidad y Madured de la Muy Bajo Bajo Medio Alto Muy Alto
herramienta ICASE
PROD 4 7 13 25 50
Ecuación 12
45
DISEÑO INICIAL .
Ecuación 13
donde
Símbolo Descripción
A Constante, provisionalmente con un valor 3'0
ADAPT Porcentaje de componentes adaptados (representa el esfuerzo requerido para
comprender el software)
AT Porcentaje de componentes que son automáticamente transladados
EM Multiplicadores del esfuerzo: RCPX, RUSE, PDIF, PERS, PREX, FCIL, SCDE
KASLOC Tamaño del componente adaptado expresado en miles de líneas de código fuente
adaptadas
KNSLOC Tamaño del componente expresado en miles de nuevas líneas de código fuente
PM Estimación de esfuerzo dada en Personas Mes
SF Factores de escala: PREC, FLEX, RESL, TEAM, PMAT
SLOC Tamaño de un componente expresado in líneas de código fuente
UFP Puntos Función Desajustados
UFP Count Tamaño del componente expresado en Puntos Función Desajustados
46
POST-ARQUITECTURA .
Ecuación 14
donde
Símbolo Descripción
A Constante, provisionalmente con un valor de 3'0
AA Evaluación y Asimilación
ADAPT Porcenta de componentes adaptados (representa el esfuerzo requerido en comprender el
software)
AT Porcentaje de componentes que son automáticamente transladados
ATPROD Productividad de la translación automática
BRAK Breakage: porcentaje de código "tirado" debido a la volatilidad de los requerimientos
CM Porcentaje de código modificado
DM Porcentaje de diseño modificado
EM Multiplicadores del esfuerzo: RELY, DATA, CPLX, RUSE, DOCU, TIME, STOR, PVOL,
ACAP, PCAP, PCON, AEXP, PEXP, LTEX, TOOL, SITE, SCED
IM Porcentaje de integración y testeo del código modificado
KASLOC Tamaño del componente adaptado expresado en miles de líneas de código fuente
adaptadas
KNSLOC Tamaño del componente expresado en miles de nuevas líneas de código fuente
PM Estimación de esfuerzo dada en Personas Mes
SF Factores de escala: PREC, FLEX, RESL, TEAM, PMAT
SU Comprensión del software (cero si DM=0 y CM=0)
47
ESTIMACIÓN DE LA PLANIFICACIÓN .
Ecuación 15
donde
Símbolo Descripción
SCED% Porcentaje de compresión/expansión del multiplicador de esfuerzo SCED
PM "negado" Personas Mes de esfuerzo estimado para los modelos de Diseño Inicial y
Post-Arquitectura (excluyendo el efecto del multiplicador de esfuerzo SCED)
SF Factores de escala: PREC, FLEX, RESL, TEAM, PMAT
TDEV Tiempo de desarrollo
48
ESTADO ACTUAL DEL MODELO .
55
BIBLIOGRAFÍA
• Direcciones URLs:
+ Softstars Systems
http://www.softsartsystem.com
+Varios
http://si.di.fc.ul.pt/pbd/Transparentes
http://www.geocities.com/ResearchTriangle/Facility/2917
56