Está en la página 1de 16

X Reunin de Responsables de Sistemas Reuni de Informacin Informaci

La Antigua, Guatemala 22-25 de septiembre de 2008 22-

Contenidos
1. 2.

Introduccin Introducci Control y Garanta de la Calidad del Software Garant


Controles estticos y dinmicos est din Actividades constructivas de la calidad 3. El coste de la calidad
1. 2.

3.

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

Calidad del Software


4.

Calidad del Software


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

Jos Luis Fuertes Castro

Facultad de Informtica Inform

Universidad Politcnica de Madrid Polit

5.

Conclusiones
Jos Luis Fuertes 1

Calidad del Software

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

Introduccin

Importancia profesional y personal de la Informtica Inform


Disminuye el precio del hardware Aumenta la demanda de nuevas aplicaciones
Calidad del Software Jos Luis Fuertes 3

Introduccin Introducci
Sistemas cada vez ms sofisticados y complejos m Se ha pasado de ser una herramienta para la resolucin de problemas a una industria resoluci Caractersticas del software Caracter
El software se desarrolla, no se fabrica El software no se estropea Aunque la industria tiende a ensamblar componentes, la mayora del software se construye a medida mayor

Introduccin Introducci
Un poco de historia...
Aos 40 Fundamentos de la computacin moderna computaci Principios de los 60 Consolidacin del desarrollo de Consolidaci software de aplicaciones relativamente grandes Finales de los 60 Crisis del software
Imposibilidad de desarrollar proyectos de una dimensin dimensi acorde con los avances tecnolgicos de la poca tecnol

1968 El comit cientfico de la OTAN patrocina una comit cient conferencia en Alemania, para identificar, clasificar y discutir los problemas que se producan en el desarrollo produc de grandes proyectos
Resultado: el desarrollo del software es una tarea de ingeniera (se acua el trmino de Ingeniera del Software) ingenier acu t Ingenier Software)

Calidad del Software

Jos Luis Fuertes

Calidad del Software

Jos Luis Fuertes

Introduccin Introducci
Ingeniera: Ingenier
Diccionario de la Real Academia Espaola: Espa ola: Conjunto de conocimientos y tcnicas que permiten t aplicar el saber cientfico a la utilizacin de la materia cient utilizaci y de las fuentes de energa energ Boehm, 1976 Boehm,

Introduccin Introducci
Ingeniera del Software: Ingenier
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:
Diccionario de la Real Academia Espaola: Espa ola: Conjunto de programas, instrucciones y reglas informticas para ejecutar ciertas tareas en una inform computadora computadora IEEE, 1993

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

Calidad del Software

Jos Luis Fuertes

Calidad del Software

Jos Luis Fuertes

Introduccin Introducci
El producto software:
Es un sistema software desarrollado para un cliente con la documentacin que describe cmo instalar y usar el documentaci c sistema Objetivo de la Ingeniera del Software Ingenier
Producir productos software

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

Actividad compleja, muchas actividades distintas


Calidad del Software Jos Luis Fuertes 8 Calidad del Software Jos Luis Fuertes 9

Introduccin Introducci
El software no es perfecto

Introduccin Introducci
Las causas de los fallos informticos pueden ser inform muy diversas:
Especificaciones incorrectas o incompletas Anlisis equivocados An Diseos con fallos Dise Programacin con errores Programaci Validacin poco precisa Validaci

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

Calidad del Software

Jos Luis Fuertes

10

Calidad del Software

Jos Luis Fuertes

11

Introduccin Introducci
Actualmente se usa el software en gran diversidad de mbitos Los defectos del software pueden causar importantes problemas e, incluso, daos fsicos da f
Los defectos en programas financieros o editores son poco importantes, poco costosos y nadie sale herido Cuando el software pilota aviones, conduce autos, pilota conduce controla el trfico areo o vigila centrales nucleares, controla tr a vigila los defectos pueden ser muy peligrosos

Introduccin Introducci
La solucin al problema es la calidad soluci
Cundo tiene buena calidad el software? Cu Qu caractersticas influyen al determinar la calidad del Qu caracter software? Cmo medir la calidad del software? Cmo controlar y garantizar la calidad del software?

Calidad del Software

