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

Post on 11-Apr-2015

105 views 0 download

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

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

av@lcc.uma.es

Manuel F. Bertoa

bertoa@lcc.uma.es