Está en la página 1de 16

X Reuni Reunin de Responsables de Sistemas de Informaci Informacin

La Antigua, Guatemala 2222-25 de septiembre de 2008

Contenidos
1. 2.

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.

Jos Luis Fuertes Castro

Facultad de Inform Informtica

Universidad Polit Politcnica de Madrid

5.

Conclusiones
Jos Luis Fuertes 1

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


Jos Luis Fuertes 3

Calidad del Software

Introducci Introduccin
Sistemas cada vez m ms sofisticados y complejos Se ha pasado de ser una herramienta para la
z z

Introducci Introduccin
Un poco de historia...

resoluci resolucin de problemas a una industria Caracter Caractersticas del software


z z z

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

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

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

Resultado: el desarrollo del software es una tarea de ingenier ingeniera (se acu acua el t trmino de Ingenier Ingeniera del Software) Software)
Jos Luis Fuertes 5

Calidad del Software

Jos Luis Fuertes

Calidad del Software

Introducci Introduccin
Ingenier Ingeniera:
z

Introducci Introduccin
Ingenier Ingeniera del Software:
z

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

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 z

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

Introducci Introduccin
El producto software:
z

Introducci Introduccin
El proceso software:
z

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 Jos Luis Fuertes 8

Actividad compleja, muchas actividades distintas


Jos Luis Fuertes 9

Calidad del Software

Introducci Introduccin
El software no es perfecto

Introducci Introduccin
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

Especificaciones incorrectas o incompletas An Anlisis equivocados Dise Diseos con fallos Programaci Programacin con errores Validaci Validacin poco precisa

Calidad del Software

Jos Luis Fuertes

10

Calidad del Software

Jos Luis Fuertes

11

Introducci Introduccin
Actualmente se usa el software en gran diversidad

Introducci Introduccin
La soluci solucin al problema es la calidad
z z

de mbitos Los defectos del software pueden causar importantes problemas e, incluso, da daos f fsicos
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

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

Jos Luis Fuertes

12

Calidad del Software

Jos Luis Fuertes

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 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:
z

Control de la Calidad
Controles Est Estticos
Controles manuales
z

Comprobar si un producto posee una determinada caracter caracterstica de calidad en el grado requerido

Informales

Por los autores del desarrollo o por personal equivalente


Si no es as as, tiene un defecto


z

Identificar defectos y corregirlos Controles est estticos


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

Actividades de control:
z

Disciplinados
Son t tcnicas de grupo

Analizan el producto sin necesidad de ejecutarlo Analizan el producto durante su funcionamiento

Controles din dinmicos

Auditor Auditoras Revisiones

Controles autom automticos


z

Sistemas inform informticos o con un proceso algor algortmico


An Anlisis est esttico autom automtico Verificaci Verificacin formal


Jos Luis Fuertes 17

Calidad del Software

Jos Luis Fuertes

16

Calidad del Software

Control de la Calidad
Controles Din Dinmicos
Tipos de pruebas
z z z

Garant Garanta de Calidad


Definici Definicin
z

Prueba modular

Se prueba cada m mdulo aislado del resto del 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 Se comprueba que la nueva versi versin del producto no es de menos calidad que la anterior
Jos Luis Fuertes 18

Prueba de integraci integracin

Prueba de sistema

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

Prueba de regresi regresin

Calidad del Software

Calidad del Software

Jos Luis Fuertes

19

Garant Garanta de Calidad


Actividades Constructivas
Modelos de proceso software
z

Garant Garanta de Calidad


Actividades Constructivas
Herramientas y entornos de desarrollo
z