Jos Luis Fuertes

12

Calidad del Software

Jos Luis Fuertes

13

Introduccin Introducci
Es necesario medir la calidad... ...pero es una tarea difcil dif Por qu medir? qu
Si algo puede ser medido y expresado con nmeros, entonces se sabe algo acerca de ello No se puede controlar lo que no se puede medir

Control y Garanta de la Calidad

Kelvin
Calidad del Software Jos Luis Fuertes

DeMarco
14

Control de la Calidad
Objetivos:
Comprobar si un producto posee una determinada caracterstica de calidad en el grado requerido caracter
Si no es as, tiene un defecto as

Control de la Calidad
Controles Estticos Est
Controles manuales
Informales
Por los autores del desarrollo o por personal equivalente
Comprobacin de escritorio (desk checking) Comprobaci (desk checking) Revisin por pares (peer review) Revisi (peer review)

Identificar defectos y corregirlos

Actividades de control:
Controles estticos est
Analizan el producto sin necesidad de ejecutarlo

Disciplinados
Son tcnicas de grupo t
Auditoras Auditor Revisiones

Controles dinmicos din


Analizan el producto durante su funcionamiento

Controles automticos autom


Sistemas informticos o con un proceso algortmico inform algor
Anlisis esttico automtico An est autom Verificacin formal Verificaci

Calidad del Software

Jos Luis Fuertes

16

Calidad del Software

Jos Luis Fuertes

17

Control de la Calidad
Controles Dinmicos Din
Tipos de pruebas
Prueba modular
Se prueba cada mdulo aislado del resto del sistema m

Garanta de Calidad Garant


Definicin Definici
Conjunto de actividades de planificacin, estimacin y planificaci estimaci supervisin del proceso de desarrollo, que se realizan de supervisi 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 integracin integraci


Se prueba que las interfaces entre los mdulos son correctas m

Prueba de sistema
Se prueba si el sistema satisface todos los requisitos del usuario

Prueba de aceptacin aceptaci


Su objetivo es demostrar al usuario que el sistema satisface sus necesidades

Prueba de regresin regresi


Se comprueba que la nueva versin del producto no es de versi menos calidad que la anterior
Calidad del Software Jos Luis Fuertes 18 Calidad del Software Jos Luis Fuertes 19

Garanta de Calidad Garant


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

Garanta de Calidad Garant


Actividades Constructivas
Herramientas y entornos de desarrollo
Las herramientas CASE (Computer Aided Software (Computer Engineering) facilitan la produccin de software Engineering) producci Los modernos entornos de desarrollo han simplificado el proceso de implementacin implementaci

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

Lenguajes de programacin programaci


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

Calidad del Software

Jos Luis Fuertes

20

Garanta de Calidad Garant


Actividades Constructivas
Documentacin Documentaci
Juega un papel esencial Caractersticas importantes: consistencia, claridad, Caracter comprensibilidad, completitud...

Garanta de Calidad Garant


El Coste de la Calidad
Intervienen dos factores:
Prevencin de errores Prevenci Deteccin de defectos Detecci
Distribucin de defectos detectados segn la fase en la que se Distribuci seg cometieron:
7% 10%
Especificacin Diseo Codificacin

Factores humanos
Factores a considerar: cultura de la organizacin, organizaci comunicacin, entorno fsico, formacin, motivacin, comunicaci f formaci motivaci direccin, liderazgo... direcci

Otros
Estndares y convenciones, ejemplos y patrones, gestin Est gesti de configuracin, control del cdigo, gestin de configuraci c gesti problemas...
Calidad del Software Jos Luis Fuertes 22

27%

56%

Otros

Calidad del Software

Jos Luis Fuertes

23

Garanta de Calidad Garant


El Coste de la Calidad
Intervienen dos factores:
Prevencin de errores Prevenci Deteccin de defectos Detecci
Porcentaje, sobre el coste total de correccin de los defectos, segn la correcci seg fase en la que se cometieron:
13% 1%4%
Especificacin Diseo Codificacin Otros

Garanta de Calidad Garant


