Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Calidad del software Mg. Ing. Mabel Torres Aseguramiento de la calidad del proceso y del producto Contenidos de la materia ▪ Unidad 3: Aseguramiento de calidad de proceso y de producto 3.1 Conceptos de calidad – La tendencia de la calidad 3.2 Calidad del software – Modelos de calidad existentes (CMMI – ISO) 3.3 Revisiones del software – Revisiones técnicas formales 3.4 Fiabilidad del software - El plan de SQA. 3.5 Diseño del plan de pruebas: pruebas unitarias y de integración 3.6 Pruebas del Sistema. Bibliografía ▪ Ingeniería del Software – 9na Ed. Autor: Ian Sommerville Capítulo 24: “Gestión de la calidad” ▪ Ingeniería del Software – 7ma Ed. Autor: Roger Pressman Capítulo 15: Concepto de calidad Capítulo 16: Aseguramiento de calidad del software Agenda ▪ Conceptos de calidad ▪ Gestión de calidad del software ▪ Garantía de calidad ▪ Planificación de la calidad ▪ Revisiones técnicas formales ▪ Modelos de calidad de los procesos ▪ CMMI ▪ ISO ▪ Control de la calidad: métricas del software Conceptos de calidad ▪ Calidad se puede definir como una característica o atributo de algo ▪ Un atributo de calidad de un elemento físico se refiere a las características mensurables por ejemplo: color, longitud, propiedades eléctricas etc. ▪ El software como una entidad intelectual es más difícil de caracterizar que los objetos físicos Conceptos de calidad ▪ La calidad del software se puede definir como la concordancia: ✓ con los requerimientos funcionales y no funcionales explícitamente establecidos, ✓ con los estándares de desarrollo explícitamente documentados, y ✓ con las características implícitas que se espera de todo el software desarrollado Conceptos de calidad ▪ En un sentido general, la calidad del software se define como: Proceso eficaz de software que se aplica de manera que crea un producto útil que proporciona valor medible a quienes lo producen y a quienes lo utilizan. Agenda ▪ Conceptos de calidad ▪ Gestión de calidad del software ▪ Garantía de calidad ▪ Planificación de la calidad ▪ Revisiones técnicas formales ▪ Modelos de calidad de los procesos ▪ CMMI ▪ ISO ▪ Control de la calidad: métricas del software Gestión de la calidad del software Actividades principales del proceso de calidad ▪ Garantía de calidad: establecimiento de un marco de trabajo de procedimientos y estándares organizacionales que conducen a un software de alta calidad ▪ Planificación de la calidad: La selección de procedimientos y estándares adecuados para un proyecto de software específico ▪ Control de la calidad: garantía que los procedimientos y estándares para la calidad son seguidos por el equipo de desarrollo de software Proceso de desarrollo de software Proceso de administración de la calidad Estándares y procedimientos Plan de calidad Informes de revisión de la calidad D1 D2 D3 D4 D5 Gestión de la calidad del software Actividades principales del proceso de calidad - Sommerville, cap 24, fig. 24.1 - Proceso de desarrollo de software Proceso de administración de la calidad Estándares y procedimientos Plan de calidad Informes de revisión de la calidad D1 D2 D3 D4 D5 Gestión de la calidad del software Actividades principales del proceso de calidad - Sommerville, cap 27, fig. 27.1 - Garantía de calidad Agenda ▪ Conceptos de calidad ▪ Gestión de calidad del software ▪ Garantía de calidad ▪ Planificación de la calidad ▪ Revisiones técnicas formales ▪ Modelos de calidad de los procesos ▪ CMMI ▪ ISO ▪ Control de la calidad: métricas del software Garantía de calidad del software ▪ La garantía de calidad es el proceso que define: ✓ cómo lograr la calidad del software y ✓cómo la organización de desarrollo conoce el nivel de calidad requerido para el software ▪ Se pueden definir dos tipos de estándares como parte del proceso de garantía de calidad: ✓ Estándares del producto ✓ Estándares del proceso Garantía de calidad del software ✓ Estándares de documentación Por ejemplo: • Documento de casos de Usos • Documento de la arquitectura • IEEE 830 - ✓ Estándares de codificación Por ejemplo: • terminología del lenguaje de programación ✓ Procesos de especificación ✓ Procesos de diseño ✓ Procesos de validación y verificación Estándares del proceso Estándares del producto ✓ Procesos de control de cambios Organizaciones que establecen estándares: OMG IEEE ISO … Marcos de trabajo para la mejora de procesos CMMI ISO - SPICE Garantía de calidad del software ✓ Estándares de documentación Por ejemplo: • Documento de casos de Usos • Documento de la arquitectura • IEEE 830 - ✓ Estándares de codificación Por ejemplo: • terminología del lenguaje de programación ✓ Procesos de especificación ✓ Procesos de diseño ✓ Procesos de validación y verificación Estándares del proceso Estándares del producto ✓ Procesos de control de cambios Organizaciones que establecen estándares: OMG IEEE ISO … Marcos de trabajo para la mejora de procesos CMMI ISO - SPICE Garantía de calidad del software ✓ Estándares de documentación Por ejemplo: • Documento de casos de Usos • Documento de la arquitectura • IEEE 830 - ✓ Estándares de codificación Por ejemplo: • terminología del lenguaje de programación ✓ Procesos de especificación ✓ Procesos de diseño ✓ Procesos de validación y verificación Estándares del proceso Estándares del producto ✓ Procesos de control de cambios Organizaciones que establecen estándares: OMG IEEE ISO … Marcos de trabajo para la mejora de procesos CMMI ISO - SPICE Garantía de calidad del software ✓ Estándares de documentación Por ejemplo: • Documento de casos de Usos • Documento de la arquitectura • IEEE 830 - ✓ Estándares de codificación Por ejemplo: • terminología del lenguaje de programación ✓ Procesos de especificación ✓ Procesos de diseño ✓ Procesos de validación y verificación Estándares del proceso Estándares del producto ✓ Procesos de control de cambios Organizaciones que establecen estándares: OMG IEEE ISO … Marcos de trabajo para la mejora de procesos CMMI ISO - SPICE Garantía de calidad del software Estándares de la documentación Tipo de estándares Breve descripción ✓ Del proceso de documentación • documentos de trabajo: no es necesario aplicar procesos formales de calidad • documentos formales (para desarrollos posteriores o a entregar al cliente): necesario adoptar un proceso formal de calidad – Ver la siguiente diapositiva – ✓ Del documento • estructura y presentación de los documentos • deben tener un estilo y apariencia consistente, y los del mismo tipo deben tener una estructura consistente con los del proyecto y la organización ✓ Para el intercambio de documentos • aseguran que todas las copias electrónicas de los documentos sean compatibles • utilización de herramientas concretas para elaborar los documentos (hojas de cálculo, procesadores de texto, herramientas de diagramación,...) Garantía de calidad del software Proceso formal de producción de un documento Crear borrador inicial Incorporar comentarios a la revisión Revisar borrador Comprobar borrador final Producir borrador final Corregir texto Producir patrones de impresión Revisar arreglosArreglar texto Documento aprobado Documento aprobado Rehacer documento borrador Imprimir copias Etapa 1: creación Etapa 2: refinamiento Etapa 3: producción Agenda ▪ Conceptos de calidad ▪ Gestión de calidad del software ▪ Garantía de calidad ▪ Planificación de la calidad ▪ Revisiones técnicas formales ▪ Modelos de calidad de los procesos ▪ CMMI ▪ ISO Proceso de desarrollo de software Proceso de administración de la calidad Estándares y procedimientos Plan de calidad Informes de revisión de la calidad D1 D2 D3 D4 D5 Gestión de la calidad del software Actividades principales Planificación de calidad - Sommerville, cap 24, fig. 24.1 - Planificación de calidad del software ▪ La planificación de la calidad es el procesoen el cual se desarrolla un plan de calidad para un proyecto ▪ El plan de calidad: ✓ Establece la calidad del software y cómo valorarla ✓ Selecciona los estándares organizacionales apropiados para un producto y el proceso de desarrollo ✓ Define el proceso de evaluación de la calidad Agenda ▪ Conceptos de calidad ▪ Gestión de calidad del software ▪ Garantía de calidad ▪ Planificación de la calidad ▪ Revisiones técnicas formales ▪ Modelos de calidad de los procesos ▪ CMMI ▪ ISO ▪ Control de la calidad: métricas del software Proceso de desarrollo de software Proceso de administración de la calidad Estándares y procedimientos Plan de calidad Informes de revisión de la calidad D1 D2 D3 D4 D5 Gestión de la calidad del software Actividades principales - Sommerville, cap 24, fig. 24.1 - Control de la calidad Control de calidad del software Revisiones Revisiones de la calidad Se aplican en varios momentos del desarrollo de software y sirven para detectar defectos que pueden ser eliminados Reuniones informales Reuniones formales: son inspecciones, reuniones técnicas formales (RFT) Objetivos ✓ Descubrir errores en la función, lógica o la implementación ✓ Verificar que el software cumple con los requerimientos ✓ Garantizar que el software ha sido representado de acuerdo a los estándares establecidos ✓ Hacer que los proyectos sean más manejables Control de calidad del software Reuniones Técnicas Formales ▪ El equipo de revisores debe tener tres o cuatro personas como revisores. Uno debe ser el diseñador principal ▪ Los documentos a revisar deben distribuirse con anterioridad a la revisión para dar tiempo a los revisores a que los lean y los comprendan ▪ La RTF debe ser corta (dos horas como máximo) ▪ Los comentarios y las decisiones de la reunión se registran en una registro de la reunión. Este documento formará parte de la documentación formal del proyecto Agenda ▪ Conceptos de calidad ▪ Gestión de calidad del software ▪ Garantía de calidad ▪ Planificación de la calidad ▪ Revisiones técnicas formales ▪ Modelos de calidad de los procesos ▪ CMMI ▪ ISO ▪ Control de la calidad: métricas del software Organizaciones que publican estándares IEEE , www.ieee.org Ejemplo de estándar propuesto Revisiones del software (1028) SEI (Software Engineering Institute) Ejemplo de estándar propuesto CMMI OMG (Object Management Group) www.omg.org establece estándares para la computación orientada a objetos. La OMG ha respaldado el lenguaje unificado de modelado (UML) como un estándar para describir diseños ISO (International Standards Organization) Ejemplo de estándar ISO 9001 http://www.ieee.org/ http://www.omg.org/ Garantía de calidad del software ✓ Estándares de documentación Por ejemplo: • Documento de casos de Usos • Documento de la arquitectura • IEEE 830 - ✓ Estándares de codificación Por ejemplo: • terminología del lenguaje de programación ✓ Procesos de especificación ✓ Procesos de diseño ✓ Procesos de validación y verificación Estándares del proceso Estándares del producto ✓ Procesos de control de cambios Organizaciones que establecen estándares: OMG IEEE ISO … Marcos de trabajo para la mejora de procesos CMMI ISO - SPICE Modelo CMMI en etapas - Modelo de capacidad de madurez integral - 1 4 5 2 3 Madurez de los procesos Capacidad de los procesos Eficiencia de los procesos Baja Alta Inicial Gestionado Definido Gestionado cuantitativamente Optimizado ▪ Nivel 3: Definido Desarrollo de Requerimientos Solución Técnica Verificación, Validación Gestión de Riesgos Enfoque en procesos de la organización ▪ Nivel 4: Gestionado Gestión cuantitativa del proceso Rendimiento de procesos de la organización 1 ▪ Nivel 2: Gestionado Gestión de Requerimientos Planificación del Proyecto Gestión de proveedores Garantía de Calidad del Software Gestión de Configuración del Software ▪ Nivel: 5 Optimizado Innovación de la organización Análisis causal y resolución Modelo CMMI en etapas - Estados de los procesos - Estado del proceso Breve descripción ✓Inicial • Proceso poco estructurado, puede que caótico • El éxito depende más del esfuerzo individual que de una aproximación organizada del proceso software ✓Gestionado • Procesos básicos de gestión referidos a un seguimiento de funcionalidades, costos y plazos • Se implanta una disciplina de trabajo para repetir modos de trabajo que han dado resultados positivos ✓Definido • Procesos software bien definidos, estandarizados e integrados, tanto en aspectos de gestión como de ingeniería, a nivel de toda la organización • Utilización de un proceso software estandarizado para desarrollo y mantenimiento ✓Gestionado Cuantitativamente • Existen conjuntos de métricas definidas a nivel de las diferentes etapas del proceso, y se dispone de datos al respecto • Los procesos y los productos son controlados y seguidos de modo cuantitativo ✓Optimizado • La mejora del proceso software es continua y existe una realimentación de los procesos, así como un enfoque de mejora a nivel de ideas y de tecnologías Modelo CMMI continuo ISO ▪ ISO 9001 es un estándar internacional adoptado por más de 130 países y se está convirtiendo en el medio principal con el que los clientes pueden juzgar la competencia de un desarrollador de software ▪ ISO 9001 no es específico para el desarrollo de software, pero define principios que pueden aplicarse al software y que deben documentarse en un manual de calidad organizacional Agenda ▪ Conceptos de calidad ▪ Gestión de calidad del software ▪ Garantía de calidad ▪ Planificación de la calidad ▪ Revisiones técnicas formales ▪ Modelos de calidad de los procesos ▪ CMMI ▪ ISO ▪ Control de la calidad: métricas del software Control de calidad del software Métricas Medición: calcular un valor numérico para algún atributo de un producto o un proceso del software Métrica: cualquier tipo de medida relacionada con un sistema, proceso o documentación ▪ la comparación entre ellos y con los estándares de la organización permite controlar la calidad ▪ existen atributos imposibles de medir de forma directa ✓por ejemplo: mantenibilidad, complejidad, comprensión,... ✓afectados por diversos factores ✓no existen métricas directas: necesario medir atributos internos del software y suponer que existe relación con los atributos que nos interesan Control de calidad del software Métricas Las métricas de predicción ayudan a predecir las características del software es decir se asocian con el software en sí, a veces se conocen como métricas de producto. Por ejemplo, la complejidad ciclomática de un módulo, la longitud promedio de identificadores de un programa, y el número de atributos y operaciones asociados con las clases de objetos en un diseño. Métricas de control Métricas de predicción Las métricas de control apoyan la gestión del proceso de software. Por ejemplo son el esfuerzo promedio y el tiempo requerido para reparar los defectos reportados. Control de calidad del software Métricas Tanto las métricas de control como las de predicción pueden influir en la toma de decisiones administrativas, como se muestra en la figura. Los administradores usan mediciones de proceso para decidir si deben hacerse cambios al proceso, y las métricas de predicción ayudan a estimar el esfuerzo requerido para hacer cambios al software. Control de calidad del software Métricas del producto Mantenibilidad Fiabilidad Portabilidad Usabilidad Profundidad del árbol de herencia Complejidad ciclomática Tamaño del programa en líneas de código Número de mensajes de error Longitud del manual de usuario Atributos de calidad externos Atributos de calidad internos Control de calidad del software Métricas del producto Mantenibilidad Fiabilidad Portabilidad Usabilidad Número de parámetros del procedimiento Complejidad ciclomática Tamaño del programa en líneas de código Número de mensajes de error Extensión del manualde usuario Atributos de calidad externos Atributos de calidad internos Control de calidad del software Métricas del producto Mantenibilidad Portabilidad Usabilidad Número de parámetros del procedimiento Complejidad ciclomática Tamaño del programa en líneas de código Número de mensajes de error Extensión del manual de usuario Fiabilidad Atributos de calidad externos Atributos de calidad internos Control de calidad del software Métricas Comprenden un conjunto de medidas cuantitativas de algunos atributos del software. Se recopilan las medidas para obtener métricas o indicadores del software. Métricas de proceso: de control Métricas del producto: de predicción Tipos de métricas Métricas del proyecto Valoración del software Control de calidad del software Métricas Métricas del producto Están relacionadas con los requerimientos no funcionales (calidad del producto) Usabilidad, eficiencia, fiabilidad, Portabilidad Dinámicas eficiencia fiabilidad Estáticas Usabilidad mantenibilidad Fin de la presentación
Compartir