MEDIDA DE LOS FACTORES DE CALIDAD Los factores que afectan a la calidad del software se pueden categorizar en dos amplios grupos: (1)Factores que se pueden medir directamente (por ejemplo, defectos por punto de función). (2)Factores que se pueden medir sólo indirectamente (por ejemplo, facilidad de uso o de mantenimiento). En todos los casos debe aparecer la medición. Debemos comparar el software (documentos, programas, datos) con una referencia y llegar a una conclusión sobre la calidad. Cápsula 10. Medida de Factores de Calidad 1 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Cápsula 10. Medida de Factores de Calidad 2 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Es difícil, y en algunos casos imposible, desarrollar medidas directas de los factores de calidad anteriores. Por tanto, se definen y emplean un conjunto de criterios para desarrollar expresiones para todos los factores, de acuerdo con la siguiente relación: QF = (c1 * m1) + (c2 * m2) + (c3 * m3) + … + (cn * mn) Donde: QF es un factor de calidad del software, cn son coeficientes de regresión ( c1 + c2 + … + cn = 1.0 ) m, son los valores de los criterios que afectan al factor de calidad. Cápsula 10. Medida de Factores de Calidad 3 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. El problema es que muchas de los criterios definidas por McCall pueden medirse solamente de manera subjetiva. Las métricas pueden ir en forma de lista de comprobación que se emplea para "puntuar" atributos específicos del software. El esquema de puntuación propuesto por McCall es una escala del 0 (bajo) al 10 (alto). Se emplean las siguientes criterios en el esquema de puntuación: Cápsula 10. Medida de Factores de Calidad 4 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Facilidad de auditoría. La facilidad con la que se puede comprobar el cumplimiento de los estándares. Exactitud. La exactitud de los cálculos y del control. Estandarización de comunicaciones. El grado de empleo de estándares de interfaces y protocolos. Compleción. El grado con que se ha logrado la implementación total de una función. Complejidad. Valoración del grado de complejidad del componente / función. Concisión. Lo compacto que es el programa en términos de líneas de código. Consistencia. El empleo de un diseño uniforme y de técnicas de documentación a lo largo del proyecto de desarrollo del software. Estandarización de datos. El empleo de estructuras y tipos de datos estándares a lo largo del programa. Tolerancia al error. El daño causado cuando un programa encuentra un error. Eficiencia de ejecución. El rendimiento del funcionamiento de un programa. Capacidad de expansión. El grado con que se pueden ampliar el diseño arquitectónico, de datos o procedimental. Cápsula 10. Medida de Factores de Calidad 5 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Generalidad. La amplitud de aplicación potencial de los componentes del programa. Independencia del hardware. El grado con que se desacopla el software del hardware donde opera. Instrumentación. El grado con que el programa vigila su propio funcionamiento e identifica los errores que ocurren. Modularidad. La independencia funcional de componentes de programa. Operatividad. La facilidad de operación de un programa. Seguridad. La disponibilidad de mecanismos que controlan o protegen los programas y los datos. Autodocumentación. El grado en que el código fuente proporciona documentación significativa. Simplicidad. El grado de facilidad con que se puede entender un programa. Independencia del sistema software. El grado de independencia de programa respecto a las características del lenguaje de programación no estándar, características del sistema operativo y otras restricciones del entorno. Trazabilidad. La capacidad de seguir una representación del diseño o un componente real del programa hasta los requisitos. Formación (Entrenamiento). El grado en que ayuda el software a manejar el sistema a los nuevos usuarios. Cápsula 10. Medida de Factores de Calidad 6 MEDIDA DE LOS FACTORES DE CALIDAD Cápsula 10. Medida de Factores de Calidad 7 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Las relaciones entre los factores de calidad y los criterios son las siguientes: A. Corrección = (C1 * CM) + (C2 * CS) + (C3 * TZ) B. Fiabilidad = (C1 * EX) + (C2 * CX) + (C3 * CS) + (C4 * TE) + (C5 * MD) + (C6 * SM) C. Eficiencia = (C1 * CN) + (C2 * EE) + (C3 * OP) D. Seguridad (Integridad) = (C1 * FA) + (C2 * IN) + (C3 * SG) E. Usabilidad (Facilidad de uso) = (C1 * OP) + (C2 * FM) F. Facilidad de mantenimiento = (C1 * CN) + (C2 * CS) + (C3 * IN) + (C4 * MD) + (C5 * AD) + (C6 * SM) G. Flexibilidad = (C1 * CX) + (C2 * CN) + (C3 * CS) + (C4 * CE) + (C5 * GE) + (C6 * MD) + (C7 * AD) + (C8 * SM) H. Facilidad de Pruebas = (C1 * FA) + (C2 * CX) + (C3 * IN) + (C4 * MD) + (C5 * AD) + (C6 * SM) I. Portabilidad = (C1 * GE) + (C2 * IH) + (C3 * MD) + (C4 * AD) + (C5 * SM) J. Reusabilidad = (C1 * GE) + (C2 * IH) + (C3 * MD) + (C4 * AD) + (C5 * IS) K. Interoperatividad = (C1 * EC) + (C2 * ED) + (C3 * GE) + (C4 * MD) Cápsula 10. Medida de Factores de Calidad 8 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Criterio: Generalidad (GE--Generality) Métrica 1. GE.1: UR Unit Referencing Métrica 2. GE.2: UI Unit Implementation Criterio: Independencia de la Aplicación (AP--Application Independence) Métrica 1. AP.3: AS Architecture Standardization Criterio: Modularidad (MO--Modularity) Métrica 1. MO.1: MI Modular Implementation Criterio: Auto Descriptividad (SD--Self-Descriptiveness) Métrica 1. SD.2: EC Effectiveness of Comments Tomadas del Reporte Técnico de la Federal Aviation Administration Technical Center. (página 246 del archivo digital). Indican cuáles son las métricas a tener en cuenta para valorar los atributos que conforman la reusabilidad. Cápsula 10. Medida de Factores de Calidad 9 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. A modo de guía se muestran las especificaciones de 2 métricas asociadas a 2 criterios diferentes: Criterio: Independencia de la Aplicación Métrica 1. AP.3: Estandarización de la Arquitectura (AS) AS cantidad de líneas de código no-HOL en el módulo cantidad total de líneas de código fuente del módulo Para cada módulo de un CSCI (Computer Software Configuration Item), responda la pregunta: REGLA: "Cuántas líneas de código no-HOL (High Order Language) hay en el módulo?” (ejemplo de no-HOL es el lenguaje ensamblador). "Divida la cantidad de líneas de código no-HOL entre la cantidad total de líneas de código." (Bowen, Wigle y Tsai 1985). RANGO: Esta métrica genera un número real entre cero y uno. INTERPRETACIÓN: Los valores “útiles” para este atributo son los que se acerquen más a cero. Cápsula 10. Medida de Factores de Calidad 10 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Criterio: Independencia de la Aplicación Métrica 1. AP.3: Estandarización de la Arquitectura (AS) La razón de fijarse en lenguaje que no sea HOL es que esos lenguajes son dependientes de la máquina y en la medida que haya una menor cantidad de esas líneas, esto aumenta la valoración del atributo y por consiguiente podría incidir en un aumento de la reusabilidad. Aporte: para ratios como este cuyos valores “buenos” para la reusabilidad son los que se acercan a cero, habría necesidad de efectuar un cálculo como este: ASr = 1 – AS. De modo que cuando el valor de AS se acerque más a cero, el valor de ASr será más cercano a 1 de modo que todas las métricas se puedan llevar a valores con sentido positivo (o creciente) y se puedan llevar todas a una expresión general para cuantificar la reusabilidad. Cápsula 10. Medida de Factores de Calidad 11 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Criterio: Auto Descriptividad Métrica 1. SD.2: Efectividad de los Comentarios (EC) EC cantidad de módulos con comentarios que cumplen estándar cantidad de módulos evaluados Para cada módulo de un CSCI, responda la pregunta: REGLA: "¿Tiene comentario de encabezado que contenga toda la información acorde con el estándar establecido?” (Bowen, Wigle, and Tsai 1985). Divida el total de respuestas afirmativas entre el número de módulos que se estén evaluando. RANGO: Esta métrica genera un número real entre cero y uno. INTERPRETACIÓN: Los valores “útiles” para este atributo son los que se acerquen más a 1. Cápsula 10. Medida de Factores de Calidad 12 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Criterio: Auto Descriptividad Métrica 1. SD.2: Efectividad de los Comentarios (EC) La razón de fijarse en que los comentarios cumplan con un estándar establecido es que podrían facilitar la comprensión de lo que hace el módulo. Esto aumenta la valoración del atributo ya que si se puede comprender, se puede evaluar con menos dificultad si se podría re-usar, y por consiguiente podría incidir en un aumento de la reusabilidad. Aporte: para ratios como este cuyos valores “buenos” para la reusabilidad son los que se acercan a 1, no hay necesidad de calcular una expresión adicional como se hizo con la métrica anterior. Cápsula 10. Medida de Factores de Calidad 13 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Cuantificación de la Reusabilidad. Aún teniendo en cuenta lo expresado, ahora se plantea una primera aproximación para calcular un valor (o probabilidad) para la reusabilidad, a partir de las 2 métricas revisadas: REUSABILIDAD = (C1 * ASr) + (C2 * EC). De esta manera el rango de valores resultantes está entre 0 y 1. Ci son coeficientes de regresión ( C1 + C2 = 1.0 ) que representan la ponderación o el “peso” que se le podría asignar a cada métrica si se cree que alguna de ellas podría tener una mayor incidencia en la cuantificación de la reusabilidad. De no ser así, en este ejemplo C1 = C2 = 0.5. Cápsula 10. Medida de Factores de Calidad 14 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. Modelo de McCall. Generalizando, se muestra una expresión que podría cuantificar una valoración para “Reusabilidad”: Por lo tanto, se muestran los símbolos originales, ya que no se tiene forma de saber cuáles de ellas tienen “valores buenos” cerca de cero. REUSABILIDAD = (C1 * UR) + (C2 * UI) + (C3 * ASr) + (C4 * MI) + (C5 * EC) Ci son coeficientes de regresión ( C1 + C2 + C3 + C4 + C5 = 1.0 ) Si la ponderación es equitativa Ci = 0.2 Cápsula 10. Medida de Factores de Calidad 15 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. REBOOT (Reuse Based on Object-Oriented Techniques) - Jeffrey Poulin Muestra las siguientes relaciones entre Factores y sus correspondientes Criterios y Métricas de la siguiente manera: Cápsula 10. Medida de Factores de Calidad 16 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. REBOOT (Reuse Based on Object-Oriented Techniques) - Jeffrey Poulin Muestra las siguientes relaciones entre Factores y sus correspondientes Criterios y Métricas de la siguiente manera: Cápsula 10. Medida de Factores de Calidad 17 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. REBOOT (Reuse Based on Object-Oriented Techniques) - Jeffrey Poulin Aporte: A continuación se presenta un ejemplo de un posible esquema de “tabla de normalización” propuesta para una métrica: Clasificación del Valor obtenido de la Métrica Calificación a asignar para “normalizar” Valor Métrica < A 0.99 A ≤ Valor Métrica < B 0.90 B ≤ Valor Métrica < C 0.80 C ≤ Valor Métrica < D 0.70 D ≤ Valor Métrica < E 0.60 E ≤ Valor Métrica < F 0.50 F ≤ Valor Métrica < G 0.40 G ≤ Valor Métrica < H 0.30 H ≤ Valor Métrica < I 0.20 I ≤ Valor Métrica < J 0.10 J ≤ Valor Métrica 0.01 Cápsula 10. Medida de Factores de Calidad 18 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. REBOOT (Reuse Based on Object-Oriented Techniques) - Jeffrey Poulin Por ejemplo, la métrica “Complejidad Ciclomática” Valor V(G) bajo Complejidad Ciclomática menor Pero sus valores no están entre 0 y 1 (Excede a 1) En esos casos se sugiere el manejo de tabla de “normalización” para llevarlo a escala de valores entre 0 y 1. Clasificación del Valor obtenido de la Métrica Calificación a asignar para “normalizar” Complejidad ciclomática <= 10 0.99 10 < Complejidad ciclomática <= 20 0.75 20 < Complejidad ciclomática <= 50 0.40 Complejidad ciclomática > 50 0.10 Cápsula 10. Medida de Factores de Calidad 19 MEDIDA DE LOS FACTORES DE CALIDAD Ejemplo. REBOOT (Reuse Based on Object-Oriented Techniques) - Jeffrey Poulin Finalmente, se podría plantear la siguiente expresión (una vez se han “normalizado” todas las métricas): Reusabilidad = (C1 * MO) + (C2 * IE) + (C3 * CCX) + (C4 * CM) Ci son coeficientes de regresión (C1 +C2 + C3 + C4 = 1.0 ) Donde: C1 * MO = C1 * MMO(normalizada) C2 * IE = (0.5 C2 * MIE1r) + (0.5 C2 * MIE2r) C3 * CCX = C3 * CC(normalizada) C4 * CM = ( (1/3)C4 * Fan-in(normalizada) ) + ( (1/3)C4 * Fan-out(normalizada) ) + ( (1/3)C4 * CC(normalizada) ) ---------------- FIN DEL DOCUMENTO Cápsula 10. Medida de Factores de Calidad 20