Está en la página 1de 47

Experiencias en la medicin de la calidad de los componentes software

Manuel F. Bertoa y Antonio Vallecillo


Departamento de Lenguajes y Ciencias de la Computacin Universidad de Mlaga

Agenda

Conceptos sobre Componentes Software y Componentes COTS Desarrollo Software Basado en Componentes Seleccin 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 composicin 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 caractersticas

Vendidos o licenciados al pblico en general Su cdigo no puede ser modificado por el usuario No hay control sobre su evolucin: los mantiene y actualiza el propio vendedor, quien conserva los derechos de la propiedad intelectual Estn disponibles en forma de mltiples copias, todas idnticas entre s [Bass et al., 1999]
Calidad de Componentes Software 5

Desarrollo de Software Basado en Componentes (DSBC)

DSBC

Diseo y desarrollo de aplicaciones distribuidas basadas en componentes software reutilizables Una extensin natural de la programacin orienta a objetos dentro del mbito de los sistemas abiertos y distribuidos Tecnolgicamente 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

Ciclo de Vida DSBC


Gestin del Proyecto Requisitos Especificacin Aprovisionamiento (Provisioning) Integracin (Assembly) Prueba Despliegue (Deployment) Operacin 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

Seleccin de Componentes
Comprar o Construir?

La Fase de Aprovisionamiento

Usa el resultado de la fase de especificacin para determinar que componentes se deben


