Вы находитесь на странице: 1из 3

Doc name: Calidad del Software Ejemplo Sencillo de Mtrica de Halstead para WikiSpaces.

doc

LICENCIATURA EN INFORMTICA 8 A ADMINISTRACION DE LA CALIDAD DEL SOFTWARE PROF. RENE SANCHEZ JIMENEZ

Mtricas de Medicin de la Complejidad y Calidad del Software


Version 1.8: Jan 9, 2009 2:33 am US/Central This work is produced by The Connexions Project and licensed under the Creative Commons Attribution License _

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

Ciencia del Software de Halstead


Durante principios de los aos 80, Maurice Halstead desarrolla un conjunto de mtricas llamadas Ciencia de Software de Halstead (Halstead Software Science), mtricas basadas en el clculo de palabras clave (reservadas) y variables escritas en el cdigo de un programa. Su teora est basada en un simple cuenta (muy fcil de automatizar) de operadores y operandos en un programa: - Los operadores son las palabras reservadas del lenguaje, tales como IF-THEN, READ, FOR,...; - Los operadores aritmticos +, -, *,..... los de asignacin y los operadores lgicos AND, EQUAL TO,.... - Los operandos son las variables, literales y las constantes del programa. Halstead distingue entre el nmero de operadores y operandos nicos y el nmero total de ocurrencias de operadores y operandos. Por ejemplo, un programa puede tener un READ, siete asignaciones y un WRITE; por lo tanto tiene tres operadores nicos, pero nueve ocurrencias en total de los operadores, y de manera idntica se procede con los operandos.

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); }

A partir de aqu se deduce:

Operadores Unicos Ocurrencias de Operadores

n1 N1

=6 =6

(if, {}, system.out.println, =, *, <) (if, {}, system.out.println, =, *, <)

Operandos Unicos Ocurrencias de Operandos

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

Вам также может понравиться