Atributos de Calidad para Componentes COTS

Download Report

Transcript Atributos de Calidad para Componentes COTS

Calidad de
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
Métricas 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
www.componentsource.com
Calidad de Componentes Software
13
www.componentsource.com
Calidad de Componentes Software
14
www.componentsource.com
Calidad de Componentes Software
15
www.componentsource.com
Calidad de Componentes Software
16
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
18
La Fase de Aprovisionamiento
Calidad de Componentes Software
19
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 eso?

¿Existe algún estándar internacional que sirva de referencia?
Calidad de Componentes Software
20
Modelo de Calidad
ISO 9126
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
22
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
23
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 métricas específicas para los
componentes software
Definir indicadores para las
características de calidad
Calidad de Componentes Software
24
Modelo de Calidad para
Componentes COTS: COTS-QM
Características
•Funcionalidad
Idoneidad
Subcaracterísticas
Corrección
Interoperatividad
Seguridad
Conformidad
•Fiabilidad
Madurez
Tolerancia a Fallos
Recuperabilidad
•Usabilidad
Facilidad de aprendizaje
Operatividad
Facilidad de comprensión
•Eficiencia
Comportamiento Temporal
Utilización de Recursos
•Mantenibilidad
Analizabilidad
Cambiabilidad
Estabilidad
Facilidad de Prueba
•Portabilidad
Adaptabilidad
Facilidad Instalación
Adecuación
Calidad de Componentes Software
Reemplazabilidad
25
Modelo de Calidad para
Componentes COTS: COTS-QM
Características
•Funcionalidad
Idoneidad
Subcaracterísticas
Corrección
Interoperatividad
Seguridad
Conformidad
•Fiabilidad
Madurez
Recuperabilidad
•Usabilidad
Facilidad de aprendizaje
Operatividad
Facilidad de comprensión
•Eficiencia
Comportamiento Temporal
Utilización de Recursos
•Mantenibilidad
Cambiabilidad
Calidad de Componentes Software
Facilidad de Prueba
26
Métricas para COTS y
el proceso de medición de
componentes software
Conceptos del “Proceso de Medición”

Trata de satisfacer unas necesidades de
información






sobre ciertas entidades
que poseen atributos
que se miden con métricas
Los conceptos medibles relacionan los
atributos con las necesidades de informacion
Una métrica es un metodo de medición, y una
escala de medición
Métricas directas, indirectas, e indicadores
Calidad de Componentes Software
28
Medir un componente



