Sunteți pe pagina 1din 16

X Reunin de Responsables de Sistemas

de Informacin

Contenidos
1.
2.

La Antigua, Guatemala
22-25 de septiembre de 2008

Introducci
Introduccin
Control y Garant
Garanta de la Calidad del Software
Controles est
estticos y din
dinmicos
Actividades constructivas de la calidad
3. El coste de la calidad
1.
2.

3.

Medidas
Introducci
Introduccin a las medidas
Qu
Qu, por qu
qu y c
cmo miden los ingenieros
3. Medidas y m
mtricas
4. Medidas en Ingenier
Ingeniera del Software
5. Clasificaci
Clasificacin de medidas
1.
2.

Calidad del Software


4.

Calidad del Software


Introducci
Introduccin a la calidad
Modelos de calidad del software
3. Mejora del proceso software
1.
2.

Facultad de Informtica

5.

Universidad Polit

Conclusiones

Calidad del Software

Introducci
Introduccin
Software:
z

Introduccin

Especifica el conjunto de programas inform


informticos que se
desarrollan en el entorno de una computadora
Papel del software en la sociedad ha cambiado
significativamente en los ltimos 50 a
aos
mejoras en rendimiento del hardware
cambios en arquitecturas inform
informticas
aumentos de memoria y capacidad de almacenamiento
variedad de dispositivos de entrada y salida
...

Importancia profesional y personal de la Inform


Informtica

Disminuye el precio del hardware


Aumenta la demanda de nuevas aplicaciones

Calidad del Software

Introducci
Introduccin

Introducci
Introduccin

Sistemas cada vez m


ms sofisticados y complejos

Un poco de historia...

Se ha pasado de ser una herramienta para la

resoluci
resolucin de problemas a una industria
Caracter
Caractersticas del software

z
z
z

El software se desarrolla, no se fabrica


El software no se estropea
Aunque la industria tiende a ensamblar componentes, la
mayor
mayora del software se construye a medida

Aos 40 Fundamentos de la computaci


computacin moderna
Principios de los 60 Consolidaci
Consolidacin del desarrollo de
software de aplicaciones relativamente grandes
Finales de los 60 Crisis del software

Imposibilidad de desarrollar proyectos de una dimensi


dimensin
acorde con los avances tecnol
tecnolgicos de la poca

1968 El comit
comit cient
cientfico de la OTAN patrocina una
conferencia en Alemania, para identificar, clasificar y
discutir los problemas que se produc
producan en el desarrollo
de grandes proyectos

Calidad del Software

Resultado: el desarrollo del software es una tarea de


ingenier
ingeniera (se acu
acua el t
trmino de Ingenier
Ingeniera del Software)
Software)

Calidad del Software

Introducci
Introduccin

Introducci
Introduccin

Ingenier
Ingeniera:
z

Ingenier
Ingeniera del Software:

Diccionario de la Real Academia Espa


Espaola:
ola:
Conjunto de conocimientos y t
tcnicas que permiten
aplicar el saber cient
cientfico a la utilizaci
utilizacin de la materia
y de las fuentes de energ
energa

Boehm,
Boehm, 1976
Aplicacin prctica del conocimiento cientfico
en el diseo y construccin de programas de
computadora y la documentacin asociada
requerida para desarrollar, operar y
mantenerlos

Software:
z

Diccionario de la Real Academia Espa


Espaola:
ola:
Conjunto de programas, instrucciones y reglas
inform
informticas para ejecutar ciertas tareas en una
computadora
computadora

Calidad del Software

IEEE, 1993
Aplicacin de un enfoque sistemtico,
disciplinado y cuantificable al desarrollo,
operacin y mantenimiento del software

Calidad del Software

Introducci
Introduccin

Introducci
Introduccin

El producto software:
z

El proceso software:

Es un sistema software desarrollado para un cliente con la


documentaci
documentacin que describe c
cmo instalar y usar el
sistema
Objetivo de la Ingenier
Ingeniera del Software

Es el conjunto de actividades y resultados que permite


producir un producto software
Actividades fundamentales del proceso software:
Especificaci
Especificacin del software: se define la funcionalidad del
software y el modo de operaci
operacin
Desarrollo del software: se produce el software de acuerdo con
las especificaciones
Validaci
Validacin del software: el software debe ser validado para
asegurarse que hace lo que espera el cliente
Evoluci
Evolucin del software: el software debe evolucionar para
acomodarse a las nuevas necesidades del cliente

Producir productos software

z
Calidad del Software

Actividad compleja, muchas actividades distintas

Calidad del Software

Introducci
Introduccin

Introducci
Introduccin

El software no es perfecto

Las causas de los fallos inform


informticos pueden ser

muy diversas:
z

Ley de Murphy:
Si algo puede ir mal, ir
ir mal
mal

z
z
z
z

Calidad del Software

10

Especificaciones incorrectas o incompletas


An
Anlisis equivocados
Dise
Diseos con fallos
Programaci
Programacin con errores
Validaci
Validacin poco precisa

Calidad del Software

11

Introducci
Introduccin

Introducci
Introduccin

Actualmente se usa el software en gran diversidad

La soluci
solucin al problema es la calidad

