Está en la página 1de 16

X Reunió

Reunión de Responsables de Sistemas Contenidos


de Informació
Información 1. Introducció
Introducción
La Antigua, Guatemala
2. Control y Garantí
Garantía de la Calidad del Software
22-
22-25 de septiembre de 2008 1. Controles está
estáticos y diná
dinámicos
2. Actividades constructivas de la calidad
3. El coste de la calidad

3. Medidas
1. Introducció
Introducción a las medidas
2. Qué
Qué, por qué
qué y có
cómo miden los ingenieros

Calidad del Software 3. Medidas y mé


métricas
4. Medidas en Ingenierí
5. Clasificació
Ingeniería del Software
Clasificación de medidas
4. Calidad del Software
José Luis Fuertes Castro 1. Introducció
Introducción a la calidad
2. Modelos de calidad del software
3. Mejora del proceso software
Facultad de Informá
Informática
5. Conclusiones
Universidad Polité
Politécnica de Madrid
Calidad del Software José Luis Fuertes 1

Introducció
Introducción
 Software:
z Especifica el conjunto de programas informá
informáticos que se
desarrollan en el entorno de una computadora
z Papel del software en la sociedad ha cambiado
significativamente en los últimos 50 añ
años
Introducción ‹ mejoras en rendimiento del hardware
‹ cambios en arquitecturas informá
informáticas
‹ aumentos de memoria y capacidad de almacenamiento

‹ variedad de dispositivos de entrada y salida

‹ ...

z Importancia profesional y personal de la Informá


Informática
‹ Disminuye el precio del hardware
‹ Aumenta la demanda de nuevas aplicaciones
Calidad del Software José Luis Fuertes 3

Introducció
Introducción Introducció
Introducción
 Sistemas cada vez má
más sofisticados y complejos  Un poco de historia...
 Se ha pasado de ser una herramienta para la z Años 40 Æ Fundamentos de la computació
computación moderna
resolució
resolución de problemas a una industria z Principios de los 60 Æ Consolidació
Consolidación del desarrollo de
software de aplicaciones relativamente grandes
 Caracterí
Características del software z Finales de los 60 Æ Crisis del software
z El software se desarrolla, no se fabrica ‹ Imposibilidad de desarrollar proyectos de una dimensió
dimensión
z El software no se estropea acorde con los avances tecnoló
tecnológicos de la época
z Aunque la industria tiende a ensamblar componentes, la z 1968 Æ El comité
comité cientí
científico de la OTAN patrocina una
mayorí
mayoría del software se construye a medida conferencia en Alemania, para identificar, clasificar y
discutir los problemas que se producí
producían en el desarrollo
de grandes proyectos
‹ Resultado: el desarrollo del software es una tarea de
ingenierí
ingeniería (se acuñ
acuña el té
término de Ingenierí
Ingeniería del Software)
Software)
Calidad del Software José Luis Fuertes 4 Calidad del Software José Luis Fuertes 5

1
Introducció
Introducción Introducció
Introducción
 Ingenierí
Ingeniería:  Ingenierí
Ingeniería del Software:
z Diccionario de la Real Academia Españ Española:
ola: z Boehm,
Boehm, 1976
“Conjunto de conocimientos y té técnicas que permiten
“Aplicación práctica del conocimiento científico
aplicar el saber cientí
científico a la utilizació
utilización de la materia en el diseño y construcción de programas de
y de las fuentes de energí
energía” computadora y la documentación asociada
requerida para desarrollar, operar y
 Software: mantenerlos”
z Diccionario de la Real Academia Españ
Española:
ola: z IEEE, 1993
“Conjunto de programas, instrucciones y reglas
informá
informáticas para ejecutar ciertas tareas en una “Aplicación de un enfoque sistemático,
disciplinado y cuantificable al desarrollo,
computadora”
computadora” operación y mantenimiento del software”

Calidad del Software José Luis Fuertes 6 Calidad del Software José Luis Fuertes 7

Introducció
Introducción Introducció
Introducción
 El producto software:  El proceso software:
z Es un sistema software desarrollado para un cliente con la z Es el conjunto de actividades y resultados que permite
documentació
documentación que describe có cómo instalar y usar el producir un producto software
sistema z Actividades fundamentales del proceso software:
z Objetivo de la Ingenierí
Ingeniería del Software ‹ Especificació
Especificación del software: se define la funcionalidad del
‹ Producir productos software software y el modo de operació
operación
‹ Desarrollo del software: se produce el software de acuerdo con
las especificaciones
‹ Validació
Validación del software: el software debe ser validado para
asegurarse que hace lo que espera el cliente
‹ Evolució
Evolución del software: el software debe evolucionar para
acomodarse a las nuevas necesidades del cliente
z Actividad compleja, muchas actividades distintas
Calidad del Software José Luis Fuertes 8 Calidad del Software José Luis Fuertes 9

Introducció
Introducción Introducció
Introducción
 El software no es perfecto
 Las causas de los fallos informá
informáticos pueden ser
muy diversas:
z Especificaciones incorrectas o incompletas
Ley de Murphy: z Aná
Análisis equivocados
“Si algo puede ir mal, irá
irá mal”
mal” z Diseñ
Diseños con fallos
z Programació
Programación con errores
z Validació
Validación poco precisa

