You are on page 1of 10

Calidad del Software Medicin 52

Programa

1
1. Medicin
M di i y experimentacin
i t i en IIngeniera
i d dell Software
S ft
Introduccin
Teora representacional de la medicin.
Experimentacin en Ingeniera del software.

2. Medidas del Producto


3. Modelos y mtricas del Proceso
4. Calidad del Software

M.E.Manso.

Calidad del Software Producto 53

2. Mtricas del Producto

2.1
2 1 Mtricas
Mt i internas.
i t
2.2 Mtricas externas.
2.2.1 Defectos del software.
2.2.2 Fiabilidad del software y modelos.
2.3 Mtricas en O.O.

M.E. Manso.

1
Calidad del Software Producto 54

2.1 Mtricas internas


Mtricas de tamao
Utilidad
Cmo estimacin del trabajo realizado
Para predecir esfuerzo y coste, y poder
gestionar el trabajo a hacer

Una gran parte de proyectos software


entregan cdigo (LDC)
Se usan los puntos de funcin para medir
cantidad de funcionalidad

M.E.Manso.

Calidad del Software Producto. Mtricas internas 55

LDC (Lneas De Cdigo)


Utilidad
Fcil de calcular,, una vez completado
p el p
programa
g
Es un factor importante para modelos de desarrollo del
software
Puede medir la productividad: ldc/tiempo
Puntos dbiles
Presentan sesgo contra los lenguajes de alto nivel
Pueden motivar productividad artificial

Pueden medir anlogamente diseo, documentacin,


Especificaciones etc.

M.E.Manso.

2
Calidad del Software Producto. Mtricas internas 56

LDC (ii)
Una LDC es cualquier lnea de texto de programa, que
no es comentario ni blanco, sin tener en cuenta el n de
sentencias o fragmentos de sentencia en esa lnea.
lnea Esto
incluye especficamente todas las cabeceras de
programas, declaraciones y sentencias ejecutables y no
ejecutables

Para garantizar la consistencia:


Se incluyen las lneas en blanco? No
Los comentarios? No
Se cuentan sentencias declarativas y ejecutables?
Cuantas veces se cuenta el cdigo reutilizable?

M.E.Manso.

Calidad del Software Producto. Mtricas internas 57

Ciencia del Software


Token: unidad sintctica ms elemental distinguible por un
compilador. No depende del lenguaje
Programa: coleccin de tokens (operadores, operandos)
Operador: smbolo o palabra clave que especifica una accin
Operando: smbolo utilizado para representar datos
Mtricas
N1: total de operadores usados N2: total de operandos usados
n1: total de operadores diferentes n2: total de operandos diferentes
n = Tamao del vocabulario = n1 +n2
N = n total de tokens = N1 + N2
V= volumen = N log2 (n1+n2) V* = (n+2) log2 (n+2)
L = nivel de abstraccin = V* / V
V = N log 2 (n) N = n1 log2 (n1 ) + n2 log2 (n2 )
M.E.Manso.

3
Calidad del Software Producto. Mtricas internas 58

Ciencia del Software (ii)


x:= y+1
if x=z
x z then write (x)
else read(z)

n2 = 4 (x,y,z,1)
n1 = 8 (:=,if..then, else, +,(),write,=,read)
N2 = 7 N1 = 8 V = N log 2 12 N = 4 log 2 4 + 8 log 2 8
N= 15 n=12
V =15 log2 12 V* = 14 log2 14

Cmo se cuenta el identificador de un procedimiento


cuando se declara? cundo se llama?
Array(i,j)
operando simple u operador aplicado a dos operandos?
M.E.Manso.

Calidad del Software Producto. Mtricas internas 59

Mtricas de la Estructura
Justificacin
La Calidad final de un producto depender de la estructura
que tenga. En un abuso de lenguaje a estas medidas se les
llama mtricas de complejidad

Mtricas de cdigo
Complejidad de la estructura de un mdulo
Estructura del flujo de control
Estructura del flujo de datos (comportamiento de los
datos cuando interaccionan con el programa)
Estructura de los datos

Algunas son aplicables a otros niveles (diseo)

M.E.Manso.

4
Calidad del Software Producto. Mtricas internas 60

Complejidad Ciclomtica
McCabe V(G)

Flujo de control (G)


Grafo dirigido (nodo=sentencia, arco = direccin)
Slo se consideran programas limpios

Teorema de grafos fuertemente conectados


n de caminos linealmente independientes =
arcos nodos + 1=
n de reas en el plano

M.E.Manso.

Calidad del Software Producto. Mtricas internas 61

Complejidad Ciclomtica(ii)
G se convierte en un grafo fuertemente conectado
uniendo
i d con un arco la
l salida
lid y la
l entrada
t d
V(G) = (arcos + 1) nodos +1
N de caminos linealmente independientes del
programa
N de decisiones BINARIAS o cambios en el flujo
de control+1

