Agenda Mtricas en los dominios del proceso y proyecto Mtricas del software Mtricas para la calidad de software Integracin de las mtricas dentro del proceso de software Mtricas para organizaciones pequeas Establecimiento de un programa de mtricas de software Introduccin La medicin se aplica al proceso de software con la finalidad de mejorarlo de manera continua.
se utiliza a lo largo de un proyecto de software como apoyo en la estimacin, el control de calidad, a productividad y el control del proyecto. Mtricas de proceso Mtricas del proceso
La eficacia de un proceso se mide por resultados
errores descubiertos antes de liberar el software, defectos que se detectan los usuarios finales, esfuerzo humano gastado, tiempo de planificacin, etc. Mtricas del proyecto Permite:
Valore el estado de un proyecto en curso. Rastree los riesgos potenciales Descubra las reas problema antes que se vuelvan criticas. Ajusta el flujo de trabajo o las tareas Evala la habilidad del equipo del proyecto para controlar la calidad de los productos. Mtricas del proyecto Las mtricas del proyecto son tcticas.
Se utilizan para adaptar el flujo de trabajo del proyecto y las actividades tcnicas.
La primera aplicacin ocurre en la estimacin: esfuerzo y tiempo. Mtricas del proyecto Mtricas del proyecto Mientras comienza el trabajo tcnico, se miden los ndices de produccin, horas de revisin, puntos de funcin y lneas de fuente entregadas.
La finalidad de las mtricas de proyecto es doble: Minimizar el tiempo de desarrollo. Valorar la calidad del producto sobre una base actual. Mtricas del proyecto Conforme la calidad mejora los defectos se minimizan
Esto conduce a una reduccin en el costo global del proyecto. Medicin del software La medicin del software se clasifica en dos categoras:
Medidas directas: del software (costo y esfuerzo aplicados) y del producto (lneas de cdigo [LDC], rapidez de ejecucin, defectos reportados)
Medidas indirectas: de producto (funcionalidad, calidad, complejidad, eficiencia, confiabilidad, facilidad de mantenimiento) Tamao permite: Estimar esfuerzo /duracin Medir calidad (defectos / unidad de construccin) Medir productividad (tamao / unidad de esfuerzo)
Ejemplos: Casa: Metros Cuadrados de Construccin Carretera: Kilmetros/Kilmetros Cuadrados Software: ? LOCs Puntos de Funcin Mtricas orientadas al tamao Lneas de Cdigo problemas: Variabilidad Personal: En Tamao (mismo problema, distintas personas distintos LOCs) En Productividad En qu lenguaje? Con o sin comentarios? Construidas o libradas al uso? Mtricas orientadas al tamao Preceden de la normalizacin de las medidas de calidad o productividad
Requiere elegir miles de lneas de cdigo (KLDC) como valor de normalizacin. Proyecto LDC Esfuerzo $(000) Pag. Doc Errores Defectos Personal Alfa 12100 24 168 365 134 29 3 Beta 27200 62 440 1224 321 86 5 gamma 20200 43 314 1050 256 64 6 ... ... ... ... ... ... ... ... Lneas de Cdigo Permite evaluar productividad en programacin: Si la potencia del lenguaje aumenta, aumenta la productividad = producto / unidad de tiempo Proyecto A: 80.000 LOC en C Anlisis Reqs./Dis. Sist.: 2 meses-persona Dis.Det./Cod./PU/P.Int.: 4 meses-persona Prueba Sistema: 2 meses-persona Esfuerzo: 8 meses-pers. Productividad: 80.000/8= 10.000 Proyecto A: 42.000 LOC en C++ Anlisis Reqs/.Dis. Sist.: 2 meses-persona Dis.Det./Cod./PU/P.Int.: 2 meses-persona Prueba Sistema: 2 meses-persona Esfuerzo: 6 meses-pers. Productividad: 42.000/6= 7.000 Mtricas para el modelo de requerimientos
Examina el modelo de requerimientos con la intencin de predecir el tamao del sistema resultante Mtricas orientadas a la funcin Utiliza el punto de funcin (PF) como valor de normalizacin.
El calculo del punto de funcin se basa en caractersticas del dominio de informacin y la complejidad del software. Mtricas orientadas a la funcin Los puntos de funcin se calculan determinando 5 caractersticas de dominios de informacin.
Numero de entradas externas (EE). Numero de salidas externas (SE) Numero de consultas externas (CE) Numero de archivos lgicos internos (ALI) Numero de archivos interfaces externas (AIE) Mtricas orientadas a la funcin Factor de ponderacin Parmetro de medicin Cuenta Simple Medio Completo Num. Entradas externas x 3 4 6 = Num. Salidas externas x 4 5 7 = Num. Consultas externas x 3 4 6 = Num. Archivos internos x 7 10 15 = Num. Interfaces externas x 5 7 10 = Cuenta = Total Mtricas orientadas a la funcin Una vez recopilado los datos anteriores, a la cuenta se asocia un valor de complejidad. Para calcular puntos de funcin (PF), se utiliza la relacin siguiente:
PF = Cuenta Total x [0,65 + 0,01 x F i ]
Donde F i (i=1 a 14) son valores de ajuste de complejidad Mtricas orientadas a la funcin Mtricas orientadas a la funcin Valores de ajuste de complejidad Fi Preguntas Valor C1 El sistema requiere respaldo y recuperacin confiables? C2 Se requiere de comunicacin de datos? C3 Existen funciones de procesamiento distribuido? C4 Es crtico el rendimiento? C5 Se ejecutar el sistema en un entorno operativo existente y fuertemente utilizado? C6 Requiere el sistema entrada de datos interactiva? C7 Requiere la entrada de datos interactiva que las transacciones de entrada se lleven a cabo sobre mltiples pantallas u operaciones? C8 Se actualizan los archivos maestros de forma interactiva? C9 Son complejas las entradas, salidas, archivos o las peticiones? Mtricas orientadas a la funcin Valor C10 Es complejo el procesamiento interno? C11 Se ha diseado el cdigo para ser reutilizable? C12 Estn incluidas en el diseo la conversin y la instalacin? C13 Se ha diseado el sistema para soportar mltiples instalaciones en diferentes organizaciones? C14 Se ha diseado la aplicacin para facilitar los cambios y para ser fcilmente utilizada por el usuario? Fi 4 5 3 2
3 46 PF= 50*[0,65+0,01*46] = 56 Mtricas para la calidad de la especificacin Valora la calidad del modelo de requerimientos y la correspondiente especificacin de requerimientos: especificidad (falta de ambigedad), completitud, correccin, comprensibilidad, verificabilidad, consistencia interna y externa, factibilidad, concisin, rastreabilidad, modificabilidad, precisin y reusabilidad. Mtricas para la calidad de la especificacin Existen n r requerimientos en una especificacin, tales que: n r = n f + n nf
Para determinar la especificidad (falta de ambigedad), la mtrica se basa en la consistencia de la interpretacin de los revisores de cada requisito: Q 1 =n ui / n r n ui = nmero de requerimientos que todos los revisores tienen interpretaciones idnticas Mtricas para el modelo de diseo
Usados como indicadores para guiar la forma en que evoluciona el diseo Mtricas del diseo arquitectnico ndice de calidad de la estructura de diseo (ICED), vara de 0 a 1 (IEEE 982,1-1988) S 1 = numero total de mdulos definidos en la arquitectura del programa S 2 = numero de mdulos cuya funcin correcta depende de la fuente de entrada de datos o que produce los datos que se van a utilizar en alguna otra parte S 3 = numero de mdulos cuya funcin correcta depende del procesamiento previo S 4 = numero de tems de base de datos (incluidos objetos de datos y todos los atributos que definen objetos) S 5 = numero total de tems de base de datos nicos S 6 = numero de segmentos de base de datos (diferentes registros u objetos individuales) S 7 = numero de mdulos con una sola entrada y salida (el procesamiento de excepcin no se considera como una salida mltiple) Mtricas del diseo arquitectnico Estructura del programa: D 1 = 1 (Objetos) D 1 =0 (otro) Independencia de mdulo: D 2 = 1- (S 2 / S 1 ) Mdulos no dependientes del procesamiento previo: D 3 = 1- (S 3 / S 1 ) Tamao de base de datos: D 4 = 1- (S 5 / S 4 ) Compartimentalizacin de base de datos: D 5 = 1- (S 6 / S 4 ) Entrada/salida de mdulo caracterstico: D 2 = 1- (S 7 / S 1 )
Mtricas del diseo arquitectnico
ICED = w i D i
donde i = 1 a 6, w i es el peso relativo de la importancia de cada uno de los valores intermedios y w i = 1 (si todos los D i pesan igual, entonces w i = 0.167). Mtricas orientadas a objetos Las mtricas de software convencional (LDC o PF) no proporcionan suficiente granularidad para la planificacin y los ajustes de esfuerzo que se requieren conforme se itera a lo largo de un proceso evolutivo o incremental. Mtricas orientadas a objetos Lorenz y Kidd sugiere el siguiente conjunto de mtricas para proyectos OO. Numero de guiones de escenario: anlogo a los casos de uso. Numero de clases clave: son los componentes independientes. Numero de clases de apoyo: por ejemplo los accesos a las BD. Numero de subsistemas: es un agregado de clases. Mtricas de proyectos de ingeniera web. Numero de paginas web estticas: es de una complejidad baja y requieren menos esfuerzo. Numero de paginas web dinmicas: es de mayor complejidad y esfuerzo. Numero de vnculos internos de pagina: son vnculos que ofrecen hipervnculo hacia otra pagina. Numero de objetos persistentes: por ejemplo una base de datos. Numero de funciones ejecutables: por ejemplo un applet. Mtricas de proyectos de ingeniera web. Por ejemplo, es posible definir una mtrica que refleje el grado de personalizacin de usuario final que se requiere para la webApp y correlacionarla con el esfuerzo empleado en el proyecto de Iweb . Para lograr esto se define: N sp = numero de paginas web estticas. N dp = numero de paginas web dinmicas. Entonces: ndice de personalizacin: C= N dp / (N dp +N sp )
Mtricas para la calidad de software La meta primordial de la ingeniera de software es producir un sistema, aplicacin o producto de alta calidad dentro de un marco temporal que satisfaga una necesidad del mercado.
Medicin de la calidad Correccin: es el grado en que el software desempea la funcin para la que fue creado. Facilidad de mantenimiento: es la sencillez con la que un programa puede corregirse si se encuentra un error. Integridad: Mide la habilidad de un sistema para resistir ataques. Facilidad de uso: Cuantifica la sencillez de la aplicacin al utilizarla.
Eficacia en la eliminacin de defectos. Una mtrica de calidad que ofrece beneficios tanto en el mbito del proyecto como del proceso es la eficacia en la eliminacin de defectos (EED) EED = E/(E+D) donde E es el numero de errores encontrados antes de entregar el software al usuario final. y D es el numero de defectos encontrados despus de la entrega.
Integracin de las mtricas dentro del proceso de software La mayora de los desarrolladores de software todava no miden y, por desgracia, muchos tienen poco deseo de comenzar. Argumentos para las mtricas del software: Por qu es importante medir el proceso de ingeniera de software y el producto que elabora? Si no se mide, no existe una forma real de determinar si est mejorando. Y si no se mejora, se esta perdido. Recopilacin, calculo y evaluacin de mtricas Mtricas para organizaciones pequeas La gran mayora de las organizaciones de desarrollo de sw tiene menos de 20 empleados. Puede seleccionar el siguiente conjunto de medidas que se recopilan con facilidad: Tiempo trascurrido desde que se hizo una solicitud hasta que la evaluacin esta completa. Esfuerzo (persona-horas) para realizar la evaluacin. Tiempo desde que se completa la evaluacin hasta la asignacin del pedido de cambio Esfuerzo requerido para hacer el cambio. Tiempo requerido para hacer el cambio. Errores descubiertos durante el trabajo. Defectos descubiertos despus de la liberacin. Establecimiento de un programa de mtricas de software El SEI ha elaborado una guia detallada: Identificar los objetivos de la empresa Identificar lo que se quiere conocer o aprender Identificar los subobjetivos Identificar las entidades y atributos Formalizar los objetivos de la medicin Identificar preguntas cuantificables y los identificadores relacionados. Identificar los elementos de datos que se recopilaran Definir las medidas que se emplearan Identificar las acciones que se tomaran para implementar las medidas Preparar un plan para implementar las medidas. Actividades 22.1 22.3 22.5 22.10 22.13