Métricas
Análisis de Puntos de Función

(Function Points)


En la vida real

• Tiempo • Dinero • Temperatura • Distancia
Tiempo Dinero Temperatura Distancia


Introducción

  • Las métricas permiten establecer la unificación de criterios acerca de distintos aspectos
  • Poder medir un concepto lo hace más visible y por consecuencia, más entendible y controlable
  • Las métricas ayudan a tener una mejor compresión del universo y mejorar nuestras vidas


Objetivos

  • Definir una base para estimar
  • Facilitar el seguimiento al progreso de los proyectos
  • Conocer la complejidad del proyecto / producto
  • Ayudar a entender si se ha alcanzado el nivel de calidad deseado
  • Identificar las mejores prácticas


Beneficios

  • Incrementar la satisfacción del cliente
  • Mejorar la productividad y la calidad
  • Identificar, analizar y desarrollar la dirección a seguir
  • Proveer bases para esfuerzos futuros
  • Determinar la escala y los recursos necesarios
  • Proveer información que permita tomar decisiones de calidad del producto
  • Entender, controlar y mejorar los productos de software y los procesos basados en datos objetivos
  • Construir mejores productos y procesos de software
  • Medir el impacto de los métodos y herramientas utilizadas
"Las métricas ayudan a tomar mejores decisiones"


Tipos de metricas (I)

Tabla 1

Tipos de metricas (II)

Tabla 2

Tipos de metricas (III)

Tabla 3

Estimación

Estimado: Evaluación del posible resultado; se aplica al tamaño, esfuerzo y costo de un proyecto e indica un valor esperado y tiene asociado un rango probable en el que se puede encontrar

  • La calidad del plan de desarrollo depende de la calidad de sus estimados
  • Los estimados deben ser refinados en la medida que se conocen más detalles del producto
  • Para verificar la precisión de los estimados, lo mejor es utilizar dos o más técnicas diferentes y comprobar qué tan cercanos son los resultados


Técnicas de estimación

  • Análisis de puntos de función
  • Constructive Cost Model (COCOMO)
  • OLP
  • Delphi
  • Aproximaciones


Análisis de Puntos de Función Análisis de Puntos de Función

  • Método estándar para medir el tamaño del software en términos de su funcionalidad desde el punto de vista del usuario
  • Basado en la inspección de la aplicación
  • Es independiente del lenguaje y la tecnología utilizada en la implementación de la aplicación


Beneficios

  • Apertura hacia nuevos mercados
  • Productividad
  • Calidad
  • Comparación entre tecnologías
  • Estimaciones


Ciclo de vida

 Requerimientos   Diseño Funcional   Diseño Detallado
Codificación
Prueba   Implementación    
    Estimar FP
  • Analizar
    requerimientos
    en un alto nivel
  • Estimar costos,
    esfuerzo, etc.
    Estimar FP
  • Refinar los
    requerimientos
  • Refinar los
    estimados
  • Administrar
    algún cambio
    al alcance
  • Conteo final de FP
  • Reportar los FPs
    entregados
  • Administrar algún
    cambio al alcance
  • Administrar el
    mantenimiento


Análisis de puntos de función

        


Metodología



Determinar el tipo de conteo y el alcance del conteo

  • Conteo de los proyectos por primera vez. Mide la funcionalidad inicial del proyecto proporcionada al usuario.
  • Conteo por mantenimiento del proyecto. Mide las modificaciones por cambios de una aplicación. El número de puntos de función debe actualizarse para que refleje los cambios en la funcionalidad de la aplicación.
  • Conteo actualizado del proyecto. Mide una aplicación ya contada. Este conteo proporciona el tamaño total de la aplicación proporcionada al usuario y cambia cada vez que se hacen modificaciones en la aplicación.


Identificar la frontera a medir

  • La frontera de la aplicación indica el límite entre el software que se está midiendo y el usuario
  • Frontera de la aplicación
    • Define lo que es externo de la aplicación
    • Actúa como "membrana" a través de la cual las transacciones entran o salen de la aplicación
    • Ayudan a identificar lo que son datos mantenidos y datos referenciados
    • Depende del punto de vista del usuario y no de consideraciones técnicas y/o de implementación


