Calidad de Componentes Software Manuel F. Bertoa y Antonio
Vallecillo Departamento de Lenguajes y Ciencias de la Computacin
Universidad de Mlaga
Diapositiva 2
Calidad de Componentes Software2 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 Mtricas de Usabilidad
Diapositiva 3
Conceptos sobre Componentes Software
Diapositiva 4
Calidad de Componentes Software4 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]
Diapositiva 5
Calidad de Componentes Software5 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]
Diapositiva 6
Desarrollo de Software Basado en Componentes (DSBC)
Diapositiva 7
Calidad de Componentes Software7 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!
Diapositiva 8
Calidad de Componentes Software8 Desarrollo (simplificado)
Basado en COTS
Diapositiva 9
Calidad de Componentes Software9 Ciclo de Vida DSBC Gestin del
Proyecto Requisitos Especificacin Aprovisionamiento (Provisioning)
Integracin (Assembly) Prueba Despliegue (Deployment) Operacin
Mantenimiento
Diapositiva 10
Mercado de Componentes COTS
Diapositiva 11
Calidad de Componentes Software11 www.componentsource.com
Diapositiva 12
Calidad de Componentes Software12 www.componentsource.com
Diapositiva 13
Calidad de Componentes Software13 www.componentsource.com
Diapositiva 14
Calidad de Componentes Software14 www.componentsource.com
Diapositiva 15
Calidad de Componentes Software15 www.componentsource.com
Diapositiva 16
Calidad de Componentes Software16 www.componentsource.com
Diapositiva 17
Seleccin de Componentes Comprar o Construir?
Diapositiva 18
Calidad de Componentes Software18 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
Diapositiva 19
Calidad de Componentes Software19 La Fase de
Aprovisionamiento
Diapositiva 20
Calidad de Componentes Software20 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 eso? Existe algn estndar inter- nacional que sirva de
referencia?
Diapositiva 21
Modelo de Calidad ISO 9126
Diapositiva 22
Calidad de Componentes Software22 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
Diapositiva 23
Calidad de Componentes Software23 Modelo de Calidad ISO/IEC
9126-1 Funcionalidad Fiabilidad Usabilidad Eficiencia
Mantenibilidad Portabilidad SubcaractersticasSubcaractersticas
Caractersticas Utilizacin de RecursosComportamiento Temporal
Reemplazabilidad Coexistencia Tolerancia a FallosRecuperabilidad
Madurez Instalabilidad Adaptabilidad Interoperabilidad Correccin
Seguridad Conformidad Operabilidad Aprendibilidad Comprensibilidad
AnalizabilidadCambiabilidadEstabilidadFacilidad de Prueba Adecuacin
Atractividad
Diapositiva 24
Calidad de Componentes Software24 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 mtricas especficas para los componentes software Definir
indicadores para las caractersticas de calidad
Diapositiva 25
Calidad de Componentes Software25 Modelo de Calidad para
Componentes COTS: COTS-QM Subcaractersticas Caractersticas
Recuperabilidad Adecuacin SeguridadInteroperatividad Funcionalidad
Fiabilidad Usabilidad Eficiencia Mantenibilidad Portabilidad
MadurezTolerancia a Fallos Utilizacin de RecursosComportamiento
Temporal ReemplazabilidadAdaptabilidadFacilidad Instalacin
IdoneidadCorreccin Conformidad OperatividadFacilidad de
aprendizajeFacilidad de comprensin
AnalizabilidadCambiabilidadEstabilidadFacilidad de Prueba
Diapositiva 26
Calidad de Componentes Software26 Modelo de Calidad para
Componentes COTS: COTS-QM Funcionalidad Fiabilidad
UsabilidadUsabilidad Eficiencia Mantenibilidad Subcaractersticas
Caractersticas MadurezRecuperabilidad Utilizacin de
RecursosComportamiento Temporal Seguridad IdoneidadCorreccin
Interoperatividad Conformidad OperatividadFacilidad de
aprendizajeFacilidad de comprensin CambiabilidadFacilidad de Prueba
OperatividadFacilidad de aprendizajeFacilidad de comprensin
Diapositiva 27
Mtricas para COTS y el proceso de medicin de componentes
software
Diapositiva 28
Calidad de Componentes Software28 Conceptos del Proceso de
Medicin Trata de satisfacer unas necesidades de informacin sobre
ciertas entidades que poseen atributos que se miden con mtricas Los
conceptos medibles relacionan los atributos con las necesidades de
informacion Una mtrica es un metodo de medicin, y una escala de
medicin Mtricas directas, indirectas, e indicadores
Diapositiva 29
Calidad de Componentes Software29 Medir un componente Cul es la
informacin disponible de un componente software? Basar las mtricas
en esta informacin disponible Definir relaciones entre las mtricas
y las caractersticas de calidad [?]
Diapositiva 30
Calidad de Componentes Software30 Componentes: Informacin
Disponible
Diapositiva 31
La Usabilidad en DSBC
Diapositiva 32
Calidad de Componentes Software32 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
Diapositiva 33
Calidad de Componentes Software33 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
Diapositiva 34
Calidad de Componentes Software34 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)
Diapositiva 35
Calidad de Componentes Software35 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)
Diapositiva 36
Proceso de medicin de la Usabilidad de Componentes
Software
Diapositiva 37
Calidad de Componentes Software37 Mtricas 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
Diapositiva 38
Calidad de Componentes Software38 Mtricas 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) Complejidad del Problema
Diapositiva 39
Calidad de Componentes Software39 Atributos de Usabilidad
Entity Information Need Measurable Concept Attribute 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 Help System
Contents of Help System Size of Help System Effectiveness of Help
System Quality of Marketing Info Contents of Marketing Info
Effectiveness of Marketing Info Complexity of the Design Design
Legibility (Readability) Interfaces Understandability I/O
Understandability Ease of Learning Customisability Quality of error
messages Interfaces Complexity
Diapositiva 40
Calidad de Componentes Software40 Atributos de Usabilidad
Entity Information Need Measurable Concept Attribute 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 Help System
Contents of Help System Size of Help System Effectiveness of Help
System Quality of Marketing Info Contents of Marketing Info
Effectiveness of Marketing Info Complexity of the Design Design
Legibility (Readability) Interfaces Understandability I/O
Understandability Ease of Learning Customisability Quality of error
messages Interfaces Complexity
Diapositiva 41
Calidad de Componentes Software41 Atributos de Usabilidad
Entity Information Need Measurable Concept Attribute 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 Help System
Contents of Help System Size of Help System Effectiveness of Help
System Quality of Marketing Info Contents of Marketing Info
Effectiveness of Marketing Info Complexity of the Design Design
Legibility (Readability) Interfaces Understandability I/O
Understandability Ease of Learning Customisability Quality of error
messages Interfaces Complexity
Diapositiva 42
Calidad de Componentes Software42 Atributos de Usabilidad
Entity Information Need Measurable Concept Attribute 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 Help System
Contents of Help System Size of Help System Effectiveness of Help
System Quality of Marketing Info Contents of Marketing Info
Effectiveness of Marketing Info Complexity of the Design Design
Legibility (Readability) Interfaces Understandability I/O
Understandability Ease of Learning Customisability Quality of error
messages Interfaces Complexity
Diapositiva 43
Calidad de Componentes Software43 Ejemplo: Calidad de los
Manuales Entity Information Need Measurable Concept Attribute
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 Help System Contents of Help System Size of Help System
Effectiveness of Help System Quality of Marketing Info Contents of
Marketing Info Effectiveness of Marketing Info Complexity of the
Design Design Legibility (Readability) Interfaces Understandability
I/O Understandability Ease of Learning Customisability Quality of
error messages Interfaces Complexity Attribute Contents of manuals
Size of Manuals Effectiveness of Manuals
Diapositiva 44
Calidad de Componentes Software44 Mtricas para la Calidad de
los Manuales AttributeIndicatorIndirect Metric Contents of manuals
Manuals Coverage Proportion of Functional Elements Described in
Manuals Manuals Consistency Proportion of Functional Elements
incorrectly Described in the Manual Completeness of Manuals
Difference Between the Component Version and The Manual Version
Manuals Legibility Ratio of Figures per Manual Pages Ratio of
Tables per Manual Pages Ratio of UML Diagrams per Manual Pages Size
of Manuals Manuals SuitabilityAverage Pages per Functional Elements
Effectiveness of Manuals Effectiveness Ratio Proportion of
Functional Elements Correctly Used after Reading The Manual
Understandability Ratio Proportion of Functional Elements Correctly
Understood after Reading The Manual
Diapositiva 45
Calidad de Componentes Software45 Cmo se enlazan las
subcaractersticas con los atributos? Debemos relacionar la Calidad
de la documentacin, la Complejidad del Problema, y la Complejidad
del Diseo con la Comprensibilidad, Aprendibilidad y la Operabilidad
En general, no existe una relacin directa entre conceptos medibles
(y mtricas) y subcaractersticas de calidad, sino grados de relacin
o influencia entre ellas Quality of Documentation Complexity of
Problem Complexity of Solution Understandability Learnability
Operability ?
Diapositiva 46
Calidad de Componentes Software46 Un propuesta terica inicial
para ser demostrada mediante experimentos
AttributeUnderstandabilityLearnabilityOperability Contents of
manuals lowHighmedium Size of Manuals lowhighmedium Effectiveness
of Manuals lowhigh Contents of Demos highlow Contents of Help
System -high Size of Help System -highmedium Effectiveness of Help
System -high Contents of Marketing Info high-- Effectiveness of
Marketing Info high-- Designs Legibility (Readability)
mediumlowhigh Interfaces Understandability low high
Understandability of I/O highlowhigh ease of component Learning
-highmedium Customisability lowmediumhigh Contents of error message
low high Interfaces Density lowhigh
Diapositiva 47
Calidad de Componentes Software47 Conclusiones DSBC Tecnologa
de componentes bastante madura Mercado emergente de COTS Uso en la
industria cada vez mayor Calidad para DSBC en paales todava Pocas
mtricas para componentes Pocas experiencias reales Conceptos y
modelos de calidad no asentados todava Necesidad de DSBC y Calidad
(CBSQ) Queda mucho trabajo por hacer!
Diapositiva 48
Calidad de Componentes Software48 Gracias y Preguntas
Preguntas: Antonio Vallecillo [email protected] 952 13 27 94
Diapositiva 49
Apndices y Ampliaciones Si llegas aqu, es porque diste de ms un
clic
Diapositiva 50
Calidad de Componentes Software50 Ciclo de Vida DSBC : Gestin
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 inversin, tiempos produccin, etc.
Diapositiva 51
Calidad de Componentes Software51 Ciclo de Vida DSBC:
Requisitos que El objetivo de esta fase es describir que debe hacer
el sistema como Pero sin indicar como debe hacerlo Permitiendo a
los desarrolladores y a los clientes estar de acuerdo con esa
descripcin Los analistas de sistemas deben obtener, organizar y
documentar la funcionalidad y las restricciones requeridas Y seguir
y documentar las decisiones y acuerdos
Diapositiva 52
Calidad de Componentes Software52 Ciclo de Vida DSBC:
Especificacin Se concentra en el diseo y anlisis 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
Diapositiva 53
Calidad de Componentes Software53 Ciclo de Vida DSBC:
Especificacin (2) Utiliza como entrada los requisitos funcionales y
extra-funcionales, la informacin sobre software existente (sistemas
heredados, paquetes y bases de datos), y las restricciones tcnicas
(uso de un estilo arquitectnico o herramienta particular) Genera un
conjunto de especificaciones de componentes incluyendo las
especificaciones de las interfaces ofrecidas y requeridas y una
arquitectura de componentes mostrando como interactan los
componentes entre ellos
Diapositiva 54
Calidad de Componentes Software54 Ciclo de Vida DSBC:
Aprovisionamiento Usa el resultado de la fase de especificacin para
determinar que componentes se deben Construir desde cero Comprar a
terceros O modificar componentes o mdulos software existentes
Adems, en esta fase se debe realizar las pruebas unitarias de cada
componentes antes de iniciar la fase de integracin
Diapositiva 55
Calidad de Componentes Software55 Ciclo de Vida DSBC:
Integracin Se cogen todos los componentes y el software existente y
se ponen juntos con una interfaz de usuario adecuada para crear una
nueva aplicacin Adems, se deben realizar las pruebas de integracin
comprobar las incompatibilidades de protocolos y los desajustes
semnticos habituales cuando se conectan piezas de software
desarrolladas por diferentes compaas
Diapositiva 56
Calidad de Componentes Software56 Ciclo de Vida DSBC: Prueba
Evaluar el sistema para confirmar que satisface los requisitos
especificados Y para identificar y corregir defectos en la
implementacin Proposito: Verificar La interaccin entre los objetos
La integracin 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
Diapositiva 57
Calidad de Componentes Software57 Ciclo de Vida DSBC:
Despliegue Producir una versin 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
configuracin del software de acuerdo a las preferencias y
necesidades de su entorno de trabajo
Diapositiva 58
Calidad de Componentes Software58 Ciclo de Vida DSBC : Operacin
Ejecucin de la aplicacin en su entorno de trabajo por sus usuarios
finales
Diapositiva 59
Calidad de Componentes Software59 Ciclo de Vida DSBC :
Mantenimiento Ofrecer los servicios y actividades de mantenimiento
necesarios para el uso efectivo del software posterior a su
implementacin Correccin de errores Adaptacin del sistema a los
cambios del entorno Sustitucin y actualizacin de componentes En
esta fase incluimos tambien los procesos de Configuracin y Gestin
de Cambios que propone RUP
Diapositiva 60
Ampliaciones del dibujo
Diapositiva 61
Calidad de Componentes Software61 Componente Software:
Informacin Disponible (1)
Diapositiva 62
Calidad de Componentes Software62 Informacin Disponible:
Funcionalidad
Diapositiva 63
Calidad de Componentes Software63 Informacin Disponible
Marketing Info.
Diapositiva 64
Calidad de Componentes Software64 Informacin Disponible:
Documentacin
Diapositiva 65
Subcaractersticas de Usabilidad
Diapositiva 66
Calidad de Componentes Software66 Adaptando la Usabilidad para
DSBC Comprensin Comprensin: 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 ms adecuado para la utilizacin
prevista o deseada Los elementos del componente (intefaces,
operaciones ) deben ser evidentes o fciles de comprender
Diapositiva 67
Calidad de Componentes Software67 Adaptando la Usabilidad para
DSBC Aprendibilidad Aprendibilidad: la capacidad del componente
software para permitir que el usuario (desarrollador del sistema)
aprenda el componente Estas mtricas 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,
Diapositiva 68
Calidad de Componentes Software68 Adaptando la Usabilidad para
DSBC Operabilidad Operabilidad: la capacidad del componente
software para permitir que el usuario (desarrollador del sistema)
opere con l y lo controle Estas mtricas deben poder valorar si los
desarrolladores del sistema pueden integrar correctamente el
componente o adaptarlo
Diapositiva 69
Calidad de Componentes Software69 Adaptando la Usabilidad para
DSBC Atractividad 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 caracterstica no la incluimos
Diapositiva 70
Calidad de Componentes Software70 Adaptando la Usabilidad para
DSBC Conformidad de Usabilidad Conformidad de Usabilidad: la
capacidad del componente software para seguir los estndares,
convenciones, guas de estilo o normativas relacionadas con la
usabilidad Actualmente, no conocemos ningn estndar o norma de
usabilidad para componentes software