Академический Документы
Профессиональный Документы
Культура Документы
doc
LICENCIATURA EN INFORMTICA 8 A ADMINISTRACION DE LA CALIDAD DEL SOFTWARE PROF. RENE SANCHEZ JIMENEZ
Introduccin/Abstract
Definicin y tipos de Mtricas de Complejidad con ejemplos para calcular la complejidad.
Son todas las mtricas de software que definen de una u otra forma la medicin de la complejidad; Tales como volumen, tamao, anidaciones, costo (estimacin), agregacin, configuracin, y flujo. Estos son los puntos crticos de la concepcin, viabilidad, anlisis y diseo de software. Los 2 tipos de mtrica para calcular la complejidad es: - Complejidad ciclomtica de McCabe - Ciencia del Software de Halstead
Para usar la mtrica de Halstead se utiliza la siguiente notacin: n1 - nmero de operadores nicos que aparecen en un programa N1 - nmero total de ocurrencias de operadores n2 - nmero de operandos nicos que aparecen en un programa N2 - nmero total de ocurrencias de operandos
Las mtricas de la Ciencia del Software para cualquier programa escrito en cualquier lenguaje pueden ser derivadas de estas cuatro cuentas. A partir de ellas han sido elaboradas diferentes medidas para diversas propiedades de los programas, tales como longitud, volumen, esfuerzo, etc...
Por ejemplo, consideremos el siguiente trozo de programa: if (N < 2) { A = B * N; System.out.println("El resultado es : " + A); }
n1 N1
=6 =6
n2 N2
=4 =6
(N, A, B, 2) (N, 2, A, B, N, A)
LONGITUD Halstead permite obtener una medida de la longitud, N, de un programa, que es calculada como:
longitud
N = N1 + N2
N es una simple medida del tamao de un programa. Cuanto ms grande sea el tamao de N, mayor ser la dificultad para comprender el programa y mayor el esfuerzo para mantenerlo. N es una medida alternativa al simple conteo de lneas de cdigo. Aunque es casi igual de fcil de calcular, N es ms sensible a la complejidad que el contar el nmero de lneas porque N no asume que todas las instrucciones son igual de fcil o de difcil de entender. VOLUMEN La medida de longitud, N, es usada en otra estimacin de tamao de Halstead llamada volumen, V, Mientras que la longitud es una simple cuenta (o estimacin) del total de operadores y operandos, el volumen da un peso extra al nmero de operadores y operandos nicos. Esta medida de volumen se puede interpretar como el nmero de "comparaciones mentales" necesarias para escribir un programa de longitud N. Esta interpretacin sugiere que la mente humana sigue un proceso de bsqueda binaria para seleccionar un token de un vocabulario de tamao n. Por ejemplo, si dos programas tienen la misma longitud N pero uno tiene mayor nmero de operadores y operandos nicos, que naturalmente lo hacen ms difcil de entender y mantener, este tendr un mayor volumen. La frmula es la siguiente: volumen V = N x log2 (n) donde n = n1 + n2
Medidas Derivadas de n1, n2, N1, N2 DIFICULTAD Para definir la dificultad D del programa, se usa la frmula siguiente: dificultad D = (n1 * N2) / (n2 *2) ESFUERZO El esfuerzo es otra medida estudiada por Halstead que ofrece una medida del trabajo requerido para desarrollar un programa. Desde el punto de vista del mantenimiento, el esfuerzo se puede interpretar como una medida del trabajo requerido para comprender un software ya desarrollado. La frmula es la siguiente: Esfuerzo E = D * V V/L
Donde el volumen V es multiplicado por la medida de dificultad D con la que se hizo el programa. Atendiendo a varios estudios empricos, el esfuerzo, E, es incluso una medida mejor de la entendibilidad (comprensin) que N.
VOLUMEN MINIMO L De manera alterna tambin se puede obtener la medida de esfuerzo E, calculando la relacin de volumen mnimo L La frmula, en trminos de medidas primitivas, es la siguiente: L = 2/n1 * n2/N2 Tericamente debe existir un volumen mnimo para un algoritmo. Halstead define una relacin de volumen L como la relacin volumen de la forma ms compacta de un programa respecto al volumen real del programa. Por tanto L, debe ser siempre menor de uno. Usando esta medida L podemos tambin obtener el esfuerzo E: ESFUERZO (obtenido en base a Longitud) Esfuerzo E = V / L En relacin a esto ltimo, Halstead propuso que todos los lenguajes pueden categorizarse por nivel de lenguaje, I, que variar segn los lenguajes. Halstead cre una teora que supona que el nivel de lenguaje es constante para un lenguaje dado. (Aunque Pressman 98 indica que el nivel de lenguaje es funcin tanto del lenguaje como del programador.) Tabla de valores del nivel del Lenguaje (Pressman) LENGUAJE Ingls Prosaico ALGOL/68 PL/1 FORTRAN Ensamblador MEDIA /I 2.16 2.12 1.53 1.14 0.88