Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3. Medidas
1. Introducció
Introducción a las medidas
2. Qué
Qué, por qué
qué y có
cómo miden los ingenieros
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
...
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
Calidad del Software José Luis Fuertes 12 Calidad del Software José Luis Fuertes 13
Introducció
Introducción
Kelvin DeMarco
Calidad del Software José Luis Fuertes 14
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
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
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...)...
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.
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:
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.
Calidad del Software José Luis Fuertes 66 Calidad del Software José Luis Fuertes 67
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 José Luis Fuertes 74 Calidad del Software José Luis Fuertes 75
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 del Software José Luis Fuertes 78 Calidad del Software José Luis Fuertes 79
Calidad del Software José Luis Fuertes 80 Calidad del Software José Luis Fuertes 81
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
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
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