Idealizaci Idealizacin del proceso de desarrollo y mantenimiento del software Se descompone el proceso en fases, definiendo las actividades a realizar La sistematizaci sistematizacin de los procedimientos facilita la prueba de los resultados obtenidos Se producen incrementos en la productividad (50(50-150%)

Las herramientas CASE (Computer Aided Software Engineering) facilitan la producci produccin de software Los modernos entornos de desarrollo han simplificado el proceso de implementaci implementacin 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...
Jos Luis Fuertes 21

Mtodos y formalismos
z

Lenguajes de programaci programacin


z

Calidad del Software

Jos Luis Fuertes

20

Calidad del Software

Garant Garanta de Calidad


Actividades Constructivas
Documentaci Documentacin
z z

Garant Garanta de Calidad


El Coste de la Calidad
Intervienen dos factores:
z z

Juega un papel esencial Caracter Caractersticas importantes: consistencia, claridad, comprensibilidad, completitud... Factores a considerar: cultura de la organizaci organizacin, comunicaci comunicacin, entorno f fsico, formaci formacin, motivaci motivacin, direcci direccin, liderazgo... Est Estndares y convenciones, ejemplos y patrones, gesti gestin de configuraci configuracin, control del c cdigo, gesti gestin de problemas...
Jos Luis Fuertes 22

Prevenci Prevencin de errores Detecci Deteccin de defectos

Factores humanos
z

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


7% 10%
Especificacin Diseo Codificacin

Otros
z

27%

56%

Otros

Calidad del Software

Calidad del Software

Jos Luis Fuertes

23

Garant Garanta de Calidad


El Coste de la Calidad
Intervienen dos factores:
z z

Garant Garanta de Calidad


El Coste de la Calidad
Intervienen dos factores:
z z

Prevenci Prevencin de errores Detecci Deteccin de defectos

Prevenci Prevencin de errores Detecci Deteccin de defectos

Porcentaje, sobre el coste total de correcci correccin de los defectos, seg segn la fase en la que se cometieron:
13% 1%4%
Especificacin Diseo Codificacin Otros

Coste de correcci correccin seg segn la fase en la que se detectaron los defectos:
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

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

Jos Luis Fuertes

27

Introducci Introduccin a las Medidas


Definiciones
Medir
z

Medidas
Qu Qu Miden los Ingenieros?
La ingenier ingeniera puede definirse como el proceso que

Diccionario de la Real Academia Espa Espaola: ola:

produce productos tiles


Puede describirse lo que miden los ingenieros en

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

dos categor categoras:


z 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

Jos Luis Fuertes

28

Calidad del Software

Jos Luis Fuertes

29

Medidas
Qu Qu Miden los Ingenieros?
Medidas del producto
z

Medidas
Qu Qu Miden los Ingenieros?
Medidas del proceso
z

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


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

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

Calidad del Software

Jos Luis Fuertes

30

Calidad del Software

Jos Luis Fuertes

31

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

Medidas
Por qu qu Miden los Ingenieros?
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

demostrar su cumplimiento
z

No puede imaginarse un proyecto de ingenier ingeniera sin requisitos cuantitativos


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...)...

Permite dar explicaciones del comportamiento del mundo real

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

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


Jos Luis Fuertes 33

Calidad del Software

Jos Luis Fuertes

32

Calidad del Software

Medidas
Por qu qu Miden los Ingenieros?
Para realizar un seguimiento del progreso y predecir

Medidas
Por qu qu Miden los Ingenieros?
Para analizar costes y beneficios
z

los resultados
z

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

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

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

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

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 Jos Luis Fuertes 35

Calidad del Software

Jos Luis Fuertes

34

Medidas
Cmo Miden los Ingenieros?
Tradicionalmente, los ingenieros usan instrumentos Los instrumentos pueden proporcionar medidas
z

Medidas
Cmo Miden los Ingenieros?
Muestreo

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

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

Se usa cuando es imposible o poco pr prctico medir a toda la poblaci poblacin Control de calidad en un proceso de fabricaci fabricacin

Ejemplo

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

Calidad del Software

Jos Luis Fuertes

36

Calidad del Software

Jos Luis Fuertes

37

Teor Teora de Medidas


Medidas y M Mtricas
Informalmente:
z

Teor Teora de Medidas


Medidas y M Mtricas
Matem Matemticamente:
z

Medida

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

Forma perfectamente definida de asociar valores num numricos a los atributos de los elementos de una entidad Criterio para determinar la diferencia o distancia entre dos entidades

Mtrica

Cada objeto tiene una y solo una medida

Calidad del Software

Jos Luis Fuertes

38

Calidad del Software

Jos Luis Fuertes

39

Teor Teora de Medidas


Medidas y M Mtricas
Matem Matemticamente:
z

Teor Teora de Medidas


Medidas y M Mtricas
Este concepto de mtrica trica como distancia entre

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 m(x, z) m(x, y) + m(y, z), x, y, z A

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 del Software Medida del Software

Calidad del Software

Jos Luis Fuertes

40

Calidad del Software

Jos Luis Fuertes

41

Teor Teora de Medidas


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

Medidas en Ingenier Ingeniera del Sw. Sw.


Es bueno un programa? Cmo de fiable ser ser el sistema una vez instalado? Cu Cuntos errores se esperan encontrar? Cu Cuntas pruebas tengo que hacer? Cu Cul ser ser el coste de las pruebas?
matemticas, estadstica

