<< Chapter < Page Chapter >> Page >
Definición y tipos de Métricas de Complejidad con ejemplos para calcular la complejidad.

Son todas las métricas de software que definen de una u otra forma la medición de la complejidad; Tales como volumen, tamaño, anidaciones, costo (estimación), agregación, configuración, y flujo. Estas son los puntos críticos de la concepción, viabilidad, análisis, y diseño de software.

Los 2 tipos de métrica para calcular la complejidad es:

  • Complejidad ciclomática de McCabe
    McCabe,T.J., y A.H. Watson, “Solftware Complexity”, Crosstalk.
  • Ciencia del Software de Halstead
    Halstead, M., “Elements of Software Science”, Holland.

Complejidad ciclomática de mccabe

La complejidad ciclomática se basa en el recuento del número de caminos lógicos individuales contenidos en un programa. Para calcular la complejidad del software, Thomas McCabe utilizó la teoría y flujo de grafos. Para hallar la complejidad ciclomática, el programa se representa como un grafo, y cada instrucción que contiene, un nodo del grafo. Las posibles vías de ejecución a partir de una instrucción (nodo) se repesentan en el grafo como aristas. Por ejemplo, el código que se muestra a continuación con 2 sentencias selectivas anidadas genera el siguiente grafo:

1 if (condicion){ 2 if (condicion){ 3 A; B; } else { 4 C; D; 5 } 6 }

Si se realizase el grafo, se observaría que se encuentran 3 caminos posibles para llegar de la sentencia 1 a la sentencia 6:

Camino 1 (si ambos IF’s son verdad): Sentencias 1, 2, 3, 6

Camino 2 (si el primer IF es verdad y el segundo es falso): Sentencias 1, 4,6

Camino 3 (si el primer IF es falso): Sentencias 1, 6

Este programa tiene una complejidad ciclomática de 3.

La complejidad ciclomática se puede calcular de otras maneras. Se puede utilizar la fórmula:

v(G) = e - n + 2

donde e representa el número de aristas y n el número de nodos.

Otra forma de calcular la complejidad ciclomática consiste en aplicar la siguiente fórmula:

v(G) = número de regiones cerradas en el grafo + 1

Ejemplo de calcular la complejidad ciclomática

Calcular la complejidad ciclomática del método de ordenación de la Burbuja siguiendo el siguiente código:

Public static void bubbleSort2 (Sequence S) {

Position prec, succ;

int n = S.size();

for (int i = 0; i<n; i++) {

prec = S.first();

for (int j=1; j<n - i; j++) {

succ = S.after(prec);

if (valAtPos(prec)>valAtPos(succ))

S.swapElements(prec, succ);

rec = succ;

}

}

}

El código da como resultado el siguiente grafo:

v(G) = e - n + 2

v(G) = 12 - 10 + 2 = 4

Complejidad ciclomática = 4

Ciencia del software de halstead

Durante el final de los años 70 y principios de los 80, Maurice Halstead desarrolla un conjunto de métricas llamadas Halstead Software Science, métricas basadas en el cálculo de palabras clave (reservadas) y variables.

Su teoría está basada en un simple cuenta (muy fácil 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 aritméticos +, -, *,..... los de asignación y los operadores lógicos AND, EQUAL TO,....
  • Los operandos son las variables, literales y las constantes del programa.

Questions & Answers

material that allows electric current to pass through
Deng Reply
material which don't allow electric current is called
Deng
insulators
Covenant
how to study physic and understand
Ewa Reply
what is conservative force with examples
Moses
what is work
Fredrick Reply
the transfer of energy by a force that causes an object to be displaced; the product of the component of the force in the direction of the displacement and the magnitude of the displacement
AI-Robot
why is it from light to gravity
Esther Reply
difference between model and theory
Esther
Is the ship moving at a constant velocity?
Kamogelo Reply
The full note of modern physics
aluet Reply
introduction to applications of nuclear physics
aluet Reply
the explanation is not in full details
Moses Reply
I need more explanation or all about kinematics
Moses
yes
zephaniah
I need more explanation or all about nuclear physics
aluet
Show that the equal masses particles emarge from collision at right angle by making explicit used of fact that momentum is a vector quantity
Muhammad Reply
yh
Isaac
A wave is described by the function D(x,t)=(1.6cm) sin[(1.2cm^-1(x+6.8cm/st] what are:a.Amplitude b. wavelength c. wave number d. frequency e. period f. velocity of speed.
Majok Reply
what is frontier of physics
Somto Reply
A body is projected upward at an angle 45° 18minutes with the horizontal with an initial speed of 40km per second. In hoe many seconds will the body reach the ground then how far from the point of projection will it strike. At what angle will the horizontal will strike
Gufraan Reply
Suppose hydrogen and oxygen are diffusing through air. A small amount of each is released simultaneously. How much time passes before the hydrogen is 1.00 s ahead of the oxygen? Such differences in arrival times are used as an analytical tool in gas chromatography.
Ezekiel Reply
please explain
Samuel
what's the definition of physics
Mobolaji Reply
what is physics
Nangun Reply
the science concerned with describing the interactions of energy, matter, space, and time; it is especially interested in what fundamental mechanisms underlie every phenomenon
AI-Robot
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Métricas del mantenimiento de software. OpenStax CNX. Jan 09, 2009 Download for free at http://cnx.org/content/col10583/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Métricas del mantenimiento de software' conversation and receive update notifications?

Ask