aspectos, pero especialmente en el desarrollo de software. • El interés por la calidad crece de forma continua, a medida que los clientes se vuelven más selectivos y comienzan a rechazar los productos poco fiables o que realmente no dan respuesta a sus necesidades. • Calidad de Producto vs. Calidad de SW • Es importante diferenciar entre la calidad del PRODUCTO software y la calidad del PROCESO de desarrollo. • Las metas que se establezcan para la calidad del producto van a determinar las metas a establecer para la calidad del proceso de desarrollo, ya que la calidad del producto va a estar en función de la calidad del proceso de desarrollo. • Sin un buen proceso de desarrollo es casi imposible obtener un buen producto. Calidad de Producto vs. Calidad de SW • El software es un producto mental, no restringido por las leyes de la física o por los límites de los procesos de fabricación. Es algo abstracto, y su calidad también lo es. • Se desarrolla, no se fabrica. El coste está fundamentalmente en el proceso de diseño, no en la producción y los errores se introducen también en el diseño, no en la producción. • Es artesanal en gran medida. Se construye a medida, en vez de ser construido ensamblando componentes existentes y ya probados. • Calidad de Producto vs. Calidad de SW • El software no se deteriora con el tiempo. No es susceptible a los efectos del entorno, y su curva de fallos es muy diferente de la del hardware. Todos los problemas que surjan durante el mantenimiento estaban allí desde el principio, y afectan a todas las copias del mismo; no se generan nuevos errores. • El mantenimiento del software es mucho más complejo que el mantenimiento del hardware. Cuando un componente hardware se deteriora se sustituye por una pieza de repuesto, pero cada fallo en el software implica un error en el diseño o en el proceso mediante el cual se tradujo el diseño en código máquina ejecutable. Calidad de Producto vs. Calidad de SW • Es engañosamente fácil realizar cambios sobre un producto software Los efectos de estos cambios se pueden propagar de forma explosiva e incontrolada. • El software con errores no se rechaza. Se asume que es inevitable que el software presente errores. • También es importante destacar que la calidad de un producto software debe ser considerada en todos sus estados de evolución (especificaciones, diseño, código,...). Definición de Calidad • “La calidad es la suma de todos aquellos aspectos o características de un producto o servicio que influyen en su capacidad para satisfacer las necesidades, expresadas o implícitas” (ISO 8402)
• “Grado con el cual el cliente o usuario
percibe que el software satisface sus expectativas” (IEEE 729-83) Definición de Calidad • ¿Es realmente posible encontrar un conjunto de propiedades en un producto software que nos den una indicación de su calidad?. • La ventaja de los modelos de calidad es que la calidad se convierte en algo concreto, que se puede definir, que se puede medir y, sobre todo, que se puede planificar. • Los modelos de calidad ayudan también a comprender las relaciones que existen entre diferentes características de un producto software. • En los Modelos de Calidad, la calidad se define de forma jerárquica. Resuelven la complejidad mediante la descomposición. ( McCall, Boehm) Definición de Calidad • Control de Calidad: Actividades para evaluar la calidad de los productos desarrollados. • Mejora de la calidad del software: ¿Cómo utilizar la información disponible acerca de la calidad del producto SW para mejorar su calidad a lo largo del CV. Gestión de Calidad: Determinación y aplicación de las políticas de calidad de la empresa (objetivos y directrices generales) Garantía o Aseguramiento de Calidad: Conjunto de actividades planificadas y sistemáticas necesarias para proporcionar confianza en que el producto software satisfacerá los requisitos dados de calidad. Modelos de calidad del SW • En los modelos de calidad, la calidad se define de forma jerárquica. Es un concepto que se deriva de un conjunto de sub- conceptos, cada uno los cuales se va a evaluar a través de un conjunto de indicadores o métricas. • Tienen una estructura, por lo general, en tres niveles: Factores de Calidad Criterios de calidad del Producto Métricas del Producto Modelos de calidad del SW • En el nivel más alto de la jerarquía se encuentran los FACTORES de calidad, que representan la calidad desde • el punto de vista del usuario. • Cada uno de los factores se descompone en un conjunto de CRITERIOS de calidad. Son atributos que, cuando están presentes, contribuyen al aspecto de la calidad que el factor asociado representa. Se trata de una visión de la calidad desde el punto de vista del producto software. • Para cada uno de los criterios de calidad se definen entonces un conjunto de MÉTRICAS, que son medidas cuantitativas de ciertas características del producto que dan una indicación del grado en que dicho producto posee un determinado atributo de calidad. El modelo de McCall • Organiza los Factores en tres ejes o puntos de vista desde los cuales el usuario puede contemplar la calidad de un producto. Operación del producto Revisión del producto Transición del producto El modelo de McCall • Se basa en 11 Factores de calidad, que se organizan en torno a los tres ejes de la siguiente forma: Operación del producto: Facilidad de uso (¿Puedo ejecutarlo?) Integridad (¿Es seguro?) Corrección (¿Hace el software lo que yo quiero?) Fiabilidad (¿Lo hace de forma exacta todo el T?) Eficiencia (¿Se ejecutará sobre mi HW lo mejor posible?) El modelo de McCall • Revisión del producto Facilidad de mantenimiento (¿Puedo arreglarlo?) Facilidad de prueba (¿Puedo probarlo?) Flexibilidad (¿Puedo modificarlo?) • Transición del producto Facilidad de reutilización (¿Podré reutilizar parte del software?) Interoperabilidad (¿Podré comunicarlo con otros sistemas?) Portabilidad (¿Podré utilizarlo en otra máquina?) •Factor - ejecución Eficiencia en almacenamiento Criterios • Corrección Completitud • Facilidad de uso Consistencia Facilidad de Trazabilidad operación Facilidad de • Fiabilidad comunicación Precisión Facilidad de Consistencia aprendizaje Tolerancia a fallos • Integridad Modularidad Facilidad de auditoría Simplicidad • Eficiencia Eficiencia en Modularidad Factor - • Facilidad de prueba Criterios Modularidad Simplicidad Auto descripción • Facilidad de Instrumentación mantenimiento Modularidad • Reusabilidad Simplicidad Auto descripción Consistencia Generalidad Concisión Modularidad Auto descripción Independencia entre sistema y software • Flexibilidad Independencia del Auto descripción hardware Capacidad de expansión Generalidad Factor - Criterios • Interoperabilidad Modularidad Compatibilidad de comunicaciones Compatibilidad de datos • Portabilidad Auto descripción Modularidad Independencia entre sistema El modelo de Boehm • Presenta una jerarquía de características, cada una de las cuales contribuye a la calidad global. • El concepto de SW exitoso abarca las necesidades y expectativas de los usuarios (igual que Mc Call). • Incluye características de desempeño de HW (omitidas en MC Call). • Utilidad General del SW: se afirma que el SW debe ser útil por sobre todas las cosas. (Usuario Final, Usuario Mantenedor del Sistema y el Usuario Programador). • • El SW debe: hacer lo que el Usuario quiere que haga. utilizar recursos de la computadora correcta y eficientemente. es fácil de aprender y usar para los usuarios. está bien diseñado, bien codificado y es probado y mantenido fácilmente. El modelo de Boehm El modelo de ISO 9126 • Es un modelo jerárquico con seis atributos principales que contribuyen a la calidad. • a diferencia de Mc Call y Boehm, cada característica de la derecha solo está relacionada solo con un solo atributo de la izquierda. • Las características de la derecha se relacionan con la vista del usuario final. El modelo de ISO 9126 • Actividades del Ctrol. de Calidad del SW • El objetivo del Control de Calidad es comprobar si un producto posee o no posee una determinada característica de calidad en el grado requerido. Revisiones Auditorías Comprobación de Escritorio Revisión por Pares Análisis de Flujo Ejecución Simbólica • ¿Qué es la Garantía de Calidad? • Conjunto de actividades de planificación, estimación y supervisión de las actividades de desarrollo, que se realizan de forma independiente al equipo de desarrollo, de tal forma que los productos software resultantes cumplen los requisitos establecidos. • El ámbito del Control de Calidad es el producto software, mientras que el ámbito de la Garantía de Calidad es también el proceso de desarrollo. ¿Qué es la Garantía de Calidad? 1. Las metas y objetivos: Debe asegurar que las metas de la organización y los objetivos del U se están satisfaciendo, y que no existen conflictos entre ellos, o entre los objetivos de diferentes usuarios. 2. Los métodos: Debe asegurar que las actividades de desarrollo de software siguen los procedimientos establecidos, se ajustan a los estándares seleccionados, están de acuerdo con las políticas de la organización y se ejecutan según las guías de trabajo y recomendaciones disponibles. 3. Rendimiento: Debe asegurar que se optimiza la utilización del hardware y software en los productos desarrollados, que son económicos (se desarrollan con el menor coste posible), eficientes (sacan el máximo partido posible a los recursos utilizados) y efectivos (alcanzan el resultado deseado con la menor cantidad posible de recursos, tiempo y esfuerzo). • Garantía de Calidad - Tareas 1. Planificación de la calidad: Consiste en seleccionar, clasificar y ponderar las propiedades de calidad que se van a establecer como requisitos, con respecto al producto y con respecto al proceso. Se elegirán también los mecanismos de control de calidad a utilizar para medir y evaluar estas características y se determinarán las metas a alcanzar. 2. Supervisión de la calidad: Consiste en supervisar y corregir, si es necesario, el trabajo que se está realizando (según los resultados obtenidos con las actividades de control de calidad), con el objetivo de llegar a satisfacer los requisitos establecidos . 3. Construcción de la calidad: Actividades constructivas son aquellas que sirven para “construir” la calidad, es decir, son actividades preventivas cuyo objetivo es evitar la introducción de errores mediante la puesta en práctica de ciertos principios, métodos, formalismos y herramientas. El Costo de la Calidad • El costo necesario para conseguir productos de calidad tiene dos componentes: Prevención de errores: Construcción de la Calidad Detección de defectos: Control de Calidad • Si no invertimos suficiente dinero y esfuerzo en la construcción y control de la calidad, obtendremos productos de baja calidad, y esto también tiene su costo. El costo de la no calidad también tiene dos componentes: El costo de corrección de los defectos que se vayan poniendo a la luz Repercusiones externas: falta de credibilidad, descontento de los usuarios, responsabilidad civil, pérdida de clientes