Make your own free website on Tripod.com
E-Clases
Ingenieria de Software IV
Home
SIA: Definiciones
SIA: Centros de Cómputo
SIA: Areas de Administracion de un CC
SIA: Técnicas y sistemas de gestión de la innovación
Matematicas
SIA II - Proyecto
Códigos para Programadores
Bases de Datos I
Diseño Páginas Web
Curso de Ingles Diciembre 2003
Ingles Tecnico
CENAFOM - Computación 02076
Ingenieria de Software I
Ingenieria de Software II
Ingenieria de Software III
Ingenieria de Software IV
Ingenieria de Software V
Ingenieria de Software VI
Ingenieria de Software VII
Ingenieria de Software VIII
Ingenieria de Software IX
Ingenieria de Software X
Ingenieria de Software XI
Encuestas y Libro de Visitas
Sitios Web
De todo Un Poco
Servicio Tecnico
Nuestros Clientes
Trabajos
Introducción a la Programación

clases2.jpg

Métricas de Software:

 

Cuando pueda medir lo que está diciendo y expresarlo con números, ya conoce algo sobre ello; cuando no pueda medir, cuando no pueda expresar lo que dice con números, su conocimiento es precario y deficiente; puede ser el comienzo del conocimiento, pero en tus pensamientos apenas estás avanzando hacia el escenario de la ciencia.

Lord Kelvin

Definiciones

  • Medida. Proporciona una indicación cuantitativa de extensión, cantidad, dimensiones, capacidad y tamaño de algunos atributos de un proceso o producto. Pueden ser directas, p.e. número de líneas de código, número de errores encontrados, etc., o pueden ser indirectas, p.e. funcionalidad, calidad, complejidad, etc.
  • Medición. Acto de determinar una medida.
  • Métrica. Es una medida cuantitativa del grado en que un sistema o proceso posee un atributo dado. Por lo general relaciona una o más medidas, p.e. número de errores encontrados por cada mil líneas de código.
  • Indicador. Es una métrica o combinación de métricas que proporcionan una visión del proceso, del proyecto o del software en sí, y poder hacer ajustes para que las cosas mejoren.

Métricas orientadas al tamaño.

Medidas

  • Líneas de código (LOC).
  • Esfuerzo en hombre-mes.
  • Costo en pesos o dólares.
  • Número de páginas de documentación.
  • Número de errores. Fallas detectadas antes de entregar el software al cliente.
  • Número de defectos. Fallas detectadas después de entregar el software al cliente.
  • Número de personas en el proyecto.

Métricas

  • Errores por KLOC (mil líneas de código).
  • Defectos por KLOC.
  • Costo por KLOC.
  • Páginas de documentación por KLOC.
  • Errores por hombre-mes.
  • LOC por hombre-mes.
  • Costo por página de documentación.
Ventajas
  • Son fáciles de calcular.
  • Muchos modelos de estimación de software usan LOC o KLOC como datos de entrada.
  • Existen un amplio conjunto de datos y literatura basados en LOC.
Desventajas
  • Son dependientes del lenguaje de programación.
  • Perjudica a los programas cortos pero bien diseñados.
  • Su uso en estimación es díficil porque hay que estimar las LOC a producirse mucho antes de que se complete el análisis y el diseño.

Métricas orientadas a la función.

La medida de punto de función se propuso en 1979 y trata de medir la funcionalidad o utilidad del software.