El Coste de la Calidad
Intervienen dos factores:
Prevencin de errores Prevenci Deteccin de defectos Detecci
Coste de correccin segn la fase en la que se detectaron los defectos: correcci seg
17.500 $ 15.000 $ 12.500 $ 10.000 $ 7.500 $ 5.000 $ 2.500 $ 0$ Anlisis Diseo Codificacin Pruebas Implantacin

82%

Calidad del Software

Jos Luis Fuertes

24

Calidad del Software

Jos Luis Fuertes

25

Introduccin a las Medidas Introducci


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

Medidas

Calidad del Software

Jos Luis Fuertes

27

Introduccin a las Medidas Introducci


Definiciones
Medir
Diccionario de la Real Academia Espaola: Espa ola:
Comparar una cantidad con su respectiva unidad, con el fin de averiguar cuntas veces la segunda est contenida en la primera cu est

Medidas
Qu Miden los Ingenieros? Qu
La ingeniera puede definirse como el proceso que ingenier produce productos tiles Puede describirse lo que miden los ingenieros en dos categoras: categor
Medidas del producto Medidas del proceso

Medida
Diccionario de la Real Academia Espaola: Espa ola:
Accin y efecto de medir Acci Expresin del resultado de una medicin Expresi medici Cada una de las unidades que se emplean para medir longitudes, reas o volmenes de lquidos o ridos vol l

Calidad del Software

Jos Luis Fuertes

28

Calidad del Software

Jos Luis Fuertes

29

Medidas
Qu Miden los Ingenieros? Qu
Medidas del producto
Medidas estticas est
Pueden calcularse cuando el objeto no est en uso est Tamao, longitud, altura, anchura, peso, capacidad, Tama volumen...

Medidas
Qu Miden los Ingenieros? Qu
Medidas del proceso
Se usan para cuantificar la actividad humana de la ingeniera ingenier Ejemplos:
Tamao de un equipo de desarrollo, esfuerzo, tiempo, coste, Tama productividad...

Medidas dinmicas din


Describen el comportamiento de un objeto mientras est en est uso Velocidad, consumo, disipacin de calor, nivel de ruido... disipaci

Calidad del Software

Jos Luis Fuertes

30

Calidad del Software

Jos Luis Fuertes

31

Medidas
Por qu Miden los Ingenieros? qu
Para describir el estado actual del mundo
Cada medida describe un aspecto concreto del estado del mundo hoy Si se mide el estado del mundo peridicamente, puede peri ser posible descubrir patrones y tendencias
Permite dar explicaciones del comportamiento del mundo real
Leyes o teoras cientficas teor cient

