Experiencias en la medición de la calidad de los componentes software Manuel F. Bertoa y Antonio...

47
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

Transcript of Experiencias en la medición de la calidad de los componentes software Manuel F. Bertoa y Antonio...

Page 1: 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.

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

Page 2: 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.

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

Page 3: 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.

Conceptos sobre Componentes Software

Page 4: 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.

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]

Page 5: 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.

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]

Page 6: 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.

Desarrollo de Software Basado en Componentes (DSBC)

Page 7: 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.

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!

Page 8: 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.

Calidad de Componentes Software 8

Desarrollo (simplificado) Basado en COTS

Page 9: 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.

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

Page 10: 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.

Mercado de Componentes COTS

Page 11: 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.

Calidad de Componentes Software 11

www.componentsource.com

Page 12: 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.

Calidad de Componentes Software 12

www.componentsource.com

Page 13: 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.

Selección de Componentes

¿Comprar o Construir?

Page 14: 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.

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

Page 15: 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.

Calidad de Componentes Software 15

La Fase de Aprovisionamiento

Page 16: 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.

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?

Page 17: 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.

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

Page 18: 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.

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

Page 19: 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.

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

Page 20: 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.

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

Page 21: 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.

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!

Page 22: 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.

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?

Page 23: 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.

Medidas para COTS y el proceso de medición de componentes software

Page 24: 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.

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 [¿?]

Page 25: 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.

Calidad de Componentes Software 25

Componentes: Información Disponible

Page 26: 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.

La Usabilidad en DSBC

Page 27: 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.

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

Page 28: 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.

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

Page 29: 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.

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)

Page 30: 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.

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)

Page 31: 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.

Proceso de medición de la Usabilidad de Componentes Software

Page 32: 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.

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

Page 33: 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.

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

Page 34: 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.

Calidad de Componentes Software 34

Atributos de Usabilidad

EntityInformation

NeedMeasurable

ConceptAttribute

 Software

Component

Page 35: 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.

Calidad de Componentes Software 35

Atributos de Usabilidad

EntityInformation

NeedMeasurable

ConceptAttribute

 Software

Component

Evaluate the

Usability

Page 36: 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.

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

Page 37: 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.

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

Page 38: 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.

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

Page 39: 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.

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

Page 40: 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.

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

¿?

Page 41: 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.

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

Page 42: 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.

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

Page 43: 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.

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

Page 44: 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.

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)

Page 45: 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.

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

Page 46: 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.

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!

Page 47: 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.

Calidad de Componentes Software 47

Gracias

Preguntas:

Antonio Vallecillo

[email protected]

Manuel F. Bertoa

[email protected]