Objetos numricos, relaciones, operaciones

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

Resultados relevantes al mundo real

constru constru hace 5 a aos?


interpretacin

Resultados numricos

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


42 Calidad del Software Jos Luis Fuertes 43

Calidad del Software

Jos Luis Fuertes

Medidas en Ingenier Ingeniera del Sw. Sw.


Los ingenieros del software se enfrentan

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplo de medida de tama tamao del software
z

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

Lneas de c cdigo fuente (LOC)


/* lmite inferior de la tabla */ /* lmite superior */ /* tamao del paso */

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

No hay resultados est estndar universalmente aceptados en el terreno de las medidas del software

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 Ingenier Ingeniera del Sw. Sw.


z z z z z z

Medidas en Ingenier Ingeniera del Sw. Sw.


Caracter Caractersticas deseables de las medidas

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

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

Calidad del Software

Jos Luis Fuertes

46

Calidad del Software

Jos Luis Fuertes

47

Medidas en Ingenier Ingeniera del Sw. Sw.


Necesidad de las medidas del software
z

Medidas en Ingenier Ingeniera del Sw. Sw.


Gran cantidad de medidas del software
z z z

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 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.)
Jos Luis Fuertes 49

Calidad del Software

Jos Luis Fuertes

48

Calidad del Software

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Complejidad de McCabe [McCabe, McCabe, 1976]
z

Medidas en Ingenier Ingeniera del Sw. Sw.


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

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


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

5
5

v(G) = + 1

: n nmero de predicados

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

11

9
Calidad del Software Jos Luis Fuertes 50 Calidad del Software

10
Jos Luis Fuertes

