martes, 9 de marzo de 2010

METRICAS DEL PRODUCTO PARA EL SOFTWARE

La medicion es un elemento clave para cualquier proceso de ingenieria, las medidas se utilizan par comprender de mejor manera los atributos de los modelos que se cren y evaluar  la calidad de los productos de la ingenieria  o de los sistemas que se construyen

La medicion es el proceso mediante el cual se asignan numeros  o simbolos a los atributos de entidades reales para definirlas de acuerdo a reglas claramente establecidas, por supuesto  las medidas por lo general no tienen un alto grado de refinamiento, pero es de gran importancia tratar de medir lo inmedible para comprender de mejor manera entidades particulares del desarrollo de software.

La calidad  es el cumplimiento de los requisitos de funcionalidad  y desempeño explicitamente establecidos, de los estandares de desarrollo  explicitamente documentados y de las caracteristicas implicitas que se esperan de todo software de desarrollo profesionalmente.

FACTORES DE CALIDAD DE MCALL

Se dividen en dos grandes grupos
1. los que se miden directamente
2. los que solo se pueden medir indirectamente







Estos elementos son cualitativos al igual manera se pretende asignar numero o simbolos a entidades reales y esto merece un modelo de medicion que abarque un conjunto de reglas

Una medida proporciona una indicacion cuantitativa de la extension, la cantidad, la dimension, la capacidad  o el tamaño de algun atributo del producto o proceso.

Medicion es el acto de determinar una medida

Metrica, es la medida cuantitativa del grado de en que un sistema, componente o proceso posee un atributo determinado.

Un indicador es una metrica o una combinacion de metricas que proporciona conocimiento acerca del proceso de software, un proyecto de software o el propio producto.

Algunos principios en el uso de metricas pueden ser los siguientes.

Una metrica debe tener propiedades matematicas deseables

Cuando  una metrica representa  una caracteristica de software que aumenta cuando se representan rasgos positivos  o que disminuyen al encontrar rasgos indeseables el valor de la metrica debe aumentar o disminuir en  el mismo sentido.

Cada metrica debe valirdarse empiricamente en una amplia variedad de contextos antes de publicarse o aplicarse a toma de desiciones.

Existen muchas metricas que cumplen con los principios esto no indica que deban ser totalmente rechazadas o desmerecidas pero hay que tener cuidado al utilizarlas comprender sus objetivos y entender que no pueden ser usadas como comprobacion cientifica solida.

Las metricas y sus medidas deben ser.

Simples y calculables
Empirica e intuitivamente persuasiva
Consistentes y objetivas
Consistentes en el uso de unidades y dimensiones
Independientes del lenguaje de programacion
Mecanismo efectivo para la retroalimentacion de alta calidad

METRICAS PARA EL MODELO DE ANALISIS

Funcionalidad entregada
Tamaño del sistema
Calidad de la especificacion

Metricas para el modelo de diseño

Metricas arquitectonicas
Metricas a nivel de componentes
Metricas del diseño de la interfaz
Metricas especializadas en diseño orientado a objetos

Metricas para el codigo fuente

Metricas de  Halstead
Metricas de complejidad
Metricas de longitud

Metricas para pruebas

Metricas de cobertura de instrucciones y ramas
Metricas relacionadas con los defectos
Efectividad de la prueba
Metricas en el proceso

METRICAS BASADAS EN LA FUNCION

La metrica de punto de funcon PF se usa para medir la funcionalidad que entrega un sistema , empleando datos historicos el PF se usa para
Estimar el costo  o el esfuerzo requerido para diseñar codificar  y probar el software
Predecir el numero de errores que se encontraran durante la prueba
Pronosticar el numero de componentes, de lineas de codigo proyectadas o ambas en el sistema  implementado


La tabla se utiliza para recolectar el total de conteos luego se utiliza la siguiente formula

Fi son los valores de ajuste que se obtienen como respuestas a las siguientes preguntas.

1. ¿El sistema requiere respaldo y recuperacio confiables?
2.¿Se requiere  comunicaciones de datos especializadas para transferir informacion  a la aplicacion u obtenerla de ella?

3. ¿Hay funciones distribuidas en el proceso?

4. ¿El desempeño es critico?
5.¿el sistema se utilizara en un entorno existente que tiene un uso pesado de operaciones?
6.¿el sistema requiere entrada de datos en linea?
7.¿La entrada de datos en linea requiere la transaccion de entrada se construya en varias pantallas u operaciones.?
8.¿Los ali se actualizan en linea?
9.¿Las entradas, salidas los archivos o consultas son complejas?
10.¿Es complejo el procesamiento interno?
11.¿El codigo diseñado sera reutilizable?
12.¿Se incluye la conversion e instalacion en el diseño?
13.¿Esta diseñado para instalaciones multiples en diferentes organizaciones?
14.¿La aplicacion esta diseñada para facilitar el cambio y para que el usuario la utilize facilmente?

las preguntas se responden de 0  que significa no importante o no aplicable hasta 5 que significa esencial

Metricas de la calidad

suponga que existen Nr requisitos

Nr = Nf +Nnf

donde Nf es el numero de requisitos funcionales y Nnf el de no funcionales como por ejemplo el desempeño

Q1 = Nui/Nr

donde Nui es  el numero de todos los requisitos que todos los revisores interpretaron de la misma manera  cuanto Q1 sea mas cercano a 1  menor sera la ambiguedad de especificacion

El grado avance se determina por

Q2 = Nu / [Ni*Ns]

donde

Nu es el numero de requisitos de funcion unica
Ni el numero de entradas
Ns el numero de estados especificados

Q2 mide el porcentaje  de funciones necesarias que se han espeficado para un sistema.

La metrica general de grado de avance se debe considerar el grado de validacion de los requisitos

Q3 =  Nc/ [Nc+Nnv]

Nc es el numero de requisitos que se han validado como correctos

Metricas del diseño arquitectonico

La complejidad estructural de un modulo i se define de la siguiente manera

S(i) = F2 out(i)

donde fout(i) es la independencia hacia afuera del modulo, numero de modulos inmediatemente subordinados  al modulo i

La complejidad de datos proporciona  una indicacion de la complejidad de la interfaz interna del modulo i  y se define como
D(i) ) = v(i)/[Fout(i)+1]

vi es el numero de variables de entrada y de salida que pasan por el modulo y/o ser reciben de este

La complejidad del sistema se define como la suma de las complejidades estructural y de datos

C(i) = S(i)+D(i)

Metricas orientadas a objetos

el tamaño general de una clase se calcula por medio de

El numero total de operaciones
el numero de atributos.


* La tecnica de los puntos de funcion ofrece una tecnica de transformacion de lineas de codigo para cada Punto de funcion denominado "backfiring" utilizando la siguiente tabla que nos indica el equivalente en SLOC por unidades de PF sin ajustar