Document 7859969

Download Report

Transcript Document 7859969

Experiencias 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
Agenda







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
Calidad de Componentes Software
2
Conceptos sobre
Componentes Software
Componente 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]
Calidad de Componentes Software
4
Componentes 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]
Calidad de Componentes Software
5
Desarrollo de Software
Basado en Componentes
(DSBC)
DSBC



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!
Calidad de Componentes Software
7
Desarrollo (simplificado) Basado en
COTS
Calidad de Componentes Software
8
Ciclo de Vida DSBC









Gestión del Proyecto
Requisitos
Especificación
Aprovisionamiento (Provisioning)
Integración (Assembly)
Prueba
Despliegue (Deployment)
Operación
Mantenimiento
Calidad de Componentes Software
9
Mercado de Componentes
COTS
www.componentsource.com
Calidad de Componentes Software
11
www.componentsource.com
Calidad de Componentes Software
12
Selección de Componentes
¿Comprar o Construir?
La 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
Calidad de Componentes Software
14
La Fase de Aprovisionamiento
Calidad de Componentes Software
15
Selecció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 internacional que sirva de referencia?
Calidad de Componentes Software
16
Modelo 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
Calidad de Componentes Software
17
Modelo de Calidad ISO/IEC 9126-1
Características
Funcionalidad
Adecuación
Subcaracterísticas
Corrección
Interoperabilidad
Seguridad
Conformidad
Fiabilidad
Madurez
Tolerancia a Fallos
Aprendibilidad
Comprensibilidad
Recuperabilidad
Usabilidad
Operabilidad
Atractividad
Eficiencia
Comportamiento Temporal
Utilización de Recursos
Mantenibilidad
Analizabilidad
Cambiabilidad
Estabilidad
Facilidad de Prueba
Portabilidad
Adaptabilidad
Instalabilidad
Coexistencia
Calidad de Componentes Software
Reemplazabilidad
18
Modelo 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
Calidad de Componentes Software
19
Conceptos 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
Calidad de Componentes Software
20
Sí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)>37.5
Esta malo si tiene fiebre y le duele la cabeza
OJO: no siempre son aplicables!
Calidad de Componentes Software
21
Preguntas 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?
Calidad de Componentes Software
22
Medidas para COTS y
el proceso de medición de
componentes software
Medir 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 [¿?]
Calidad de Componentes Software
24
Componentes: Información Disponible
Calidad de Componentes Software
25
La Usabilidad en DSBC
La 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
Calidad de Componentes Software
27
La 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
Calidad de Componentes Software
28
La 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)
Calidad de Componentes Software
29
La 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)
Calidad de Componentes Software
30
Proceso de medición de la
Usabilidad de Componentes
Software
Medidas 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
Calidad de Componentes Software
32
Medidas 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“)
Calidad de Componentes Software
33
Atributos de Usabilidad
Entity
Information
Need
Measurable
Concept
Attribute
Software
Component
Calidad de Componentes Software
34
Atributos de Usabilidad
Entity
Information
Need
Software
Component
Evaluate
the Usability
Measurable
Concept
Calidad de Componentes Software
Attribute
35
Atributos de Usabilidad
Entity
Information
Need
Measurable
Concept
Attribute
Quality of
Manuals
Quality of
Documentation
Software
Component
Evaluate
the Usability
Quality of
Demos
Quality of
Marketing Info
Complexity of the Design
Calidad de Componentes Software
36
Atributos de Usabilidad
Entity
Information
Need
Measurable
Concept
Quality of
Manuals
Quality of
Documentation
Software
Component
Evaluate
the Usability
Attribute
Contents of manuals
Size of Manuals
Effectiveness of Manuals
Quality of
Demos
Contents of Demos
Quality of
Marketing Info
Contents of Marketing Info
Design Legibility
Interfaces Understandability
Complexity of the Design
Learning Facility
API Complexity
Customisability
Calidad de Componentes Software
37
Ejemplo: Calidad de los Manuales
Entity
Informatio
n
Need
Measurable
Concept
Quality of
Manuals
Attribute
Contents of manuals
of Manuals
Contents ofSize
manuals
Effectiveness of Manuals
Quality of
Evaluate
Software
the
Manuals
Component
Usability
Quality of
Documentatio
n
Quality of
Demos
Contents of Demos
Quality of
Marketing
Info
Contents of Marketing Info
Size of Manuals
Design Legibility
Interfaces Understandability
Learning Facility
Effectiveness
of
API Complexity
Manuals
Customisability
Complexity of the Design
Calidad de Componentes Software
38
Medidas de la Calidad de los Manuales
Attribute
Indicator
Derived Measure
Percentage of Functional Elements
Described in Manuals
Manuals Coverage
Percentage of Interfaces Described in the
Manual
Percentage of Methods Described in the
Manual
Percentage of Configurable Parameters
Described in the Manual
Contents of
manuals
Manuals Consistency
Manuals Legibility
Percentage of FE incorrectly described in
manuals
Difference Between the Component
Version and The Manual Version
Ratio of Figures per Kilo-word in manuals
Ratio of HTML files of manuals per FE
Size of
Manuals
Manuals Suitability
Ratio of words per FE
Effectiveness
of Manuals
Effectiveness Ratio
Percentage of Functional Elements
Correctly Used after Reading the Manual
Calidad de Componentes Software
39
¿Cómo se enlazan las subcaracterísticas
con los atributos?
Understandability