12
51

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Ciencia del Software [Halstead , 1977] [Halstead,
z

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Complejidad del control de flujo [Woodward,

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

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 Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Flujo de informaci informacin [Henry y Kafura, Kafura, 1981]
z

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Ley de Demeter [Lieberherr, Lieberherr, 1988]
z

Complejidad interna (Cip) 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... Nmero de flujos de datos entrando al m mdulo p
z

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

FanFan-in de un m mdulo p:

FanFan-out de un m mdulo p:

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

Jos Luis Fuertes

54

Calidad del Software

Jos Luis Fuertes

55

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber [Chidamber y

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber [Chidamber y

Kemerer, Kemerer, 1991]


z

Kemerer, Kemerer, 1991]


z

WMC (Weighted Methods per Class)

DIT (Depth of Inheritance 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

Suma ponderada de la complejidad de cada uno de los mtodos de una clase

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:

WMC = c i
i =1

Calidad del Software

Jos Luis Fuertes

56

Calidad del Software

Jos Luis Fuertes

57

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber [Chidamber y

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber [Chidamber y

Kemerer, Kemerer, 1991]


z

Kemerer, Kemerer, 1991]


z

NOC (Number of 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

CBO (Coupling Between Objects 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

Jos Luis Fuertes

58

Calidad del Software

Jos Luis Fuertes

59

10

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber [Chidamber y

Medidas en Ingenier Ingeniera del Sw. Sw.


Ejemplos de Medidas del Software
Conjunto de medidas para OO [Chidamber [Chidamber y

Kemerer, Kemerer, 1991]


z

Kemerer, Kemerer, 1991]


z

RFC (Response For a 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 of Cohesion Of 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 Jos Luis Fuertes 60 Calidad del Software Jos Luis Fuertes 61

Medidas en Ingenier Ingeniera del Sw. Sw.


Clasificaciones de Medidas del Software
Clasificaci Clasificacin basada en los elementos que se miden

Medidas en Ingenier Ingeniera del Sw. Sw.


Clasificaciones de Medidas del Software
Clasificaci ]: Clasificacin de las medidas del producto [Kafura [Kafura]:
z

[Henry]:
z

Medidas de la Estructura

Medidas Lxicas

Se basa en el an anlisis de la estructura del dise diseo Se basan en los detalles del c cdigo fuente Se basan tanto en detalles de implementaci implementacin como en la estructura del dise diseo

Se basan en contar tokens Se basan en la aplicaci aplicacin de los conceptos de la teor teora de la informaci informacin a la formulaci formulacin de medidas Miden el grado de interconectividad entre los componentes del sistema observando el flujo de informaci informacin entre ellos

Medidas del Cdigo

Medidas Sem Semnticas

Medidas Hbridas

Medidas de Conectividad

Calidad del Software

Jos Luis Fuertes

62

Calidad del Software

Jos Luis Fuertes

63

Medidas en Ingenier Ingeniera del Sw. Sw.


Principios de las medidas del software:
z

Medidas en Ingenier Ingeniera del Sw. Sw.


Principios de las medidas del software:
z

z z

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
Jos Luis Fuertes 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
Jos Luis Fuertes 65

Calidad del Software

Calidad del Software

11

Medidas en Ingenier Ingeniera del Sw. Sw.


Principios de las medidas del software:
z

Medidas en Ingenier Ingeniera del Sw. Sw.


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

Jos Luis Fuertes

66

Calidad del Software

Jos Luis Fuertes

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
Jos Luis Fuertes

Software

Calidad del Software

69

Calidad del Software


Introducci Introduccin
Calidad
z

Calidad del Software


Modelos de Calidad
Modelos de calidad del software
z z

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

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

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:
z z

Modelo de Boehm Modelo de McCall

Software Engineering Product Quality 4 partes:

Modelo de Arthur

ISO/IEC IS 91269126-1:2001

Quality Model (15(15-6-2001) External Metrics (1(1-7-2003) Internal Metrics (1(1-7-2003) Quality in use Metrics (1(1-4-2004)
Jos Luis Fuertes 73

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

ISO/IEC TR 91269126-2:2003

ISO/IEC TR 91269126-3:2003

ISO/IEC TR 91269126-4:2004

ISO 9126 Jos Luis Fuertes 72 Calidad del Software

Calidad del Software

Calidad del Software


Modelo de Calidad ISO/IEC 91269126-1
Modelo en dos partes para la calidad del software
z

Calidad del Software


Modelo de Calidad ISO/IEC 91269126-1
Caracter Caractersticas
z

Calidad interna y externa


Subdivisi Subdivisin en 6 caracter caractersticas Caracter Caractersticas

z z

Subdivisi Subdivisin en subcaracter subcaractersticas

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

Calidad en el uso

Subdivisi Subdivisin en 4 caracter caractersticas

Calidad del Software

Jos Luis Fuertes

74

Calidad del Software

Jos Luis Fuertes

75

Calidad del Software


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

Calidad del Software


Modelo de Calidad ISO/IEC 91269126-1
La calidad en el ciclo de vida
Necesidades de calidad
contribuye en especificar

influye

Calidad del proceso

depende de

Atributos de calidad interna

influye

uso y realimentacin

Calidad en el uso
indica

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 91269126-1
Modelo de calidad externa e interna
Calidad externa e interna

Calidad del Software


Modelo de Calidad ISO/IEC 91269126-1
Modelo 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
z z

Mejora del Proceso Software


Antecendentes
Mejora del proceso software
z

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

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
Jos Luis Fuertes 81

Calidad del Software

Jos Luis Fuertes

80

Calidad del Software

Mejora del Proceso Software


Antecendentes
Carnegie Mellon University (CMU)

Mejora del Proceso Software


CMM
Una forma de discriminar entre niveles de madurez

Software Engineering Institute (SEI)


z

Capability Maturity Model (1991)


Establecer programas de mejora del proceso software Indica los objetivos de las medidas a usar en cada nivel Conseguir mejores Ingenieros del Software Incluye algunas medidas b bsicas y del proceso

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
z

Personal Software Process (1993)


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
Jos Luis Fuertes 83

Calidad del Software

Jos Luis Fuertes

82

Calidad del Software

14

Mejora del Proceso Software


CMM
El CMM puede servir como una gu gua para

Mejora del Proceso Software


PSP
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:
Nivel de Madurez 1. Inicial: 2. Repetible: 3. Definido: 4. Gestionable: 5. Optimizado:
Calidad 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

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

Los procesos se retroalimentan con las mejoras

Calidad del Software

Jos Luis Fuertes

85

Mejora del Proceso Software


PSP
Permite comprender por qu qu se han cometido

Mejora del Proceso Software


PSP
El PSP est est dividido en cuatro fases:
z 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
Proceso personal cclico PSP3 Desarrollo cclico

tipos de errores no detectados y los m mtodos m ms efectivos para cada ingeniero

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 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

Jos Luis Fuertes

89

15

Conclusiones
Razones para la lentitud en la adopci adopcin del uso de

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

medidas para evaluar la calidad del software:


z

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

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

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
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

Calidad del Software

Jos Luis Fuertes

91

16

También podría gustarte