Logo Studenta

COCOMO II - Puntos de Función

¡Este material tiene más páginas!

Vista previa del material en texto

Ingeniería de SoftwareIngeniería de Software
Unidad V: Estimación
2021
 
 
2Ingeniería de Software | Unidad V - 2021
Introducción [1 | 1]
Estimación
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
3Ingeniería de Software | Unidad V - 2021
De gestión De desarrollo De apoyo
Estimación Especificación Evaluación
Planificación Desarrollo Documentación
Gestión de versiones Validación Adquisición de información
Gestión de calidad Evolución Gestión de la configuración
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Introducción [1 | 14]
Estimación
Actividades en el proceso de software
 
 
4Ingeniería de Software | Unidad V - 2021
Introducción [2 | 14]
Una de las tareas de mayor importancia en la 
administración de proyectos de software es la estimación 
de costos
Se debe realizar en forma objetiva teniendo en cuenta 
diversos factores:
Organizacionales
Económicos
Políticos
Negocios
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
5Ingeniería de Software | Unidad V - 2021
Introducción [3 | 14]
Si bien es una de las primeras actividades, luego de 
establecer los requerimientos, se ejecuta regularmente a 
medida que el proyecto progresa con el fin de ajustar la 
precisión en la estimación
Al estimar se deben responder las siguientes preguntas:
¿Cuánto esfuerzo se requiere para completar una tarea?
¿Cuánto tiempo se necesita para completar una tarea?
¿Cuál es el costo total de la tarea?
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
6Ingeniería de Software | Unidad V - 2021
Introducción [4 | 14]
La estimación de costos tiene 2 usos en la 
administración de proyectos:
Durante la planificación: permite decidir cuantas 
personas serán necesarias para el proyecto y 
establecer el cronograma adecuado
Durante el control del progreso del proyecto: es 
esencial evaluar si el proyecto está evolucionando de 
acuerdo al cronograma y tomar las acciones 
correctivas si fuera necesario
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Para evaluar si el proyecto está evolucionando 
según el cronograma, se deben hacer mediciones.
●Por qué se mide:
●No se puede administrar lo que no se mide
●Muchos proyectos fracasan por una mala 
administración
●La medición es una herramienta de comunicación
●Se mide para entender y mejorar los procesos
●La medición es fundamental para cualquier 
disciplina de ingeniería
 
 
7Ingeniería de Software | Unidad V - 2021
Introducción [5 | 14]
Técnicas para la estimación:
Opinión de expertos: se basa en la experiencia 
profesional de los participantes en el proyecto
Analogía: se basa en la comparación directa de uno o 
más proyectos pasados
Descomposición: se descompone un producto en 
componentes más pequeños y se estima cada uno de 
ellos para luego sumarlos en la estimación global
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
8Ingeniería de Software | Unidad V - 2021
Introducción [6 | 14]
Técnicas para la estimación (continuación):
Ecuaciones: fórmulas matemáticas que establecen la 
relación de algunas medidas de entrada y determinan 
el esfuerzo que se requerirá
La técnica más usada y con mayores beneficios es la 
última
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
9Ingeniería de Software | Unidad V - 2021
Introducción [7 | 14]
COCOMO (COnstructive COst MOdel: Modelo 
Constructivo de Costos)
Desarrollado por Boehm, es un modelo empírico que se 
obtuvo recopilando datos de varios proyectos grandes 
(presenta un 20% de error en el 70% de los casos
Es el más conocido y sólidamente documentado de 
todos los modelos de estimación de costos
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
10Ingeniería de Software | Unidad V - 2021
Introducción [8 | 14]
Su primera versión nace en el año 1981, pasando por un 
refinamiento hasta su versión más reciente, COCOMO II
COCOMO 81 (primera versión) supone que el software 
se desarrolla según un proceso en cascada usando 
lenguajes de programación imperativos como C o 
FORTRAN
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
11Ingeniería de Software | Unidad V - 2021
Introducción [9 | 14]
En el año 1983 aparece Ada, provocando gran impacto 
en los costos de desarrollo y mantenimiento
A partir de los '90 se produjeron cambios radicales en el 
desarrollo de software:
Prototipado y el desarrollo incremental
Software desarrollado con componentes reutilizables
Uso del lenguaje SQL y gestores de BD
Aparece el concepto de reingeniería
Empleo de herramientas CASE
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
12Ingeniería de Software | Unidad V - 2021
Introducción [10 | 14]
COCOMO II está compuesto por 3 modelos:
Composición de aplicación: se utiliza durante la 
etapa de prototipación, o en proyectos construidos con 
componentes preempaquetados
Diseño temprano: se utiliza en las primeras etapas del 
desarrollo en las cuales se evalúan alternativas de HW 
y SW
Post-Arquitectura: se utiliza en la etapa de desarrollo 
propiamente dicho (después de definir la arquitectura) y 
en la etapa de mantenimiento
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
13Ingeniería de Software | Unidad V - 2021
Introducción [11 | 14]
COCOMO II soporta el modelo de desarrollo incremental 
y engloba varios niveles que producen estimaciones 
detalladas en forma incremental, los cuales pueden 
utilizarse en las sucesivas iteraciones
Hay disponible una herramienta online para el cálculo del 
esfuerzo y tiempo de desarrollo empleando COCOMO II 
(post-arquitectura):
http://softwarecost.org/tools/COCOMO/
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●COCOMO II se publicó en el año 1995, y 
actualmente es la versión que está en vigencia. Con 
esta versión, los autores pretenden mejorar, ampliar 
y adaptar el modelo anterior a las nuevas formas de 
desarrollar software.
 
 
14Ingeniería de Software | Unidad V - 2021
Introducción [12 | 14]
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
15Ingeniería de Software | Unidad V - 2021
Introducción [13 | 14]
Como se puede ver de la imagen anterior, la herramienta 
necesita como dato de entrada 1 de los siguientes 2 
datos:
Líneas de código fuente
Puntos de función (sin ajustar)
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
16Ingeniería de Software | Unidad V - 2021
Introducción [14 | 14]
¿Cuándo se hace la estimación del esfuerzo y costo?
Al comienzo del proyecto, cuando no hay ninguna línea 
de código escrita
Conclusión: a la herramienta se le deben proporcionar 
los puntos de función
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
17Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [1 | 37]
Puntos de Función: 
Mide el tamaño del software cuantificando la 
funcionalidad provista al usuario basándose solamente 
en el diseño lógico y las especificaciones funcionales 
(es independiente de la tecnología)
El concepto de funcionalidad captura la noción de 
cantidad de función contenida en un producto 
entregado
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
●El método de Puntos de Función, propuesto por 
Albretch en 1979, es muy usado por muchas 
organizaciones en diversas partes del mundo para 
obtener una medida del tamaño del sistema 
(www.ifpug.org). 
 
 
18Ingeniería de Software | Unidad V - 2021
Puntos deFunción (sin ajustar) [2 | 37]
Métrica:
Medida cuantitativa del grado en que un sistema, 
componente o proceso posee un atributo dado
Puntos de Función es una métrica: mide la cantidad de 
funcionalidad que un software entrega al usuario (es una 
unidad de medida para el software de la misma forma 
que la hora lo es para el tiempo)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
19Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [3 | 37]
Para medir la funcionalidad del software, al mismo se lo 
descompone en 5 conceptos:
ILF: Archivos Internos (Internal Logical Files)
EIF: Interfaces Externas (External Interface Files)
EI: Entradas Externas (External Inputs)
EO: Salidas Externas (External Outputs)
EQ: Consultas Externas (External Queries)
A cada uno de estos conceptos se le aplica un factor de 
peso, dado por su complejidad (baja, media o alta)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
20Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [4 | 37]
Archivo Interno (ILF)
Grupo de datos lógicamente relacionados, 
identificables por el usuario, que residen 
completamente dentro del límite de la aplicación y 
son mantenidos a través de Entradas Externas (EI)
Es mantenido internamente por el sistema, tiene una 
cierta estructura y se guarda en un archivo
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
21Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [5 | 37]
Archivo Interno (ILF)
Un ILF puede contener:
Datos del negocio: datos de los clientes (nombre, 
dirección, teléfono, etc)
Reglas: por ejemplo un valor que indique la cantidad 
de veces que un empleado puede llegar tarde antes 
de ser sancionado
Datos de control: por ejemplo, valores de parámetros, 
de estado, etc 
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
22Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [6 | 37]
Archivo Interno (ILF)
Para calcular la complejidad se tienen en cuenta:
DET (Data Element Type)
RET (Record Element Type)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
23Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [7 | 37]
Archivo Interno (ILF)
DET: 
Campo único, no repetitivo, identificable por el 
usuario 
Los campos redundantes, o que aparecen más de 
una vez, se cuentan una sola vez
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
24Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [8 | 37]
Archivo Interno (ILF)
DET: 
Ejemplo: sobre cada cliente se guarda su número, 
nombre, dirección, ciudad, provincia, código postal, 
saldo en la cuenta, límite de crédito y nombre de su 
representante de venta
Cantidad de DETs: 9
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
25Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [9 | 37]
Archivo Interno (ILF)
RET: 
La idea de los RETs es la de cuantificar las relaciones 
entre los datos mantenidas en un archivo (ILF o EIF)
Un RET es un subconjunto de campos identificables 
por el usuario 
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
26Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [10 | 37]
Archivo Interno (ILF)
RET: 
Tipos de subgrupos:
Grupos repetitivos: se pueden repetir varias veces 
dentro de un archivo
Subtipos: pueden ser opcionales (puede no estar 
presente ninguno) o mandatorios (deben estar 
presentes)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
●Más información:
●http://www.functionpoints.org/sizing-methods.html
●https://www.portlandwebworks.com/blog/simplifying-
complex-function-point-analysis-part-2
●https://www.totalmetrics.com/function-point-
resources/function-point-FAQ/record-element-
types--identification-guidelines
●https://www.youtube.com/watch?v=wqyAkgYzS5w
 
 
27Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [11 | 37]
Archivo Interno (ILF)
RET (grupos repetitivos): 
Ejemplo: un sistema guarda la siguiente información: 
#empleado, nombre, apellido, correo, usuario, clave, 
estado y salario
Suponer que los datos se guardan en 1 ILF
DETs = 8
RETs = 1 (los 8 DETs se guardan en un único 
archivo)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
28Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [12 | 37]
Archivo Interno (ILF)
RET (grupos repetitivos): 
Ahora se quiere llevar el historial de salarios de los 
empleados:
DETs = 8
RETs = 2
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
●Habría 2 RETs porque habría 2 subgrupos de datos: 
los que tienen que ver con el #empleado, nombre, 
apellido, correo, usuario, clave y estado, y los que 
tienen que ver con el historial de salarios.
 
 
29Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [13 | 37]
Archivo Interno (ILF)
RET (subtipos): 
Ejemplo: un empleado tiene datos generales, y 
además puede ser mensual o jornalero. 
Adicionalmente, puede tener personas a su cargo 
(grupo familiar)
Datos generales + mensual = 1 RET (mandatorio)
Datos generales + jornalero = 1 RET (mandatorio)
Grupo familiar = 1 RET (opcional)
Total = 3 RETs
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
30Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [14 | 37]
Archivo Interno (ILF)
Una vez determinada la cantidad de DETs y RETs se 
calcula la complejidad:
RETs
DETs
1 - 19 20 - 50 > 50
1 Baja (7) Baja (7) Media (10)
2 - 5 Baja (7) Media (10) Alta (15)
> 5 Media (10) Alta (15) Alta (15)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
31Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [15 | 37]
Interfaz Externa (EIF)
Grupo de datos relacionados lógicamente, 
identificables por el usuario, que residen 
completamente fuera de la aplicación y son 
mantenidos por otra aplicación, y se los usa con 
propósitos de referencia
Un EIF es un ILF para otra aplicación
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
32Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [16 | 37]
Interfaz Externa (EIF)
Como un EIF es mantenido por otra aplicación, y se lo 
utiliza sólo para referenciar su información, se debe 
desarrollar una interfaz para obtener sus datos
Para calcular su complejidad se aplican los mismos 
principios que para los ILF (DETs y RETs), y se emplea 
la misma tabla
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
33Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [17 | 37]
Entrada Externa (EI)
Proceso mediante el cual los datos atraviesan los 
límites de la aplicación, desde afuera hacia adentro
Estos datos (información de control o de negocio) se 
pueden usar para mantener uno o más ILFs (si son 
información de control no es necesario que mantenga 
un ILF)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
34Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [18 | 37]
Entrada Externa (EI)
Si una EI agrega, borra y modifica la información en un 
ILF, la misma representa 3 EIs
Para calcular la complejidad se tienen en cuenta:
DET (Data Element Type)
FTR (File Type Referenced)
Introducción
Puntos de Función (sin ajustar)COCOMO II
Líneas de código fuente
Estimación
●Una EI debe ser considerada única si tiene un 
formato distinto de las demás o requiere una lógica 
de procesamiento distinta. 
 
 
35Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [19 | 37]
Entrada Externa (EI)
DET: 
Campo único, no repetitivo, identificable por el 
usuario 
Si los campos son información de control, los DETs 
son aquellos que ejecutan una transacción o 
modifican el comportamiento de la aplicación
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
36Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [20 | 37]
Entrada Externa (EI)
DET (para aplicaciones GUI): 
Para el caso de aplicaciones GUI, un DET es 
información que se guarda en un ILF o que se usa 
para ejecutar una transacción
Botón de opciones: como sólo se puede seleccionar 
uno de un grupo, se cuenta un DET para todo el 
grupo de botones
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
37Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [21 | 37]
Entrada Externa (EI)
DET (para aplicaciones GUI): 
Casilla de verificación: como se pueden seleccionar 
varias, se cuenta un DET por cada casilla de 
verificación
Botón: se cuenta como DET si el mismo especifica 
una acción para agregar, borrar o modificar
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
38Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [22 | 37]
Entrada Externa (EI)
DET (para aplicaciones GUI): 
Listas: cada lista se cuenta como un DET
Visualización de imágenes o íconos: cada imagen 
o ícono se cuenta como un DET
Archivos de sonido: cada archivo se cuenta como 
un DET
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
39Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [23 | 37]
Entrada Externa (EI)
DET (para aplicaciones GUI): 
Mensajes: hay 3 tipos: 
de error: cada uno cuenta como un DET
de confirmación: cada uno cuenta como un DET
de notificación: cada uno cuenta cada una EO
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
40Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [24 | 37]
Entrada Externa (EI)
DET (para aplicaciones GUI): 
Ejemplo
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
●Si la información de una EI son datos de negocio, 
los DETs podrían ser por ejemplo: nombre del 
cliente, domicilio, teléfono, etc.
●Si la información son datos de control, los DETs son 
aquellos que ejecutan una transacción o 
modifican el comportamiento de la aplicación. En 
la ventana, cada casilla de verificación representa 
un DET. Luego el grupo de botones de opción para 
ordenar los empleados cuenta como otro DET (lo 
mismo que el grupo que especifica el formato del 
tiempo). Con respecto a los botones, sólo cuenta 
como DET el botón “OK” (el botón “Cancel” sólo 
cierra la ventana, el botón “Help” se puede 
considerar como EQ, y el botón “Default” podría ser 
una EQ también). Total = 9 DETs.
 
 
41Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [25 | 37]
Entrada Externa (EI)
FTR:
Archivo referenciado por una transacción
Puede ser un ILF o un EIF: cada ILF mantenido por 
una EI se cuenta como FTR. Cada ILF o EIF 
referenciado por una EI como parte de su proceso se 
cuenta como FTR
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
42Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [26 | 37]
Entrada Externa (EI)
Una vez determinada la cantidad de DETs y FTRs se 
calcula la complejidad:
FTRs
DETs
1 - 4 5 - 15 > 15
1 Baja (3) Baja (3) Media (4)
2 Baja (3) Media (4) Alta (6)
> 2 Media (4) Alta (6) Alta (6)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
43Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [27 | 37]
Salida Externa (EO)
Proceso mediante el cual datos derivados atraviesan 
los límites de la aplicación, desde adentro hacia afuera
Estos datos, obtenidos a partir de la información 
guardada en uno o más ILF y EIF, se envían a otra 
aplicación
Adicionalmente puede actualizar un ILF
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
●Los datos derivados por lo general son el resultado 
de aplicar algoritmos o cálculos. Por ejemplo, en el 
ILF se guarda la fecha de nacimiento de una 
persona, pero lo que se muestra es su edad.
 
 
44Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [28 | 37]
Salida Externa (EO)
Se consideraran EOs:
La transferencia de datos a otras aplicaciones
Los informes/reportes
Los gráficos
Los mensajes de notificación
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
45Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [29 | 37]
Salida Externa (EO)
Para calcular la complejidad se tienen en cuenta:
DET (Data Element Type)
FTR (File Type Referenced)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
46Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [30 | 37]
Salida Externa (EO)
Una vez determinada la cantidad de DETs y FTRs se 
calcula la complejidad:
FTRs
DETs
1 - 5 6 - 19 > 19
1 Baja (4) Baja (4) Media (5)
2 - 3 Baja (4) Media (5) Alta (7)
> 3 Media (5) Alta (7) Alta (7)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
47Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [31 | 37]
Consulta Externa (EQ)
Proceso con componentes de entrada y salida que 
implican la recuperación de datos de uno o más ILF y 
EIF
El proceso no actualiza ni mantiene ningún FTR y la 
salida no contiene datos derivados
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
48Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [32 | 37]
Consulta Externa (EQ)
Se consideran EQs:
Búsqueda de datos
Menús con consultas explícitas (cada menú que 
proporciona una selección de pantallas se cuenta 
como una EQ)
Pantallas de conexión (de login por ejemplo)
Las ayudas (consultas donde la entradas y salida son 
únicas)
Tutoriales
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
49Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [33 | 37]
Consulta Externa (EQ)
Para calcular la complejidad se tienen en cuenta:
DET (Data Element Type)
FTR (File Type Referenced)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
50Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [34 | 37]
Consulta Externa (EQ)
Una vez determinada la cantidad de DETs y FTRs se 
calcula la complejidad:
FTRs
DETs
1 - 5 6 - 19 > 19
1 Baja (3) Baja (3) Media (4)
2 - 3 Baja (3) Media (4) Alta (6)
> 3 Media (4) Alta (6) Alta (6)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
51Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [35 | 37]
A los ILF, EIF, EI, EO y EQ de complejidad baja, media y 
alta, se los ingresan a la siguiente tabla:
Componente
Complejidad
Total
Baja Media Alta
ILF # x 7 = # x 10 = # x 15 =
EIF # x 5 = # x 7 = # x 10 =
EI # x 3 = # x 4 = # x 6 =
EO # x 4 = # x 5 = # x 7 =
EQ # x 3 = # x 4 = # x 6 =
PF (sin ajustar)
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
52Ingenieríade Software | Unidad V - 2021
Puntos de Función (sin ajustar) [36 | 37]
Ejemplo: se desea desarrollar un software que tiene los 
siguientes componentes:
2 EI de complejidad baja
3 EI de complejidad media
1 EO de complejidad alta
2 ILF de complejidad media
10 EQ de complejidad baja
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
 
 
53Ingeniería de Software | Unidad V - 2021
Puntos de Función (sin ajustar) [37 | 37]
A los ILF, EIF, EI, EO y EQ de complejidad baja, media y 
alta, se los ingresan a la siguiente tabla:
Componente
Complejidad
Total
Baja Media Alta
ILF # x 7 = 2 x 10 = 20 # x 15 = 20
EIF # x 5 = # x 7 = # x 10 =
EI 2 x 3 = 6 3 x 4 = 12 # x 6 = 18
EO # x 4 = # x 5 = 1 x 7 = 7 7
EQ 10 x 3 = 30 # x 4 = # x 6 = 30
PF (sin ajustar) 75
Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
Estimación
●Al valor FP obtenido en esta tabla se lo llama 
“Puntos de Función sin Ajustar”.
 
 
54Ingeniería de Software | Unidad V - 2021
COCOMO II [1 | 52]
Se había dicho que la herramienta de COCOMO II 
necesitaba 1 de los siguientes 2 datos:
Líneas de código fuente: como se está al comienzo del 
proyecto, no hay ninguna línea escrita
Puntos de función (sin ajustar): se los puede medir al 
comienzo del proyecto
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
55Ingeniería de Software | Unidad V - 2021
COCOMO II [2 | 52]
Luego de especificar que se emplearán puntos de 
función para el cálculo de la estimación, se debe 
especificar:
La cantidad de puntos de función (sin ajustar)
El lenguaje a emplear
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
56Ingeniería de Software | Unidad V - 2021
COCOMO II [3 | 52]
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
57Ingeniería de Software | Unidad V - 2021
COCOMO II [4 | 52]
A continuación se debe especificar un valor para cada 
uno de los 17 factores de ajuste, llamados 
multiplicadores de esfuerzo:
A cada multiplicador se le asigna un nivel que va desde 
“extra bajo” hasta “extra alto”
Cada uno de estos niveles se corresponde con un valor 
numérico
Si un factor no tiene incidencia sobre el proyecto, su 
nivel es “nominal” (valor 1.0), si el factor provoca un 
efecto nocivo en el esfuerzo, su valor será mayor que 
1.0 y en caso contrario será inferior a 1.0
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
58Ingeniería de Software | Unidad V - 2021
COCOMO II [5 | 52]
Los 17 factores de ajuste están organizados en 4 grupos:
Producto:
Personal:
Plataforma:
Proyecto:
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
59Ingeniería de Software | Unidad V - 2021
COCOMO II [6 | 52]
Factores que tienen que ver con el producto:
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
60Ingeniería de Software | Unidad V - 2021
COCOMO II [7 | 52]
Factores que tienen que ver con el producto:
Confiabilidad requerida (RELY): mide la confiabilidad 
del producto a ser desarrollado.
Si el efecto de la falla del software produce 
inconvenientes solamente al desarrollador, quien 
debe solucionarla, su valor es Bajo
Si por el contrario, la falla atenta contra la vida 
humana su valor es Muy Alto
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Para una mayor descripción de cada uno de los 
multiplicadores de esfuerzo, se puede ver:
●http://sunset.usc.edu/research/COCOMOII/Docs/
modelman.pdf
 
 
61Ingeniería de Software | Unidad V - 2021
COCOMO II [8 | 52]
Factores que tienen que ver con el producto:
Tamaño de la base de datos (DATA): su valor se 
determina calculando la siguiente relación:
Tamaño BD (bytes) / Tamaño del programa (SLOC)
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
62Ingeniería de Software | Unidad V - 2021
COCOMO II [9 | 52]
Factores que tienen que ver con el producto:
Complejidad del producto (CPLX): analiza la 
complejidad de las siguientes operaciones: 
operaciones de control, computacionales, dependientes 
de los dispositivos, de administración de datos y de 
administración de interfaz de usuario 
Se determina como el promedio del nivel de cada uno 
de los 5 tipos de operaciones
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
63Ingeniería de Software | Unidad V - 2021
COCOMO II [10 | 52]
Factores que tienen que ver con el producto:
Requerimientos de reusabilidad (RUSE): considera 
el esfuerzo adicional necesario para construir 
componentes que puedan ser reusados dentro de un 
mismo proyecto o en futuros desarrollos:
Creación de diseños genéricos
Mayor cantidad de documentación
Testeo intensivo
Etc
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
64Ingeniería de Software | Unidad V - 2021
COCOMO II [11 | 52]
Factores que tienen que ver con el producto:
Documentación acorde a las diferentes etapas del 
ciclo de vida (DOCU): los posibles valores van desde 
Muy Bajo (documentación que no cubre varias 
necesidades) hasta Muy Alto (documentación excesiva 
de acuerdo a las necesidades)
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
65Ingeniería de Software | Unidad V - 2021
COCOMO II [12 | 52]
Factores que tienen que ver con el producto:
Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
RELY 0,82 0,92 1,00 1,10 1,26 -
DATA - 0,90 1,00 1,14 1,28 -
CPLX 0,73 0,87 1,00 1,17 1,34 1,74
RUSE - 0,87 1,00 1,17 1,34 1,74
DOCU 0,81 0,91 1,00 1,11 1,23 -
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Estos 5 multiplicadores de esfuerzo, RELY, DATA, 
CPLX, RUSE y DOCU, se agrupan en la categoría 
“Producto”.
 
 
66Ingeniería de Software | Unidad V - 2021
COCOMO II [13 | 52]
Factores que tienen que ver con el personal:
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
67Ingeniería de Software | Unidad V - 2021
COCOMO II [14 | 52]
Factores que tienen que ver con el personal:
Capacidad de los analistas (ACAP): los principales 
atributos que deberían considerarse en un analista son 
la habilidad para el diseño, el análisis, la correcta 
comunicación y cooperación entre sus pares
No se tiene en cuenta el nivel de experiencia
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
68Ingeniería de Software | Unidad V - 2021
COCOMO II [15 | 52]
Factores que tienen que ver con el personal:
Capacidad de los programadores (PCAP): la 
productividad se ve muy afectada por la habilidad de 
los programadores en el uso de las herramientas 
actuales
También evalúa la capacidad de los programadores 
para el trabajo en equipo más que para el trabajo 
individual, resaltando las aptitudes para comunicarse y 
cooperar mutuamente
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
69Ingeniería de Software | Unidad V - 2021
COCOMO II [16 | 52]
Factores que tienen que ver con el personal:
Continuidad del personal (PCON): mide el grado de 
permanencia anual del personal afectado a un proyecto
Experiencia en la aplicación (AEXP): mide el nivel de 
experiencia del equipo de desarrollo en aplicaciones 
similares
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
70Ingeniería de Software | Unidad V - 2021
COCOMO II [17 | 52]
Factores que tienen que ver con el personal:
Experiencia en la plataforma (PEXP): reconoce la 
importancia del conocimiento de nuevas plataformas, 
interfaces gráficas, BD, redes, etc
Experienciaen el lenguaje y herramientas (LTEX): 
mide el nivel de experiencia del equipo en el uso del 
lenguaje y herramientas a emplear (influye 
notablemente en el tiempo de desarrollo)
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
71Ingeniería de Software | Unidad V - 2021
COCOMO II [18 | 52]
Factores que tienen que ver con el personal:
Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
ACAP 1,42 1,19 1,00 0,85 0,71 -
PCAP 1,34 1,15 1,00 0,88 0,76 -
PCON 1,29 1,12 1,00 0,90 0,81 -
AEXP 1,22 1,10 1,00 0,88 0,81 -
PEXP 1,19 1,09 1,00 0,91 0,85 -
LTEX 1,20 1,09 1,00 0,91 0,84 -
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Estos 6 multiplicadores de esfuerzo, ACAP, PCAP, 
PCON, AEXP, PEXP y LTEX, se agrupan en la 
categoría “Personal”.
 
 
72Ingeniería de Software | Unidad V - 2021
COCOMO II [19 | 52]
Factores que tienen que ver con la plataforma:
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
73Ingeniería de Software | Unidad V - 2021
COCOMO II [20 | 52]
Factores que tienen que ver con la plataforma:
Restricción del tiempo de ejecución (TIME): 
representa el grado de restricción de tiempo de 
ejecución impuesta sobre el sistema
Se expresa en términos de porcentaje de tiempo de 
ejecución disponible que usará el sistema
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
74Ingeniería de Software | Unidad V - 2021
COCOMO II [21 | 52]
Factores que tienen que ver con la plataforma:
Restricción del almacenamiento principal (STOR): 
representa el grado de restricción del almacenamiento 
principal impuesto sobre un sistema. Se expresa en 
términos de porcentaje del almacenamiento principal 
que usará el sistema
Volatilidad de la plataforma (PVOL): representa la 
frecuencia de los cambios en la plataforma subyacente
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
75Ingeniería de Software | Unidad V - 2021
COCOMO II [22 | 52]
Factores que tienen que ver con la plataforma:
Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
TIME - - 1,00 1,11 1,29 1,63
STOR - - 1,00 1,05 1,17 1,46
PVOL - 0,87 1,00 1,15 1,30 -
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Estos 3 multiplicadores de esfuerzo, PVOL, STOR y 
TIME, se agrupan en la categoría “Plataforma”.
 
 
76Ingeniería de Software | Unidad V - 2021
COCOMO II [23 | 52]
Factores que tienen que ver con el proyecto:
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
77Ingeniería de Software | Unidad V - 2021
COCOMO II [24 | 52]
Factores que tienen que ver con el proyecto:
Uso de herramientas de software (TOOL): el tipo de 
herramientas abarca desde las que permiten editar y 
codificar hasta las que posibilitan una administración 
integral del desarrollo en todas sus etapas
Desarrollo multisitio (SITE): involucra la disposición 
(ubicación) del equipo de trabajo) y el soporte de 
comunicación
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
78Ingeniería de Software | Unidad V - 2021
COCOMO II [25 | 52]
Factores que tienen que ver con el proyecto:
Cronograma requerido para el desarrollo (SCED): se 
define mediante el porcentaje de retraso o aceleración 
con respecto a la planificación nominal impuesta al 
equipo de desarrollo
Cualquier aceleración (muy bajo) o retraso (muy alto) 
requerirá mayor esfuerzo: acelerar plazos produce más 
esfuerzo en las últimas etapas, relajar los plazos 
produce mayor esfuerzo en las etapas tempranas
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Una relajación de los plazos produce mayor 
esfuerzo en las etapas tempranas donde se destina 
más tiempo para las tareas de planificación, 
especificación. 
 
 
79Ingeniería de Software | Unidad V - 2021
COCOMO II [26 | 52]
Factores que tienen que ver con el proyecto:
Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
TOOL 1,17 1,09 1,00 0,90 0,78 -
SITE 1,22 1,09 1,00 0,93 0,86 0,80
SCED 1,43 1,14 1,00 1,00 1,00 -
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Estos 3 multiplicadores de esfuerzo, TOOL, SITE y 
SCED, se agrupan en la categoría “Proyecto”.
 
 
80Ingeniería de Software | Unidad V - 2021
COCOMO II [27 | 52]
Factor de escala B:
Se suele asumir que un sistema 10 veces más grande 
que otro requerirá 10 veces más esfuerzo para 
construirse
Sin embargo, el esfuerzo es más de 10 veces
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Que el esfuerzo para desarrollar un sistema 10 
veces más grande que otro sea más de 10 veces 
mayor se debe a que los proyectos de SW más 
grandes requieren la coordinación entre grupos más 
grandes de personas, lo que requiere una mayor 
comunicación (Brooks). 
 
 
81Ingeniería de Software | Unidad V - 2021
COCOMO II [28 | 52]
Factor de escala B:
Como el tamaño del proyecto aumenta, el número de 
vías de comunicación entre las diferentes personas 
aumenta según la relación:
N x (N – 1 ) / 2
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
82Ingeniería de Software | Unidad V - 2021
COCOMO II [29 | 52]
Factor de escala B:
Debido al aumento exponencial de las vías de 
comunicación (junto con algunos otros factores), los 
proyectos también tienen un aumento exponencial en 
el esfuerzo a medida que aumenta el tamaño 
(deseconomía de escala)
Economía de escala implica “cuanto más grande, más 
bajo el costo por unidad”
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
83Ingeniería de Software | Unidad V - 2021
COCOMO II [30 | 52]
Factor de escala B:
COCOMO II captura los efectos de las economías y 
deseconomías de escala mediante 5 factores:
PREC
FLEX
RESL
TEAM
PMAT
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
84Ingeniería de Software | Unidad V - 2021
COCOMO II [31 | 52]
Factor de escala B:
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
85Ingeniería de Software | Unidad V - 2021
COCOMO II [32 | 52]
Factor de escala B:
Factor de precedencia (PREC): grado de experiencia 
previa en relación al producto a desarrollar, tanto en 
aspectos organizacionales como en el conocimiento del SW 
y HW a utilizar
Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
PREC
Completamente 
sin precedentes
Ampliament
e sin 
precedente
s
Algún 
precedente
Generalment
e familiar
Ampliame
nte 
familiar
Completam
ente 
familiar
6,20 4,96 3,72 2,48 1,24 -
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
86Ingeniería de Software | Unidad V - 2021
COCOMO II [33 | 52]
Factor de escala B:
Factor de flexibilidad (FLEX): considera el nivel de 
exigencia en el cumplimiento de los requerimientos 
preestablecidos, plazos de tiempos y especificaciones de 
interfaz
Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
FLEX
Rigurosa Relajación 
ocasional
Alguna 
relajación
Conformidad 
en general
Alguna 
conformid
ad
Metas 
generales
5,07 4,05 3,04 2,03 1,01 -
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
87Ingeniería de Software | Unidad V - 2021
COCOMO II [34 | 52]
Factor de escala B:
Arquitectura y determinación del riesgo (RESL): 
involucra aspectos relacionados al conocimiento de los 
ítems de riesgo crítico y al modo de abordarlos dentro del 
proyecto
Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
RESL
Poco (20%) Algo (40%) Siempre 
(60%)
Generalment
e (75%)
Principalm
ente 
(90%)
Completam
ente 
(100%)
7,07 5,654,24 2,83 1,41 -
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
88Ingeniería de Software | Unidad V - 2021
COCOMO II [35 | 52]
Factor de escala B:
Cohesión del equipo (TEAM): tiene en cuenta las 
dificultades de sincronización entre los participantes del 
proyecto
Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
TEAM
Interacciones 
difíciles
Interaccion
es con 
alguna 
dificultad
Interaccion
es 
básicament
e 
cooperativa
s
Interaccione
s 
ampliamente 
cooperativas
Interaccio
nes muy 
cooperativ
as
Interaccion
es sin 
fisuras
5,48 4,36 3,29 2,19 1,10 -
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
89Ingeniería de Software | Unidad V - 2021
COCOMO II [36 | 52]
Factor de escala B:
Madurez del proceso (PMAT): se basa en el modelo de 
CMM
Muy Bajo Bajo Nominal Alto Muy Alto Extra Alto
PMAT
Mitad inferior del 
nivel 1
Mitad 
superior del 
nivel 1
Nivel 2 Nivel 3 Nivel 4 Nivel 5
7,80 6,24 4,68 3,12 1,56 -
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
90Ingeniería de Software | Unidad V - 2021
COCOMO II [37 | 52]
Factor de escala B:
Si B < 1.0 el proyecto exhibe economía de escala:
Si un producto aumenta el doble su tamaño, el 
esfuerzo del proyecto es menos del doble, lo cual 
significa que la productividad del proceso de 
desarrollo de software incrementa a medida que 
aumenta el tamaño del proyecto
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
91Ingeniería de Software | Unidad V - 2021
COCOMO II [38 | 52]
Factor de escala B:
Si B > 1.0 el proyecto exhibe deseconomía de escala:
La productividad del proceso de desarrollo de 
software disminuye a medida que aumenta el tamaño 
del proyecto
La deseconomía de escala en los proyectos de 
software se debe a 2 factores principales: el 
crecimiento de las comunicaciones interpersonales, y 
la integración de sistemas 
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
92Ingeniería de Software | Unidad V - 2021
COCOMO II [39 | 52]
Factor de escala B:
Si B = 1.0 las economías y deseconomías de escala 
están en equilibrio:
Este modelo lineal se usa siempre en la estimación 
de costos de proyectos pequeños
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
93Ingeniería de Software | Unidad V - 2021
COCOMO II [40 | 52]
COCOMO II también tiene en cuenta si un proyecto se 
va a construir a partir de componentes existentes, en 
cuyo caso:
Una parte será totalmente nueva
Otra parte se reutilizará sin hacerle modificaciones y/o 
otra parte se reutilizará haciéndole alguna modificación
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
94Ingeniería de Software | Unidad V - 2021
COCOMO II [41 | 52]
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
95Ingeniería de Software | Unidad V - 2021
COCOMO II [42 | 52]
Para la parte que se reutilice sin hacerle modificaciones, 
se puede especificar:
Integración: porcentaje de esfuerzo requerido para integrar 
y probar el software
Grado de evaluación y asimilación (AA): porcentaje de 
esfuerzo necesario para determinar si un módulo de 
software es apropiado para la aplicación y si se puede 
integrar su descripción a la descripción total del producto 
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
96Ingeniería de Software | Unidad V - 2021
COCOMO II [43 | 52]
Para determinar el grado de evaluación y asimilación 
(AA):
AA [%] Nivel de esfuerzo
0 Ninguno
2 Búsqueda del módulo básico y documentación
4 Algunos módulos de testeo y evaluación, documentación
6 Considerable cantidad de módulos de testeo y evaluación, documentación
8 Gran cantidad de módulos de testeo y evaluación, documentación
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Este factor tiene que ver con el grado de evaluación 
y asimilación necesario para determinar si un 
módulo de software completamente reutizable 
resulta apropiado para la aplicación, como así 
también la integración de su descripción en toda la 
descripción del producto.
 
 
97Ingeniería de Software | Unidad V - 2021
COCOMO II [44 | 52]
Para la parte que se reutilice haciéndole alguna 
modificación, se puede especificar:
Diseño: porcentaje del diseño que requiere modificación 
para alcanzar los objetivos del nuevo software
Código: porcentaje del código que requiere modificación 
para alcanzar los objetivos del nuevo software
Integración: porcentaje de esfuerzo requerido para integrar 
y probar el software
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
98Ingeniería de Software | Unidad V - 2021
COCOMO II [45 | 52]
Para la parte que se reutilice haciéndole alguna 
modificación, se puede especificar:
Grado de evaluación y asimilación (AA): porcentaje de 
esfuerzo necesario para determinar si un módulo de 
software a adaptar es apropiado para la aplicación y si se 
puede integrar su descripción a la descripción total del 
producto
Comprensibilidad (SU): porcentaje de comprensibilidad 
del software existente, según su estructura, claridad y 
descriptividad
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
99Ingeniería de Software | Unidad V - 2021
COCOMO II [46 | 52]
Para la parte que se reutilice haciéndole alguna 
modificación, se puede especificar:
Falta de familiaridad (UNFM): nivel de desconocimiento 
del programador con el software
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
100Ingeniería de Software | Unidad V - 2021
COCOMO II [47 | 52]
Para determinar la comprensibilidad (SU) en cuanto a la 
estructura:
Muy Bajo Bajo Nominal Alto Muy Alto
Estructura Cohesión 
muy baja, 
alto 
acoplamiento
, código 
espagueti
Cohesión 
moderadame
nte baja, alto 
acoplamiento
Razonablem
ente bien 
estructurado, 
algunas 
áreas débiles
Alta 
cohesión, 
bajo 
acoplamiento
Fuerte 
modularidad, 
ocultamiento 
de la 
implementaci
ón
SU [%] 50 40 30 20 10
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
101Ingeniería de Software | Unidad V - 2021
COCOMO II [48 | 52]
Para determinar la comprensibilidad (SU) en cuanto a la 
claridad en la aplicación:
Muy Bajo Bajo Nominal Alto Muy Alto
Claridad en 
la aplicación
Ninguna 
corresponde
ncia con el 
dominio de 
aplicación
Alguna 
corresponde
ncia con el 
dominio
Moderada 
corresponde
ncia con el 
dominio
Buena 
corresponde
ncia con el 
dominio
Clara 
corresponde
ncia con el 
dominio
SU [%] 50 40 30 20 10
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
102Ingeniería de Software | Unidad V - 2021
COCOMO II [49 | 52]
Para determinar la comprensibilidad (SU) en cuanto a la 
descriptividad:
Muy Bajo Bajo Nominal Alto Muy Alto
Descriptivid
ad
Código 
oscuro, 
documentaci
ón faltante, 
oscura, u 
obsoleta
Algunas 
líneas 
comentario, y 
alguna 
documentaci
ón útil
Nivel 
moderado de 
líneas 
comentario, y 
documentaci
ón
Buen nivel de 
líneas 
comentario, y 
documentaci
ón útil; 
debilidad en 
algunas 
áreas
Código 
autodescripti
vo, 
documentaci
ón al día, 
bien 
organizada 
con racional 
diseño
SU [%] 50 40 30 20 10
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Si el software se evalúa muy alto en cuanto a su 
estructura, claridad y descriptividad, el valor de SU 
es 10%. Si el software se evalúa muy bajo en estas 
características, el valor de SU es 50%. 
●El valor de SU se obtiene haciendo un promedio de 
los 3 conceptos.103Ingeniería de Software | Unidad V - 2021
COCOMO II [50 | 52]
Para determinar la falta de familiaridad (UNFM):
UNFM Nivel de desconocimiento
0,0 Completamente familiar
0,2 Familiar en su mayor parte
0,4 Algo familiar
0,6 Considerablemente familiar
0,8 Desconocido en su mayor parte
1,0 Completamente desconocido
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●El parámetro UNFM se aplica multiplicativamente al 
parámetro SU (comprensibilidad). Si el programador 
trabaja todos los días con el software, el valor 0,0 
de UNFM hará que no se tenga en cuenta el valor 
de SU. Si el programador nunca antes vió el 
software, el valor 1,0 de UNFM hará que se tenga 
en cuenta completamente el valor de SU.
 
 
104Ingeniería de Software | Unidad V - 2021
COCOMO II [51 | 52]
Con todos estos datos, la herramienta permite 
determinar:
El esfuerzo E [meses-persona]
El tiempo medio de desarrollo T [meses]
Con estos valores se puede determinar el número medio 
de personas N: 
N = E / T [personas]
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●En el trabajo, la unidad meses-persona es una 
unidad de estimación del esfuerzo necesario para 
realizar una tarea cuya unidad equivale a la 
cantidad de meses de trabajo ininterrumpido de una 
persona.
 
 
105Ingeniería de Software | Unidad V - 2021
COCOMO II [52 | 52]
La forma genérica para calcular el esfuerzo es:
E = 2.94 x (KSLOC)B x Π(EM
i
)
E: esfuerzo [meses-hombre]
KSLOC: líneas de código fuente (expresadas en miles)
B: factor de escala
EM
i
: multiplicadores de esfuerzo
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
106Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [1 | 28]
Se había dicho que una métrica es una medida 
cuantitativa del grado en que un sistema, componente o 
proceso posee un atributo dado
Hay métricas para: 
El proceso: ayudan a mejorarlo sobre una base 
continua
El proyecto: ayudan en la estimación, control de 
calidad, evaluación de productividad y control de 
proyectos
EstimaciónEstimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Las métricas para el proceso evalúan el proceso de 
fabricación del producto correspondiente:
● Tiempo de desarrollo del producto
● Esfuerzo que conlleva dicho desarrollo
● Número y tipo de recursos empleados
● Costo del proceso
●El proceso es un factor controlable para mejorar la 
calidad del SW.
 
 
107Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [2 | 28]
Las métricas del proyecto se pueden clasificar en:
Métricas de calidad: 
Corrección
Facilidad de mantenimiento
Facilidad de uso
Métricas orientadas al tamaño: 
Líneas de código fuente (SLOC)
Puntos de Función
Puntos Objeto
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
108Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [3 | 28]
La cantidad de líneas de código fuente (SLOC) es una 
medida del tamaño de los requerimientos después de 
construir el sistema
Ventajas:
Se pueden medir objetiva y automáticamente
Desventajas:
Las reglas para contarlas en un lenguaje dado, y cómo 
sumarlas cuando hay más de uno
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
109Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [4 | 28]
Convenciones para contar las líneas de código fuente:
¿Contar líneas procedurales y/o declarativas?
¿Contar líneas en blanco?
¿Contar líneas de comentarios?
¿Contar las líneas de declaración de datos una vez o 
por cada módulo en que están incluidas?
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
110Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [5 | 28]
Otras desventajas de las SLOC:
No pueden contarse hasta el final, lo que implica que 
cualquier método de estimación que requiera el tamaño 
del sistema al principio del desarrollo se ve 
obstaculizado
No tienen en cuenta las tareas que no producen líneas 
de código fuente (documentación, por ejemplo)
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
111Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [6 | 28]
Para salvar el problema de no poder contar las líneas de 
código fuente hasta el final, las mismas se pueden 
estimar
Para estimar las líneas de código fuente para un 
determinado lenguaje, hay definidas relaciones entre las 
mismas y la cantidad de puntos de función ajustados
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
112Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [7 | 28]
Para ajustar los puntos de función se les aplica un factor de 
ajuste, llamado Ajuste de Complejidad Técnica (ACT) 
obtenido en base a 14 características (subjetivas) sobre la 
aplicación y el entorno
Estas 14 características toman un valor entre 0 y 5 según 
tengan ninguna (0) o mucha (5) influencia en el sistema
El valor de estas características se llama Grado de Influencia 
(GI)
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
113Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [8 | 28]
Características:
Comunicación de datos Actualización on-line
Funciones distribuidas Procesos complejos
Rendimiento Uso en otros sistemas (reutilización)
Configuraciones fuertemente utilizadas Facilidad de instalación
Frecuencia de transacciones Facilidad de operación
Entradas online de datos Instalación de múltiples sitios
Diseño para la eficiencia del usuario final Facilidad de cambios
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
114Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [9 | 28]
1. Comunicación de datos
0 La aplicación es por lotes o usando una PC
1 La aplicación es por lotes pero existe una entrada de datos o impresión remota
2 La aplicación es por lotes pero son remotas la entrada de datos o la impresión
3 Entrada on-line de datos a un proceso por lotes o sistema de consultas
4 Más de una PC front-end, pero la aplicación soporta un solo tipo de protocolo de 
comunicaciones
5 Más de una PC front-end, pero la aplicación soporta más de un protocolo de 
comunicaciones
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
115Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [10 | 28]
2. Funciones distribuidas
0 No existe este tipo de funciones en la aplicación
1 La aplicación prepara datos para que el usuario final los procese en otro componente 
del sistema (ej. hoja electrónica)
2 Los datos son preparados para ser transferidos a otro componente del sistema sin 
participación del usuario final
3 El proceso distribuido y la transferencia de datos son on-line y sólo en una dirección
4 El proceso distribuido y la transferencia de datos son on-line en ambas direcciones
5 Los procesos se desarrollan dinámicamente en el componente más apropiado del 
Sistema
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
116Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [11 | 28]
3. Rendimiento
0 No existen requisitos específicos de rendimiento
1 Rendimiento y requisitos de diseño han sido definidos y revisados pero no requieren 
ninguna acción especial
2 El tiempo de respuesta o la capacidad es crítico durante las horas pico. Los procesos 
demorados se ejecutan al otro día
3 El tiempo de respuesta o la capacidad es crítico durante las horas de operación
4 Los requisitos de rendimiento son suficientemente estrictos como para requerir un 
análisis de rendimiento en el diseño
5 Además, hay que usarherramientas para el análisis de rendimiento (verificación)
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
117Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [12 | 28]
4. Configuraciones fuertemente utilizadas
0 No existen restricciones de ningún tipo
1 Existen restricciones operativas, pero no requieren un esfuerzo especial para 
Conseguirlas
2 Existen algunas restricciones de seguridad o tiempo
3 Existen requisitos específicos de procesador para algunas partes de la aplicación
4 Las restricciones definidas en el servidor obligan a limitaciones en la aplicación
5 Además de las características del punto 4, existen limitaciones en los componentes 
distribuidos del sistema
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
118Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [13 | 28]
5. Frecuencia de transacciones
0 No existe una definición del período punta de transacciones
1 Se conoce el período punta (mensual, trimestral, estacional, anual)
2 Se conoce el período semanal
3 Se conoce el período punta diario
4 La frecuencia de transacciones definida por el usuario es suficientemente alta como 
para requerir análisis de rendimiento de tareas durante la fase de diseño
5 Además de lo anterior, requiere análisis de rendimiento en el desarrollo y fase de 
instalación
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
119Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [14 | 28]
6. Entrada online de datos
0 Todas las transacciones se procesan por lotes
1 1% al 7% de las transacciones son interactivas
2 8% al 15% de las transacciones son interactivas
3 16% al 23% de las transacciones son interactivas
4 24% al 30% de las transacciones son interactivas
5 Más del 30% de las transacciones son interactivas
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
120Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [15 | 28]
7. Diseño para la eficiencia del usuario final
Envío de trabajos por lotes a través de transacciones 
online
Teclas de función preasignadas 
Soporte multilingüe (contar como 6)
Soporte bilingüe (contar como 4)
Impresión remota 
Scrolling
Ventanas
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
121Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [16 | 28]
7. Diseño para la eficiencia del usuario final
Movimiento automático del cursor 
Ayudas/documentación online 
Interfaz de mouse
Menús 
Uso amplio de facilidades de video
Selección mediante cursor de datos en pantalla
Ayudas a la navegación
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
122Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [17 | 28]
7. Diseño para la eficiencia del usuario final
0 Nada de lo anterior
1 1 a 3 funciones de las anteriores
2 3 a 5 funciones de las anteriores
3 6 o más pero no existen requisitos de usuario respecto a la eficiencia
4 6 o más, pero definidos los requisitos de eficiencia del usuario que obligan a diseñar 
tareas que tienen en cuenta factores humanos (minimizar tecleo)
5 6 o más, y hay requisitos del usuario sobre eficiencia que obligan a usar herramientas 
especiales y procesos para demostrar que los objetivos se han alcanzado.
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
123Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [18 | 28]
8. Actualización online
0 Ninguno
1 Actualización de 1 a 3 ILF. El volumen de actualización es bajo y la recuperación fácil.
2 Actualización de 4 o más ILF. El volumen de actualización es bajo y la recuperación 
fácil
3 Actualización importante de los ILF
4 Además de la protección contra la pérdida de datos, es esencial y ha sido 
especialmente diseñada y programada en el sistema
5 Además de 4, los altos volúmenes de transacciones requieren considerar el costo de 
recuperaciones automáticas
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
124Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [19 | 28]
9. Procesos complejos
Procesos de auditoría y/o aplicaciones de seguridad.
Proceso lógico complejo.
Procesos matemáticos complejos.
Excesivas excepciones de proceso, dando lugar a 
transacciones incompletas que deben ser nuevamente 
procesadas.
Manejo de dispositivos complejos: multimedia, 
independencia de dispositivos, etc.
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
125Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [20 | 28]
9. Procesos complejos
0 Nada de lo anterior
1 Uno de los anteriores
2 Dos de los anteriores
3 Tres de los anteriores
4 Cuatro de los anteriores
5 Todos los anteriores
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
126Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [21 | 28]
10. Uso en otros sistemas (reutilización)
0 No reusables
1 Se utiliza código reusable dentro de la aplicación
2 Menos del 10% de la aplicación tiene en cuenta las necesidades de más de un 
usuario.
3 El 10% o más de la aplicación tiene en cuenta las necesidades de más de un 
usuario.
4 La aplicación fue empaquetada expresamente y/o documentada para ser fácilmente 
reusable. La aplicación es adaptada por el usuario a nivel de código.
5 La aplicación se empaquetó y/o documentó expresamente para ser fácilmente 
reusable. La aplicación es adaptada por el usuario por medio de parámetros de 
mantenimiento.
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
127Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [22 | 28]
11. Facilidad de instalación
0 No se realizaron consideraciones ni se requirieron desarrollos especiales para la 
instalación por parte del usuario
1 No se realizaron consideraciones especiales por el usuario pero se requirieron 
desarrollos especiales de instalación
2 El usuario definió requisitos de conversión e instalación y se desarrollaron y probaron 
guías para conversión e instalación
3 Los requisitos de conversión e instalación fueron definidos por el usuario y las guías 
para la conversión e instalación fueron proporcionadas y probadas. 
4 Además de 2, se proporcionarán y probarán la conversión automática y herramientas 
para la instalación
5 Además de 3, se proporcionarán y probarán la conversión automática y herramientas 
para la instalación (muy crítico)
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
128Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [23 | 28]
12. Facilidad de operación
0 No se definieron por parte del usuario necesidades especiales de operación o 
respaldo distintas de las normales
1 
- 
4
Seleccionar, valorando como uno, cada una de las siguientes solicitudes realizadas a 
la aplicación:
Procesos eficaces de arranque, respaldo y recuperación pero con intervención del 
operador.
La aplicación minimiza la necesidad de montajes de cintas
La aplicación minimiza la necesidad de montaje de papel
5 La aplicación debe diseñarse sin la intervención de operadores (sólo para arrancar y 
parar). Debe tener recuperación automática de errores
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
129Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [24 | 28]
13. Instalación en múltiples sitios
0 No existen requisitos del usuario para considerar la necesidad de un usuario o lugar 
de instalación
1 Se debe diseñar la aplicación para usarse en múltiples lugares pero funcionará bajoentornos idénticos de HW y SW
2 Se debe diseñar la aplicación para usarse en múltiples lugares pero funcionará bajo 
entornos similares de HW y SW
3 Se debe diseñar la aplicación para usarse en múltiples lugares pero funcionará bajo 
entornos distintos de HW y SW
4 Se darán y probarán documentación y planes de soporte de la aplicación a ser 
usados en distintos lugares, en modo 1 y 2
5 Se darán y probarán documentación y planes de soporte de la aplicación a ser 
usados en distintos lugares, en modo 3
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
130Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [25 | 28]
14. Facilidad de cambios
0 No existe ninguna especificación por parte de los usuarios 0 en este sentido
1 
- 
5
Se seleccionará algunas de estas opciones:
Facilidad para realizar consultas o informes simples.
Facilidad para realizar consultas o informes de complejidad media (cuenta como 2)
Facilidad para realizar consultas/informes complejos (cuenta como 3)
Se mantendrán datos de control en tablas mantenidas online por el usuario, pero los 
cambios no serán efectivos hasta el siguiente día de funcionamiento (cuenta como 1)
Igual que en el caso anterior, pero los cambios serán efectivos inmediatamente 
(cuentan como 2)
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
131Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [26 | 28]
Una vez valoradas las 14 características, se calcula el 
factor de ajuste:
ACT = 0.65 + 0.01 * ΣGIGI
Finalmente, se calculan los Puntos de Función Ajustados 
(PFA) de la siguiente manera:
PFA = PF * ACT
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
132Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [27 | 28]
La relación SLOC/PFA depende del lenguaje: 
Lenguaje SLOC / AFP
Ensamblador 320
C 128
Pascal 90
C++ 64
PHP 67
Java 31
Lenguajes OO 30
SQL 12
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
●Se puede encontrar la relación con otros lenguajes 
en el sitio:
●http://www.qsm.com/resources/function-point-
languages-table
 
 
133Ingeniería de Software | Unidad V - 2021
Líneas de código fuente [28 | 28]
¿Qué sucede en el caso de haber más de un lenguaje?
Estimación Introducción
Puntos de Función (sin ajustar)
COCOMO II
Líneas de código fuente
 
 
134Ingeniería de Software | Unidad V - 2021
Otro material [1 | 1]
COCOMO
https://es.slideshare.net/EngHaitham/software-c
ost-estimation-47677034
https://blogadmi1.files.wordpress.com/2010/11/c
ocom0llfull.pdf

Continuar navegando