Está en la página 1de 16

PROYECTOS INFORMTICOS

LA MEDICIN DEL SOFTWARE MTRICAS

PROYECTOS INFORMTICOS

PRODUCTIVIDAD DEL SW y TCNICAS ASOCIADAS


mtrica del sw control de calidad y fiabilidad herramientas automticas metodologas de diseo otras tcnicas planificacin y elaboracin de requerimientos mantenimiento control de proyectos factoras del software

PROYECTOS INFORMTICOS

MTRICAS DEL SW
responden a dos objetivos valorar estimar magnitudes objeto de valoracin calidad fiabilidad productividad magnitudes objeto de estimacin esfuerzo tiempo

PROYECTOS INFORMTICOS

DEL PRODUCTO (entrada: cdigo fuente)

tamao estructuras de datos lgica de procedimiento ...

MTRICAS
tiempo de desarrollo reutilizacin productividad ...

DEL PROCESO (entorno de desarrollo)

PROYECTOS INFORMTICOS

MTRICAS DEL SW
primera aproximacin mtricas del producto mtricas del proceso mtricas tamao estructuras de datos estructuras de control compuestas de esfuerzo de calidad y fiabilidad diseo otras mtricas

PROYECTOS INFORMTICOS

MTRICAS DE TAMAO
referencia: cdigo fuente empleo del tamao: fcil de obtener factor importante productividad se mide en lneas de cdigo lneas de cdigo: LOC (KLOC) loc/pm (loc por persona y mes) definicin de lneas computables

PROYECTOS INFORMTICOS

SUBRUTINA: Ejemplo SORT


Lnea
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 C C SUBROUTINE SORT (X,N) INTEGER X(100), N, I, J, SAVE IM1 THIS ROUTINE SORTS ARRAY X INTO ASCENDING ORDER. IF (N.LT.2) GO TO 200 DO 210 I=2,N IM1=I-1 DO 220 J=1, IM1 IF (X(I).GE.X(J)) GO TO 220 SAVE=X(I) X(I)=X(J) X(J)=SAVE CONTINUE CONTINUE RETURN END

Nivel

220 210 200

1 2 3 3 4 5 5 5 3 2 1

PROYECTOS INFORMTICOS

MTRICAS DE TAMAO (I)

medida del tamao como tokens (Halstead) n1 nmero de operadores diferentes del lenguaje n2 nmero de operandos diferentes del lenguaje N1 nmero total de operadores N2 nmero total de operandos

PROYECTOS INFORMTICOS

MTRICAS DE TAMAO (II)

Tamao

N = N1 + N2

Las reglas de contar tokens dependen del lenguaje en que est escrito un programa Vocabulario n = n 1 + n2 V = N*log2n

Volumen del programa

siendo la unidad de medida de volumen el bit

PROYECTOS INFORMTICOS

TAMAO EN TOKENS
Operadores
SUBROUTINE () ' INTEGER IF .LT. GO TO DO = .GE. CONTINUE RETURN end-of-line n1=14

Ocurrencias
1 10 8 1 2 1 2 2 6 1 1 2 1 13 N1=51

Operandos
SORT X N 100 I J SAVE IM1 2 200 210 1 220

Ocurrencias
1 8 4 1 6 5 3 3 2 2 2 2 3

n2=13

N2=42
10

PROYECTOS INFORMTICOS

MTRICAS DE TAMAO
Uso de unidades mayores que la LOC para medir el tamao Definicin de mdulo: la divisin del cdigo en mdulo obedece a criterios funcionales No hay equivalencia entre LOC y mdulo Propuesta: medir el tamao de un mdulo por el nmero de funciones que contiene Dificultad de evaluar las funciones de un sistema software

11

PROYECTOS INFORMTICOS

MTRICAS DE TAMAO
Otro factor que afecta: la reutilizacin del cdigo: no se puede evaluar igual el cdigo reusado que el nuevo Tamao: dos componentes Sn: cdigo nuevo Su: cdigo reusado Se: cdigo equivalente: funcin de Sn, Su BOEHM: Se = Sn + (a/100)*Su siendo a un factor de ajuste que depende del % de modificacin del diseo (DM) del cdigo (CM) y del esfuerzo para la integracin (IM) a = 0,4(DM) + 0,3(CM) + 0,3(IM) siendo el valor mximo de a = 100 (reescritura nueva)
12

