Contenido INGENIERIA DE SOFTWARE Tema 6: Administración de la calidad del software Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca dtorres@mixteco.utm.mx Cubo 37 1. Introducción 2. El concepto de calidad del software 3. Estándares de calidad existentes 4. La norma ISO 9000-3 5. Métricas de calidad del software 6. Introducción a Moprosoft 7. Conclusiones 8. Referencias 2 1. Introducción Se conoce como SQA(Software Quality Assurance) Es una actividad de protección que se aplica a lo largo de todo el ciclo de vida Se refiere a lograr un nivel de calidad requerido en el producto de software Involucra la definición de estándares de calidad apropiados y procedimientos que permitan asegurar que estos se cumplan. Debe llevar a desarrollar una cultura de calidad en donde la calidad es responsabilidad de todos 2. Concepto de Calidad de Software Calidad significa que un producto debe cumplir con sus especificaciones (Crosby, 1979) Esta es una problemática para sistemas de software La especificación se orienta a los requerimientos de calidad del cliente (eficiencia, mantenibilidad, reusabilidad, portabilidad, etc.). Sin embargo, la organización desarrolladora también tiene requerimientos (como los de mantenimiento) que no se incluyen en la especificación No se sabe cómo especificar ciertas características de calidad (ej., mantenimiento) de una forma no ambigua Las especificaciones del Software son usualmente incompletos y a menudo inconsistentes 3 4 Quienes deben aplicar SQA Los administradores de la calidad en una organización tienen la responsabilidad de asegurar que se cumpla el nivel requerido de calidad de un producto. Inicialmente, comprende simplemente definir procedimientos y estándares a utilizar en el desarrollo de software y comprobar que todos los ingenieros los sigan En la práctica, los buenos administradores de la calidad su propósito es desarrollar una cultura de calidad Cada integrante del equipo de desarrollo es motivado para que logre un alto nivel de la calidad del producto y sobre todo con responsabilidad 5 Métodos para lograr el nivel de calidad Inspección Proceso orientado a equipos para asegurar la calidad Aplicada a todas las etapas del proceso Métodos formales Técnicas matemáticas para convencernos de que los programas hacen lo que deben Se aplica en forma selectiva Pruebas A nivel de la unidad A nivel de toda la aplicación Técnicas de control de proyectos Predecir los costos y la programación Control de artefactos (versiones, alcances, etc.) 1
Proceso de Aseguramiento de la calidad QA Actividades del Proceso de administración de calidad 1.1 Aseguramiento de la calidad Establecer procedimientos organizacionales y estándares para la calidad 1.2 Planeación de la calidad Seleccionar procedimientos aplicables y estándares para un proyecto en particular y modificar estos como sean requeridos 1.3 Control de la calidad Garantizar que, procedimientos y estándares son seguidos por el equipo de desarrollo de software El manejo de calidad debe ser separado del manejo del proyecto para asegurar independencia 8 1.1 Aseguramiento de la calidad Dos tipos de estándares que se establecen como parte del QA Estándares del producto Estándares de documentos de requerimientos Estándares de documentación como encabezado, estándar de comentarios, de codificación, etc Estándares del proceso Estándares que incluyen definiciones de los procesos de especificación, de diseño, de validación, y una descripción de los doc s., a generar en el transcurso de estos procesos. Estándares del producto y proceso Estándares del producto Formulario para revisión del diseño Estructura del documento de requerimientos Estándares del proceso Conducto para la revisión del diseño Sometimiento de documentos a CM Formato del encabezado del Proceso de entrega de las procedimiento versiones Estilo de programación java Proceso de aprobación del plan del proyecto Formulario del plan del proyecto Proceso de control del cambio Forma de petición de cambios Proceso de registro de las pruebas Estándares de documentación Estándares del proceso de documentación Definen el proceso a seguir para la producción del documento Estándares del documento Proporcionan la estructura y presentación de los documentos Estándares para el intercambio de documentos Aseguran que todas las copias electrónicas de los documentos sean compatibles Razones del porque es importante el uso de estándares de sw Proveen un conjunto compacto de las mejores prácticas Proveen un marco de trabajo alrededor del cual se implementa el proceso de QA Ayuda a la continuidad. 2
1.2 Planeación de la calidad La planeación de la calidad inicia en las primeras etapas del proceso del sw. Define cómo valorar esta calidad. Por tanto, define lo que significa software de alta calidad. El resultado de un proceso de planeación de la calidad es un plan de calidad del proyecto. El plan de calidad selecciona aquellos estándares organizacionales apropiados para un producto en particular y un proceso de desarrollo El plan de calidad debe ser compacto Estructura para un plan de calidad(humphrey, 1989) Introducción del producto Descripción del producto, mercado al que se dirige y expectativas de calidad del producto Planes del producto Fechas de terminación del producto, responsabilidades importantes, t planes para distribución ib ió y servicio i Descripciones del proceso Procesos de desarrollo y admón del producto Metas de calidad Justificación de los atributos de calidad Riesgos y administración de riesgos Riesgos clave que podrían afectar la calidad del producto y acciones a tomar en cuenta 2.1 Atributos de calidad del software Es imposible optimizar todos los atributos de calidad para un sistema. Importante que en la planeación de la calidad se seleccione los atributos más importantes y planear cómo alcanzarlos. 15 1.3 Control de la calidad Implica vigilar el proceso de desarrollo de software para asegurar que se sigan los procedimientos de aseguramiento y estándares de calidad. Los productos resultantes de un proceso del sw se comprueban contra los estándares definidos del proyecto en el proceso de control de calidad Revisiones de la calidad en las que el software, su documentación y los procesos utilizados para producir ese sw., son revisados por un grupo de personas. Valoración automática del sw. en la que el sw y los documentos se procesan por algún programa, y se comparan con los estándares que aplican a ese proyecto Tipos de revisión Tipo de revisión Propósito principal Inspecciones de Detectar errores finos en los requerimientos, el diseño o diseño o código. La revisión se conduce por una programas lista de verificación Revisiones de Es una revisión tanto del proceso como del progreso producto y se refiere a costos, planes y calendarización Revisiones de Análisis técnico de los componentes del producto o calidad documentación para encontrar diferencias entre la especificación y el diseño, código y documentación y para asegurar que se siguen los estándares de calidad definidos 3. Estándares de calidad existentes Los estándares ANSI/IEEE están orientados al aseguramiento de la calidad a nivel del proyecto: Std. 730: proporciona la estructura de la documentación del plan de aseguramiento de la calidad. Std.1061: definición de métricas para productos y para procesos, así como procedimientos para la recogida de valores de métricas. Existen también estándares para otras actividades relacionadas con la calidad como pruebas, verificación y validación, revisiones, etc. Los principales se recogen en la siguiente tabla. IEEE 730-1998 Planes de aseguramiento de la calidad del software IEEE 829-1998 Documentación de pruebas del software IEEE 982.1, 982.2 Diccionario estándar de medidas para producir software fiable IEEE 1008-1987 Pruebas de unidad del software IEEE 1012-1998 Verificación y validación del software IEEE 1028-1997 Revisiones del software IEEE 1044-1993 Clasificación estándar para anomalías del software IEEE 1061-1992 Estándar para una metodología de métricas de calidad del software IEEE 1228-1994 Planes de seguridad del software 18 3
Estándares ISO 9000 La Organización Internacional de Estándares, ISO, ha producido una serie de estándares para la gestión y aseguramiento de la calidad conocidos colectivamente como ISO 9000. Se pueden dividir en dos grupos: Normas para el aseguramiento externo de la calidad. ISO 9001: Aseguramiento de la calidad en organizaciones cuyo proceso abarca desde el diseño hasta el servicio posventa. ISO 9002: Aseguramiento de la calidad en organizaciones cuya actividad se basa en las fases de producción y de instalación. ISO 9003: Aseguramiento de la calidad en organizaciones cuya actividad requiere inspecciones y ensayos finales. Normas para la gestión interna de la calidad. ISO 9004: define los elementos de un sistema de calidad Norma ISO 9000-3: guía para aplicar ISO 9001 al desarrollo, suministro y mantenimiento de software. 19 Áreas cubiertas por ISO 9001 para el aseguramiento de la calidad Responsabilidad de la administración Sistema de calidad Control de productos inapropiados Control de diseño Manejo, almacenaje, embalaje y Compras suministro Productos suministrados al Identificación del producto y comprador seguimiento Control del proceso Inspección y pruebas Equipo de inspección y prueba Status de la inspección y las pruebas Revisión del contrato Acción correctiva Control del documento Registros de calidad Auditoría de calidad interna Capacitación Servicios Técnicas estadísticas (Ince, 1994) ISO 9000 Aspectos positivos: Es un elemento competitivo para las empresas. Proporciona confianza a los clientes. Ahorra tiempo y dinero una vez que está implantado. Implantado en más de 90 países y en todo tipo de empresas industriales y de servicios. Proporciona cierta seguridad de que las cosas se hacen tal y como se han dicho que se han de hacer. Aspectos negativos: Es costoso de implantar, especialmente en las pequeñas empresas. Muchas veces se hace por obligación. Puede existir diferentes interpretaciones de los apartados del estándar. Existe publicidad engañosa. Apoya 21 22 4. Métricas de calidad del producto Las métricas son de control o de predicción Métricas de control Se asocian con los procesos de sw Ej. de estas métricas: el esfuerzo y el tiempo promedio requeridos para reparar los defectos reportados Métricas de predicción Se asocian con los productos de sw Ej., de estas métricas: la complejidad ciclomática de un módulo, la longitud promedio de los indicadores en un programa, y el número de atributos y operaciones asociadas con los objetos de un diseño. Relaciones entre los atributos internos y externos del software 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 manual de usuario 23 4
Métricas de calidad de la documentación La legibilidad es importante en la documentación El índice Gunnings Fog es una medida de la legibilidad Basada en la longitud de las frases y el numero de sílabas en una palabra Esto puede causar malas interpretaciones cuando se aplica a la documentación técnica CMM (Capability Maturity Model) Modelo desarrollado como reacción a la crisis del sw. a principios de los 80's Desarrollado en el SEI (Software Engineering Institute) relacionado con Carnegie Mellon University en Pittsburgh. Financiado por el Departamento de Defensa de los E.E.U.U Modelo basado en el concepto de la Administración de la Calidad Total (TQM) 25 26 CMM - Definición Niveles del proceso sw de madurez Modelo de referencia para la aplicación de conceptos de gestión y mejora de la calidad en el desarrollo y el mantenimiento del sw. El modelo CMM se subdivide en niveles de madurez Cada nivel tiene un cierto número de áreas de proceso Satisfacción (o no) de varias metas claras y medibles Sucesivas evaluaciones para medir el progreso (madurez) 27 28 Áreas Clave de Procesos 5. Introducción a Moprosoft Abrir documento V13MoProSoft_DR_.pdf Abrir documento Introducción a Moprosoft.pdf Abrir documento taller_mnx-i059_nyce.pdf 29 30 5
Conclusiones Es una actividad de protección que se aplica a lo largo de todo el ciclo de vida. Importante administrar la calidad del software para obtener un producto de calidad Tener cultura de hacer las cosas con calidad La aplicación de los estándares de calidad ayudan al logro de tal objetivo Corregir un error de una fase de desarrollo temprana a otra incrementa de manera exponencial Por tanto, cuesta muchísimo más dar mantenimiento a algo que no tiene calidad 31 9. Referencias 1. Somerville, Ian (2002) Ingeniería de software, 6a edición. Addison Wesley. 2. Pressman, S Roger (1998) Ingeniería del Software: Un enfoque práctico, 4a edición McGraw-Hill. 3. Braude Eric J. (2003) Ingeniería de Software Una perspectiva orientada a objetos, Alfaomega 4. Ince (1994) Detalles de ISO 5. Oskarrson y Glass (1995) Detalles de ISO 32 Preguntas? Gracias! Actividades básicas que garantizan la calidad del sw Establecimiento de un plan para el aseguramiento de la calidad del proyecto: Se desarrolla durante la planificación del proyecto Se revisa por todas las partes involucradas Aplicación de metodologías y herramientas en el desarrollo Ajuste a los estándares y normas establecidos, ajustándose en todo momento a la política de empresa Realización de revisiones técnicas formales Controlar los cambios Recopilación y análisis de métricas para evaluar tanto la calidad del producto como la calidad del proceso Verificación y validación del software Realización de pruebas Revisión de las actividades de IS: Seguimiento de las desviaciones Verificación de la realización de las correcciones Asegurar la documentación de las desviaciones Registrar lo que no se ajuste a los requisitos Elaboración de bases históricas e informes 33 34 Equipo de aseguramiento de la calidad Es el encargado de realizar el aseguramiento de la calidad del software Sus miembros deben tener como características: Titulación informática y experiencia en desarrollo de software Conocimiento de la organización Conocimiento de las metodologías de desarrollo y de los métodos y técnicas de control de calidad Capacidad de comunicación oral y escrita Capacidad de interrelación personal Capacidad de hacer frente a problemas Capacidad d de diálogo dál Sus funciones son: Establecer el plan SQA del proyecto Participar en la definición del proceso de software del proyecto Revisar las actividades de ingeniería de software aplicadas en el proyecto Auditar los productos software obtenidos Garantizar la documentación de las desviaciones detectadas Registrar las diferencias respecto a los requisitos Decidir las acciones correctoras necesarias Desarrollar herramientas de prueba Coordinar el control y la gestión de cambios Recopilar y analizar las métricas del software 35 Norma ISO 9000-3 contempla: Marco de trabajo de la empresa Responsabilidades de gestión (proveedor y comprador) Sistema de calidad Auditorias internas Acciones correctivas Actividades del ciclo de vida Revisión de la contratación Especificación de requisitos del comprador Planificación del desarrollo Planificación de la calidad Diseño e implementación Prueba y validación Aceptación Replicación, venta e instalación Mantenimiento Actividades de apoyo (no dependientes del c.v) Gestión de la configuración Control de la documentación Registro de la calidad Medición Reglas, prácticas y convenios Herramientas y técnicas Ventas Productos software incluidos Formación 36 6