Construir desde cero Comprar a terceros Modificar (componentes o mdulos 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

Seleccin de Componentes

Necesitamos poder saber valorar objetivamente un componente, es decir, Medir su Calidad Qu es la calidad de un componente? Cmo se mide la calidad? Existe algn estndar internacional que sirva de referencia?
Calidad de Componentes Software 16

Modelo de Calidad

Un Modelo de calidad es el conjunto de caractersticas y sub-caractersticas, y de cmo 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


Caractersticas Funcionalidad
Adecuacin Correccin

Subcaractersticas
Interoperabilidad Seguridad Conformidad

Fiabilidad
Madurez Tolerancia a Fallos Comprensibilidad Recuperabilidad Atractividad

Usabilidad
Aprendibilidad Operabilidad

Eficiencia
Comportamiento Temporal Utilizacin de Recursos Estabilidad Coexistencia Facilidad de Prueba Reemplazabilidad
18

Mantenibilidad
Analizabilidad Cambiabilidad Instalabilidad

Portabilidad
Adaptabilidad

Calidad de Componentes Software

Modelo de Calidad para Componentes Software

ISO 9126 es un Modelo genrico Es necesario adaptarlo (en nuestro caso, para componentes software):

Determinar qu subcaractersticas son relevantes, y cules hay que particularizar Definir medidas (mtricas) especficas para los componentes software Definir indicadores para las caractersticas de calidad

Calidad de Componentes Software

19

Conceptos del Proceso de Medicin

Trata de satisfacer unas necesidades de informacin


sobre ciertas entidades que poseen atributos que se miden con medidas

Los conceptos medibles relacionan los atributos con las necesidades de informacin Una medida es un metodo de medicin, y una escala de medicin Medidas base, derivadas, e indicadores
Calidad de Componentes Software 20

Smil: la medicina

Queremos determinar si un paciente est enfermo (necesidad de informacin) Entidades: personas Atributos: temperatura, talla, peso, dureza Medidas: C (boca), C (odo), 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

Cules son nuestras necesidades de informacin? Cules son nuestras entidades? Qu atributos tienen? Qu medidas permiten medir esos atributos? Cmo las medidas permiten evaluar las caractersticas de calidad?
Calidad de Componentes Software 22

Medidas para COTS y el proceso de medicin de componentes software

Medir un componente

Cul es la informacin disponible de un componente software? Basar las medidas en esta informacin disponible

Definir relaciones entre las medidas y las caractersticas de calidad [?]


Calidad de Componentes Software 24

Componentes: Informacin 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 segn ISO 9126

ISO 9126 define la Usabilidad en trminos de cinco sub-caractersticas


Comprensin (Understandability) Aprendibilidad (Learnability) Operabilidad (Operability) Atractividad (Attractiveness) Conformidad de Usabilidad (Usability compliance)

Calidad de Componentes Software

29

La Usabilidad segn ISO 9126

ISO 9126 define la Usabilidad en trminos de cinco sub-caractersticas


Comprensin (Understandability) Aprendibilidad (Learnability) Operabilidad (Operability) Atractividad (Attractiveness) Conformidad de Usabilidad (Usability compliance)

Calidad de Componentes Software

30

Proceso de medicin de la Usabilidad de Componentes Software

Medidas de Usabilidad
Necesidad de Informacin:

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 ms fcil 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 Documentacin Complejidad del Problema Complejidad de la Solucin (del Diseo)

(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 Measurable Concept Attribute

Software Component

Evaluate the Usability

Calidad de Componentes Software

35

Atributos de Usabilidad
Entity Information Need Measurable Concept Quality of Manuals Quality of Documentation Software Component Evaluate the Usability Quality of Demos Quality of Marketing Info Attribute

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 Quality of Demos Quality of Marketing Info Attribute Contents of manuals Size of Manuals Effectiveness of Manuals Contents of Demos 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 Quality of Demos Quality of Marketing Info Attribute Contents of manuals

of Manuals Contents ofSize manuals Effectiveness of Manuals

Quality of Evaluate Software the Manuals Component Usability

Quality of Documentatio n

Contents of Demos Contents of Marketing Info

Size of Manuals
Design Legibility Interfaces Understandability Complexity of the Design Learning Facility Effectiveness of API Complexity Manuals Customisability

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 Manuals Consistency Percentage of FE incorrectly described in manuals

Contents of 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

Manuals Legibility Size of Manuals Effectiveness of Manuals

Manuals Suitability
Effectiveness Ratio

Ratio of words per FE


Percentage of Functional Elements Correctly Used after Reading the Manual

Calidad de Componentes Software

39

Cmo se enlazan las subcaractersticas con los atributos?


Understandability Learnability Operability

Debemos relacionar

con

la Calidad de la documentacin, la Complejidad del Problema, y la Complejidad del Diseo

?
Quality of Documentation Complexity of Problem Complexity of Solution

la Comprensibilidad, Aprendibilidad y la Operabilidad

En general, no existe una relacin directa entre conceptos medibles (y las medidas) y subcaractersticas de calidad, sino grados de relacin o influencia entre ellas
Calidad de Componentes Software 40

Un propuesta terica inicial para ser demostrada mediante experimentos


Attribute Contents of manuals Size of Manuals Effectiveness of Manuals Contents of Demos Contents of Help System Size of Help System Effectiveness of Help System Contents of Marketing Info Effectiveness of Marketing Info Designs Legibility (Readability) Understandability
low low low high high high medium

Learnability
High high high low high high high low

Operability
medium medium high low high medium high high

Interfaces Understandability
Understandability of I/O ease of component Learning Customisability Contents of error message

low
high low low

low
low high medium low

high
high medium high high

Interfaces Density

low

high

high

Calidad de Componentes Software

41

El proceso seguido

Se realizaron varios experimentos


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

Evaluacion de la Usabilidad y (L,U,O) de forma subjetiva (percibida) y directa Evaluacin de la Usabilidad y (L,U,O) de forma subjetiva (percibida) e indirecta Evaluacion de la (L,U,O) de forma objetiva

A nivel individual Usando Anlisis de Regresin Lineal


Calidad de Componentes Software

42

Resultados interesantes

Alta Correlacin entre la usabilidad percibida y la objetiva (mejor usab, mejor correlacin) Pocas medidas individuales explican relativamente bien la Usabilidad y la (U,L,O)

Resultados inesperados

#Words/FE -> Usability (R2=.95) #HTMLfiles/FE -> Understandability (R2=.90) #Interfaces -> Perceived Usability (R2=.81)

El nmero 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 slo documentaba el 50%) La longitud de los nombres de clases, mtodos, etc. no influye
Calidad de Componentes Software 43

Resultados interesantes (2)

Combinaciones de medidas (no necesariamente buenas individualmente) son mucho ms explicativas! (ver pag. sig.) Los resultados coinciden con lo esperado, y con lo que dicta el sentido comn:

U -> calidad manuales (estructura: HTMLfiles/FE) + complejidad del diseo (mtodos sin args) L -> calidad manuales (contenido:Kword/interface) + complejidad del diseo (Ratio metodos void) O -> complejidad del diseo (Ratio void methods + configurabilidad: Config fields/method)
Calidad de Componentes Software 44

Resultados del anlisis regresin


Subcharac. Understand ability Learnability Depends on Measures
Ratio HTML Files per FE (Files) Kilo-Words per Interface (WpI) Ratio of Configurable Parameters per Methods (CPpM) % Methods without Args (MwoA) Ratio of Return Values per Methods (RVpM) Ratio of Return Values per Methods (RVpM)

R2
0,99996

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

0,98891

Operability

0,99001

Calidad de Componentes Software

45

Conclusiones

DSBC

Calidad para DSBC en paales todava

Tecnologa de componentes bastante madura Mercado existente de COTS Uso en la industria cada vez mayor

Necesidad de DSBC y Calidad (CBSQ)


Queda mucho trabajo por hacer!

Pocas medidas para componentes Pocas experiencias reales Conceptos y modelos de calidad no asentados todava

Calidad de Componentes Software

46

Gracias
Preguntas:

Calidad de Componentes Software

47