Calidad de Componentes Software Manuel F. Bertoa y Antonio Vallecillo Departamento de Lenguajes y...

70
Calidad de Componentes Software Manuel F. Bertoa y Antonio Vallecillo Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga

Transcript of Calidad de Componentes Software Manuel F. Bertoa y Antonio Vallecillo Departamento de Lenguajes y...

  • Diapositiva 1
  • 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