PROYECTOS INFORMTICOS

MTRICAS DE TAMAO

BAILEY y BASILI: Se = Sn + k*Su k = 0,2 valor obtenido a partir de una base de proyectos THEBAUT: Se = Sn + Suk siendo k 1 y en concreto 6/7 (aprox.). En este caso: Su 6/7 > 0,25*Su en cualquier caso: no hay CONSENSO en lo que mide exactamente el tamao equivalente

13

PROYECTOS INFORMTICOS

EJEMPLO: 5000 LOC,


BAILEY BASILI: Se=Sn+k*Su (k=0,2) LOC CASO
NUEVAS REUTILIZADAS

LOC EQUIV. (Se) 5.000 4.200 3.400 1.800


14

1 2 3 4

5.000 4.000 3.000 1.000

--1.000 2.000 4.000

PROYECTOS INFORMTICOS

BOEHM Sn 5.000 4.750 4.500 3.750 2.500 0 Su 0 250 500 1.250 2.500 5.000 Se=Sn+(a/100)Su a=0,004*Su 5.000 4.753 4.510 3.813 2.750 1.000

ByB Se=Sn+0.2*Su 5.000 4.800 4.600 4.000 3.000 1.000

THEBAUT Se=Sn+Su6/7 5.000 4.864 4.706 4.201 3.317 1.479


15

PROYECTOS INFORMTICOS

MTRICAS DE E. DE D.
Atienden a: cantidad de datos, y uso que se les da aparicin de los mismos en distintas partes del sistema Mtodo para contar la cantidad de datos: contar las entradas en la tabla de referencias cruzadas asociada al cdigo VARS representa el nmero de variables del programa Mtrica n2 de HALSTEAD es vlida: n2 = VARS + constantes nicas + etiquetas n2 cuenta operandos distintos por lo que Halstead propone usar N2 que representa el nmero total de ocurrencias de operandos

16

PROYECTOS INFORMTICOS

MTRICAS DE E. DE D.
Orientadas al uso de mdulos variables vivas (LV) envergadura (SP, span) paso de mtricas de mdulo a mtricas globales LV prog = sum LV i/m SP prog = sum SP i/n m = nm. mdulos para i = 1,m para i = 1,n n = nm. posibles envergaduras

17

PROYECTOS INFORMTICOS

MTRICAS DE E. DE D.
BASILI y TURNER: dos mtricas par de uso local-global (P,R) forma en que los mdulos comparten informacin: (P,R,Q) Complejidad de datos compartidos: fan-in: el fan-in de un mdulo Q es el nmero de mdulos P que cumplen alguna de las siguientes condiciones: hay una variable R que cumple (P,R,Q) hay un mdulo T y unas variables R y S tales que: (P,R,T) y (T,S,Q) nota: el fan-in de un mdulo es el nmero de mdulos que directa o indirectamente le pasan alguna informacin

18

PROYECTOS INFORMTICOS

MTRICAS DE E. DE CONTROL
cuenta de decisin (DE) complejidad ciclomtica v(G) v(G) = e - n + p e = nmero lneas diagrama de flujo n = nmero de nodos p = nmero total de elementos interconectados si representa el nmero de predicados, se puede demostrar que: e -n= -1 v(G) = e - n + 2 = + 1 dado que y DE son prcticamente la misma cosa: v(G) = DE + 1
19

PROYECTOS INFORMTICOS

MTRICAS DE E. DE CONTROL
Nmeros ciclomticos de dos diagramas de flujo

e = 14 n = 12 v(G) = 14 - 12 + 2 = 4

e = 10 n=8

20
v(G) = 10 - 8 + 2 = 4

PROYECTOS INFORMTICOS

MTRICAS DE E. DE CONTROL
La complejidad ciclomtica de un programa formado por varios mdulos es igual a la suma de las distintas complejidades

v(G prog ) = v (Gi ) =


i =1

ei ni + 2m
i =1 i =1

y de aqu

v(G prog ) =
la entropa

DE
i =1

+m

Zn =

log
i =1

n 1