¿Cuál es la información disponible de un
componente software?
Basar las métricas en esta información
disponible
Definir relaciones entre las métricas y
las características de calidad [¿?]
Calidad de Componentes Software
29
Componentes: Información Disponible
Calidad de Componentes Software
30
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
32
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
33
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
34
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
35
Proceso de medición de la
Usabilidad de Componentes
Software
Métricas 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
37
Métricas 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
38
Atributos de Usabilidad
Entity
Information
Need
Measurable
Concept
Quality of
Manuals
Quality of
Documentation
Software
Component
Evaluate
the Usability
Quality of
Demos
Quality of
Help System
Quality of
Marketing Info
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
Design Legibility (Readability)
Interfaces Understandability
I/O Understandability
Complexity of the Design
Ease of Learning
Customisability
Quality of error messages
Calidad de Componentes Software
Interfaces Complexity
39
Atributos de Usabilidad
Entity
Information
Need
Measurable
Concept
Quality of
Manuals
Quality of
Documentation
Software
Component
Evaluate
the Usability
Quality of
Demos
Quality of
Help System
Quality of
Marketing Info
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
Design Legibility (Readability)
Interfaces Understandability
I/O Understandability
Complexity of the Design
Ease of Learning
Customisability
Quality of error messages
Calidad de Componentes Software
Interfaces Complexity
40
Atributos de Usabilidad
Entity
Information
Need
Measurable
Concept
Quality of
Manuals
Quality of
Documentation
Software
Component
Evaluate
the Usability
Quality of
Demos
Quality of
Help System
Quality of
Marketing Info
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
Design Legibility (Readability)
Interfaces Understandability
I/O Understandability
Complexity of the Design
Ease of Learning
Customisability
Quality of error messages
Calidad de Componentes Software
Interfaces Complexity
41
Atributos de Usabilidad
Entity
Information
Need
Measurable
Concept
Quality of
Manuals
Quality of
Documentation
Software
Component
Evaluate
the Usability
Quality of
Demos
Quality of
Help System
Quality of
Marketing Info
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
Design Legibility (Readability)
Interfaces Understandability
I/O Understandability
Complexity of the Design
Ease of Learning
Customisability
Quality of error messages
Calidad de Componentes Software
Interfaces Complexity
42
Ejemplo: Calidad de los Manuales
Entity
Information
Need
Measurable
Concept
Attribute
Contents of manuals
Quality of
Manuals
Quality of
Demos
Size of Manuals
Quality of
Documentation
Quality of
Help System
Attribute
Contents of manuals
Size of Manuals
Effectiveness of Manuals
Contents of Demos
Contents of Help System
Size of Help System
Effectiveness of Manuals
Software
Component
Evaluate
the Usability
Quality of
Marketing Info
Effectiveness of Help System
Contents of Marketing Info
Effectiveness of Marketing Info
Design Legibility (Readability)
Interfaces Understandability
I/O Understandability
Complexity of the Design
Ease of Learning
Customisability
Quality of error messages
Calidad de Componentes Software
Interfaces Complexity
43
Métricas para la Calidad de los Manuales
Attribute
Indicator
Manuals Coverage
Indirect Metric
Proportion of Functional Elements
Described in Manuals
Proportion of Functional Elements
incorrectly Described in the Manual
Contents of
manuals
Manuals Consistency Completeness of Manuals
Difference Between the Component
Version and The Manual Version
Ratio of Figures per Manual Pages
Manuals Legibility
Ratio of Tables per Manual Pages
Ratio of UML Diagrams per Manual Pages
Size of
Manuals
Effectiveness
of Manuals
Manuals Suitability
Average Pages per Functional Elements
Effectiveness Ratio
Proportion of Functional Elements
Correctly Used after Reading The Manual
Understandability
Ratio
Proportion of Functional Elements
Correctly Understood after Reading The
Manual
Calidad de Componentes Software
44
¿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 métricas) y
subcaracterísticas de calidad, sino grados de
relación o influencia entre ellas
Calidad de Componentes Software
45
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
46
Conclusiones

DSBC




Calidad para DSBC en pañales todavía




Tecnología de componentes bastante madura
Mercado emergente de COTS
Uso en la industria cada vez mayor
Pocas métricas 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 y Preguntas
Preguntas:
Calidad de Componentes Software
48
Apéndices y Ampliaciones
Si llegas aquí,
es porque diste
de más un clic
Ciclo de Vida DSBC:
Gestión del Proyecto

Es el arte de equilibrar objetivos
contrapuestos, gestionar riesgos y superar
restricciones para entregar con éxito un
producto software que satisfaga tanto las
necesidades del cliente (el que paga la
factura) como del usuario final.



Controla todas las tareas de un proyecto de
desarrollo software
Determina tanto el nivel de calidad que debe
alcanzar el sistema
Como aspectos de costes de inversión, tiempos
producción, etc.
Calidad de Componentes Software
50
Ciclo de Vida DSBC:
Requisitos

El objetivo de esta fase es describir que
debe hacer el sistema




Pero sin indicar como debe hacerlo
Permitiendo a los desarrolladores y a los
clientes estar de acuerdo con esa descripción
Los analistas de sistemas deben obtener,
organizar y documentar la funcionalidad y las
restricciones requeridas
Y seguir y documentar las decisiones y
acuerdos
Calidad de Componentes Software
51
Ciclo de Vida DSBC:
Especificación



Se concentra en el diseño y análisis de
la arquitectura software del sistema
De acuerdo con los requisitos
funcionales y extra-funcionales
identificados
Describe la funcionalidad del sistema


"Como" funciona el sistema y
"Como" alcanza los requisitos del sistema
Calidad de Componentes Software
52
Ciclo de Vida DSBC:
Especificación (2)

Utiliza como entrada




Genera un conjunto de especificaciones de
componentes


los requisitos funcionales y extra-funcionales,
la información sobre software existente
(sistemas heredados, paquetes y bases de
datos),
y las restricciones técnicas (uso de un estilo
arquitectónico o herramienta particular)
incluyendo las especificaciones de las
interfaces ofrecidas y requeridas
y una arquitectura de componentes

mostrando como interactúan los componentes
entre ellos
Calidad de Componentes Software
53
Ciclo de Vida DSBC:
Aprovisionamiento


