martes, 19 de octubre de 2010

Metricas Del Software

La medición es muy común en el mundo de la ingeniería. Medimos potencia de consumo, pesos, dimensiones físicas, temperaturas, voltajes, señales de ruidos por mencionar algunos aspectos. Desgraciadamente la medición se aleja de lo común en el mundo de la ingeniería del software. Encontramos dificultades en ponernos de acuerdo sobre que medir y como va evaluar las medidas.

Hay varias razones para medir un producto.
  1. Para indicar la calidad del producto.
  2. Para evaluar la productividad de la gente que desarrolla el producto.
  3. Par evaluar los beneficios en términos de productividad y de calidad, derivados del uso de nuevos métodos y herramientas de la ingeniería de software.
  4. Para establecer una línea de base para la estimación
  5. Para ayudar a justificar el uso de nuevas herramientas o de formación adicional.
Las mediciones del mundo físico pueden englobarse en dos categorías: medidas directas y medidas indirectas.

Medidas Directas. En el proceso de ingeniería se encuentran el costo, y el esfuerzo aplicado, las líneas de código producidas, velocidad de ejecución, el tamaño de memoria y los defectos observados en un determinado periodo de tiempo.
Medidas Indirectas. Se encuentra la funcionalidad, calidad, complejidad, eficiencia, fiabilidad, facilidad de mantenimiento, etc. 

Las Metricas del software son las que están relacionadas con el desarrollo del software como funcionalidad, complejidad, eficiencia.

MÉTRICAS TÉCNICAS: Se centran en lasa características de software pro ejemplo: la complejidad lógica, el grado de modularidad. Mide la estructura del sistema, el cómo esta hecho.

MÉTRICAS DE CALIDAD: proporcionan una indicación de cómo se ajusta el software a los requisitos implícitos y explícitos del cliente. Es decir cómo voy a medir para que mi sistema se adapte a los requisitos que me pide el cliente.

MÉTRICAS DE PRODUCTIVIDAD. Se centran en el rendimiento del proceso de la ingeniería del software. Es decir que tan productivo va a ser el software que voy a diseñar.

MÉTRICAS ORIENTADAS A LA PERSONA. Proporcionan medidas e información sobre la forma que la gente desarrolla el software de computadoras y sobre todo el punto de vista humano de la efectividad de las herramientas y métodos. Son las medidas que voy a hacer de mi personal que va hará el sistema.

MÉTRICAS ORIENTADAS AL TAMAÑO. Es para saber en que tiempo voy a terminar el software y cuantas personas voy a necesitar. Son medidas directas al software y el proceso por el cual se desarrolla,