M.E.Manso.

5
Calidad del Software Producto. Mtricas internas 62

Complejidad Ciclomtica (iii)

Se ppuede utilizar cmo indicador de la cobertura


en las pruebas
Tasa de eficiencia (pruebas) =
(n de objetos probados) / ( n de objetos total)
objetos --- caminos linealmente independientes

Hay un orden dbil total en G={diagramas de flujo} ? ESCALA?

M.E.Manso.

Calidad del Software Producto. Mtricas internas 63

Mtricas de D. Modulares
Modularidad
Reduce la complejidad a nivel humano
Permite gestionar mejor la distribucin de recursos
Mejora la eficiencia
Aumenta la fiabilidad, facilita deteccin/depuracin de
errores
MA
Facilita el mantenimiento
Mtricas inter e intramodulares
Mb Mc Md

Me Mf Mg

M.E.Manso.

6
Calidad del Software Producto. Mtricas internas 64

Mtricas Intermodulares
V(g) = n de interfaces-n de mdulos +2
v(g) =1
1 si es un rbol puro MA
v(g) >1 si hay reutilizacin

Acoplamiento Mb Mc Md
De datos
Por sellado
De control
Por entorno de datos comn Me Mf Mg
Hbrido

Tipo de conexin Base-datos

Complejidad de la interfaz (recuento de tokens)


Flujo de informacin (datos control o hbrido)

M.E.Manso.

Calidad del Software Producto. Mtricas internas 65

Mtricas Intramodulares
Cohesin ((escala?))
Funcional
Secuencial
Comunicacional
Procedural
Temporal
Lgica
Coincidente (no es realmente un mdulo)

Abanico
Ab i de d entrada
t d

Abanico de salida (7 2)

mbito de control
M.E.Manso.

7
Calidad del Software Producto. Mtricas internas 66

Morfologa (Yourdon y Constantine)

Forma de una estructura modular, cuando se considera


como un grafo dirigido:
Cada nodo es un mdulo
Cada interfaz es un arco

Tamao: n de nodos, n de arcos o combinaciones de ambos


Profundidad: camino mas largo desde la raz hasta una de sus
ramas (n de subniveles)
Anchura: mximo n de nodos en un nivel dado
Tasa arcos-nodos: medida de la densidad de las conexiones
Medida de reutilizacin: V(G) - 1 = arcos - nodos + 1

M.E.Manso.

Calidad del Software Producto. Mtricas internas 67

Acoplamiento (Fenton y Melton)

Mtrica acorde con la teora de la medida (ordinal)


ACO(M1,M2) = i + N/(N+1)

i: n del peor acoplamiento entre M1 y M2


N: n de interconexiones entre ambos.
(i,j): i el orden de acoplamiento (en la escala ordinal
mencionada), y j el n de veces que est presente entre los
pares de mdulos (2,2)
M1 M2
Aco(m1,m2) = 2 + 4/5 (2,2)
(3,1) (5,1) (3,2)
Aco(m2,m4) = 5 + 3/4
Aco(m1,m3) = 3 + 1/2 M3 M4
M.E.Manso.

8
Calidad del Software Producto. Mtricas internas 68

Mtricas del Sistema Modular

Acoplamiento global de un sistema


A tener en cuenta la escala de medida

Cohesin global de un sistema


#Mdulos_Funcionales / #Mdulos
Otras mtricas?

M.E.Manso.

Calidad del Software Producto. Mtricas internas 69

Mtricas del Flujo de Datos


Complejidad de Henry-Kafura (IF4)

Justificacin
Se vi correlacin entre IF4 y el mantenimiento de datos (UNIX)

Proceso de medicin
Clasificacin de los flujos de informacin: local y global
<A,x,B> A pasa a B x (flujo saliente de A y entrante de B)
FI(A) = n de ternas en las que A es el tercer trmino
FO(A) = n de ternas en las que A es el primer trmino
IF4(G) = LDC(Mi) (FI(Mi) FO(Mi))

Mtrica de Shepperd: IF(g) = (FIFO(Mi)) 2

M.E.Manso.

9
Calidad del Software Producto. Mtricas internas 70

Complejidad (IF4)
Problemas
Difcil de interpretar: se mezclan atributos y escalas
Es acorde con la teora de la medicin? Cuando da cero?

Efecto del cuadrado


Si no se considera, sistemas con pocos mdulos y mucho
flujo de informacin pueden dar mediciones similares a los
que tienen muchos mdulos con poco flujo de informacin
(Tabla 3)
Tabla 3. Sistema 1 Sistema 2
FI FO FIFO FIFO ** 2 FI FO FIFO FIFO **2
m1 2 3 6 36 3 4 12 144
m2 1 2 2 4 2 1 2 4
m3 3 1 3 9 1 1 1 1
m4 2 2 4 16
15 65 15 169

M.E.Manso.

10

You might also like