Title: Experiencias en la medici
1Experiencias en la medición de la calidad de los
componentes software
- Manuel F. Bertoa y Antonio Vallecillo
- Departamento de Lenguajes y Ciencias de la
Computación - Universidad de Málaga
2Agenda
- Conceptos sobre Componentes Software y
Componentes COTS - Desarrollo Software Basado en Componentes
- Selección de Componentes
- Modelos de Calidad
- ISO 9126
- Modelo Calidad para componentes
- Medidas de Usabilidad
3Conceptos sobre Componentes Software
4Componente Software
- Una unidad de composición de aplicaciones
software - que posee un conjunto de requisitos,
- y que ha de poder ser desarrollado, adquirido,
incorporado al sistema y compuesto con otros
componentes, - de forma independiente en tiempo y espacio
Szyperski, 1998
5Componentes COTS
- Commercial Off-The-Shelf
- Clase especial de componentes software,
normalmente de grano grueso que presentan las
siguientes características - Vendidos o licenciados al público en general
- Su código no puede ser modificado por el usuario
- No hay control sobre su evolución los mantiene y
actualiza el propio vendedor, quien conserva los
derechos de la propiedad intelectual - Están disponibles en forma de múltiples copias,
todas idénticas entre sí - Bass et al., 1999
6Desarrollo de Software Basado en Componentes
(DSBC)
7DSBC
- Diseño y desarrollo de aplicaciones distribuidas
basadas en componentes software reutilizables - Una extensión natural de la programación orienta
a objetos dentro del ámbito de los sistemas
abiertos y distribuidos - Tecnológicamente comienza a estar maduro y usarse
en la industria. - Hace falta medir ahora su calidad!
8Desarrollo (simplificado) Basado en COTS
9Ciclo de Vida DSBC
- Gestión del Proyecto
- Requisitos
- Especificación
- Aprovisionamiento (Provisioning)
- Integración (Assembly)
- Prueba
- Despliegue (Deployment)
- Operación
- Mantenimiento
10Mercado de Componentes COTS
11www.componentsource.com
12www.componentsource.com
13Selección de Componentes
14La Fase de Aprovisionamiento
- Usa el resultado de la fase de especificación
para determinar que componentes se deben - Construir desde cero
- Comprar a terceros
- Modificar (componentes o módulos existentes)
- Debemos tener la capacidad de valorar distintos
componentes software que ofrezcan una
funcionalidad similar - Debemos tener la capacidad de seleccionar el
mejor entre ellos, si existe
15La Fase de Aprovisionamiento
Cuál elegir?
16Selección de Componentes
- Necesitamos poder saber valorar objetivamente un
componente, es decir, Medir su Calidad - Qué es la calidad de un componente?
- Cómo se mide la calidad?
- Existe algún estándar inter-nacional que sirva
de referencia?
17Modelo de Calidad
- Un Modelo de calidad es el conjunto de
características y sub-características, y de cómo
se relacionan entre sí. - Depende del tipo de producto a evaluar
- Modelo de Calidad ISO-9126
18Modelo de Calidad ISO/IEC 9126-1
Características
Subcaracterísticas
Funcionalidad Fiabilidad Usabilidad Eficiencia
Mantenibilidad Portabilidad
Utilización de Recursos
Comportamiento Temporal
Analizabilidad
Cambiabilidad
Estabilidad
Facilidad de Prueba
Reemplazabilidad
19Modelo de Calidad para Componentes Software
- ISO 9126 es un Modelo genérico
- Es necesario adaptarlo (en nuestro caso, para
componentes software) - Determinar qué subcaracterísticas son relevantes,
y cuáles hay que particularizar - Definir medidas (métricas) específicas para los
componentes software - Definir indicadores para las características de
calidad
20Conceptos del Proceso de Medición
- Trata de satisfacer unas necesidades de
información - sobre ciertas entidades
- que poseen atributos
- que se miden con medidas
- Los conceptos medibles relacionan los atributos
con las necesidades de información - Una medida es un metodo de medición, y una escala
de medición - Medidas base, derivadas, e indicadores
21Símil la medicina
- Queremos determinar si un paciente esté enfermo
(necesidad de información) - Entidades personas
- Atributos temperatura, talla, peso, dureza
- Medidas ºC (boca), ºC (oído), índice de masa
corporal (objetivas y subjetivas) - Indicadores
- Tiene fiebre si ºC(boca)gt37.5
- Esta malo si tiene fiebre y le duele la cabeza
- OJO no siempre son aplicables!
22Preguntas para el caso de la calidad de los
componentes software
- Cuáles son nuestras necesidades de información?
- Cuáles son nuestras entidades?
- Qué atributos tienen?
- Qué medidas permiten medir esos atributos?
- Cómo las medidas permiten evaluar las
características de calidad?
23Medidas para COTS y el proceso de medición de
componentes software
24Medir un componente
- Cuál es la información disponible de un
componente software? - Basar las medidas en esta información disponible
- Definir relaciones entre las medidas y las
características de calidad ?
25Componentes Información Disponible
26La Usabilidad en DSBC
27La Usabilidad en DSBC
- ISO 9126
- La capacidad del componente para ser entendido,
comprendido, usado y atractivo para el usuario
cuando se usa bajo unas determinadas condiciones
The capability of the component to be understood,
learned, used and attractive to the user, when
used under specified conditions
28La Usabilidad en DSBC
- Depende del
- tipo de "uso" que se espera y
- tipo de "usuario" que utilizará el producto
- Usuarios de los componentes software?
- Desarrollador del componente
- Evaluador/Seleccionador
- Integrador (system builder)
- Configurador/Administrador del sistema
- Usuario del sistema
- Mantenimiento
29La Usabilidad según ISO 9126
- ISO 9126 define la Usabilidad en términos de
cinco sub-características - Comprensión (Understandability)
- Aprendibilidad (Learnability)
- Operabilidad (Operability)
- Atractividad (Attractiveness)
- Conformidad de Usabilidad (Usability compliance)
30La Usabilidad según ISO 9126
- ISO 9126 define la Usabilidad en términos de
cinco sub-características - Comprensión (Understandability)
- Aprendibilidad (Learnability)
- Operabilidad (Operability)
- Atractividad (Attractiveness)
- Conformidad de Usabilidad (Usability compliance)
31Proceso de medición de la Usabilidad de
Componentes Software
32Medidas de Usabilidad
- Necesidad de Información
- Evaluar la usabilidad de un conjunto de
componentes software que son candidatos a ser
integrados en un sistema software para
seleccionar el mejor de ellos - El desarrollador del sistema desea seleccionar el
componente más fácil de usar (integrar) dentro de
un conjunto de componentes que ofrecen una
funcionalidad similar y que cumplan los
requisitos solicitados
33Medidas de Usabilidad
- Tres conceptos medibles relacionados con la
usabilidad - Calidad de la Documentación
- Complejidad del Problema
- Complejidad de la Solución (del Diseño)
- (Al comparar componentes que ofrecen una
funcionalidad similar, podemos suponer que todos
tienen la "misma complejidad del problema)
Complejidad del Problema
34Atributos de Usabilidad
35Atributos de Usabilidad
36Atributos de Usabilidad
37Atributos de Usabilidad
38Ejemplo Calidad de los Manuales
39Medidas de la Calidad de los Manuales
40Cómo se enlazan las subcaracterísticas con los
atributos?
Understandability Learnability Operability
- Debemos relacionar
- la Calidad de la documentación,
- la Complejidad del Problema, y
- la Complejidad del Diseño
- con
- la Comprensibilidad, Aprendibilidad y la
Operabilidad - En general, no existe una relación directa entre
conceptos medibles (y las medidas) y
subcaracterísticas de calidad, sino grados de
relación o influencia entre ellas
Quality of Documentation Complexity of Problem
Complexity of Solution
41Un propuesta teórica inicial para ser demostrada
mediante experimentos
42El proceso seguido
- Se realizaron varios experimentos
- Evaluacion de la Usabilidad y (L,U,O) de forma
subjetiva (percibida) y directa - Evaluación de la Usabilidad y (L,U,O) de forma
subjetiva (percibida) e indirecta - Evaluacion de la (L,U,O) de forma objetiva
- Se obtuvieron valores para cada una de las
medidas (objetivas) - Se buscaron correlaciones entre las medidas
(tanto base como derivadas) y los resultados de
los experimentos - A nivel individual
- Usando Análisis de Regresión Lineal
43Resultados interesantes
- Alta Correlación entre la usabilidad percibida y
la objetiva (mejor usab, mejor correlación) - Pocas medidas individuales explican relativamente
bien la Usabilidad y la (U,L,O) - Words/FE -gt Usability (R2.95)
- HTMLfiles/FE -gt Understandability (R2.90)
- Interfaces -gt Perceived Usability (R2.81)
- Resultados inesperados
- El número de figuras y tablas no influye en la
Usabilidad percibida (aunque sí en la U) - La completitud de los manuales tampoco parece
influir (un componente sólo documentaba el 50) - La longitud de los nombres de clases, métodos,
etc. no influye
44Resultados interesantes (2)
- Combinaciones de medidas (no necesariamente
buenas individualmente) son mucho más
explicativas! (ver pag. sig.) - Los resultados coinciden con lo esperado, y con
lo que dicta el sentido común - U -gt calidad manuales (estructura HTMLfiles/FE)
complejidad del diseño (métodos sin
args) - L -gt calidad manuales (contenidoKword/interface)
complejidad del diseño (Ratio metodos
void) - O -gt complejidad del diseño (Ratio void methods
configurabilidad Config fields/method)
45Resultados del análisis regresión
46Conclusiones
- DSBC
- Tecnología de componentes bastante madura
- Mercado existente de COTS
- Uso en la industria cada vez mayor
- Calidad para DSBC en pañales todavía
- Pocas medidas para componentes
- Pocas experiencias reales
- Conceptos y modelos de calidad no asentados
todavía - Necesidad de DSBC y Calidad (CBSQ)
- Queda mucho trabajo por hacer!
47Gracias