de mbitos
Los defectos del software pueden causar
importantes problemas e, incluso, da
daos f
fsicos
z

z
z

Los defectos en programas financieros o editores son


poco importantes, poco costosos y nadie sale herido
Cuando el software pilota
pilota aviones, conduce
conduce autos,
controla
controla el tr
trfico a
areo o vigila
vigila centrales nucleares,
los defectos pueden ser muy peligrosos

Calidad del Software

12

z
z

Cu
Cundo tiene buena calidad el software?
Qu
Qu caracter
caractersticas influyen al determinar la calidad del
software?
Cmo medir la calidad del software?
Cmo controlar y garantizar la calidad del software?

Calidad del Software

13

Introducci
Introduccin
Es necesario medir la calidad...

...pero es una tarea dif


difcil
Por qu
qu medir?
Si algo puede ser
medido y expresado con
nmeros, entonces se
sabe algo acerca de ello

Control y Garanta de
la Calidad

No se puede
controlar lo que
no se puede
medir

Kelvin

DeMarco

Calidad del Software

14

Control de la Calidad

Control de la Calidad
Controles Est
Estticos

Objetivos:
z

Comprobar si un producto posee una determinada


caracter
caracterstica de calidad en el grado requerido

Controles manuales
z

Si no es as
as, tiene un defecto

Auditor
Auditoras
Revisiones

Controles autom
automticos

Analizan el producto durante su funcionamiento

Sistemas inform
informticos o con un proceso algor
algortmico

Calidad del Software

Son t
tcnicas de grupo

Analizan el producto sin necesidad de ejecutarlo

Controles din
dinmicos

Comprobaci
Comprobacin de escritorio (desk
(desk checking)
checking)
Revisi
Revisin por pares (peer
(peer review)
review)

Disciplinados

Controles est
estticos

Por los autores del desarrollo o por personal equivalente

Identificar defectos y corregirlos

Actividades de control:
z

Informales

16

An
Anlisis est
esttico autom
automtico
Verificaci
Verificacin formal

Calidad del Software

17

Control de la Calidad

Garant
Garanta de Calidad

Controles Din
Dinmicos
Tipos de pruebas
z

Prueba de integraci
integracin

Prueba de sistema

Se prueba que las interfaces entre los m


mdulos son correctas
Se prueba si el sistema satisface todos los requisitos del
usuario
Su objetivo es demostrar al usuario que el sistema satisface
sus necesidades

Prueba de regresi
regresin

Se comprueba que la nueva versi


versin del producto no es de
menos calidad que la anterior

Calidad del Software

18

19

Garant
Garanta de Calidad

Garant
Garanta de Calidad
Actividades Constructivas
Herramientas y entornos de desarrollo

Idealizaci
Idealizacin del proceso de desarrollo y mantenimiento
del software
Se descompone el proceso en fases, definiendo las
actividades a realizar

Mtodos y formalismos
z

Calidad del Software

Actividades Constructivas
Modelos de proceso software
z

Conjunto de actividades de planificaci


planificacin, estimaci
estimacin y
supervisi
supervisin del proceso de desarrollo, que se realizan de
forma independiente al equipo de desarrollo, de tal forma
que los productos software resultantes cumplen los
requisitos establecidos y satisfacen los niveles de calidad
exigidos

Prueba de aceptaci
aceptacin

Se prueba cada m
mdulo aislado del resto del sistema

Definici
Definicin

Prueba modular

Lenguajes de programaci
programacin