Medidas
Por qu Miden los Ingenieros? qu
Para establecer los requisitos cuantitativamente y demostrar su cumplimiento
No puede imaginarse un proyecto de ingeniera sin ingenier requisitos cuantitativos
Construccin de un puente (longitud, altura, carga mxima, Construcci m caudal del ro...) r Pequeos electrodomsticos (tamao, peso, coste...) Peque electrodom (tama Vehculos (peso, consumo, espacio interior, espacio para Veh equipaje, resistencia a los impactos...) Software (tiempo de respuesta, memoria ocupada...)...

Los ingenieros pretenden descubrir:


el comportamiento de los sistemas que disean y construyen dise las tendencias en el propio proceso de ingeniera ingenier

Para demostrar que se cumplen los requisitos cuantitativos, es necesario medir


Calidad del Software Jos Luis Fuertes 33

Calidad del Software

Jos Luis Fuertes

32

Medidas
Por qu Miden los Ingenieros? qu
Para realizar un seguimiento del progreso y predecir los resultados
Las mediciones peridicas de lo que se va obteniendo peri permite realizar un seguimiento cuantitativo del proyecto
Pueden ponerse de manifiesto tendencias inusuales que, al detectarlas, pueden corregirse

Medidas
Por qu Miden los Ingenieros? qu
Para analizar costes y beneficios
El corazn de la ingeniera: el compromiso coraz ingenier
Hay muchas formas de disear productos y muchas formas dise de disear sus componentes dise Cada diseo tiene ventajas y desventajas dise El ingeniero debe valorarlas todas y establecer un compromiso entre unas y otras
A veces se acepta una cualidad negativa para favorecer otra cualidad A veces se acepta menos de un atributo deseable para obtener ms m de otro atributo deseable
Ej.: Coche: se deben establecer compromisos entre peso, economa, econom espacio del habitculo, confort y precio habit
Calidad del Software Jos Luis Fuertes 35

Los ingenieros del software cuentan el nmero de n defectos encontrados durante las pruebas para calibrar los modelos de fiabilidad
Pueden predecir cundo se completarn las pruebas y cundo cu completar cu se alcanzar el nivel de fiabilidad requerido alcanzar

Calidad del Software

Jos Luis Fuertes

34

Medidas
Cmo Miden los Ingenieros?
Tradicionalmente, los ingenieros usan instrumentos Los instrumentos pueden proporcionar medidas errneas err
La exactitud de un instrumento es una indicacin de la indicaci diferencia entre la lectura del instrumento y los datos de entrada La precisin de un instrumento es una indicacin de lo precisi indicaci repetible que resulta una medicin con una exactitud medici determinada

Medidas
Cmo Miden los Ingenieros?
Muestreo
Seleccin y medida de una parte representativa de la Selecci poblacin para deducir parmetros o caractersticas de poblaci par caracter toda la poblacin. poblaci
Se usa cuando es imposible o poco prctico medir a toda la pr poblacin poblaci

Ejemplo
Control de calidad en un proceso de fabricacin fabricaci
Se elige uno de cada 1000 productos y se realizan medidas Utilizando varias tcnicas estadsticas, se extraen conclusiones t estad acerca de todos los productos a partir de las medidas realizadas en los productos seleccionados

Calidad del Software

Jos Luis Fuertes

36

Calidad del Software

Jos Luis Fuertes

37

Teora de Medidas Teor


Medidas y Mtricas M
Informalmente:
Medida
Forma perfectamente definida de asociar valores numricos a num los atributos de los elementos de una entidad

Teora de Medidas Teor


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

Mtrica
Criterio para determinar la diferencia o distancia entre dos entidades

Cada objeto tiene una y solo una medida

Calidad del Software

Jos Luis Fuertes

38

Calidad del Software

Jos Luis Fuertes

39

Teora de Medidas Teor


Medidas y Mtricas M
Matemticamente: Matem
Mtrica:
Sea A un conjunto de objetos Sea el conjunto de nmeros reales n 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 m(x, z) m(x, y) + m(y, z), x, y, z A

Teora de Medidas Teor


Medidas y Mtricas M
Este concepto de mtrica como distancia entre trica dos entidades tiene muy poco sentido en el mundo del software En cambio, s tiene sentido calcular una medida s para dos productos y compararlas Mtrica del Software Medida del Software

Calidad del Software

Jos Luis Fuertes

40

Calidad del Software

Jos Luis Fuertes

41

Teora de Medidas Teor


Barrera intelectual
Objetos del mundo real, relaciones, operaciones
barrera intelectual medicin

Medidas en Ingeniera del Sw. Ingenier Sw.


Es bueno un programa? Cmo de fiable ser el sistema una vez instalado? ser Cuntos errores se esperan encontrar? Cu Cuntas pruebas tengo que hacer? Cu Cul ser el coste de las pruebas? Cu ser Ser difcil mantener el sistema? Ser dif Cunto costar construir un sistema similar al que Cu costar constru hace 5 aos? constru a Cunto tardar en desarrollar el sistema? Cu tardar ...
Calidad del Software Jos Luis Fuertes 43

Objetos numricos, relaciones, operaciones

matemticas, estadstica

Resultados relevantes al mundo real

interpretacin

Resultados numricos

Calidad del Software

Jos Luis Fuertes

42

Medidas en Ingeniera del Sw. Ingenier Sw.


Los ingenieros del software se enfrentan diariamente a estas preguntas La habilidad para realizar las medidas apropiadas es fundamental para los ingenieros del software Tambin es importante saber cmo medir Tambi c Es un rea de investigacin candente en Ingeniera investigaci Ingenier del Software
No hay resultados estndar universalmente aceptados en est el terreno de las medidas del software

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplo de medida de tamao del software tama
Lneas de cdigo fuente (LOC) c
#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

Jos Luis Fuertes

44

Calidad del Software

Jos Luis Fuertes

45

Medidas en Ingeniera del Sw. Ingenier Sw.

Medidas en Ingeniera del Sw. Ingenier Sw.


Caractersticas deseables de las medidas Caracter
Deben ser sencillas y estar definidas con precisin precisi Deben ser objetivas Deben ser fciles de obtener f Deben ser vlidas v Deben ser robustas Deben definir sus valores y sus lmites l Los conjuntos de medidas deben ser consistentes

25 N 20 15 de 10 5 votos 0 1 2 3 4 5 6 7 8 9
N de lneas de cdigo fuente

Calidad del Software

Jos Luis Fuertes

46

Calidad del Software

Jos Luis Fuertes

47

Medidas en Ingeniera del Sw. Ingenier Sw.


Necesidad de las medidas del software
Solucionar los problemas del software
Estimaciones de tiempo y costes ms precisas m Mayor productividad Productos de mejor calidad

Medidas en Ingeniera del Sw. Ingenier Sw.


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

Gestin del software no es efectiva Gesti


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 parmetros fundamentales par

Calidad del Software

Jos Luis Fuertes

48

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Complejidad de McCabe [McCabe, 1976] McCabe,
nmero de caminos de ejecucin posibles en un ejecuci programa v(G) = e - n + 2 p
e: bifurcaciones n: nodos con cdigo secuencial c p: nmero de grafos inconexos n

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Complejidad de McCabe [McCabe, 1976] McCabe,
1
1 6

5
5

v(G) = + 1
: nmero de predicados n
v(G) = 18 - 12 + 2 = 8

8
8

11

9
Calidad del Software Jos Luis Fuertes 50 Calidad del Software

10
Jos Luis Fuertes

12
51

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Ciencia del Software [Halstead, 1977] [Halstead,
Conjunto de medidas y estimaciones sobre el cdigo c fuente Medidas
Contenido de Inteligencia Nivel del Programa Longitud del Programa Volumen del Programa Dificultad Esfuerzo

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Complejidad del control de flujo [Woodward, 1979]
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
Jos Luis Fuertes 53

5 10

20 25
Calidad del Software Jos Luis Fuertes 52 Calidad del Software

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Flujo de informacin [Henry y Kafura, 1981] informaci Kafura,
Complejidad interna (Cip) de un mdulo p: (C m
Nmero de lneas de cdigo (LOC) de dicho mdulo, l c m longitud de Halstead, complejidad ciclomtica... Halstead, ciclom tica...

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Ley de Demeter [Lieberherr, 1988] Lieberherr,
Para todas las clases C y todos los mtodos M de C, m todos los objetos a los que M enva mensajes deben ser: env
Los objetos que son argumentos de M (incluyendo el propio objeto de la clase C) Los objetos que son atributos de C

Fan-in de un mdulo p: Fanm


Nmero de flujos de datos entrando al mdulo p m

Fan-out de un mdulo p: Fanm


Nmero de flujos de datos saliendo del mdulo p m

Medida:
Nmero de veces que se viola la ley

Complejidad del flujo de informacin de un mdulo p informaci m (Cp):


Cp = Cip (fan-in fan-out)2 (fanfanCalidad del Software Jos Luis Fuertes 54 Calidad del Software Jos Luis Fuertes 55

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber y [Chidamber Kemerer, 1991] Kemerer,
WMC (Weighted Methods per Class) (Weighted Class)
Suma ponderada de la complejidad de cada uno de los mtodos de una clase
Sea la clase C con sus mtodos M1, M2..., Mn m Sea c1, c2..., cn la complejidad de cada mtodo m Entonces, para dicha clase C:

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber y [Chidamber Kemerer, 1991] Kemerer,
DIT (Depth of Inheritance Tree) (Depth Tree)
Profundidad de una clase C en el rbol de herencia DIT es una medida de cuntas superclases pueden afectar cu potencialmente a cada clase Medida: contar los niveles del grafo de herencia

WMC = c i
i =1

Calidad del Software

Jos Luis Fuertes

56

Calidad del Software

Jos Luis Fuertes

57

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber y [Chidamber Kemerer, 1991] Kemerer,
NOC (Number of Children) (Number Children)
Nmero de clases subordinadas inmediatamente a una clase NOC es una medida de cuntas clases heredarn los mtodos cu heredar m de la clase padre Est relacionada con la nocin del alcance de los miembros Est noci Medida: contar los hijos directos de una clase con una relacin de herencia relaci

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber y [Chidamber Kemerer, 1991] Kemerer,
CBO (Coupling Between Objects classes) (Coupling classes)
Cantidad de clases a la que est acoplada (nmero de objetos est (n que actan sobre otro) act Relacionada con la nocin de que un objeto est acoplado noci est con otro si uno de ellos acta sobre el otro (si los mtodos de act m uno usan mtodos o atributos del otro) m

Calidad del Software

Jos Luis Fuertes

58

Calidad del Software

Jos Luis Fuertes

59

10

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber y [Chidamber Kemerer, 1991] Kemerer,
RFC (Response For a Class) (Response Class)
Conjunto de mtodos de una clase que potencialmente m pueden ejecutarse como respuesta a la llegada de un mensaje recibido en un objeto de esa clase Medida:
M: conjunto de todos los mtodos de la clase C m Ri: conjunto de los mtodos llamados por el mtodo i m m

Medidas en Ingeniera del Sw. Ingenier Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber y [Chidamber Kemerer, 1991] Kemerer,
LCOM (Lack of Cohesion Of Methods) (Lack Methods)
Proporciona una medida de la relativa disparidad natural de los mtodos de una clase m

RFC = MU R i
i
Calidad del Software Jos Luis Fuertes 60 Calidad del Software Jos Luis Fuertes 61

Medidas en Ingeniera del Sw. Ingenier Sw.


Clasificaciones de Medidas del Software
Clasificacin basada en los elementos que se miden Clasificaci [Henry]:
Medidas Lxicas
Se basan en contar tokens

Medidas en Ingeniera del Sw. Ingenier Sw.


Clasificaciones de Medidas del Software
Clasificacin de las medidas del producto [Kafura]: Clasificaci [Kafura]:
Medidas de la Estructura
Se basa en el anlisis de la estructura del diseo an dise

Medidas del Cdigo


Se basan en los detalles del cdigo fuente c

Medidas Semnticas Sem


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

Medidas Hbridas
Se basan tanto en detalles de implementacin como en la implementaci estructura del diseo dise

Medidas de Conectividad
Miden el grado de interconectividad entre los componentes del sistema observando el flujo de informacin entre ellos informaci

Calidad del Software

Jos Luis Fuertes

62

Calidad del Software

Jos Luis Fuertes

63

Medidas en Ingeniera del Sw. Ingenier Sw.


Principios de las medidas del software:
Medir es un mecanismo ideal para caracterizar, evaluar, predecir y proporcionar motivacin para los diversos motivaci aspectos de los procesos de construccin del software construcci Las medidas deben aplicarse tanto sobre el proceso software como en el producto Debe estar claramente indicado el propsito de cada prop 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 Jos Luis Fuertes 64

Medidas en Ingeniera del Sw. Ingenier Sw.


Principios de las medidas del software:
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 anlisis an contextuales vlidos y proporcionar retroalimentacin v retroalimentaci para el aprendizaje y el seguimiento
Calidad del Software Jos Luis Fuertes 65

11

Medidas en Ingeniera del Sw. Ingenier Sw.


Principios de las medidas del software:
Las medidas deben asociarse con interpretaciones, pero estas interpretaciones deben corresponder con un determinado contexto Se necesitan mltiples mecanismos para la recopilacin y m recopilaci validacin de datos validaci Para evaluar y comparar proyectos y para llevar a cabo modelos se necesita una base histrica de experiencias hist

Medidas en Ingeniera del Sw. Ingenier Sw.


Aplicacin del principio de incertidumbre de Aplicaci Heisenberg al clculo de las medidas c
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

Jos Luis Fuertes

66

Calidad del Software

Jos Luis Fuertes

67

Calidad del Software


Introduccin Introducci
Calidad de un producto
Punto de vista subyacente: Excelencia innata Punto de vista del producto: Contenidos del producto Punto de vista del usuario: Adecuacin para el uso Adecuaci Punto de vista industrial: Conforme a requisitos Punto de vista del valor del producto: Diseo al coste Dise
Calidad del Software Jos Luis Fuertes

Calidad del Software

Software

69

Calidad del Software


Introduccin Introducci
Calidad
Diccionario de la Real Academia Espaola Espa
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


Modelos de Calidad
Modelos de calidad del software
Intentan cuantificar la calidad del software Se descompone la calidad en niveles estructurados Los distintos modelos se diferencian por:
la relacin entre los niveles relaci la cantidad de niveles los conceptos de cada nivel

Calidad del software


IEEE
Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas expectativas

Calidad del Software

Jos Luis Fuertes

70

Calidad del Software

Jos Luis Fuertes

71

12

Calidad del Software


Modelos de Calidad
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

Calidad del Software


Modelo de Calidad ISO/IEC 9126
ISO/IEC 9126:
Software Engineering Product Quality 4 partes:

Modelo de Boehm Modelo de McCall

Modelo de Arthur

ISO/IEC IS 9126-1:2001 9126Quality Model (15-6-2001) (15-

Modelo de Gilb / Modelo de Deutsch y Willis Modelo de Schulmeyer Modelo de Gillies / Modelo REBOOT Modelo de Dromey

ISO/IEC TR 9126-2:2003 9126External Metrics (1-7-2003) (1-

ISO/IEC TR 9126-3:2003 9126Internal Metrics (1-7-2003) (1-

ISO/IEC TR 9126-4:2004 9126Quality in use Metrics (1-4-2004) (1ISO 9126 Jos Luis Fuertes 72 Calidad del Software Jos Luis Fuertes 73

Calidad del Software

Calidad del Software


Modelo de Calidad ISO/IEC 9126-1 9126Modelo en dos partes para la calidad del software
Calidad interna y externa
Subdivisin en 6 caractersticas Subdivisi caracter Caractersticas Caracter
Subdivisin en subcaractersticas Subdivisi subcaracter

Calidad del Software


Modelo de Calidad ISO/IEC 9126-1 9126Caractersticas Caracter
Se muestran externamente al usar el software y son el resultado de atributos internos Son aplicables a cualquier tipo de software Conceptos caractersticas y subcaractersticas caracter sticas subcaracter sticas
Proporcionan una terminologa consistente para la calidad terminolog del producto software Proporcionan un marco para especificar requisitos de calidad del software Permiten definir compromisos entre capacidades del producto software

Calidad en el uso
Subdivisin en 4 caractersticas Subdivisi caracter

Calidad del Software

Jos Luis Fuertes

74

Calidad del Software

Jos Luis Fuertes

75

Calidad del Software


Modelo de Calidad ISO/IEC 9126-1 9126La calidad en el ciclo de vida
Proceso Producto Software Efecto del Producto Software
influye

Calidad del Software


Modelo de Calidad ISO/IEC 9126-1 9126La calidad en el ciclo de vida
Necesidades de calidad
contribuye en especificar uso y realimentacin

Calidad en el uso
indica

influye

Calidad del proceso

depende de

Atributos de calidad interna

influye

depende de

Atributos de calidad externa

depende de

Atributos de calidad en el uso


contextos de uso

medidas del proceso

medidas internas

medidas externas

medidas de la calidad en el uso

Requisitos de calidad externa


contribuye en especificar

validacin

Calidad externa
indica

Requisitos de calidad interna

verificacin

Calidad interna

Calidad del Software

Jos Luis Fuertes

76

Calidad del Software

Jos Luis Fuertes

77

13

Calidad del Software


Modelo de Calidad ISO/IEC 9126-1 9126Modelo de calidad externa e interna
Calidad externa e interna

Calidad del Software


Modelo de Calidad ISO/IEC 9126-1 9126Modelo de calidad en el uso
Calidad en el uso

Funcionalidad

Fiabilidad

Usabilidad

Eficiencia

Mantenibilidad

Portabilidad

Efectividad

Productividad

Seguridad

Satisfaccin

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

Calidad del Software

Jos Luis Fuertes

79

Mejora del Proceso Software


Antecendentes
El proceso software
Secuencia de pasos necesarios para desarrollar software Establece el marco de trabajo tcnico y de gestin para t gesti aplicar los mtodos, herramientas y el personal a la tarea m de la construccin de programas construcci

Mejora del Proceso Software


Antecendentes
Mejora del proceso software
Monitorizar, medir y revisar el rendimiento del proceso estndar al ser aplicado sobre proyectos individuales est 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 compaeros compa
Calidad del Software Jos Luis Fuertes 81

Calidad del Software

Jos Luis Fuertes

80

Mejora del Proceso Software


Antecendentes
Carnegie Mellon University (CMU) 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

Mejora del Proceso Software


CMM
Una forma de discriminar entre niveles de madurez del proceso es la habilidad de los desarrolladores y gestores para ver y entender qu es lo que ocurre qu durante todo el proceso de desarrollo
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 estn ntimamente relacionadas, puesto que un est desarrollador puede medir slo lo que resulta visible en s un proceso y las medidas ayudan a incrementar esa visibilidad
82 Calidad del Software Jos Luis Fuertes 83

Personal Software Process (1993)


Conseguir mejores Ingenieros del Software Incluye algunas medidas bsicas y del proceso b

Calidad del Software

Jos Luis Fuertes

14

Mejora del Proceso Software


CMM
El CMM puede servir como una gua para gu determinar qu medir primero y cmo planear un qu c plan de medidas comprensivo y adecuado Tipos de medidas por nivel del CMM:
Nivel de Madurez 1. Inicial: 2. Repetible: 3. Definido: 4. Gestionable: 5. Optimizado:
Calidad del Software

Mejora del Proceso Software


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

Caractersticas Ad hoc, catico Los procesos dependen de los individuos Los procesos se definen y se institucionalizan Se miden los procesos

Objetivo de las Medidas Establecer las bases para planear y estimar Seguimiento y control del proyecto Definicin y cuantificacin de los procesos y productos intermedios Definicin, cuantificacin y control de los subprocesos y los elementos Optimizacin dinmica y mejora durante el proyecto
Jos Luis Fuertes 84

Los procesos se retroalimentan con las mejoras

Calidad del Software

Jos Luis Fuertes

85

Mejora del Proceso Software


PSP
Permite comprender por qu se han cometido qu errores y cul es la mejor forma de encontrarlos cu Se puede determinar la calidad de las revisiones, los tipos de errores no detectados y los mtodos ms m m efectivos para cada ingeniero

Mejora del Proceso Software


PSP
El PSP est dividido en cuatro fases: est
PSP0, PSP1, PSP2 y PSP3 Fases intermedias de mejora: PSP0.1, PSP1.1 y PSP2.1
Proceso personal cclico PSP3 Desarrollo cclico

Gestin personal de calidad

PSP2 Revisiones del cdigo Revisiones del diseo

PSP2.1 Plantillas de diseo

Proceso personal de planificacin

PSP1 Estimacin del tamao Informe de pruebas

PSP1.1 Planificacin de tareas Planificacin de tiempos

Proceso personal bsico

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

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

Calidad del Software

Jos Luis Fuertes

86

Calidad del Software

Jos Luis Fuertes

87

Conclusiones
La calidad del software puede verse como un problema econmico econ
Aunque es fundamental obtener un software de calidad, cada medida, cada test, cada revisin consume tiempo revisi y dinero

Conclusiones

Si se desea un software de alta calidad, hay que asegurarse de que cada una de sus partes tenga alta calidad

Calidad del Software

Jos Luis Fuertes

89

15

Conclusiones
Razones para la lentitud en la adopcin del uso de adopci medidas para evaluar la calidad del software:
No existen medidas de la calidad del software universales
Existen algunas medidas tiles para ciertos entornos Existirn medidas de calidad ampliamente aceptadas, cuando Existir madure la investigacin en medidas de calidad del software investigaci

Conclusiones
ISO/IEC 9126-1: Modelo de Calidad del Software 9126Los estndares, por s solos, no son suficientes est s Se necesita una disciplina para aplicarlos Si no se comprende el proceso del negocio, no resultar resultar til aplicar ningn mtodo de evaluacin de la calidad ni ning m evaluaci de mejora del proceso

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

La medida de los atributos del software puede usarse para predecir o medir indirectamente la calidad del software

Calidad del Software

Jos Luis Fuertes

91

16