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

PONTIFICIA UNIVERSIDAD CATLICA DEL ECUADOR

SEDE IBARRA
NOMBRE: JAVIER TRUJILLO
NIVEL: SEXTO SISTEMAS
ASIGNATURA: INGENIERIA DE SOFTWARE II
Halstead
Las mtricas de Complejidad de Halstead fueron desarrolladas por Maurice Halstead como un
medio de determinar la complejidad cuantitativa directamente de los operadores y operandos
usados en el cdigo fuente de un mdulo.
Para esto, Halstead defini los siguientes nmeros:
El nmero de operadores (nicos) distintos (n1) en el programa fuente.
El nmero de operandos (nicos) distintos (n2) en el cdigo fuente.
El nmero total de operadores en un archivo de cdigo fuente (N1).
El nmero total de operandos en un archivo de cdigo fuente (N2).
Para calcular estos nmeros tomamos todos los tokens distintos de un programa fuente,
calculando la frecuencia de cada uno.
Para esto clasificaremos los tokens de un programa en:
Operandos: Pueden ser los identificadores que no sean palabras reservadas, las constantes
numricas, los identificadores de tipos (bool, string, char, int, long, etc), los caracteres y strings
constantes.
Operadores: Que pueden ser todas las palabras reservadas (if, do, while, class, etc), los
calificadores (como const, static) las palabras reservadas, y los operadores en expresiones (+, -,
<>, ==, !=, <=, >>, etc).
Dados los operadores, y los operandos, se definen las siguientes mtricas:
Largo del Programa: N = N1 + N2
Tamao del Vocabulario del programa: n = n1 + n2
Volumen del Programa: V = N * log2(n)
Nivel de Dificultad: D = (n1/2) * (N2/n2)
Nivel de Programa: L = 1/D
Esfuerzo de Implementacin: E = V*D
Tiempo de Entendimiento: T = E/18 (18 es el nmero que Halstead encontr
experimentalmente para expresar esta magnitud en segundos)
(Diaz, 2013)
Su teora est basada en una 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. (Ramirez, 2013)
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.
La medida de longitud, N, es usada en otra estimacin de tamao de Halstead llamada
volumen. 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. 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.
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 = V / L
Donde el volumen V es dividido por el nivel del lenguaje L. ste indica si se est utilizando un
lenguaje de alto o bajo nivel. Por ejemplo, una simple llamada a un procedimiento podra
tener un valor L de 1; el COBOL podra tener 0,1 y el ensamblador podra tener un L de 0,01.
As pues el esfuerzo aumenta proporcionalmente con el volumen, pero decrece con la
utilizacin de lenguajes de alto nivel.
Atendiendo a varios estudios empricos, el esfuerzo, E, es incluso una medida mejor de la
entendibilidad (comprensin) que N. (Sicilia, 2008)
Bibliografa
Diaz, E. (10 de Enero de 2013). La Sombra de Dijkstra. Obtenido de La Sombra de Dijkstra:
http://www.programando.org/blog/2013/01/desafio-enero-las-metricas-de-halstead/
Ramirez, D. R. (15 de Marzo de 2013). Scribd. Obtenido de Scribd:
https://es.scribd.com/doc/130488198/Calidad-del-Software-Ejemplo-Sencillo-de-
Metrica-de-Halstead-para-WikiSpaces
Sicilia, M. A. (11 de Septiembre de 2008). openstax. Obtenido de openstax:
http://cnx.org/contents/0844d6f5-284b-43de-9be2-
6b37aea25db7@1/Ciencia_del_Software_de_Halste

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