La sistematizaci
sistematizacin de los procedimientos facilita la
prueba de los resultados obtenidos
Se producen incrementos en la productividad (50(50-150%)

Calidad del Software

Las herramientas CASE (Computer


(Computer Aided Software
Engineering)
Engineering) facilitan la producci
produccin de software
Los modernos entornos de desarrollo han simplificado el
proceso de implementaci
implementacin

20

Su importancia (en t
trminos de calidad) se hace patente
en el mantenimiento
Caracter
Caractersticas interesantes: m
mdulos, compilaci
compilacin
separada, ocultaci
ocultacin de informaci
informacin, flujo de control
estructurado, fuerte tipado,
tipado, OO, orientaci
orientacin a eventos...

Calidad del Software

Garant
Garanta de Calidad

21

Garant
Garanta de Calidad

Actividades Constructivas

El Coste de la Calidad

Documentaci
Documentacin
z
z

Intervienen dos factores:

Juega un papel esencial


Caracter
Caractersticas importantes: consistencia, claridad,
comprensibilidad, completitud...

z
z

Distribuci
Distribucin de defectos detectados seg
segn la fase en la que se
cometieron:

Factores humanos
z

Factores a considerar: cultura de la organizaci


organizacin,
comunicaci
comunicacin, entorno f
fsico, formaci
formacin, motivaci
motivacin,
direcci
direccin, liderazgo...

7%

Diseo
Codificacin

Est
Estndares y convenciones, ejemplos y patrones, gesti
gestin
de configuraci
configuracin, control del c
cdigo, gesti
gestin de
problemas...

Calidad del Software

10%
Especificacin

Otros
z

Prevenci
Prevencin de errores
Detecci
Deteccin de defectos

22

27%

Calidad del Software

56%

Otros

23

Garant
Garanta de Calidad

Garant
Garanta de Calidad

El Coste de la Calidad

El Coste de la Calidad

Intervienen dos factores:


z
z

Intervienen dos factores:

Prevenci
Prevencin de errores
Detecci
Deteccin de defectos

z
z

Porcentaje, sobre el coste total de correcci


correccin de los defectos, seg
segn la
fase en la que se cometieron:

Prevenci
Prevencin de errores
Detecci
Deteccin de defectos

Coste de correcci
correccin seg
segn la fase en la que se detectaron los defectos:
17.500 $

13%

1%4%

15.000 $
12.500 $

Especificacin

10.000 $

Diseo
Codificacin

7.500 $

Otros

5.000 $

82%

2.500 $
0$
Anlisis

Calidad del Software

24

Diseo

Codificacin

Pruebas

Implantacin

Calidad del Software

25

Introducci
Introduccin a las Medidas
Definiciones
Qu
Qu es la medici
medicin?
z

Medidas

La medici
medicin es la asociaci
asociacin de valores num
numricos con
un objeto o acci
accin
Se interpreta este valor como la cantidad de calidad o de
cierto atributo pose
posedo por dicho objeto o acci
accin

Calidad del Software

27

Introducci
Introduccin a las Medidas

Medidas

Definiciones

Qu
Qu Miden los Ingenieros?

Medir
z

La ingenier
ingeniera puede definirse como el proceso que

produce productos tiles

Diccionario de la Real Academia Espa


Espaola:
ola:

Comparar una cantidad con su respectiva unidad, con el fin de


averiguar cu
cuntas veces la segunda est
est contenida en la primera

Medida
z

Puede describirse lo que miden los ingenieros en

dos categor
categoras:
z

Diccionario de la Real Academia Espa


Espaola:
ola:

Acci
Accin y efecto de medir
Expresi
Expresin del resultado de una medici
medicin
Cada una de las unidades que se emplean para medir longitudes,
reas o vol
volmenes de l
lquidos o ridos

Medidas del producto


Medidas del proceso

Calidad del Software

28

Calidad del Software

29

Medidas

Medidas

Qu
Qu Miden los Ingenieros?

Qu
Qu Miden los Ingenieros?

Medidas del producto


z

Medidas del proceso

Medidas est
estticas

Pueden calcularse cuando el objeto no est


est en uso
Tama
Tamao, longitud, altura, anchura, peso, capacidad,
volumen...

Se usan para cuantificar la actividad humana de la


ingenier
ingeniera
Ejemplos:

Medidas din
dinmicas

Tama
Tamao de un equipo de desarrollo, esfuerzo, tiempo, coste,
productividad...

Describen el comportamiento de un objeto mientras est


est en
uso
Velocidad, consumo, disipaci
disipacin de calor, nivel de ruido...

Calidad del Software

30

Medidas

Medidas
Por qu
qu Miden los Ingenieros?
demostrar su cumplimiento
z

Construcci
Construccin de un puente (longitud, altura, carga m
mxima,
caudal del r
ro...)
Peque
Pequeos electrodom
electrodomsticos (tama
(tamao, peso, coste...)
Veh
Vehculos (peso, consumo, espacio interior, espacio para
equipaje, resistencia a los impactos...)
Software (tiempo de respuesta, memoria ocupada...)...

Leyes o teor
teoras cient
cientficas

Los ingenieros pretenden descubrir:

el comportamiento de los sistemas que dise


disean y construyen
las tendencias en el propio proceso de ingenier
ingeniera

Calidad del Software

32

No puede imaginarse un proyecto de ingenier


ingeniera sin
requisitos cuantitativos

Permite dar explicaciones del comportamiento del mundo


real

Para establecer los requisitos cuantitativamente y

Cada medida describe un aspecto concreto del estado del


mundo hoy
Si se mide el estado del mundo peri
peridicamente, puede
ser posible descubrir patrones y tendencias

Para demostrar que se cumplen los requisitos


cuantitativos, es necesario medir

Calidad del Software

Medidas
Por qu
qu Miden los Ingenieros?

Por qu
qu Miden los Ingenieros?

los resultados

Pueden ponerse de manifiesto tendencias inusuales que, al


detectarlas, pueden corregirse

Los ingenieros del software cuentan el n


nmero de
defectos encontrados durante las pruebas para calibrar
los modelos de fiabilidad

Para analizar costes y beneficios


z

Las mediciones peri


peridicas de lo que se va obteniendo
permite realizar un seguimiento cuantitativo del proyecto

El coraz
corazn de la ingenier
ingeniera: el compromiso
Hay muchas formas de dise
disear productos y muchas formas
de dise
disear sus componentes
Cada dise
diseo tiene ventajas y desventajas
El ingeniero debe valorarlas todas y establecer un
compromiso entre unas y otras

Pueden predecir cu
cundo se completar
completarn las pruebas y cu
cundo
se alcanzar
alcanzar el nivel de fiabilidad requerido

Calidad del Software

33

Medidas

Para realizar un seguimiento del progreso y predecir


z

31

Por qu
qu Miden los Ingenieros?
Para describir el estado actual del mundo
z

Calidad del Software

34

A veces se acepta una cualidad negativa para favorecer otra


cualidad
A veces se acepta menos de un atributo deseable para obtener m
ms
de otro atributo deseable
Ej.: Coche: se deben establecer compromisos entre peso, econom
economa,

espacio del habit


habitculo, confort y precio
Calidad del Software

35

Medidas

Medidas

Cmo Miden los Ingenieros?

Cmo Miden los Ingenieros?

Tradicionalmente, los ingenieros usan instrumentos


Los instrumentos pueden proporcionar medidas

Muestreo
z

err
errneas
z

La exactitud de un instrumento es una indicaci


indicacin de la
diferencia entre la lectura del instrumento y los datos de
entrada
La precisi
precisin de un instrumento es una indicaci
indicacin de lo
repetible que resulta una medici
medicin con una exactitud
determinada

Calidad del Software

36

Calidad del Software

37

Teor
Teora de Medidas

Medidas y M
Mtricas

Medidas y M
Mtricas
Matem
Matemticamente:
z

Forma perfectamente definida de asociar valores num


numricos a
los atributos de los elementos de una entidad

Medida
Sea A un conjunto de objetos f
fsicos o emp
empricos
Sea B un conjunto de objetos formales (n
(nmeros)
Se define una medida como una relaci
relacin un
unvoca de A a B:
: A B

Criterio para determinar la diferencia o distancia entre dos


entidades

Calidad del Software

38

Cada objeto tiene una y solo una medida

Calidad del Software

Teor
Teora de Medidas

39

Teor
Teora de Medidas

Medidas y M
Mtricas

Medidas y M
Mtricas

Matem
Matemticamente:
z

Se elige uno de cada 1000 productos y se realizan medidas


Utilizando varias t
tcnicas estad
estadsticas, se extraen conclusiones
acerca de todos los productos a partir de las medidas realizadas en
los productos seleccionados

Teor
Teora de Medidas

Mtrica

Control de calidad en un proceso de fabricaci


fabricacin

Medida

Se usa cuando es imposible o poco pr


prctico medir a toda la
poblaci
poblacin

Ejemplo

Informalmente:
z

Selecci
Seleccin y medida de una parte representativa de la
poblaci
poblacin para deducir par
parmetros o caracter
caractersticas de
toda la poblaci
poblacin.

Este concepto de mtrica


trica como distancia entre

dos entidades tiene muy poco sentido en el mundo


del software
En cambio, s
s tiene sentido calcular una medida
para dos productos y compararlas

Mtrica:
Sea A un conjunto de objetos
Sea el conjunto de n
nmeros reales
Sea m: A A una medida
Entonces m es una mtrica si cumple:
m(x, y) 0, x, y A
m(x, y) = 0 x = y
m(x, y) = m(y, x), x, y A

Mtrica del Software Medida del Software

m(x, z) m(x, y) + m(y, z), x, y, z A

Calidad del Software

40

Calidad del Software

41

Teor
Teora de Medidas

Medidas en Ingenier
Ingeniera del Sw.
Sw.
Es bueno un programa?

Barrera intelectual
medicin

Objetos del mundo


real, relaciones,
operaciones

Cmo de fiable ser


ser el sistema una vez instalado?

Objetos numricos,
relaciones,
operaciones

Cu
Cuntos errores se esperan encontrar?
Cu
Cuntas pruebas tengo que hacer?
Cu
Cul ser
ser el coste de las pruebas?

barrera
intelectual

matemticas,
estadstica

Ser
Ser dif
difcil mantener el sistema?
Cu
Cunto costar
costar construir un sistema similar al que

constru
constru hace 5 a
aos?

Resultados
relevantes al
mundo real

Resultados
numricos

interpretacin

Cu
Cunto tardar
tardar en desarrollar el sistema?
...

Calidad del Software

42

Calidad del Software

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Los ingenieros del software se enfrentan

Ejemplo de medida de tama


tamao del software

diariamente a estas preguntas


La habilidad para realizar las medidas apropiadas es
fundamental para los ingenieros del software
Tambi
Tambin es importante saber c
cmo medir
Es un rea de investigaci

n
candente
en Ingenier
investigaci
Ingeniera
del Software
z

No hay resultados est


estndar universalmente aceptados en
el terreno de las medidas del software

Calidad del Software

43

Jos Luis Fuertes

44

Lneas de c
cdigo fuente (LOC)

#define LOWER
0
#define UPPER 300
#define STEP
20

/* lmite inferior de la tabla */


/* lmite superior */
/* tamao del paso */

main ()/* Tabla de conversin de Fahrenheit a Celsius */


{
int fahr;
for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
printf ("%4d %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));
}

Calidad del Software

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Jos Luis Fuertes

45

Medidas en Ingenier
Ingeniera del Sw.
Sw.
Caracter
Caractersticas deseables de las medidas
z

25
N 20
15
de 10
5
votos
0

z
z
z
z
z

Deben ser sencillas y estar definidas con precisi


precisin
Deben ser objetivas
Deben ser f
fciles de obtener
Deben ser v
vlidas
Deben ser robustas
Deben definir sus valores y sus l
lmites
Los conjuntos de medidas deben ser consistentes

N de lneas de cdigo fuente

Calidad del Software

46

Calidad del Software

47

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Necesidad de las medidas del software


z

Gran cantidad de medidas del software

Solucionar los problemas del software

Estimaciones de tiempo y costes m


ms precisas
Mayor productividad
Productos de mejor calidad

Gesti
Gestin del software no es efectiva

Desarrollo de software es muy complejo


Se tiene pocas medidas buenas del proceso o del producto
La mejora del proceso necesita identificar, medir y controlar
sus par
parmetros fundamentales

z
z
z
z
z

Calidad del Software

48

Calidad del Software

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Ejemplos de Medidas del Software

Ejemplos de Medidas del Software


Complejidad de McCabe [McCabe,
McCabe, 1976]

nmero de caminos de ejecuci


ejecucin posibles en un
programa
v(G) = e - n + 2 p

1
1
6

e: bifurcaciones
n: nodos con c
cdigo secuencial
p: n
nmero de grafos inconexos

49

Medidas en Ingenier
Ingeniera del Sw.
Sw.
Complejidad de McCabe [McCabe,
McCabe, 1976]
z

1976: Complejidad ciclom


ciclomtica (McCabe)
McCabe)
1977: Ciencia del software (Halstead
(Halstead))
1980: Complejidad del flujo de control, del flujo de datos y
del programa (Oviedo)
1981: Flujo de informaci
informacin (Kafura
(Kafura y Henry)
1985: Estabilidad en el mantenimiento (Yau y Collofello)
Collofello)
1988: Ley de Demeter
Demeter (Lieberherr)
Lieberherr)
1993: Medidas del Dise
Diseo (Chen y Lu)
1994: Conjunto de medidas (Chidamber
(Chidamber y Kemerer)
Kemerer)
1999: Complejidad del c
cdigo y del dise
diseo (Etzkorn
(Etzkorn et al.)

v(G) = + 1

: n
nmero de predicados

11

v(G) = 18 - 12 + 2 = 8
8

9
Calidad del Software

Jos Luis Fuertes

50

Medidas en Ingenier
Ingeniera del Sw.
Sw.
Ejemplos de Medidas del Software

12
Jos Luis Fuertes

51

Ejemplos de Medidas del Software


Complejidad del control de flujo [Woodward,

1979]

Conjunto de medidas y estimaciones sobre el c


cdigo
fuente
Medidas
Contenido de Inteligencia
Nivel del Programa
Longitud del Programa
Volumen del Programa
Dificultad
Esfuerzo

5
10

20
25
Calidad del Software

10

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Ciencia del Software [Halstead


[Halstead,, 1977]
z

Calidad del Software

52

Calidad del Software

IF (GN .NE. 0) GOTO 10


IF (CN .LT. CT) GOTO 5
E = 1
GOTO 25
E = 0
GOTO 25
IF (CN .LT. TR) GOTO 20
E = 1
GOTO 25
E = 0
CONTINUE
53

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Ejemplos de Medidas del Software

Ejemplos de Medidas del Software

Flujo de informaci
informacin [Henry y Kafura,
Kafura, 1981]
z

Complejidad interna (C
(Cip) de un m
mdulo p:

FanFan-in de un m
mdulo p:

FanFan-out de un m
mdulo p:

Nmero de l
lneas de c
cdigo (LOC) de dicho m
mdulo,
longitud de Halstead,
Halstead, complejidad ciclom
ciclomtica...
tica...

Ley de Demeter [Lieberherr,


Lieberherr, 1988]

Para todas las clases C y todos los m


mtodos M de C,
todos los objetos a los que M env
enva mensajes deben ser:
Los objetos que son argumentos de M (incluyendo el propio
objeto de la clase C)
Los objetos que son atributos de C

Nmero de flujos de datos entrando al m


mdulo p
z

Medida:

Nmero de flujos de datos saliendo del m


mdulo p

Nmero de veces que se viola la ley

Complejidad del flujo de informaci


informacin de un m
mdulo p
(Cp):
Cp = Cip (fan(fan-in fanfan-out)2

Calidad del Software

54

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Ejemplos de Medidas del Software

Ejemplos de Medidas del Software

Conjunto de medidas para OO [Chidamber


[Chidamber y

Kemerer,
Kemerer, 1991]

WMC (Weighted
(Weighted Methods per Class)
Class)

Suma ponderada de la complejidad de cada uno de los


mtodos de una clase

55

Conjunto de medidas para OO [Chidamber


[Chidamber y

Kemerer,
Kemerer, 1991]
z

Calidad del Software

DIT (Depth
(Depth of Inheritance Tree)
Tree)
Profundidad de una clase C en el rbol de herencia
DIT es una medida de cu
cuntas superclases pueden afectar
potencialmente a cada clase
Medida: contar los niveles del grafo de herencia

Sea la clase C con sus m


mtodos M1, M2..., Mn
Sea c1, c2..., cn la complejidad de cada m
mtodo
Entonces, para dicha clase C:
n

WMC = c i
i =1

Calidad del Software

56

Calidad del Software

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Ejemplos de Medidas del Software

Ejemplos de Medidas del Software

Conjunto de medidas para OO [Chidamber


[Chidamber y

Conjunto de medidas para OO [Chidamber


[Chidamber y

Kemerer,
Kemerer, 1991]
z

Kemerer,
Kemerer, 1991]

NOC (Number
(Number of Children)
Children)

Nmero de clases subordinadas inmediatamente a una clase


NOC es una medida de cu
cuntas clases heredar
heredarn los m
mtodos
de la clase padre
Est
Est relacionada con la noci
nocin del alcance de los miembros
Medida: contar los hijos directos de una clase con una
relaci
relacin de herencia

Calidad del Software

57

58

CBO (Coupling
(Coupling Between Objects classes)
classes)
Cantidad de clases a la que est
est acoplada (n
(nmero de objetos
que act
actan sobre otro)
Relacionada con la noci
nocin de que un objeto est
est acoplado
con otro si uno de ellos act
acta sobre el otro (si los m
mtodos de
uno usan m
mtodos o atributos del otro)

Calidad del Software

59

10

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Ejemplos de Medidas del Software

Ejemplos de Medidas del Software

Conjunto de medidas para OO [Chidamber


[Chidamber y

Conjunto de medidas para OO [Chidamber


[Chidamber y

Kemerer,
Kemerer, 1991]
z

Kemerer,
Kemerer, 1991]

RFC (Response
(Response For a Class)
Class)

Conjunto de m
mtodos de una clase que potencialmente
pueden ejecutarse como respuesta a la llegada de un mensaje
recibido en un objeto de esa clase
Medida:

LCOM (Lack
(Lack of Cohesion Of Methods)
Methods)

Proporciona una medida de la relativa disparidad natural de


los m
mtodos de una clase

M: conjunto de todos los m


mtodos de la clase C
Ri: conjunto de los m
mtodos llamados por el m
mtodo i

RFC = MU R i
i

Calidad del Software

60

Calidad del Software

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Clasificaciones de Medidas del Software

Clasificaciones de Medidas del Software

Clasificaci
Clasificacin basada en los elementos que se miden

[Henry]:
z

Medidas de la Estructura

Medidas del Cdigo

Medidas Hbridas

Se basan en contar tokens

Medidas Sem
Semnticas

Clasificaci
]:
Clasificacin de las medidas del producto [Kafura
[Kafura]:

Medidas Lxicas

Se basan en la aplicaci
aplicacin de los conceptos de la teor
teora de la
informaci
informacin a la formulaci
formulacin de medidas

Medidas de Conectividad

62

z
z

Se basan tanto en detalles de implementaci


implementacin como en la
estructura del dise
diseo

Principios de las medidas del software:

Medir es un mecanismo ideal para caracterizar, evaluar,


predecir y proporcionar motivaci
motivacin para los diversos
aspectos de los procesos de construcci
construccin del software
Las medidas deben aplicarse tanto sobre el proceso
software como en el producto
Debe estar claramente indicado el prop
propsito de cada
medida
Se necesitan tanto medidas objetivas como subjetivas
La mayor parte de los aspectos del producto y del
proceso software son demasiados complicados para ser
identificados por una nica medida

Calidad del Software

63

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Principios de las medidas del software:

Se basan en los detalles del c


cdigo fuente

Calidad del Software

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Se basa en el an
anlisis de la estructura del dise
diseo

Miden el grado de interconectividad entre los componentes


del sistema observando el flujo de informaci
informacin entre ellos

Calidad del Software

61

64

Los entornos de desarrollo y mantenimiento deben estar


preparados para las medidas
La tarea de medir no se debe limitar a utilizar modelos y
medidas tal como han sido definidas en otros entornos
El proceso de medida debe ser de arriba hacia abajo, en
vez de ser de abajo hacia arriba, para poder definir un
conjunto de objetivos operativos, especificar las medidas
apropiadas, permitir interpretaciones y an
anlisis
contextuales v
vlidos y proporcionar retroalimentaci
retroalimentacin
para el aprendizaje y el seguimiento

Calidad del Software

65

11

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Medidas en Ingenier
Ingeniera del Sw.
Sw.

Principios de las medidas del software:


z

Aplicaci
Aplicacin del principio de incertidumbre de

Las medidas deben asociarse con interpretaciones, pero


estas interpretaciones deben corresponder con un
determinado contexto
Se necesitan m
mltiples mecanismos para la recopilaci
recopilacin y
validaci
validacin de datos
Para evaluar y comparar proyectos y para llevar a cabo
modelos se necesita una base hist
histrica de experiencias

Heisenberg al c
clculo de las medidas
Es imposible determinar
simultneamente la posicin y
velocidad exactas de un electrn

Efecto Hawthorne
La medida de cualquier parmetro
de un proyecto y su asociacin con
una evidencia significativa influir
en la utilidad de dicha medida

Calidad del Software

66

Calidad del Software

67

Calidad del Software


Introducci
Introduccin
Calidad de un producto
z

Calidad del
Software

Punto de vista subyacente:


Excelencia innata
Punto de vista del producto:
Contenidos del producto
Punto de vista del usuario:
Adecuaci
Adecuacin para el uso
Punto de vista industrial:
Conforme a requisitos
Punto de vista del valor del producto:
Dise
Diseo al coste

Calidad del Software

Calidad del Software


Introducci
Introduccin

Modelos de Calidad
Modelos de calidad del software

Diccionario de la Real Academia Espa


Espaola

Propiedad o conjunto de propiedades inherentes a una


cosa, que permiten apreciarla como igual, mejor o peor
que las restantes de su especie
especie

Calidad del software


z

IEEE

Intentan cuantificar la calidad del software


Se descompone la calidad en
niveles estructurados
Los distintos modelos se
diferencian por:
la relaci
relacin entre los niveles
la cantidad de niveles
los conceptos de cada nivel

Grado con el cual el cliente o usuario percibe que el


software satisface sus expectativas
expectativas

Calidad del Software

69

Calidad del Software

Calidad
z

Jos Luis Fuertes

Software

70

Calidad del Software

71

12

Calidad del Software

Calidad del Software

Modelos de Calidad

Modelo de Calidad ISO/IEC 9126

1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001

Modelo de Boehm
Modelo de McCall

ISO/IEC 9126:
z
z

Modelo de Arthur

ISO/IEC IS 91269126-1:2001

ISO/IEC TR 91269126-2:2003

ISO/IEC TR 91269126-3:2003

ISO/IEC TR 91269126-4:2004

Modelo de Schulmeyer

Modelo de Gillies / Modelo REBOOT

Modelo de Dromey

Jos Luis Fuertes

72

External Metrics (1(1-7-2003)


Internal Metrics (1(1-7-2003)
Quality in use Metrics (1(1-4-2004)

Calidad del Software

Jos Luis Fuertes

Calidad del Software

Calidad del Software

Modelo de Calidad ISO/IEC 91269126-1

Modelo de Calidad ISO/IEC 91269126-1


z

Subdivisi
Subdivisin en 6 caracter
caractersticas
Caracter
Caractersticas

Subdivisi
Subdivisin en subcaracter
subcaractersticas

Calidad en el uso

Se muestran externamente al usar el software y son el


resultado de atributos internos
Son aplicables a cualquier tipo de software
Conceptos caracter
caractersticas
sticas y subcaracter
subcaractersticas
sticas
Proporcionan una terminolog
terminologa consistente para la calidad
del producto software
Proporcionan un marco para especificar requisitos de calidad
del software
Permiten definir compromisos entre capacidades del
producto software

Subdivisi
Subdivisin en 4 caracter
caractersticas

Calidad del Software

74

Calidad del Software

Calidad del Software


Modelo de Calidad ISO/IEC 91269126-1

Modelo de Calidad ISO/IEC 91269126-1


La calidad en el ciclo de vida

Efecto del
Producto Software

Producto Software

influye

depende de

Atributos
de calidad
interna

influye

depende de

Atributos
de calidad
externa

influye

depende de

Necesidades
de calidad

Atributos
de calidad
en el uso

medidas
internas

medidas
externas

Requisitos
de calidad
externa

medidas de
la calidad en
el uso

76

Calidad del Software

Calidad en
el uso
indica

validacin

contribuye
en especificar

Requisitos
de calidad
interna

Calidad del Software

uso y
realimentacin

contribuye
en especificar

contextos
de uso

medidas
del proceso

75

Calidad del Software

La calidad en el ciclo de vida


Proceso

73

Caracter
Caractersticas

Calidad interna y externa

Calidad
del
proceso

Quality Model (15(15-6-2001)

ISO 9126

Modelo en dos partes para la calidad del software

Modelo de Gilb / Modelo de Deutsch y Willis

Calidad del Software

Software Engineering Product Quality


4 partes:

Calidad
externa
indica

verificacin

Calidad
interna

77

13

Calidad del Software

Calidad del Software

Modelo de Calidad ISO/IEC 91269126-1

Modelo de Calidad ISO/IEC 91269126-1

Modelo de calidad externa e interna

Modelo de calidad en el uso


Calidad en el uso

Calidad externa
e interna

Funcionalidad

Fiabilidad

Usabilidad

Eficiencia

Mantenibilidad

Portabilidad

Adecuacin
Precisin
Interoperatividad
Seguridad

Madurez
Tolerancia a fallos
Recuperacin

Comprensibilidad
Aprendizaje
Operatividad
Atractivo

Comportamiento
temporal
Uso de recursos

Analizable
Modificable
Estabilidad
Fcil de probar

Adaptabilidad
Instalable
Co-existencia
Reemplazabilidad

Calidad del Software

Jos Luis Fuertes

78

Efectividad

Secuencia de pasos necesarios para desarrollar software


Establece el marco de trabajo t
tcnico y de gesti
gestin para
aplicar los m
mtodos, herramientas y el personal a la tarea
de la construcci
construccin de programas

80

Monitorizar, medir y revisar el rendimiento del proceso


est
estndar al ser aplicado sobre proyectos individuales
Todo el personal implicado en el proceso software debe
participar en las actividades de mejora
Es primordial fijar y perseguir objetivos cuantitativos y
medibles para mejorar el proceso, dirigiendo estos
objetivos a perfeccionar la calidad del producto
Debe establecerse un programa de mejora del proceso que
impulse a los desarrolladores a mejorar su propio proceso
de trabajo y a participar en las mejoras de sus compa
compaeros

Calidad del Software

Mejora del Proceso Software


Antecendentes

CMM
Una forma de discriminar entre niveles de madurez

del proceso es la habilidad de los desarrolladores y


gestores para ver y entender qu
qu es lo que ocurre
durante todo el proceso de desarrollo

Software Engineering Institute (SEI)


Capability Maturity Model (1991)

Establecer programas de mejora del proceso software


Indica los objetivos de las medidas a usar en cada nivel

Personal Software Process (1993)

Conseguir mejores Ingenieros del Software


Incluye algunas medidas b
bsicas y del proceso

Calidad del Software

81

Mejora del Proceso Software

Carnegie Mellon University (CMU)

79

Mejora del proceso software

Jos Luis Fuertes

Antecendentes

El proceso software

Calidad del Software

Satisfaccin

Mejora del Proceso Software

Antecendentes

Seguridad

Calidad del Software

Mejora del Proceso Software


z

Productividad

82

En el nivel inferior de madurez, no se comprende ni el


proceso, pero conforme crece la madurez, se comprende
y se puede definir mejor
Tanto las medidas como la habilidad para ver y entender
est
estn ntimamente relacionadas, puesto que un
desarrollador puede medir s
slo lo que resulta visible en
un proceso y las medidas ayudan a incrementar esa
visibilidad

Calidad del Software

83

14

Mejora del Proceso Software

Mejora del Proceso Software

CMM

PSP

El CMM puede servir como una gu


gua para

El PSP es un proceso de perfeccionamiento

determinar qu
qu medir primero y c
cmo planear un
plan de medidas comprensivo y adecuado
Tipos de medidas por nivel del CMM:

dise
diseado para ayudar a controlar, gestionar y
mejorar la forma de trabajar
Marco de trabajo estructurado con formularios,
gu
guas y procedimientos para desarrollar software
PSP proporciona los datos hist
histricos necesarios para
mejorar el proceso
Principal objetivo: conseguir mejores ingenieros del
software

Nivel de Madurez
1. Inicial:

Caractersticas

Objetivo de las Medidas

Ad hoc, catico

Establecer las bases para planear y estimar

2. Repetible:

Los procesos dependen de los


individuos

Seguimiento y control del proyecto

3. Definido:

Los procesos se definen y se


institucionalizan

Definicin y cuantificacin de los


procesos y productos intermedios

4. Gestionable:

Se miden los procesos

Definicin, cuantificacin y control de los


subprocesos y los elementos

5. Optimizado:

Los procesos se retroalimentan


con las mejoras

Optimizacin dinmica y mejora durante


el proyecto

Calidad del Software

Jos Luis Fuertes

84

Calidad del Software

Mejora del Proceso Software

Jos Luis Fuertes

Mejora del Proceso Software

PSP

PSP

Permite comprender por qu


qu se han cometido

El PSP est
est dividido en cuatro fases:
z

errores y cu
cul es la mejor forma de encontrarlos
Se puede determinar la calidad de las revisiones, los

PSP0, PSP1, PSP2 y PSP3


Fases intermedias de mejora: PSP0.1, PSP1.1 y PSP2.1
PSP3
Desarrollo cclico

Proceso
personal
cclico

tipos de errores no detectados y los m


mtodos m
ms
efectivos para cada ingeniero

PSP2
Revisiones del cdigo
Revisiones del diseo

Gestin
personal
de calidad

Proceso
personal de
planificacin

Proceso
personal
bsico

Calidad del Software

85

86

PSP1
Estimacin del tamao
Informe de pruebas

PSP0
Proceso actual
Registro del tiempo
Registro de defectos
Estndar de tipos de defectos

PSP2.1
Plantillas de diseo

PSP1.1
Planificacin de tareas
Planificacin de tiempos

PSP0.1
Estndar de codificacin
Medidas del tamao
Propuesta de mejora del proceso

Calidad del Software

87

Conclusiones
La calidad del software puede verse como un

problema econ
econmico
z

Conclusiones

Aunque es fundamental obtener un software de calidad,


cada medida, cada test, cada revisi
revisin consume tiempo
y dinero

Si se desea un software de alta calidad, hay que

asegurarse de que cada una de sus partes tenga alta


calidad

Calidad del Software

89

15

Conclusiones

Conclusiones

Razones para la lentitud en la adopci


adopcin del uso de

ISO/IEC 91269126-1: Modelo de Calidad del Software

medidas para evaluar la calidad del software:

No existen medidas de la calidad del software


universales

Existen algunas medidas tiles para ciertos entornos


Existir
Existirn medidas de calidad ampliamente aceptadas, cuando
madure la investigaci
investigacin en medidas de calidad del software

Incluso sabiendo qu
qu medidas usar, no es f
fcil obtener
los datos
Incluso con los datos, no es obvio c
cmo interpretar y
usar los n
nmeros
La gente se resiste a que se mida la calidad de su trabajo

Calidad del Software

90

Los est
estndares, por s
s solos, no son suficientes
Se necesita una disciplina para aplicarlos
Si no se comprende el proceso del negocio, no resultar
resultar
til aplicar ning
ningn m
mtodo de evaluaci
evaluacin de la calidad ni
de mejora del proceso

La medida de los atributos del software puede

usarse para predecir o medir indirectamente la


calidad del software

Calidad del Software

91

16

S-ar putea să vă placă și