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ónUniversidad de Málaga
Calidad de Componentes Software 2
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
Conceptos sobre Componentes Software
Calidad de Componentes Software 4
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 5
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]
Desarrollo de Software Basado en Componentes (DSBC)
Calidad de Componentes Software 7
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 8
Desarrollo (simplificado) Basado en COTS
Calidad de Componentes Software 9
Ciclo de Vida DSBC Gestión del Proyecto Requisitos Especificación Aprovisionamiento (Provisioning) Integración (Assembly) Prueba Despliegue (Deployment) Operación Mantenimiento
Mercado de Componentes COTS
Calidad de Componentes Software 11
www.componentsource.com
Calidad de Componentes Software 12
www.componentsource.com
Selección de Componentes
¿Comprar o Construir?
Calidad de Componentes Software 14
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 15
La Fase de Aprovisionamiento
Calidad de Componentes Software 16
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 inter-nacional que sirva de referencia?
Calidad de Componentes Software 17
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 18
Modelo de Calidad ISO/IEC 9126-1
Funcionalidad
Fiabilidad
Usabilidad
Eficiencia
Mantenibilidad
Portabilidad
SubcaracterísticasSubcaracterísticasSubcaracterísticasSubcaracterísticasCaracterísticas
Utilización de RecursosComportamiento Temporal
ReemplazabilidadCoexistencia
Tolerancia a Fallos RecuperabilidadMadurez
InstalabilidadAdaptabilidad
InteroperabilidadCorrección Seguridad Conformidad
OperabilidadAprendibilidad Comprensibilidad
Analizabilidad Cambiabilidad Estabilidad Facilidad de Prueba
Adecuación
Atractividad
Calidad de Componentes Software 19
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 20
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 21
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 22
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?
Medidas para COTS y el proceso de medición de componentes software
Calidad de Componentes Software 24
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 25
Componentes: Información Disponible
La Usabilidad en DSBC
Calidad de Componentes Software 27
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 28
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 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
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)
Proceso de medición de la Usabilidad de Componentes Software
Calidad de Componentes Software 32
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 33
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“)
Complejidad del Problema
Calidad de Componentes Software 34
Atributos de Usabilidad
EntityInformation
NeedMeasurable
ConceptAttribute
Software
Component
Calidad de Componentes Software 35
Atributos de Usabilidad
EntityInformation
NeedMeasurable
ConceptAttribute
Software
Component
Evaluate the
Usability
Calidad de Componentes Software 36
Atributos de Usabilidad
EntityInformation
NeedMeasurable
ConceptAttribute
Software
Component
Evaluate the
Usability
Quality of Documentation
Quality of Manuals
Quality of Demos
Quality of Marketing Info
Complexity of the Design
Calidad de Componentes Software 37
Atributos de Usabilidad
EntityInformation
NeedMeasurable
ConceptAttribute
Software
Component
Evaluate the
Usability
Quality of Documentation
Quality of Manuals
Contents of manuals
Size of Manuals
Effectiveness of Manuals
Quality of Demos
Contents of Demos
Quality of Marketing Info
Contents of Marketing Info
Complexity of the Design
Design Legibility
Interfaces Understandability
Learning Facility
API Complexity
Customisability
Calidad de Componentes Software 38
Ejemplo: Calidad de los Manuales
EntityInformation
NeedMeasurable
ConceptAttribute
Software
Component
Evaluate the
Usability
Quality of Documentation
Quality of Manuals
Contents of manuals
Size of Manuals
Effectiveness of Manuals
Quality of Demos
Contents of Demos
Quality of Marketing Info
Contents of Marketing Info
Complexity of the Design
Design Legibility
Interfaces Understandability
Learning Facility
API Complexity
Customisability
Quality of Manuals
Contents of manuals
Size of Manuals
Effectiveness of Manuals
Calidad de Componentes Software 39
Medidas de la Calidad de los Manuales
Attribute Indicator Derived Measure
Contents of manuals
Manuals Coverage
Percentage of Functional Elements Described in Manuals
Percentage of Interfaces Described in the Manual
Percentage of Methods Described in the Manual
Percentage of Configurable Parameters Described in the Manual
Manuals Consistency
Percentage of FE incorrectly described in manuals
Difference Between the Component Version and The Manual Version
Manuals LegibilityRatio 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 RatioPercentage of Functional Elements Correctly Used after Reading the Manual
Calidad de Componentes Software 40
¿Cómo se enlazan las subcaracterísticas con los atributos?
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
Understandability
Learnability
Operability
¿?
Calidad de Componentes Software 41
Un propuesta teórica inicial para ser demostrada mediante experimentos
AttributeUnderstandabilit
yLearnability 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
ease of component Learning - high medium
Customisability low medium high
Contents of error message low low high
Interfaces Density low high high
Calidad de Componentes Software 42
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 43
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 44
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 45
Resultados del análisis regresión
Subcharac.Depends on Measures
R2 Relationship
Understandability
Ratio HTML Files
per FE (Files)
% Methods without Args
(MwoA) 0,99996
U = 0,28 Files – 1,07 MwoA + 1,20
Learnability
Kilo-Words per Interface
(WpI)
Ratio of ReturnValues
per Methods (RVpM)
0,98891
L = 0,15 WpI – 3,36 RVpM + 2,64
Operability
Ratio of Configurable
Parameters perMethods (CPpM)
Ratio of ReturnValues
per Methods (RVpM)
0,99001
O = 2,64 FpM – 8,18 RVpM + 6,17
Calidad de Componentes Software 46
Conclusiones 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!
Calidad de Componentes Software 47
Gracias
Preguntas:
Antonio Vallecillo
Manuel F. Bertoa
Top Related