Contar la funcionalidad de datos

ILF / EIF
Representan la funcionalidad proporcionada al usuario de grupos de datos o información de control mantenidos dentro de la aplicación o leída desde otras aplicaciones
  • Archivos lógicos internos (ILF)
  • Archivos de interfaz externa (EIF)


ILF (Internal Logical File) / EIF (External Logical File)

ILF es un grupo de datos relacionados de manera lógica o información de control significativos al usuario y mantenidos dentro de la frontera de la aplicación que se está contando, mientras que EIF los mantiene fuera de la frontera.

Los archivos son vistos desde una perspectiva "lógica".



ILF / EIF

A cada archivo lógico interno (ILF) y de interfz externa (EIF) se le asigna una complejidad dependiendo de los siguientes componentes:

  • Elemento de registros RET (Record Element Type): Subgrupo de elementos de datos significativo al usuario dentro de un ILF o EIF
  • Elemento de datos DET (Data Element Type): Campo único, no recursivo y significativo para el usuario en el ILF o EIF


Funcionalidad de transacciones

Representan la funcionalidad proporcionada al usuario para procesar datos en una aplicación. La funcionalidad de transacciones se divide en tres tipos:

  • Entradas externas EI (External Input)
  • Salidas externas EO (External Output)
  • Consultas externas EQ (External inQuiry)


EI (External Input)

  • Una EI procesa datos o información de control proporcionados desde fuera de la frontera de la aplicación. Los datos procesados mantienen uno o más ILFs.
  • A cada EI se le asigna una complejidad dependiendo de los siguientes componentes:
    • Archivos referenciados. Un ILF leído o mantenido por una transacción. Un EIF leido por una transacción.
    • Elementos de datos DET. Es un campo único, no recursivo significativo al usuario mantenido en un ILF por la EI.


EO (External Output)

  • Es un proceso elemental que genera datos o información de control que es enviado fuera de la frontera de la aplicación
  • A cada EO se le asigna una complejidad dependiendo de los siguientes componentes:
    • Archivos referenciados FTR. Un archivo leído o mantenido cuando se procesa la salida externa
    • Elementos de datos DET. Es un campo único no recursivo significativo al usuario que aparece en la salida externa, incluyendo datos derivados


EQ (External inQuiry)

  • Es un proceso elemental que da como resultado una recuperación de datos. La parte de salida no contiene datos calculados y durante el proceso no se mantiene un ILF
  • A cada EO se le asigna una complejidad dependiendo de los siguientes componentes:
    • Archivos referenciados FTR. Un archivo leido cuando se procesa la consulta externa
    • Elementos de datos DET. Es un campo único no recursivo que aparece en la consulta externa


Puntos de Función sin ajustar

Low Average High Totals
 ILF    ___x7   ____x10   ___x15 
 EIF    ___x5   ____x7   ___x10 
 EI    ___x3   ____x4   ____x6 
 EO    ___x4   ____x5   ____x7 
 EQ    ___x3   ____x4   ____x6 
Unadjusted Function Points (UFP)           


Factor de Valor de Ajuste (VAF)

1. Comunicación de datos 8. Actualización de datos en línea
2. Proceso distribuido de datos 9. Complejidad
3. Desempeño 10. Reusabilidad
4. Configuración 11. Facilidad de instalación
5. Volumen de transacciones 12. Facilidad de operación
6. Captura de datos en línea 13. Instalación múltiple
7. Eficiencia al usuario final 14. Facilidad de cambio


Valor de ajuste

Evaluar cada una de las 14 GSC en términos de su grado de influencia (DI) en una escala del 0 al 5

  1. sin influencia
  2. influencia incidental
  3. influencia moderada
  4. influencia media
  5. influencia significativa
  6. fuerte influencia en toda la aplicación


