(Hago las aclaraciones que creo pertinentes en color azul)
Formato: metricas.xml
Métricas del Proyecto
Las Métricas de proyecto se utilizan:
- Para minimizar la planificación de desarrollo, ya que se realizan ajuste y se reduce los retrasos
- Para evaluar la calidad de los productos. A medida que mejora la calidad se minimizan los defectos.
Las métricas del proyecto de software sugieren que los
proyectos deben medir:
- Entradas: la dimensión de los recursos que se requieren para realizar el trabajo
- Salidas: medidas de las entradas o productos creados durante el proceso de ingeniería del software
- Resultados: medidas que indican la efectividad de las entregas.
Las métricas del software se pueden categorizar en:
Medidas directas: dentro de estas se pueden incluir:
- El costo y el esfuerzo aplicado
- Líneas de código producidas (LCD)
- Velocidad de ejecución, tamaño de memoria y los defectos informados durante un periodo de tiempo establecido
Medidas
Indirectas:
- La funcionalidad, calidad, complejidad, eficiencia
- Fiabilidad, facilidad, facilidad de mantenimiento .
El domino de las métricas del software se dividen en
métricas de proceso, proyecto y producto.
Métricas orientadas al tamaño
Provienen de la normalización de las medidas de calidad y/o productividad considerando el "tamaño" del software que se haya producido.
Los datos que se deben tener en cuenta, se pueden llevar en la siguiente tabla:
Proyecto
|
LDC
|
Esfuerzo
|
Costo $
|
Páginas de documentación
|
Errores
|
Defectos
|
Personas
|
IRIS
|
18.200
|
24
|
200.000
|
945
|
134
|
86
|
4
|
Teniendo en cuenta los datos de la tabla, se pueden derivar otras métricas para comparar varios proyectos. Por ejemplo:
- Errores por KLDC (miles de líneas de código)
- Defectos por KLDC
- Páginas de documentación por KLDC
- Errores por persona-mes
- LDC por persona-mes
- Costo ($) por página de documentación
Métricas orientadas a la función
Permiten la medida de la
funcionalidad de la aplicación.Propuestas por Allan
Albrecht de IBM, comenzó a analizar sistemas, a pedido del grupo de usuarios de
IBM, buscando identificar los factores críticos que determinan el tamaño del
software y por consiguiente, estimar el esfuerzo y el costo de desarrollarlo.
Luego de analizar cientos de sistemas, nació la técnica de Análisis de Puntos
por función. La técnica mide una aplicación con base en las funciones que éste
realiza para/por solicitud del usuario final.
Los
puntos de función se obtienen utilizando una función empírica basado en medidas
cuantitativas del dominio de información del software y valoraciones subjetivas
de la complejidad del software.
Los puntos de función se calculan utilizando la siguiente tabla:
Parámetros de medición | Cuenta |
|
Factor de ponderación
|
|
|
||
|
Simple | Medio | Complejo |
|
|
||
Número de entradas de usuario |
X
|
3
|
4
|
6
|
=
|
||
Número de salidas de usuario |
X
|
4
|
5
|
7
|
=
|
||
Número de peticiones de usuario |
X
|
3
|
4
|
6
|
=
|
||
Número de archivos |
X
|
7
|
10
|
15
|
=
|
||
Número de interfaces externas |
X
|
5
|
7
|
10
|
=
|
||
Cuenta_total
|
Se determinan 5 características del ámbito de la información y los cálculos aparecen en la posición apropiada de la tabla. Los valores del ámbito de información están definidos de la siguiente manera:
1. Número de entradas de usuario: se cuenta cada entrada de usuario que proporcione al software diferentes datos orientados a la aplicación.
2. Número de salidas de usuario: se cuenta cada salida que proporciona al usuario información orientada a la aplicación. En este contexto las salidas se refieren a informes, pantallas, mensajes de error.
3. Número de peticiones de usuario: una petición esta definida como una entrada interactiva que resulta de la generación de algún tipo de respuesta en forma de salida interactiva. Se cuenta cada petición por separado.
4. Número de archivos: se cuenta cada archivo maestro lógico.(principales grupos lógicos de datos de usuarios o de control que están controlados por el programa (una tabla de un SGBDR).
5. Número de interfaces externas: se cuentan todas las interfaces legibles por la maquina por ejemplo: archivos de datos, en cinta o discos que son utilizados para transmitir información a otro sistema.
Procedimiento: primer lugar su cuentan e inscribe el numero de "parametros de medicion" y se les asigna un valor, ejemplo:
Entradas de usuario = 25
Seguidamente, se elije el factor de ponderacion para ese paramentro de medicion (puede ser simple, medio, complejo), en este ejemplo digamos que el factor sera "medio"; entonces:
Entradas de usuario 25 * 4 (valor que corresponde la poderacion medio par dicho parametro <ver tabla arriba>).
Finalmente, se escribe el subtotal en la ultima columna de la derecha de la tabla.
En mi proyecto y a manera de ejemplo la tabla quedaria de esta manera:
PARAMETROS
DE MEDICION
|
CEUNTA
|
FACTOR
DE PONDERACION
|
|||
SIMPLE
|
MEDIO
|
COMPLEJO
|
|||
Numero de entradas de usuario
|
2
|
3
|
4
|
6
|
8
|
Numero de salidas de usuario
|
7
|
4
|
5
|
7
|
49
|
Numero de peticiones de usuario
|
10
|
3
|
4
|
6
|
30
|
Numero de archivos
|
5
|
7
|
10
|
15
|
50
|
Numero de interfaces externas
|
1
|
5
|
7
|
10
|
5
|
CUENTA
TOTAL
|
142
|
Cuando han sido recogidos los datos anteriores, se asocia el valor de complejidad a cada cuenta. Las organizaciones que utilizan métodos de puntos de función desarrollan criterios para determinar si una entrada es denominada simple, media o compleja. No obstante la determinación de la complejidad es algo subjetivo.
Para
calcular los puntos de función se utiliza la siguiente relación:
PF
= Cuenta_total
* [0.65 + 0.01 * ∑(fi)]
De menare que, el primer paso es llenar la tabla, en estos enlaces pueden ver Videos explicativos de la forma de llenar la tabla anterior:
Video explicativo I
Video explicativo 2
Autor videos: Cat. Carlos Alberto Espinoza.
Continuando con la resulucion de la formula, realizamos la segunda tabla para calcular el (fi)
De menare que, el primer paso es llenar la tabla, en estos enlaces pueden ver Videos explicativos de la forma de llenar la tabla anterior:
Video explicativo I
Video explicativo 2
Autor videos: Cat. Carlos Alberto Espinoza.
Continuando con la resulucion de la formula, realizamos la segunda tabla para calcular el (fi)
PF | Punto de función | ||||||||||||||||||||||||||||||||||||||||||
Cuenta_total | Es la suma de todas las entradas obtenidas | ||||||||||||||||||||||||||||||||||||||||||
fi |
Donde i=1 hasta 14. Son valores de ajuste de la complejidad basados en las respuestas a las cuestiones señaladas de la siguiente tabla: Evaluar cada factor en escala 0 a 5
|
Una
vez calculado el punto de función se usan de forma analógica a las LDC
como medida de la productividad, calidad y otros productos del software.
Productividad = PF / persona-mes
Productividad = PF / persona-mes
Calidad
= Errores / PF
Costo
= Dólares / PF
Documentación
= Paginas Documentadas / PFDe manera que nuestra tabla quedaria de esta manera:
FACTORES
DE INFLUENCIA EN LA DIFICULTAD DEL SISTEMA
|
||||||
Nº
|
INTERROGANTE
|
RESPUESTA
|
||||
1
|
Requiere el sistema de copias de
seguridad
|
3
|
||||
2
|
Se requiere comunicación de datos
|
5
|
||||
3
|
Existe funciones de procedimiento
distribuido
|
4
|
||||
4
|
Es critico el funcionamiento
|
3
|
||||
5
|
Se ejecutara el sistema en un entorno
operativo existente y fuertemente utilizado
|
3
|
||||
6
|
Requiere el sistema entrada de datos
interactivos
|
4
|
||||
7
|
Requiere de datos interactivos que la
transacción de entrada se lleve a cabo
sobre múltiples pantallas
|
4
|
||||
8
|
Se actualizaran los archivos maestros
de forma interactivo
|
5
|
||||
9
|
Son complejos las E/S los archivos o
las peticiones
|
3
|
||||
10
|
Es complejo el procesamiento interno
|
3
|
||||
11
|
Se a diseñado el código para ser
reutilizable
|
4
|
||||
12
|
Esta incluido en el diseño la
conversión y la instalación
|
3
|
||||
13
|
Se ha diseñado el sistema para
soportar múltiples instalaciones en
diferentes organizaciones
|
1
|
||||
14
|
Se ha diseñado la aplicación para
facilitar los cambios y para ser fácilmente
utilizado por el usuario
|
5
|
||||
TOTAL
FI
|
50
|
El TOTAL FI, es la suma de todas las repuestas.
Calculamos PF
Cuenta_total
* [0.65 + 0.01 * ∑(fi)]
Donde:
Cuenta total = la sumatoria de la primera tabla.
∑(fi) = A la sumatoria de la segunda tabla
Como ejemplo en mi caso, la cuenta total me dio 142 y el Fi = 50; entonces:
PF = 142*(0,65+0,01*50)
Aclaracion: en el formato que nos dan el Fi, le sacan el promedio a la sumatoria PORQUE EN ESTE SE HAYA EL PF NOMINAL. Sin embargo la formula la aplique tal como aparece: ∑(fi) = sumatoria(fi).
Posteriormente aplique la formula calculando el promedio para hayar el PF Nominal, tal y como esta en el formato metricas.xml.
Es asi que, las tablas hasta el momento nos quedarian de esta manera:
__________________________________________________________________________________
Aclaracion: en el formato que nos dan el Fi, le sacan el promedio a la sumatoria PORQUE EN ESTE SE HAYA EL PF NOMINAL. Sin embargo la formula la aplique tal como aparece: ∑(fi) = sumatoria(fi).
Posteriormente aplique la formula calculando el promedio para hayar el PF Nominal, tal y como esta en el formato metricas.xml.
Es asi que, las tablas hasta el momento nos quedarian de esta manera:
CALCULO
PF
|
PF
=142*(0,65+0,01*50)
|
||||
PF = Cuenta_total * [0.65 + 0.01 * ∑(fi)]
|
PF=
|
163,3
|
|||
CALCULO
PF NOMINAL
|
PF(n)=
142*(0,65+0,01* 3,57)
|
||||
Pf(nominal)
= Cuenta_total*(0,65+0,01*Prom(Fi))
|
PF(n)=
|
97,37
|
|||
CALCULO
PF REAL
|
PF(r)=97,37
- (97,37*45/100)
|
||||
Donde el Pf(real) se obtiene restando
el porcentaje de
reutilización que
para nuestro proyecto es estaimado
a 45%
|
PF(r)=
|
53,55
|
__________________________________________________________________________________
ANEXOS
Finalmente, comparto un ejemplo para aclarar conceptos sobre las variables de la tabla, recuerden que a cada una de ellas se da un valor de 1 a 5 segun su complejdidad. La siguiente informacion solo es para ver en que situaciones se aplica con mayor frecuencia cada variable.
FACTORES DE
INFLUENCIA EN LA DIFICULTAD DEL SISTEMA
|
Ejemplo
|
1. Comunicaciones de datos
|
Una aplicación para
el sector bancario, donde se requieren numerosas transacciones monetarias.
|
2. Procesamiento distribuido
|
Un motor de búsqueda en Internet, donde el
procesamiento está distribuido en decenas de máquinas.
|
3. Objetivos de rendimiento
|
Una aplicación para el control del tráfico aéreo,
que debe proporcionar continuamente información precisa sobre la posición y
rumbo de los aviones.
|
4. Configuración de uso intensivo
|
Un sistema para matrículas en una universidad,
donde concurren cientos de alumnos al mismo tiempo.
|
5. Tasas de transacción rápidas
|
Una aplicación para el sector bancario, donde
deben realizarse millones de transacciones durante la noche.
|
6. Entrada de datos en línea
|
Un programa en el
que los datos de entrada provienen de papeles o formularios impresos.
|
7. Amigabilidad en
el diseño
|
Un programa de análisis financiero utilizado por
el directivo de una empresa, capaz de orientarle y asesorarle.
|
8. Actualización de datos en línea
|
Una aplicación para reserva de billetes, en la
que deben bloquearse y modificarse ciertos registros en las BB.DD. para
evitar que un mismo asiento sea vendido dos veces.
|
9. Procesamiento complejo
|
Un sistema para diagnóstico médico, el cual
realiza costosas operaciones de decisión lógica hasta obtener un resultado.
|
10. Reusabilidad
|
Un procesador de textos en el que, por ejemplo,
su barra de menús puede utilizarse desde una hoja de cálculo, un generador de
informes de una base de datos, etc.
|
11. Facilidad de instalación
|
Cualquier aplicación de propósito general, de tal
forma que cualquier persona pueda realizar la instalación fácilmente.
|
12. Facilidad operacional
|
Una aplicación para tratamiento de grandes
cantidades de información, donde es muy importante la efectividad de los
procesos de backup y recuperación de datos.
|
13. Adaptabilidad
|
Una aplicación
software para una multinacional con oficinas en varios países.
|
14. Versatilidad
|
Un sistema que admite diversas situaciones de
uso, tanto para facilitar los cambios como para ser utilizada por el usuario
|