Debemos relacionar




con


la Calidad de la documentación,
la Complejidad del Problema, y
la Complejidad del Diseño
Learnability
Operability
¿?
Quality of Documentation
Complexity of Problem
Complexity of Solution
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
Calidad de Componentes Software
40
Un propuesta teórica inicial para ser
demostrada mediante experimentos
Attribute
Understandability
Learnability
Operability
Contents of manuals
low
High
medium
Size of Manuals
low
high
medium
Effectiveness of Manuals
low
high
high
Contents of Demos
high
low
low
Contents of Help System
-
high
high
Size of Help System
-
high
medium
Effectiveness of Help System
-
high
high
Contents of Marketing Info
high
-
-
Effectiveness of Marketing Info
high
-
-
Design’s Legibility (Readability)
medium
low
high
Interfaces Understandability
low
low
high
Understandability of I/O
high
low
high
-
high
medium
Customisability
low
medium
high
Contents of error message
low
low
high
Interfaces Density
low
high
high
ease of component Learning
Calidad de Componentes Software
41
El 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
Calidad de Componentes Software
42
Resultados 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 -> Usability (R2=.95)
#HTMLfiles/FE -> Understandability (R2=.90)
#Interfaces -> 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
Calidad de Componentes Software
43
Resultados 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 -> calidad manuales (estructura: HTMLfiles/FE)
+ complejidad del diseño (métodos sin args)
L -> calidad manuales (contenido:Kword/interface)
+ complejidad del diseño (Ratio metodos void)
O -> complejidad del diseño (Ratio void methods
+ configurabilidad: Config fields/method)
Calidad de Componentes Software
44
Resultados del análisis regresión
Subcharac.
Depends on Measures
Ratio HTML Files
per FE (Files)
% Methods
without Args
(MwoA)
Learnability
Kilo-Words
per Interface
(WpI)
Ratio of Return
Values
per Methods
(RVpM)
Operability
Ratio of
Configurable
Parameters per
Methods (CPpM)
Ratio of Return
Values
per Methods
(RVpM)
Understand
ability
Calidad de Componentes Software
R2
0,99996
0,98891
0,99001
Relationship
U = 0,28 Files
– 1,07 MwoA
+ 1,20
L = 0,15 WpI
– 3,36 RVpM
+ 2,64
O = 2,64 FpM
– 8,18 RVpM
+ 6,17
45
Conclusiones

DSBC




Calidad para DSBC en pañales todavía




Tecnología de componentes bastante madura
Mercado existente de COTS
Uso en la industria cada vez mayor
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!
Calidad de Componentes Software
46
Gracias
Preguntas:
Calidad de Componentes Software
47