( pi * X + qi );

X=2
21

PROYECTOS INFORMTICOS

MTRICAS DE E. DE CONTROL
Otras mtricas nmero mnimo de caminos Np (Np v(G)) accesibilidad del cdigo R nivel de anidamiento (NL) cuenta de transferencias incondicionales de control

22

PROYECTOS INFORMTICOS

MTRICAS COMPUESTAS

Una medida alternativa a la complejidad ciclomtica es la formada por el par (CYC-mid, CYC-max) medidas de HALSTEAD (Ciencia del Software) longitud estimada del programa ^N = n1*log2n1 + n2*log2n2 volumen de programa V = N*log2n

23

PROYECTOS INFORMTICOS

MTRICAS COMPUESTAS
volumen potencial V* = (2 + n2*)log2(2 + n2*) nivel de programa L L = V*/V L = (2/n1)*(n2/N2) dificultad D D = 1/L esfuerzo (segn Halstead): discriminaciones mentales elementales E = V/L = D*V = n1N2N*log2n/2n2

24

PROYECTOS INFORMTICOS

CASO SORT (tpcia. num. 7): n1=14 n2=13 N1=51 N2=42 operadores operandos

Longitud estimada de programa ^N = n1*log2n1 + n2*log2n2= 14*log214 + 13*log213 = 101,45 n de tokens previstos antes de construir el programa SORT Volumen de programa V = N*log2n V = 93*log227= 442 N = N1 + N2=51+42=93 n = n1 + n2= 14+13= 27 long. programa vocabulario

25

PROYECTOS INFORMTICOS

Volumen potencial V* = (2+ n2*)log2(2+ n2*) V* = 5log25 =11,6 n2* n parmetros In y Output conceptualmente nicos n2* X, N, X n2* = 3 Nivel de programa MTRICAS POCO SLIDAS L = V*/V = 11.6/442 = 0,026 L = (2/n1)*(n2/N2) =2/14 * 13/42=0,044 V*=V*L=19,4 Esfuerzo E = V/L = 442/0,044 = 10.042 discriminaciones mentales elementales

26

PROYECTOS INFORMTICOS

MTRICAS DE ESFUERZO
Persona-m e s A tener en cuenta: tiempo de comprensin y aprendizaje intensidad de trabajo interrupciones comunicacin entre el equipo

diferencia entre tamaos de equipos

27

PROYECTOS INFORMTICOS

MTRICAS DE CALIDAD Y FIABILIDAD


Deteccin de errores: bateras de test revisiones tcnicas MYER79: la prueba es un proceso de ejecucin de un programa para descubrir un error un buen caso de prueba es el que tiene una alta probabilidad de mostrar un error no descubierto una prueba tiene xito si descubre un error no detectado hasta entonces Una prueba no puede asegurar la ausencia de defectos solo puede demostrar que existen defectos

28

PROYECTOS INFORMTICOS

MTRICAS DE CALIDAD Y FIABILIDAD

La mayor parte de las mtricas se basan en la cuenta de errores o fallos Otras dos mtricas importantes: Nmero de cambios realizados en el diseo Nmero de cambios realizados en un programa Mtrica ms comn: Densidad de fallos o errores Densidad de errores = nmero de errores/S S: tamao del cdigo en nmero de lneas

29

PROYECTOS INFORMTICOS

MTRICAS DE CALIDAD Y FIABILIDAD


Fiabilidad: medida integral de todo el proceso de desarrollo Definicin: probabilidad de que no aparezca un error en un tiempo determinado: R() = 1 - F() R(n) = 1 - dn /n Tasa de riesgo: probabilidad de que el software falle en un intervalo de tiempo si no ha fallado antes h() = f() /(1 - F()) MTTF: mean time to failure
30

PROYECTOS INFORMTICOS

MTRICAS DE DISEO
aspectos a considerar: comprensibilidad manejabilidad eficiencia reduccin de errores reduccin esfuerzo / coste de mantenimiento principios que dirigen estas mtricas: acoplamiento cohesin complejidad modularidad tamao

31

PROYECTOS INFORMTICOS

OTRAS MTRICAS
de de de de de reutilizacin portabilidad mantenibilidad testabilidad flexibilidad

32