Usa el resultado de la fase de especificación
para determinar que componentes se deben
 Construir desde cero
 Comprar a terceros
 O modificar componentes o módulos
software existentes
Además, en esta fase se debe realizar las
pruebas unitarias de cada componentes antes
de iniciar la fase de integración
Calidad de Componentes Software
54
Ciclo de Vida DSBC:
Integración


Se cogen todos los componentes y el
software existente y se ponen juntos
con una interfaz de usuario adecuada
para crear una nueva aplicación
Además, se deben realizar las pruebas
de integración


comprobar las incompatibilidades de
protocolos y los desajustes semánticos
habituales cuando se conectan piezas de
software desarrolladas por diferentes
compañías
Calidad de Componentes Software
55
Ciclo de Vida DSBC:
Prueba



Evaluar el sistema para confirmar que
satisface los requisitos especificados
Y para identificar y corregir defectos en la
implementación
Proposito: Verificar




La interacción entre los objetos
La integración apropiada de todos los
componentes del software
Todos los requisitos se han implementado
correctamente
Identificar y asegurar que los defectos se han
resuelto antes de entregarlo
Calidad de Componentes Software
56
Ciclo de Vida DSBC:
Despliegue


Producir una versión del producto y entregar
el software a sus usuarios finales
Abarca un amplio rango de actividades:





Producir versiones externas del software
Empaquetar el software
Distribuir y equilibrar la carga del software
Instalar el software
Suministrar ayuda y asistencia a los usuarios
finales en la configuración del software de
acuerdo a las preferencias y necesidades de su
entorno de trabajo
Calidad de Componentes Software
57
Ciclo de Vida DSBC:
Operación

Ejecución de la aplicación en su entorno
de trabajo por sus usuarios finales
Calidad de Componentes Software
58
Ciclo de Vida DSBC:
Mantenimiento

Ofrecer los servicios y actividades de
mantenimiento necesarios para el uso
efectivo del software posterior a su
implementación




Corrección de errores
Adaptación del sistema a los cambios del entorno
Sustitución y actualización de componentes
En esta fase incluimos tambien los procesos
de Configuración y Gestión de Cambios que
propone RUP
Calidad de Componentes Software
59
Ampliaciones del dibujo
Componente Software: Información
Disponible (1)
Calidad de Componentes Software
61
Información Disponible: Funcionalidad
Calidad de Componentes Software
62
Información Disponible
Marketing Info.
Calidad de Componentes Software
63
Información Disponible:
Documentación
Calidad de Componentes Software
64
Subcaracterísticas de
Usabilidad
Adaptando la Usabilidad para DSBC

Comprensión: la capacidad del componente
software para permitir que el usuario
(desarrollador del sistema) comprenda si el
componente es adecuado y como puede
usarse para tareas y condiciones de uso
concretas


Los desarrolladores del sistema deben poder
seleccionar el componente más adecuado para la
utilización prevista o deseada
Los elementos del componente (intefaces,
operaciones …) deben ser evidentes
o fáciles de comprender
Calidad de Componentes Software
66
Adaptando la Usabilidad para DSBC

Aprendibilidad: la capacidad del componente
software para permitir que el usuario
(desarrollador del sistema) aprenda el
componente


Estas métricas deben valorar cuanto tiempo le
llevara a los desarrolladores aprender como se
usan las interfaces, las operaciones, los eventos, …
del componente.
O medir la efectividad de los manuales, sistema
de ayuda, las demos,…
Calidad de Componentes Software
67
Adaptando la Usabilidad para DSBC

Operabilidad: la capacidad del
componente software para permitir que
el usuario (desarrollador del sistema)
opere con él y lo controle

Estas métricas deben poder valorar si los
desarrolladores del sistema pueden integrar
correctamente el componente o adaptarlo
Calidad de Componentes Software
68
Adaptando la Usabilidad para DSBC

Atractividad: la capacidad del
componente software para resultar
atractivo a los usuarios

Como estamos considerando que los
usuarios del componente no son los
usuarios finales, esta característica no la
incluimos
Calidad de Componentes Software
69
Adaptando la Usabilidad para DSBC


Conformidad de Usabilidad: la capacidad del
componente software para seguir los
estándares, convenciones, guías de estilo o
normativas relacionadas con la usabilidad
Actualmente, no conocemos ningún estándar o
norma de usabilidad para componentes
software
Calidad de Componentes Software
70