Calidad del Software José Luis Fuertes 10 Calidad del Software José Luis Fuertes 11

2
Introducció
Introducción Introducció
Introducción

 Actualmente se usa el software en gran diversidad  La solució


solución al problema es la calidad
de ámbitos z ¿Cuá
Cuándo tiene buena calidad el software?
 Los defectos del software pueden causar z ¿Qué
Qué caracterí
características influyen al determinar la calidad del
importantes problemas e, incluso, dañ software?
daños fí
físicos
z ¿Cómo medir la calidad del software?
z Los defectos en programas financieros o editores son
poco importantes, poco costosos y nadie sale herido z ¿Cómo controlar y garantizar la calidad del software?
z Cuando el software “pilota”
pilota” aviones, “conduce”
conduce” autos,
“controla”
controla” el trá
tráfico aé
aéreo o “vigila”
vigila” centrales nucleares,
los defectos pueden ser muy peligrosos

Calidad del Software José Luis Fuertes 12 Calidad del Software José Luis Fuertes 13

Introducció
Introducción

 Es necesario medir la calidad...


...pero es una tarea difí
difícil
 ¿Por qué
qué medir?
“Si algo puede ser “No se puede Control y Garantía de
medido y expresado con controlar lo que
números, entonces se no se puede la Calidad
sabe algo acerca de ello” medir”

Kelvin DeMarco
Calidad del Software José Luis Fuertes 14

Control de la Calidad Control de la Calidad


Controles Está
Estáticos
 Objetivos:  Controles manuales
z Comprobar si un producto posee una determinada z Informales
caracterí
característica de calidad en el grado requerido ‹ Por los autores del desarrollo o por personal equivalente
‹ Si no es así
así, tiene un defecto „ Comprobació
Comprobación de escritorio (desk
(desk checking)
checking)
z Identificar defectos y corregirlos „ Revisió
Revisión por pares (peer
(peer review)
review)

 Actividades de control: z Disciplinados


Controles está ‹ Son té
técnicas de grupo
z estáticos
„ Auditorí
Auditorías
‹ Analizan el producto sin necesidad de ejecutarlo
„ Revisiones
z Controles diná
dinámicos
‹ Analizan el producto durante su funcionamiento  Controles automá
automáticos
z Sistemas informá
informáticos o con un proceso algorí
algorítmico
‹ Aná
Análisis está
estático automá
automático
‹ Verificació
Verificación formal
Calidad del Software José Luis Fuertes 16 Calidad del Software José Luis Fuertes 17

3
Control de la Calidad Garantí
Garantía de Calidad
Controles Diná
Dinámicos
 Tipos de pruebas  Definició
Definición
z Prueba modular z Conjunto de actividades de planificació
planificación, estimació
estimación y
‹ Se prueba cada mó
módulo aislado del resto del sistema supervisió
supervisión del proceso de desarrollo, que se realizan de
z Prueba de integració
integración forma independiente al equipo de desarrollo, de tal forma
‹ Se prueba que las interfaces entre los mó
módulos son correctas que los productos software resultantes cumplen los
z Prueba de sistema requisitos establecidos y satisfacen los niveles de calidad
‹ Se prueba si el sistema satisface todos los requisitos del exigidos
usuario
z Prueba de aceptació
aceptación
‹ Su objetivo es demostrar al usuario que el sistema satisface
sus necesidades
z Prueba de regresió
regresión
‹ Se comprueba que la nueva versió
versión del producto no es de
menos calidad que la anterior
Calidad del Software José Luis Fuertes 18 Calidad del Software José Luis Fuertes 19

Garantí
Garantía de Calidad Garantí
Garantía de Calidad
Actividades Constructivas Actividades Constructivas
 Modelos de proceso software  Herramientas y entornos de desarrollo
z Idealizació
Idealización del proceso de desarrollo y mantenimiento z Las herramientas CASE (Computer
(Computer Aided Software
del software Engineering)
Engineering) facilitan la producció
producción de software
z Se descompone el proceso en fases, definiendo las z Los modernos entornos de desarrollo han simplificado el
actividades a realizar proceso de implementació
implementación
 Métodos y formalismos  Lenguajes de programació