En los rendimientos del sistema y los rudimentarios datos contenidos en la tabla se puede desarrollar, para cada proyecto un conjunto de métricas sencillas de productividad y calidad orientadas al tamaño. Se obtienen las siguientes formulas:
Productividad = KLDC/persona-mes
Calidad = errores/KLDC
Documentación = pags. Doc/ KLDC
Costo = $/KLDC


  • persona-mes es el esfuerzo







  •  
    MÉTRICAS ORIENTADAS A LA FUNCIÓN. Son medidas indirectas del software y del proceso por el cual se desarrolla. En lugar de calcularlas las LDC, las métricas orientadas a la función se centran en la funcionalidad o utilidad del programa.

    Las métricas orientadas a la función fueron el principio propuestas por Albercht quien sugirió un acercamiento a la medida de la productividad denominado método del punto de función. Los puntos de función que obtienen utilizando una función empírica basando en medidas cuantitativas del dominio de información del software y valoraciones subjetivos de la complejidad del software.

    Los puntos de función se calculan rellenando la tabla como se muestra en la siguiente figura:


    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úmeros de entrada de usuario: se cuenta cada entrada del usuario que proporcione al software diferentes datos orientados a la aplicación. Las entradas deben ser distinguidas de las peticiones que se contabilizan por separado.
    2. Numero de salida del usuario: se encuentra cada salida que proporciona la usuario información orientada ala aplicación. En este contexto las salidas se refieren a informes, pantalla, mensajes de error. Los elementos de datos individuales dentro de un informe se encuentran por separado.
    3. Números de peticiones al 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. Numero de archivos: se cuenta cada archivo maestro lógico, o sea una agrupación lógica de datos que puede ser una parte en una gran base de datos o un archivo independiente.
    5. Numero 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.
    Cuando han sido recogidos los datos anteriores se asocian 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 * SUM(fi)]

    Donde CUENTA_TOTAL es la suma de todas las entradas de PF obtenidas de la tabla anterior.
    Fi donde i puede ser de uno hasta 14 los valores de ajuste de complejidad basados en las respuestas a las cuestiones señaladas de la siguiente tabla.
    Evaluar cada factor en escala 0 a 5.

    Los valores constantes de la ecuación anterior y los factores de peso aplicados en las encuestas de los ámbitos de información han sido determinados empíricamente.

    Una vez calculado los puntos 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
    Calidad = Errores / PF
    Costo = Dólares / PF
    Documentación = Pags. Doc / PF

    MODELO COCOMO 

    El modelo COCOMO se basa en la existencia de tres niveles que ha de aplicarse según el estado en que se encuentre el desarrollo del proyecto.
    Estos tres niveles son:
    –Modelo básico
    –Modelo intermedio
    –Modelo detallado
    La función básica que utilizan los tres modelos es:
     


      donde:
    a y b:  Son constantes con valores definidos en cada sub-modelo
    Kl o KLOC: Es la cantidad de líneas de código excluyendo comentarios, en miles.
    m(X):  Es un multiplicador que depende de 15 atributos.
    El resultado se da en unidades salario/mes y horas-hombre.

    cada sub-modelo también se divide en modos de trabajo que representan el tipo de
    proyecto, y puede ser:

    1. Modo orgánico: un pequeño grupo de programadores experimentados desarrollan software en un entorno familiar. El tamaño del software varía desde unos pocos miles de líneas (tamaño pequeño) a unas decenas de miles (medio).

    2. Modo Semilibre o Semiencajado: corresponde a un esquema intermedio entre el orgánico y el rígido; el grupo de desarrollo puede incluir una mezcla de personas experimentadas y no experimentadas.

    3. Modo Rígido o Empotrado: el proyecto tiene fuertes restricciones, que pueden estar relacionadas con la funcionalidad y/o pueden ser técnicas. El problema a resolver es único y es difícil basarse en la experiencia, puesto que puede no haberla.
    FUNDACION FES



    El modo de trabajo es Rígido y el modelo es Básico.




    Según Bib.
    Formulario
    Persona x mes (P)
    MM
    a*(Klb)
    Tiempo de Desarrollo (Td)
    TDEV
    C*Pd
    Costo del Software (CT)
    CosteM
    P/Td*SalProm
    Esfuerzo (E)
    E
    P*m(x)

    Calcular el Punto de Fusión


    Parámetro
    Cuenta
    Simple
    Medio
    Complejo
    ST
    #Entradas
    32

                 *

    3
    4
    6
           =
    192
    #Salidas
    16

                 *

    4
    5
    7
           =
    112
    #Peticiones
    16

                 *

    3

    4
    6
           =
    96
    #Archivos
    10

                *

    7
    10

    15 =
    100
    #Interfaces
    30

                *

    5
    7
        10  =
    300
    Cuenta Total
    800


    Evaluación de 0 – 5


    Preg.
    Resp.
    Preg.
    Resp.
    Preg.
    Resp.
    1
    3
    6
    4
    11
    5
    2
    4
    7
    1
    12
    0
    3
    4
    8
    4
    13
    0
    4
    2
    9
    5
    14
    5
    5
    4
    10
    5



    Fi = 45
    Pf = 800*[0.65+0.01*45] = 880
    Kl = 880/1000 = 0.88

    Tabla de Constantes del Modelo Básico

    MODO
    a
    b
    c
    d
    Orgánico
    2.40
    1.05
    2.50
    0.38
    Semilibre
    3.00
    1.12
    2.50
    0.35
    Rígido
    3.60
    1.20
    2.50
    0.32

    P = 3.6*(0.88)1.2
    P = 3.08 = 3 personas

    T = 2.5*(3.08)0.32= 3.58 = 3 meses y medio

    Campos
    Salario
    Personal
    Analista
    500
    Hazel Ramírez
    Desarrollador
    300
    Javier Reyes
    Programador
    300
    Kenny Coleman
    Desarrollador
    300
    Jenny Hodgson
    Total
    1400
    Prom = 1400/4 = 350

    CT = [3.08/3.58]*350
    CT = 301.12 ganancia


    AGENCIA DE VIAJES SKY LIGHT TOUR

    El modo de trabajo es Rígido y el modelo es Básico.




    Según Bib.
    Formulario
    Persona x mes (P)
    MM
    a*(Klb)
    Tiempo de Desarrollo (Td)
    TDEV
    C*Pd
    Costo del Software (CT)
    CosteM
    P/Td*SalProm
    Esfuerzo (E)
    E
    P*m(x)

    Calcular el Punto de Fusión


    Parámetro
    Cuenta
    Simple
    Medio
    Complejo
    ST
    #Entradas
    25

                 *

    3
    4
    6
           =
    150
    #Salidas
    16

                 *

    4
    5
    7
           =
    112
    #Peticiones
    16

                 *

    3

    4
    6
           =
    96
    #Archivos
    10

                *

    7
    10

    15 =
    100
    #Interfaces
    20

                *

    5
    7
        10  =
    200
    Cuenta Total

    658


    Evaluación de 0 – 5


    Preg.
    Resp.
    Preg.
    Resp.
    Preg.
    Resp.
    1
    3
    6
    4
    11
    5
    2
    5
    7
    3
    12
    0
    3
    4
    8
    4
    13
    0
    4
    2
    9
    5
    14
    4
    5
    5
    10
    3



    Fi = 47
    Pf = 658*[0.65+0.01*45] = 736
    Kl = 736/1000 = 0.736

    Tabla de Constantes del Modelo Básico

    MODO
    a
    b
    c
    d
    Orgánico
    2.40
    1.05
    2.50
    0.38
    Semilibre
    3.00
    1.12
    2.50
    0.35
    Rígido
    3.60
    1.20
    2.50
    0.32

    P = 3.6*(0.88)1.2
    P = 2.4 = 2 personas

    T = 2.5*(2.4)0.32= 3.30 = 3 meses

    Campos
    Salario
    Personal
    Analista
    500
    Hazel Ramírez
    Desarrollador
    300
    Javier Reyes
    Programador
    300
    Kenny Coleman
    Desarrollador
    300
    Jenny Hodgson
    Total
    1400
    Prom = 1400/4 = 350

    CT = [2.4/3.30]*350
    CT = 255 ganancia

    No hay comentarios:

    Publicar un comentario