VAF

  • TOTAL GRADO DE INFLUENCIA (TDI) = Suma de los grados de influencia de las 14 GSC
  • FACTOR DE AJUSTE (VAF) = 0.65 + (0.01 x TDI). Refleja la complejidad de proceso de la aplicación como un todo en 14 GSC.


Puntos de Función ajustados

Total de Puntos de Función (FP) = UFP x VAF

  • EFP: conteo de FP por mantenimiento
  • ADD: FP sin ajustar de la funcionalidad agregada al proyecto en el mantenimiento
  • CHGA: FP sin ajustar de funciones que fueron modificadas en el proyecto (después de ser modificadas)
  • CFP: FP agregados por conversión


EFP = [(ADD+CHGA+CFP)*VAFA]+(DEL*VAFB)

  • VAFA: factor de valor de ajuste de la aplicación después de la modificación del proyecto
  • DEL: FP sin ajustar de las funciones eliminadas en el proyecto
  • VAFB: factor de valor de ajuste de la aplicación antes de la modificación del proyecto


AFP=[(UFPB+ADD+CHGA)-(DEL+CHGB)]*VAFA

  • AFP: conteo de FP actualizado
  • UFPB: FP sin ajustar (antes de ser modificada)
  • ADD: FP sin ajustar de la funcionalidad agregados al proyecto en la mejora
  • CHGA: FP sin ajustar de funciones que fueron modificados en el proyecto (después de ser modificadas)


AFP=[(UFPB+ADD+CHGA)-(DEL+CHGB)]*VAFA

  • DEL: FP sin ajustar de las funciones eliminadas en el proyecto
  • CHGB: FP sin ajustar de funciones que fueron modificadas en el proyecto (antes de ser modificadas)
  • VAFA: factor de valor de ajuste de la aplicación después de la modificación del proyecto


Ejemplo

Un grupo de consultorios médicos desea sistematizar su control de citas y pacientes para poderlos atender en sus diferentes localidades.

El usuario podrá mantener la información de citas, pacientes y médicos.

Podrá imprimir los listados de las citas diarias.

Desea que la aplicación les indique errores, lo mismo que ayuda a nivel pantalla, pero no podrá mantener el archivo de errores ni el de ayuda. Estos son mantenidos por otra aplicación.




Archivos mantenidos por la aplicación

1. Médicos
No. Médico
Nombre del médico
Especialidad
Localización
2. Paciente
No. Paciente
Nombre del paciente
Enfermedad frecuente
3. Citas
No. de cita
No. Médico
No. Paciente
Fecha
Método de pago

Archivos NO mantenidos por la aplicación

1. Error
Id. Error
Texto de error
2. Ayuda
Id. Ventana
Texto de ayuda

Sistema de citas médicas
Menú principal

Elija una opción
  1. Pacientes
  2. Médicos
  3. Citas
PF1 = Ayuda

Sistema de citas medicas
Pacientes

Paciente: ACEqqqq
Nombre del Paciente: ACqqqqqqqqq
Enfermedad frecuente: Acqqqqqqqq

PF1=Ayuda  PF2=Agregar  PF3=Cambiar
PF4=Eliminar  PF12=Regresar

Sistema de citas medicas
Citas

No. Cita: ACEqqqqqq
No. Paciente: Acqqqqqqqqq
No. Médico: Acqqqq
Fecha de la cita: AC/qq/qq
Método de pago: Acqqqqqqq

Nombre Paciente: qqqqqqqqqqq
Nombre Médico: qqqqqqqqqqq
Localidad: qqqqqqqqqqq

PF1=Ayuda  PF2=Agregar  PF3=Cambiar
PF4=Eliminar  PF12=Regresar

Sistema de citas medicas
Reportes de citas por paciente

Fecha: dd/mm/yyyy
No. Paciente: 0000000000
Nombre del Paciente: 0000000000
Enfermedad: 0000000000

No. Cita: 0000
No. Cita: 0000
No. Cita: 0000

Fecha: 00/00/00
Fecha: 00/00/00
Fecha: 00/00/00
Nombre Médico: 000000000
Nombre Médico: 000000000
Nombre Médico: 000000000
Total de citas: 00