Cálculo del punto de función

  1. Hay que completar la siguiente tabla de valores del dominio de la información:

    Parámetro Cuenta Factor de ponderación Subtotal
    Simple Medio Complejo
    Número de entradas de usuario   3 4 6  
    Número de salidas de usuario   4 5 7  
    Número de peticiones de usuario   3 4 6  
    Número de archivos   7 10 15  
    Número de interfaces externas   5 7 10  
    Total  

    donde:

    • Entradas de usuario. Son entradas que proporcionan diferentes datos a la aplicación. No confundirlos con las peticiones de usuario.
    • Salidas de usuario. Son reportes, pantallas o mensajes de error que proporcionan información. Los elementos de un reporte, no se cuentan de forma separada.
    • Peticiones de usuario. Es una entrada interactiva que produce la generación de alguna respuesta del software en forma de salida interactiva.
    • Archivos. Son los archivos que pueden ser parte de una base de datos o independientes.
    • Interfaces externas. Son los archivos que se usan para transmitir información a otro sistema.

    Indicaciones:

    • Contar cada medida por separado.
    • Asociar, de alguna manera, un valor de complejidad a cada medida. La siguiente tabla muestra una heurística para decidir la complejidad de todo el sistema.

      Tipos de archivos referenciados Tipos de datos elementales
      1-5 6-19 20+
      0-1 bajo bajo medio
      2-3 bajo medio alto
      4+ medio alto alto

    • Para cada medida, multiplicar su cuenta por el factor de complejidad elegido y escribirlo en la columna de la extrema derecha.
    • Sumar la columna de la extrema derecha y obtener un total T que indica el valor del dominio de la información.

  2. Responder a cada una de las siguientes catorce preguntas y asignarles un valor entre 0 y 5, donde 0 es no influencia, 1 es incidental, 2 es moderado, 3 es medio, 4 es significativo y 5 es esencial.

    1. ¿Requiere el sistema copias de seguridad y de recuperación fiables?
    2. ¿Requiere comunicación de datos?
    3. ¿Existen funciones de procesamiento distribuido?
    4. ¿Es crítico el rendimiento?
    5. ¿Se ejecutará el sistema en un entorno operativo existente y fuertemente utilizado?
    6. ¿Requiere entrada de datos interactiva?
    7. ¿Requiere la entrada de datos interactiva que las transacciones de entrada se lleven a cabo sobre múltiples pantallas u operaciones?
    8. ¿Se actualizan los archivos maestros de forma interactiva?
    9. ¿Son complejas las entradas, las salidas, los archivos o las peticiones?
    10. ¿Es complejo el procesamiento interno?
    11. ¿Se ha diseñado el código para ser reutilizable?
    12. ¿Están incluidas en el diseño la conversión y la instalación?
    13. ¿Se ha diseñado el sistema para soportar múltiples instalaciones en diferentes organizaciones?
    14. ¿Se ha diseñado la aplicación para facilitar los cambios y para ser fácilmente utilizada por el usuario?

    Sumar los puntos asignados a cada respuesta y obtener un total F que indica un valor de ajuste de complejidad.

  3. El punto de función FP se calcula con la siguiente ecuación:

    PF = T * (0.65 + 0.01 * F).

      Métricas

      • Errores por PF.
      • Defectos por PF.
      • Costo por PF.
      • Página de documentación por PF.
      • PF por hombre-mes.

      Métricas ampliadas de punto de función.

      Los puntos de función fueron diseñados originalmente para sistemas de información y por eso le da más importancia a los datos y menos a los aspectos de control y funcionales. Para subsanar esto, se han propuesto los puntos de característica y los puntos de función 3D.

      Puntos de característica.

      Se calcula igual que el punto de función y solo agrega la cuenta de algoritmos. En este contexto se define un algoritmo como un problema de cálculo limitado que se incluye dentro de un programa de computadora específico. Invertir una matriz, decodificar un string o manejar una interrupción son ejemplos de algoritmos.

      Puntos de función 3D.

      Los puntos de función 3D se calculan llenando la siguiente tabla:

      Elemento de medición Pesos de complejidad Subtotal
      Bajo Medio Alto
      Estructuras internas de datos   * 7 +   * 10 +   * 15 =  
      Datos externos   * 5 +   * 7 +   * 10 =  
      Número de entradas de usuario   * 3 +   * 4 +   * 6 =  
      Número de salidas de usuario   * 4 +   * 5 +   * 7 =  
      Número de peticiones de usuario   * 3 +   * 4 +   * 6 =  
      Transformaciones   * 7 +   * 10 +   * 15 =  
      Transiciones       +       +       =  
      Punto de función 3D  

      donde:

      • Estructuras internas de datos. Son arreglos, listas ligadas, pilas, colas, etc.
      • Datos externos. Equivale a la suma de los archivos y las interfaces externas tal y como están definidos para el punto de función.
      • Entradas de usuario. Definidas igual que para el punto de función.
      • Salidas de usuario. Definidas igual que para el punto de función.
      • Peticiones de usuario. Definidas igual que para el punto de función.
      • Transformaciones. Son las operaciones internas requeridas para transformar datos de entrada en datos de salida. Multiplicar dos matrices cuenta como una transformación. Leer datos de un archivo y guardarlos en memoria no.
      • Transiciones. Ocurre cuando el software pasa de un estado a otro como resultado de algún suceso. En un sistema de altas, bajas y cambios, al tomar la opción de altas, pasa del estado "menú principal" al estado "procesa altas" y puede ser que en ese momento pida datos para dar la alta.

      Indicaciones:

      • Para cada medida, contar por separado, de acuerdo a algún criterio de asignación de complejidad, las veces que aparezca con complejidad baja, media y alta.
      • Para cada medida, multiplicar cada cuenta por el factor de complejidad correspondiente, sumar las tres cantidades y escribir el total en la columna de la extrema derecha.
      • Sumar la columna de la extrema derecha y obtener el punto de función 3D.

      Funcionalidad de los lenguajes de programación

      La tabla siguiente proporcional estimaciones informales del número de líneas de código que se necesitan para construir un punto de función en varios lenguajes de programación:

      Lenguaje LOC/PF
      Ensamblador 320
      C 128
      Cobol 105
      Fortran 105
      Pascal 90
      Ada 70
      OOL 30
      4GL 20
      Generadores de código 15
      Hojas de cálculo 6
      Lenguajes de íconos 4

      Observando la tabla podemos decir que, en promedio, un programa en ensamblador tendrá 320/128 = 2.5 veces más líneas de código que un programa en C que haga lo mismo, y casi 11 veces más que un lenguaje orientado a objetos (OOL) con la misma funcionalidad.

      Medidas de calidad de Gilb.

      • Correción. Es el grado en el que el software lleva a cabo su función requerida. Se mide en defectos por KLOC.
      • Facilidad de mantenimiento. Es la facilidad con que se puede corregir un programa si se encuentra un error, adaptar si su medio ambiente cambia o mejorar si el cliente desea un cambio de requisitos. Se mide en Tiempo Medio de Cambios (TMC), que es el tiempo que se lleva desde analizar la petición hasta distribuir el cambio a los usuarios.
      • Integridad. Mide la habilidad de un sistema de resistir ataques. Se calcula aplicando la fórmula:

        1 - amenaza * (1 - seguridad)

        Para cada tipo de ataque, y donde amenaza se define como la probabilidad de que ocurra ese ataque y seguridad como la probabilidad que ese ataque sea rechazado.
      • Facilidad de uso. Mide que tan amigable es el sistema con el usuario en función de cuatro características:
        • Habilidad intelectual y/o física para aprender a usarlo.
        • Tiempo requerido para ser moderadamente eficiente al usarlo.
        • Aumento neto de productividad, comparado con el sistema que reemplaza.
        • Valoración subjetiva de la disposición de los usuarios hacia el sistema.

      Eficacia de la Eliminación de defectos (EED)

      .

      EED = E / (E + D)

      donde:

      E es el número de errores (fallas detectadas antes de entregar el sistema al usuario por primera vez)
      D es el número de defectos (fallas detectadas después de entregar el sistema al usuario por primera vez)

    WorldPrime Computacion (C) 2004