programación
z La sistematizació
sistematización de los procedimientos facilita la z Su importancia (en tétérminos de calidad) se hace patente
prueba de los resultados obtenidos en el mantenimiento
z Se producen incrementos en la productividad (50-
(50-150%) z Caracterí
Características interesantes: mó
módulos, compilació
compilación
separada, ocultació
ocultación de informació
información, flujo de control
estructurado, fuerte tipado,
tipado, OO, orientació
orientación a eventos...

Calidad del Software José Luis Fuertes 20 Calidad del Software José Luis Fuertes 21

Garantí
Garantía de Calidad Garantí
Garantía de Calidad
Actividades Constructivas El Coste de la Calidad
 Documentació
Documentación  Intervienen dos factores:
z Juega un papel esencial z Prevenció
Prevención de errores
z Caracterí
Características importantes: consistencia, claridad, z Detecció
Detección de defectos
comprensibilidad, completitud...
Distribució
Distribución de defectos detectados segú
según la fase en la que se
 Factores humanos cometieron:
z Factores a considerar: cultura de la organizació
organización,
comunicació
comunicación, entorno fífísico, formació
formación, motivació
motivación, 7%
10%
direcció
dirección, liderazgo... Especificación
Diseño
 Otros Codificación
27% Otros
z Está
Estándares y convenciones, ejemplos y patrones, gestió
gestión 56%

de configuració
configuración, control del có
código, gestió
gestión de
problemas...
Calidad del Software José Luis Fuertes 22 Calidad del Software José Luis Fuertes 23

4
Garantí
Garantía de Calidad Garantí
Garantía de Calidad
El Coste de la Calidad El Coste de la Calidad
 Intervienen dos factores:  Intervienen dos factores:
z Prevenció
Prevención de errores z Prevenció
Prevención de errores
z Detecció
Detección de defectos z Detecció
Detección de defectos

Porcentaje, sobre el coste total de correcció


corrección de los defectos, segú
según la Coste de correcció
corrección segú
según la fase en la que se detectaron los defectos:
fase en la que se cometieron:
17.500 $

13% 1%4% 15.000 $

12.500 $
Especificación
10.000 $
Diseño
Codificación 7.500 $
Otros 5.000 $

82% 2.500 $

0$
Análisis Diseño Codificación Pruebas Implantación

Calidad del Software José Luis Fuertes 24 Calidad del Software José Luis Fuertes 25

Introducció
Introducción a las Medidas
Definiciones
 ¿Qué
Qué es la medició
medición?
z La medició
medición es la asociació
asociación de valores numé
numéricos con
un objeto o acció
acción
z Se interpreta este valor como la cantidad de calidad o de
cierto atributo poseí
poseído por dicho objeto o acció
acción
Medidas

Calidad del Software José Luis Fuertes 27

Introducció
Introducción a las Medidas Medidas
Definiciones ¿Qué
Qué Miden los Ingenieros?
 Medir  La ingenierí
ingeniería puede definirse como el proceso que
z Diccionario de la Real Academia Españ
Española:
ola: produce productos útiles
‹ Comparar una cantidad con su respectiva unidad, con el fin de  Puede describirse lo que miden los ingenieros en
averiguar cuá
cuántas veces la segunda está
está contenida en la primera
dos categorí
categorías:
 Medida
z Medidas del producto
z Diccionario de la Real Academia Españ
Española:
ola:
z Medidas del proceso
‹ Acció
Acción y efecto de medir
‹ Expresió
Expresión del resultado de una medició
medición
‹ Cada una de las unidades que se emplean para medir longitudes,
áreas o volú
volúmenes de lí
líquidos o áridos

Calidad del Software José Luis Fuertes 28 Calidad del Software José Luis Fuertes 29

5
Medidas Medidas
¿Qué
Qué Miden los Ingenieros? ¿Qué
Qué Miden los Ingenieros?
 Medidas del producto  Medidas del proceso
z Medidas está
estáticas z Se usan para cuantificar la actividad humana de la
‹ Pueden calcularse cuando el objeto no está
está en uso ingenierí
ingeniería
‹ Tamañ
Tamaño, longitud, altura, anchura, peso, capacidad, z Ejemplos:
volumen... ‹ Tamañ
Tamaño de un equipo de desarrollo, esfuerzo, tiempo, coste,
z Medidas diná
dinámicas productividad...
‹ Describen el comportamiento de un objeto mientras está
está en
uso
‹ Velocidad, consumo, disipació
disipación de calor, nivel de ruido...

Calidad del Software José Luis Fuertes 30 Calidad del Software José Luis Fuertes 31

Medidas Medidas
¿Por qué
qué Miden los Ingenieros? ¿Por qué
qué Miden los Ingenieros?
 Para describir el estado actual del mundo  Para establecer los requisitos cuantitativamente y
z Cada medida describe un aspecto concreto del estado del demostrar su cumplimiento
mundo hoy z No puede imaginarse un proyecto de ingenierí
ingeniería sin
z Si se mide el estado del mundo perió
periódicamente, puede requisitos cuantitativos
ser posible descubrir patrones y tendencias ‹ Construcció
Construcción de un puente (longitud, altura, carga mámáxima,
‹ Permite dar explicaciones del comportamiento del mundo caudal del rí
río...)
real ‹ Pequeñ
Pequeños electrodomé
electrodomésticos (tamañ
(tamaño, peso, coste...)
„ Leyes o teorí
teorías cientí
científicas ‹ Vehí
Vehículos (peso, consumo, espacio interior, espacio para
z Los ingenieros pretenden descubrir: equipaje, resistencia a los impactos...)
‹ el comportamiento de los sistemas que diseñ
diseñan y construyen ‹ Software (tiempo de respuesta, memoria ocupada...)...

‹ las tendencias en el propio proceso de ingenierí


ingeniería z Para demostrar que se cumplen los requisitos
cuantitativos, es necesario medir
Calidad del Software José Luis Fuertes 32 Calidad del Software José Luis Fuertes 33

Medidas Medidas
¿Por qué
qué Miden los Ingenieros? ¿Por qué
qué Miden los Ingenieros?
 Para realizar un seguimiento del progreso y predecir  Para analizar costes y beneficios
los resultados z El corazó
corazón de la ingenierí
ingeniería: el compromiso
z Las mediciones perió
periódicas de lo que se va obteniendo ‹ Hay muchas formas de diseñ
diseñar productos y muchas formas
permite realizar un seguimiento cuantitativo del proyecto de diseñ
diseñar sus componentes
‹ Cada diseñ
diseño tiene ventajas y desventajas
‹ Pueden ponerse de manifiesto tendencias inusuales que, al
detectarlas, pueden corregirse ‹ El ingeniero debe valorarlas todas y establecer un
compromiso entre unas y otras
z Los ingenieros del software cuentan el nú
número de
„ A veces se acepta una cualidad negativa para favorecer otra
defectos encontrados durante las pruebas para calibrar cualidad
los modelos de fiabilidad „ A veces se acepta menos de un atributo deseable para obtener má
más
‹ Pueden predecir cuá
cuándo se completará
completarán las pruebas y cuá
cuándo de otro atributo deseable
se alcanzará
alcanzará el nivel de fiabilidad requerido  Ej.: Coche: se deben establecer compromisos entre peso, economí
economía,
espacio del habitá
habitáculo, confort y precio

Calidad del Software José Luis Fuertes 34 Calidad del Software José Luis Fuertes 35

6
Medidas Medidas
¿Cómo Miden los Ingenieros? ¿Cómo Miden los Ingenieros?
 Tradicionalmente, los ingenieros usan instrumentos  Muestreo
 Los instrumentos pueden proporcionar medidas z Selecció
Selección y medida de una parte representativa de la
erró
erróneas població
población para deducir pará
parámetros o caracterí
características de
toda la població
población.
z La exactitud de un instrumento es una indicació
indicación de la
‹ Se usa cuando es imposible o poco prá
práctico medir a toda la
diferencia entre la lectura del instrumento y los datos de població
población
entrada
z Ejemplo
z La precisió
precisión de un instrumento es una indicació
indicación de lo ‹ Control de calidad en un proceso de fabricació
fabricación
repetible que resulta una medició
medición con una exactitud „ Se elige uno de cada 1000 productos y se realizan medidas
determinada „ Utilizando varias té
técnicas estadí
estadísticas, 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í
Teoría de Medidas Teorí
Teoría de Medidas
Medidas y Mé
Métricas Medidas y Mé
Métricas
 Informalmente:  Matemá
Matemáticamente:
z Medida z Medida
‹ Forma perfectamente definida de asociar valores numé
numéricos a Sea A un conjunto de objetos fí
físicos o empí
empíricos
los atributos de los elementos de una entidad Sea B un conjunto de objetos formales (nú
(números)
z Métrica Se define una medida μ como una relació
relación uní
unívoca de A a B:
μ: A → B
‹ 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

Teorí
Teoría de Medidas Teorí
Teoría de Medidas
Medidas y Mé
Métricas Medidas y Mé
Métricas
 Matemá
Matemáticamente:  Este concepto de “métrica”
trica” como distancia entre
z Métrica: dos entidades tiene muy poco sentido en el mundo
Sea A un conjunto de objetos del software
Sea ℜ el conjunto de núnúmeros reales  En cambio, sí
sí tiene sentido calcular una medida
Sea m: A ⊗ A → ℜ una medida
para dos productos y compararlas
Entonces m es una métrica si cumple:
m(x, y) ≥ 0, ∀ x, y ∈A
m(x, y) = 0 ⇔ x = y Métrica del Software ⇔ Medida del Software
m(x, y) = m(y, x), ∀ x, y ∈A
m(x, z) ≤ m(x, y) + m(y, z), ∀ x, y, z ∈A

Calidad del Software José Luis Fuertes 40 Calidad del Software José Luis Fuertes 41

7
Teorí
Teoría de Medidas Medidas en Ingenierí
Ingeniería del Sw.
Sw.

 Barrera intelectual  ¿Es bueno un programa?

medición
 ¿Cómo de fiable será
será el sistema una vez instalado?
Objetos del mundo Objetos numéricos,
real, relaciones, relaciones,  ¿Cuá
Cuántos errores se esperan encontrar?
operaciones operaciones
 ¿Cuá
Cuántas pruebas tengo que hacer?
 ¿Cuá
Cuál será
será el coste de las pruebas?
barrera
intelectual matemáticas,
estadística  ¿Será
Será difí
difícil mantener el sistema?
 ¿Cuá
Cuánto costará
costará construir un sistema similar al que
construí
construí hace 5 añ
años?
Resultados
Resultados
relevantes al  ¿Cuá
Cuánto tardaré
tardaré en desarrollar el sistema?
numéricos
mundo real interpretación
 ...

Calidad del Software José Luis Fuertes 42 Calidad del Software José Luis Fuertes 43

Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería del Sw.
Sw.
 Los ingenieros del software se enfrentan  Ejemplo de medida de tamañ
tamaño del software
diariamente a estas preguntas z Líneas de có
código fuente (LOC)
 La habilidad para realizar las medidas apropiadas es
fundamental para los ingenieros del software #define LOWER 0 /* límite inferior de la tabla */
 Tambié
También es importante saber có cómo medir #define UPPER 300 /* límite superior */
#define STEP 20 /* tamaño del paso */
 Es un área de investigació
investigació n candente en Ingenierí
Ingeniería main ()/* Tabla de conversión de Fahrenheit a Celsius */
del Software {
int fahr;
z No hay resultados está
estándar universalmente aceptados en for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
el terreno de las medidas del software 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í
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería del Sw.
Sw.

 Caracterí
Características deseables de las medidas
z Deben ser sencillas y estar definidas con precisió
precisión
25
z Deben ser objetivas
Nº 20
15 z Deben ser fá
fáciles de obtener
de 10 z Deben ser vá
válidas
5 z Deben ser robustas
votos z Deben definir sus valores y sus lí
límites
0
1 2 3 4 5 6 7 8 9 z Los conjuntos de medidas deben ser consistentes
Nº de líneas de código fuente

Calidad del Software José Luis Fuertes 46 Calidad del Software José Luis Fuertes 47

8
Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería del Sw.
Sw.

 Necesidad de las medidas del software  Gran cantidad de medidas del software
z Solucionar los problemas del software z 1976: Complejidad ciclomá
ciclomática (McCabe)
McCabe)
‹ Estimaciones de tiempo y costes má
más precisas z 1977: Ciencia del software (Halstead
(Halstead))
‹ Mayor productividad z 1980: Complejidad del flujo de control, del flujo de datos y
‹ Productos de mejor calidad del programa (Oviedo)
z Gestió
Gestión del software no es efectiva z 1981: Flujo de informació
información (Kafura
(Kafura y Henry)
‹ Desarrollo de software es muy complejo z 1985: Estabilidad en el mantenimiento (Yau y Collofello)
Collofello)
‹ Se tiene pocas medidas buenas del proceso o del producto z 1988: “Ley de Demeter”
Demeter” (Lieberherr)
Lieberherr)
‹ La mejora del proceso necesita identificar, medir y controlar
z 1993: Medidas del Diseñ
Diseño (Chen y Lu)
sus pará
parámetros fundamentales
z 1994: Conjunto de medidas (Chidamber
(Chidamber y Kemerer)
Kemerer)
z 1999: Complejidad del cócódigo y del diseñ
diseño (Etzkorn
(Etzkorn et al.)

Calidad del Software José Luis Fuertes 48 Calidad del Software José Luis Fuertes 49

Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería del Sw.
Sw.
Ejemplos de Medidas del Software Ejemplos de Medidas del Software
 Complejidad de McCabe [McCabe,
McCabe, 1976]  Complejidad de McCabe [McCabe,
McCabe, 1976]
z número de caminos de ejecució
ejecución posibles en un 1
programa 1
z v(G) = e - n + 2 p
6
‹ e: bifurcaciones 2 3 4 5 6 7
‹ n: nodos con có
2 3 4
código secuencial
‹ p: nú
número de grafos inconexos 5

z v(G) = π + 1
8 7 11
‹ π: nú
número de predicados v(G) = 18 - 12 + 2 = 8

9 10 12

Calidad del Software José Luis Fuertes 50 Calidad del Software José Luis Fuertes 51

Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería del Sw.
Sw.
Ejemplos de Medidas del Software Ejemplos de Medidas del Software
 Ciencia del Software [Halstead
[Halstead,, 1977]  Complejidad del control de flujo [Woodward,
z Conjunto de medidas y estimaciones sobre el có
código 1979]
fuente IF (GN .NE. 0) GOTO 10
z Medidas IF (CN .LT. CT) GOTO 5
‹ Contenido de Inteligencia E = 1
‹ Nivel del Programa GOTO 25
‹ Longitud del Programa
5 E = 0
GOTO 25
‹ Volumen del Programa
10 IF (CN .LT. TR) GOTO 20
‹ Dificultad
E = 1
‹ Esfuerzo GOTO 25
20 E = 0
25 CONTINUE
Calidad del Software José Luis Fuertes 52 Calidad del Software José Luis Fuertes 53

9
Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería del Sw.
Sw.
Ejemplos de Medidas del Software Ejemplos de Medidas del Software
 Flujo de informació
información [Henry y Kafura,
Kafura, 1981]  Ley de Demeter [Lieberherr,
Lieberherr, 1988]
z Complejidad interna (C
(Cip) de un mó
módulo p: z Para todas las clases C y todos los mé
métodos M de C,
‹ Número de lílíneas de có
código (LOC) de dicho mó
módulo, todos los objetos a los que M enví
envía mensajes deben ser:
longitud de Halstead,
Halstead, complejidad ciclomá
ciclomática...
tica... ‹ Los objetos que son argumentos de M (incluyendo el propio
z Fan-
Fan-in de un mó
módulo p: objeto de la clase C)
‹ Número de flujos de datos entrando al mó
módulo p ‹ Los objetos que son atributos de C

z Fan-
Fan-out de un mó
módulo p: z Medida:
‹ Número de flujos de datos saliendo del mó
módulo p ‹ Número de veces que se viola la ley
z Complejidad del flujo de informació
información de un mó
módulo p
(Cp):
Cp = Cip · (fan- fan-out)2
(fan-in · fan-

Calidad del Software José Luis Fuertes 54 Calidad del Software José Luis Fuertes 55

Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería 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] Kemerer,
Kemerer, 1991]
z WMC (Weighted
(Weighted Methods per Class)
Class) z DIT (Depth
(Depth of Inheritance Tree)
Tree)
‹ Suma ponderada de la complejidad de cada uno de los ‹ Profundidad de una clase C en el árbol de herencia
métodos de una clase ‹ DIT es una medida de cuá
cuántas superclases pueden afectar
„ Sea la clase C con sus mémétodos M1, M2..., Mn potencialmente a cada clase
Sea c1, c2..., cn la complejidad de cada mé
método
‹ Medida: contar los niveles del grafo de herencia
Entonces, para dicha clase C:

n
WMC = ∑ c i
i =1

Calidad del Software José Luis Fuertes 56 Calidad del Software José Luis Fuertes 57

Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería 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] Kemerer,
Kemerer, 1991]
z NOC (Number
(Number of Children)
Children) z CBO (Coupling
(Coupling Between Objects classes)
classes)
‹ Número de clases subordinadas inmediatamente a una clase ‹ Cantidad de clases a la que está
está acoplada (nú
(número de objetos
‹ NOC es una medida de cuácuántas clases heredará
heredarán los mé
métodos que actú
actúan sobre otro)
de la clase padre ‹ Relacionada con la noció
noción de que un objeto está
está acoplado
‹ Está
Está relacionada con la noció
noción del alcance de los miembros con otro si uno de ellos actú
actúa sobre el otro (si los mé
métodos de
‹ Medida: contar los hijos directos de una clase con una
uno usan mé
métodos o atributos del otro)
relació
relación de herencia

Calidad del Software José Luis Fuertes 58 Calidad del Software José Luis Fuertes 59

10
Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería 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] Kemerer,
Kemerer, 1991]
z RFC (Response
(Response For a Class)
Class) z LCOM (Lack
(Lack of Cohesion Of Methods)
Methods)
‹ Conjunto de mé
métodos de una clase que potencialmente ‹ Proporciona una medida de la relativa disparidad natural de
pueden ejecutarse como respuesta a la llegada de un mensaje los mé
métodos de una clase
recibido en un objeto de esa clase
‹ Medida:

„ M: conjunto de todos los mé


métodos de la clase C
„ Ri: conjunto de los mé
métodos llamados por el mé
método i

RFC = MU R i
∀i

Calidad del Software José Luis Fuertes 60 Calidad del Software José Luis Fuertes 61

Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería del Sw.
Sw.
Clasificaciones de Medidas del Software Clasificaciones de Medidas del Software
 Clasificació
Clasificación basada en los elementos que se miden  Clasificació
Clasificación de las medidas del producto [Kafura
[Kafura]:
]:
[Henry]: z Medidas de la Estructura
z Medidas Léxicas ‹ Se basa en el aná
análisis de la estructura del diseñ
diseño
‹ Se basan en contar tokens z Medidas del Código
z Medidas Semá
Semánticas ‹ Se basan en los detalles del có
código fuente
‹ Se basan en la aplicació
aplicación de los conceptos de la teorí
teoría de la z Medidas Híbridas
informació
información a la formulació
formulación de medidas ‹ Se basan tanto en detalles de implementació
implementación como en la
z Medidas de Conectividad estructura del diseñ
diseño
‹ Miden el grado de interconectividad entre los componentes
del sistema observando el flujo de informació
información entre ellos

Calidad del Software José Luis Fuertes 62 Calidad del Software José Luis Fuertes 63

Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería del Sw.
Sw.

 Principios de las medidas del software:  Principios de las medidas del software:
z Medir es un mecanismo ideal para caracterizar, evaluar, z Los entornos de desarrollo y mantenimiento deben estar
predecir y proporcionar motivació
motivación para los diversos preparados para las medidas
aspectos de los procesos de construcció
construcción del software z La tarea de medir no se debe limitar a utilizar modelos y
z Las medidas deben aplicarse tanto sobre el proceso medidas tal como han sido definidas en otros entornos
software como en el producto z El proceso de medida debe ser de arriba hacia abajo, en
z Debe estar claramente indicado el propó
propósito de cada vez de ser de abajo hacia arriba, para poder definir un
medida conjunto de objetivos operativos, especificar las medidas
z Se necesitan tanto medidas objetivas como subjetivas apropiadas, permitir interpretaciones y aná
análisis
z La mayor parte de los aspectos del producto y del contextuales vá
válidos y proporcionar retroalimentació
retroalimentación
proceso software son demasiados complicados para ser para el aprendizaje y el seguimiento
identificados por una única medida
Calidad del Software José Luis Fuertes 64 Calidad del Software José Luis Fuertes 65

11
Medidas en Ingenierí
Ingeniería del Sw.
Sw. Medidas en Ingenierí
Ingeniería del Sw.
Sw.

 Principios de las medidas del software:  Aplicació


Aplicación del principio de incertidumbre de
z Las medidas deben asociarse con interpretaciones, pero Heisenberg al cá
cálculo de las medidas
estas interpretaciones deben corresponder con un
determinado contexto “Es imposible determinar
Se necesitan mú simultáneamente la posición y
z múltiples mecanismos para la recopilació
recopilación y
velocidad exactas de un electrón”
validació
validación de datos
z Para evaluar y comparar proyectos y para llevar a cabo  Efecto Hawthorne
modelos se necesita una base histó
histórica de experiencias
“La medida de cualquier parámetro
de un proyecto y su asociación 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ó
Introducción
 Calidad de un producto
z Punto de vista subyacente:
‹ Excelencia innata

z Punto de vista del producto:


Calidad del ‹ Contenidos del producto

Software z Punto de vista del usuario:


‹ Adecuació
Adecuación para el uso
z Punto de vista industrial:
Software
‹ Conforme a requisitos

z Punto de vista del valor del producto:


‹ Diseñ
Diseño al coste
Calidad del Software José Luis Fuertes 69

Calidad del Software Calidad del Software


Introducció
Introducción Modelos de Calidad
 Calidad  Modelos de calidad del software
z Diccionario de la Real Academia Españ
Española z Intentan cuantificar la calidad del software
“Propiedad o conjunto de propiedades inherentes a una z Se descompone la calidad en
cosa, que permiten apreciarla como igual, mejor o peor
niveles estructurados
que las restantes de su especie”
especie”
z Los distintos modelos se
 Calidad del software
diferencian por:
z IEEE ‹ la relació
relación entre los niveles
“Grado con el cual el cliente o usuario percibe que el ‹ la cantidad de niveles
software satisface sus expectativas”
expectativas”
‹ los conceptos de cada nivel

Calidad del Software José Luis Fuertes 70 Calidad del Software José Luis Fuertes 71

12
Calidad del Software Calidad del Software
Modelos de Calidad Modelo de Calidad ISO/IEC 9126
1976 Modelo de Boehm
1977
1978
Modelo de McCall  ISO/IEC 9126:
1979
1980 z Software Engineering – Product Quality
1981
1982
1983
z 4 partes:
1984
1985 Modelo de Arthur
‹ ISO/IEC IS 9126-
9126-1:2001
1986
1987
„ Quality Model (15-
(15-6-2001)
1988 Modelo de Gilb / Modelo de Deutsch y Willis
1989 ‹ ISO/IEC TR 9126-
9126-2:2003
1990 Modelo de Schulmeyer
1991 „ External Metrics (1-
(1-7-2003)
1992 Modelo de Gillies / Modelo REBOOT
1993 ‹ ISO/IEC TR 9126-
9126-3:2003
1994
1995 Modelo de Dromey „ Internal Metrics (1-
(1-7-2003)
1996
1997 ‹ ISO/IEC TR 9126-
9126-4:2004
1998
1999 „ Quality in use Metrics (1-
(1-4-2004)
2000
2001 ISO 9126

Calidad del Software José Luis Fuertes 72 Calidad del Software José Luis Fuertes 73

Calidad del Software Calidad del Software


Modelo de Calidad ISO/IEC 9126-
9126-1 Modelo de Calidad ISO/IEC 9126-
9126-1
 Modelo en dos partes para la calidad del software  Caracterí
Características
z Calidad interna y externa z Se muestran externamente al usar el software y son el
‹ Subdivisió
Subdivisión en 6 caracterí
características resultado de atributos internos
‹ Caracterí
Características z Son aplicables a cualquier tipo de software
„ Subdivisió
Subdivisión en subcaracterí
subcaracterísticas Conceptos “caracterí
z características”
sticas” y “subcaracterí
subcaracterísticas”
sticas”
z Calidad en el uso ‹ Proporcionan una terminologí
terminología consistente para la calidad
‹ Subdivisió
Subdivisión en 4 caracterí
características del producto software
‹ Proporcionan un marco para especificar requisitos de calidad
del software
‹ Permiten definir compromisos entre capacidades del
producto software

Calidad del Software José Luis Fuertes 74 Calidad del Software José Luis Fuertes 75

Calidad del Software Calidad del Software


Modelo de Calidad ISO/IEC 9126-
9126-1 Modelo de Calidad ISO/IEC 9126-
9126-1
 La calidad en el ciclo de vida  La calidad en el ciclo de vida
Efecto del
Proceso Producto Software
Producto Software Necesidades Calidad en
de calidad uso y el uso
influye realimentación
influye influye
Calidad Atributos Atributos Atributos contribuye
en especificar indica
del de calidad de calidad de calidad
proceso depende de interna depende de externa depende de en el uso
Requisitos
contextos Calidad
de uso de calidad
validación externa
externa
medidas de
medidas medidas medidas
la calidad en
del proceso internas externas contribuye
el uso indica
en especificar

Requisitos
Calidad
de calidad
verificación interna
interna

Calidad del Software José Luis Fuertes 76 Calidad del Software José Luis Fuertes 77

13
Calidad del Software Calidad del Software
Modelo de Calidad ISO/IEC 9126-
9126-1 Modelo de Calidad ISO/IEC 9126-
9126-1
 Modelo de calidad externa e interna  Modelo de calidad en el uso

Calidad externa Calidad en el uso


e interna

Funcionalidad Fiabilidad Usabilidad Eficiencia Mantenibilidad Portabilidad


Efectividad Productividad Seguridad Satisfacción

Adecuación Comprensibilidad Analizable Adaptabilidad


Madurez Comportamiento
Precisión Aprendizaje Modificable Instalable
Tolerancia a fallos temporal
Interoperatividad Operatividad Estabilidad Co-existencia
Recuperación Uso de recursos
Seguridad Atractivo Fácil de probar Reemplazabilidad

Calidad del Software José Luis Fuertes 78 Calidad del Software José Luis Fuertes 79

Mejora del Proceso Software Mejora del Proceso Software


Antecendentes Antecendentes
 El proceso software  Mejora del proceso software
z Secuencia de pasos necesarios para desarrollar software z Monitorizar, medir y revisar el rendimiento del proceso
z Establece el marco de trabajo té
técnico y de gestió
gestión para está
estándar al ser aplicado sobre proyectos individuales
aplicar los mé
métodos, herramientas y el personal a la tarea z Todo el personal implicado en el proceso software debe
de la construcció
construcción de programas participar en las actividades de mejora
z Es primordial fijar y perseguir objetivos cuantitativos y
medibles para mejorar el proceso, dirigiendo estos
objetivos a perfeccionar la calidad del producto
z 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ñ
compañeros

Calidad del Software José Luis Fuertes 80 Calidad del Software José Luis Fuertes 81

Mejora del Proceso Software Mejora del Proceso Software


Antecendentes CMM
 Carnegie Mellon University (CMU)  Una forma de discriminar entre niveles de madurez
Software Engineering Institute (SEI) del proceso es la habilidad de los desarrolladores y
z Capability Maturity Model (1991) gestores para ver y entender qué
qué es lo que ocurre
‹ Establecer programas de mejora del proceso software durante todo el proceso de desarrollo
‹ Indica los objetivos de las medidas a usar en cada nivel z En el nivel inferior de madurez, no se comprende ni el
z Personal Software Process (1993) proceso, pero conforme crece la madurez, se comprende
‹ Conseguir mejores Ingenieros del Software y se puede definir mejor
‹ Incluye algunas medidas bá
básicas y del proceso z Tanto las medidas como la habilidad para ver y entender
está
están íntimamente relacionadas, puesto que un
desarrollador puede medir só
sólo lo que resulta visible en
un proceso y las medidas ayudan a incrementar esa
visibilidad
Calidad del Software José Luis Fuertes 82 Calidad del Software José Luis Fuertes 83

14
Mejora del Proceso Software Mejora del Proceso Software
CMM PSP
 El CMM puede servir como una guí
guía para  El PSP es un proceso de perfeccionamiento
determinar qué
qué medir primero y có
cómo planear un diseñ
diseñado para ayudar a controlar, gestionar y
plan de medidas comprensivo y adecuado mejorar la forma de trabajar
 Tipos de medidas por nivel del CMM:  Marco de trabajo estructurado con formularios,
Nivel de Madurez Características Objetivo de las Medidas guí
guías y procedimientos para desarrollar software
1. Inicial: Ad hoc, caótico Establecer las bases para planear y estimar
 PSP proporciona los datos histó
históricos necesarios para
Los procesos dependen de los
2. Repetible: Seguimiento y control del proyecto
individuos mejorar el proceso
Los procesos se definen y se Definición y cuantificación de los
3. Definido:
institucionalizan procesos y productos intermedios  Principal objetivo: conseguir mejores ingenieros del
4. Gestionable: Se miden los procesos
Definición, cuantificación y control de los
subprocesos y los elementos
software
Los procesos se retroalimentan Optimización dinámica y mejora durante
5. Optimizado:
con las mejoras el proyecto

Calidad del Software José Luis Fuertes 84 Calidad del Software José Luis Fuertes 85

Mejora del Proceso Software Mejora del Proceso Software


PSP PSP
 Permite comprender por qué
qué se han cometido  El PSP está
está dividido en cuatro fases:
errores y cuá
cuál es la mejor forma de encontrarlos z PSP0, PSP1, PSP2 y PSP3
z Fases intermedias de mejora: PSP0.1, PSP1.1 y PSP2.1
 Se puede determinar la calidad de las revisiones, los PSP3
Proceso
Desarrollo cíclico
tipos de errores no detectados y los mé
métodos má
más personal
cíclico

efectivos para cada ingeniero Gestión PSP2


PSP2.1
Plantillas de diseño
personal Revisiones del código
de calidad Revisiones del diseño

PSP1.1
Proceso PSP1 Planificación de tareas
personal de Estimación del tamaño Planificación de tiempos
planificación Informe de pruebas

PSP0.1
Proceso PSP0 Estándar de codificación
personal Proceso actual Medidas del tamaño
básico Registro del tiempo Propuesta de mejora del proceso
Registro de defectos
Estándar de tipos de defectos

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ó
económico
z Aunque es fundamental obtener un software de calidad,
cada medida, cada test, cada revisió
revisión… consume tiempo
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 Conclusiones
 Razones para la lentitud en la adopció
adopción del uso de  ISO/IEC 9126-
9126-1: Modelo de Calidad del Software
medidas para evaluar la calidad del software: z Los está
estándares, por sí
sí solos, no son suficientes
z No existen medidas de la calidad del software z Se necesita una disciplina para aplicarlos
universales z Si no se comprende el proceso del negocio, no resultará
resultará
‹ Existen algunas medidas útiles para ciertos entornos útil aplicar ningú
ningún mé
método de evaluació
evaluación de la calidad ni
‹ Existirá
Existirán medidas de calidad ampliamente aceptadas, cuando de mejora del proceso
madure la investigació
investigación en medidas de calidad del software
 La medida de los atributos del software puede
z Incluso sabiendo qué
qué medidas usar, no es fá
fácil obtener
los datos usarse para predecir o medir indirectamente la
z Incluso con los datos, no es obvio có
cómo interpretar y
calidad del software
usar los nú
números
z La gente se resiste a que se mida la calidad de su trabajo
Calidad del Software José Luis Fuertes 90 Calidad del Software José Luis Fuertes 91

16

También podría gustarte