Temario Calidad de software y Procesos 1- Calidad de software 2- Aseguramiento de la calidad del software (SQA) 3- Gestión de la calidad en el marco de ORTsf Ingeniería de Sistemas ORT Software Factory Marzo 2004 Calidad de software y Procesos ORT Software Factory 1- Calidad de software 2 Éxito de un proyecto de software • Los resultados de un proyecto de software se miden según las siguientes variables: – Alcance - (Funcionalidad) – Tiempo - (Calendario) – Esfuerzo - (Presupuesto - Costo) – Calidad - (Criterios de Aceptación) Definición de calidad Calidad de software Calidad de software y Procesos ORT Software Factory Evolución de la calidad Gestión Total de la Calidad “La Gestión Total de Calidad es la actividad sistemática y científica que involucrando a TODA la organización se focaliza en la satisfacción de los clientes.” Gestión Total de la Calidad Desarrollo 4 Aseguramiento de la Calidad Inspección Control de la Calidad Dr. Noriaki Kano - 1997 ‘20 ‘40 ‘60 ‘80 Calidad de software y Procesos ORT Software Factory 2000 Tiempo 5 Calidad de software y Procesos ORT Software Factory 6 1 Principios de la Gestión Total de la Calidad Concepto moderno de Calidad • La calidad no la define ni el productor ni las normas, la define el cliente. • La calidad es relativa y surge de la comparación con los mejores. • La calidad que perdura es la que se logra gracias a valores, organización y sistemas que la propician y no es el producto de circunstancias afortunadas o de esfuerzos aislados Calidad de software y Procesos ORT Software Factory Calidad de software y Procesos ORT Software Factory 8 Definición de Calidad • Joseph Juran (1999): “Grado en que un conjunto de características inherentes cumple con los requisitos.” ISO – (a) Calidad es el conjunto de características de un producto que satisfacen las necesidades de los clientes y, en consecuencia, hacen satisfactorio el producto – (b) Calidad consiste en no tener deficiencias en el producto o en el proceso 9000:2000 • Nota: inherente significa que existe en algo, especialmente como una característica permanente. ISO 9000:2000 9 Definición de Característica Calidad de software y Procesos ORT Software Factory 10 Definición de Requisito “Rasgo diferenciador.” ISO 9000:2000 “Necesidad o expectativa establecida, generalmente implícita u obligatoria.” ISO 9000:2000 • Notas: puede ser inherente o asignada, cualitativa o cuantitativa y de diferentes clases (físicas (eléctricas), sensoriales (el tacto), de comportamiento (cortesía), de tiempo (puntualidad), ergonómicas (fisiológicas), funcionales (velocidad máxima de un avión)). Calidad de software y Procesos ORT Software Factory Enfoque hacia el cliente Liderazgo mediante el ejemplo Participación del personal Enfoque a procesos Enfoque hacia la gestión (eficacia y eficiencia) Mejora continua Toma de decisiones basado en datos Relación ganar-ganar con Proveedores 7 Definición de Calidad Calidad de software y Procesos ORT Software Factory • • • • • • • • • Nota1: "generalmente implícita" significa que es habitual o una práctica común para la organización, clientes y otras partes interesadas. • Nota2: pueden utilizarse calificativos como requisito del sistema de calidad, del cliente, del producto, etc.. 11 Calidad de software y Procesos ORT Software Factory 12 2 Definición de Requisito - cont. 1- Calidad de software • Notas: • Nota3: especificado es el que se declara p.ej. en un documento. • Nota4: pueden ser generados por las diferentes partes interesadas. Definición de calidad Calidad de software Calidad de software y Procesos ORT Software Factory 13 Calidad de software Calidad de software En general se entiende que un producto de software posee calidad adecuada si provee valor (satisfacción) a los usuarios, produce una ganancia, genera pocas quejas por parte de sus clientes y contribuye de alguna manera a los objetivos de la calidad (o por lo menos no es opuesto). (Krasner) Calidad de software y Procesos ORT Software Factory 15 Calidad de software – Tiempo para salir al mercado – Costo – Ciclo de vida estimada del producto – Mercado objetivo Calidad de software y Procesos ORT Software Factory 16 • Nivel de satisfacción de los clientes y usuarios – Percepción del cliente o usuario de acuerdo a lo que espera y lo que recibe. • Valor que agrega a accionistas – Medida del valor que agrega el producto de software a quienes promueven su realización. producto • Atributos de calidad del producto – Características del producto mediante los cuales se satisface una expectativa del cliente. Ej: Usabilidad, Mantenibilidad, Reusabilidad, etc. • Ausencia de defectos • Calidad del proceso Calidad de software y Procesos ORT Software Factory – Nivel de satisfacción de usuarios – Valor que agrega el producto – Atributos de calidad del producto – Ausencia de defectos – Calidad del proceso • Objetivos de calidad de la organización productora de software Componentes de la calidad • (a) Calidad es el conjunto de • Nivel de satisfacción de características de un usuarios producto que satisfacen las • Valor que agrega el necesidades de los clientes producto y, en consecuencia, hacen • Atributos de calidad del satisfactorio el producto • (b) Calidad consiste en no tener deficiencias en el producto o en el proceso • Componentes de la calidad de software 17 Calidad de software y Procesos ORT Software Factory 18 3 Componentes de la calidad Temario 1- Calidad de software • Ausencia de defectos – Medida de la cantidad de defectos que posee el producto de software. 2- Aseguramiento de la calidad del software (SQA) – Calidad del producto de software – Definición de estándares – Actividades de SQA – Técnicas para apoyar la tarea de SQA – Análisis de la calidad del producto • Calidad del proceso – “La calidad de los productos de software depende directamente de la calidad del proceso que los generó” Watts S. Humphrey 3- Gestión de la calidad en el marco de ORTsf Calidad de software y Procesos ORT Software Factory 19 2- Aseguramiento de la calidad del software (SQA) Calidad de software y Procesos ORT Software Factory 20 Calidad del producto de software • Componentes de la calidad del producto de software – Cumplimiento con los atributos de calidad del producto – Ausencia de defectos – Nivel de satisfacción de clientes (usuarios y compradores) – Valor que agrega el producto a clientes y accionistas – Calidad del proceso Calidad del producto de software Definición de estándares Actividades de SQA Técnicas para apoyar la tarea de SQA Análisis de la calidad del producto Calidad de software y Procesos ORT Software Factory Modelo de calidad para características internas y externas Calidad del producto de software • Cumplimiento con los atributos de calidad del producto (o características) Software quality – El cumplimiento con los atributos de calidad es un componente de la calidad de un producto de software. – Este componente se puede medir por el grado en que el producto de software cumple con los atributos de calidad definidos para el producto. Calidad de software y Procesos ORT Software Factory 22 23 Functionality Reliability Usability Efficiency Maintainability Portability Suitability Accuracy Interoperability Security Functionality compliance Maturity Fault tolerance Recoverability Reliability compliace Understandability Learnability Operability Attractiveness Usability compliance Time behaviour Resource Utilisation Efficiency compliance Analysability Changeability Stability Testability Maintainability compliance Adaptability Installability Co-existence Replaceability Portability compliance Calidad de software y Procesos - 24 ORT Software Factory Ref. ISO/IEC 9126-1:01 - Product quality - Quality Model 4 Modelo de calidad para productos de software • • • • • • Funcionalidad Confiabilidad Facilidad de uso Eficiencia Mantenibilidad Portabilidad Ref. ISO/IEC 9126-1:01 Product quality - Quality Model Proceso de software Producto de software La calidad del software puede ser evaluada según estas características Calidad de software y Procesos ORT Software Factory Los atributos de calidad brindan el marco para definir las características del producto de software a obtener 25 • Cumplimiento con los atributos de calidad del producto (o características) – Antes de realizar un producto de software (en cualquiera de sus formas) es importante que el equipo tenga bien claro por qué es necesario realizar dicho producto. – Luego de identificar esto el equipo estará en condiciones de definir los atributos de calidad que el producto deberá poseer. – Finalmente se deberá definir los requisitos para estos atributos (criterios de aceptación). Calidad de software y Procesos ORT Software Factory La mayoría de los requisitos para estas características surgen en el Proceso de IR Calidad de software y Procesos ORT Software Factory 26 Definición de Producto de Software Calidad del producto de software 27 Atributos de calidad “Conjunto completo de programas, procedimientos, así como documentación y datos asociados.” [ISO/IEC 12207] Calidad de software y Procesos ORT Software Factory 28 Atributos de calidad • El software está compuesto por elementos de naturaleza diferente. • Para cada producto es importante identificar: – Objetivo del producto. – Ejemplos de estos componentes: • Código fuente • Ejecutables (.exe) • Documentación del producto (requerimientos, diseño, código comentado, casos de prueba, manual de usuario, etc.) • Bases de datos Calidad de software y Procesos ORT Software Factory Atributos de calidad • Para qué va a ser utilizado por el equipo y/o clientes. – Productos importantes para el cliente. • Ej. Código fuente, ejecutables, manual de uso, etc. – Productos que pueden afectar la calidad • Ej. Claridad de la especificación de requerimientos, completitud del diseño detallado, etc. 29 Calidad de software y Procesos ORT Software Factory 30 5 Calidad del producto de software Calidad del producto de software • Ausencia de defectos – Según IEEE un defecto es una “Anomalía en un producto de software”. – Según ISO 9000 un defecto es un “Incumplimiento de un requisito asociado a un uso previsto o especificado”. – Según ISO 9000 una no conformidad es un “Incumplimiento de un requisito”. – Se sugiere utilizar estos términos de forma cuidadosa. Calidad de software y Procesos ORT Software Factory 31 • Uno de los componentes de la calidad de un producto de software es la ausencia de defectos y no conformidades a lo largo del proceso. • Es importante que el equipo mida de alguna forma el número de no conformidades existentes en el producto dado que las mismas pueden servir de base para estimar el número de defectos que tendrá el producto una vez que el mismo es puesto en funcionamiento. Calidad de software y Procesos ORT Software Factory 32 2- Aseguramiento de la calidad del software (SQA) Otras definiciones • Error: Acción humana que tiene como resultado la inclusión de una falla en el software. [IEEE] Calidad del producto de software Definición de estándares Actividades de SQA Técnicas para apoyar la tarea de SQA Análisis de la calidad del producto • Falla: Una condición accidental en un módulo de software que provoca que el sistema de software falle. [IEEE] Calidad de software y Procesos ORT Software Factory 33 Estándares ¿Quiénes hacen los estándares? ISOIEC Guide 2:1996 Define un estándar como un documento, establecido por consenso y aprobado por un cuerpo reconocido, que provee, para uso repetido y común, reglas, guías o características para actividades o sus resultados, apunta a alcanzar el grado óptimo en un contexto dado. Organizaciones Mundiales (ISO, IEEE, IEC, etc.) Organismos en cada país (Nueva Zelandia, Japon, Uruguay, etc.) Empresas (GE, Microsoft, Sony, Coca-Cola, etc.) Calidad de software y Procesos ORT Software Factory 35 Calidad de software y Procesos ORT Software Factory 36 6 Estándares Estándares • Tipos de estándares (normas) en la industria del software – Estándares de proceso • Definen la forma de realziar una actividad o tarea. – Estándares de producto • Son especificaciones para el producto de software. Calidad de software y Procesos ORT Software Factory 37 2- Aseguramiento de la calidad del software (SQA) • Los estándares o normas son de dos tipos: – Obligatorios impuestos por una entidad exterior al proyecto: • Ejemplos: Documento 302, estándares impuestos por el cliente, normativa legal aplicable, etc. – Voluntarios cuando son adoptados por el equipo en función de una decisión del equipo: • Ejemplos: Estándares de desarrollo, Proceso de ORTsf, etc. Calidad de software y Procesos ORT Software Factory Actividades de SQA • Las actividades de aseguramiento de la calidad del software (SQA) son básicamente las siguientes: – Validaciones • Asegurar que los productos generados cumplan las expectativas de los clientes – Verificaciones • Asegurar que los productos generados sean técnicamente correctos Calidad del producto de software Definición de estándares Actividades de SQA Técnicas para apoyar la tarea de SQA Análisis de la calidad del producto Calidad de software y Procesos ORT Software Factory Actividades de SQA 40 Actividades • Las actividades de Validación y Verificación se pueden agrupar de la siguiente forma: • Validación – Proceso de evaluar el software para asegurar el cumplimiento con los requisitos especificados por los usuarios (implícitos y explícitos). – Según la fase del ciclo de vida en la que se realizan • Requerimientos; Análisis y Diseño; Codificación; Pruebas e Instalación; Uso. • Verificación – El proceso de evaluar los productos de una fase dada, para asegurar la corrección y la consistencia con respecto a los productos, así como normas proporcionadas como elementos de entrada a esa fase. Calidad de software y Procesos ORT Software Factory 38 – Según el objetivo que persiguen • Prevención; Evaluación; Corrección. 41 Calidad de software y Procesos ORT Software Factory 42 7 2- Aseguramiento de la calidad del software (SQA) Actividades por objetivo • Objetivo perseguido al realizar la actividad: – Prevención – Evaluación del grado de calidad – Corrección (Fallas) Calidad de software y Procesos ORT Software Factory Calidad del producto de software Definición de estándares Actividades de SQA Técnicas para apoyar la tarea de SQA Análisis de la calidad del producto 43 Técnicas Técnicas • Las técnicas son utilizadas en las actividades de aseguramiento de la calidad para detectar desvíos de las especificaciones en los productos de software. • En cada actividad para el aseguramiento de la calidad se puede utilizar una o más técnicas. • Inspecciones – Es un examen de un producto de software para detectar e identificar anomalías del software, incluido errores y desvíos de los estándares especificados. • Revisiones – Gerenciales, Técnicas, entre pares, etc. • Walk-through – Se utiliza para evaluar un producto para encontrar anomalías, mejorar el producto de software, etc. Calidad de software y Procesos ORT Software Factory 45 Calidad de software y Procesos ORT Software Factory 46 Inspección Inspecciones • Es un examen visual de un producto de software para detectar e identificar anomalías del software, incluido errores y desvíos de los estándares especificados. (IEEE) • Las inspecciones son realizadas por examinadores imparciales entrenados en las técnicas de inspección. • Determinar quién corregirá la anomalía o la acción a tomar frente a la misma es un elemento importante en las inspecciones de software. Calidad de software y Procesos ORT Software Factory Calidad de software y Procesos ORT Software Factory 47 48 8 Revisiones Revisiones • Es un proceso o reunión, en dónde se presenta el producto de software al equipo del proyecto, gerentes, usuarios, representantes del usuario u otras partes interesadas, para comentarios o aprobación. • Para asegurar la eficacia de la revisión, es importante registrar los resultados de la misma y hacer seguimiento a estos. Calidad de software y Procesos ORT Software Factory • Las revisiones pueden ser de dos tipos – Gerenciales – Técnicas 49 Calidad de software y Procesos ORT Software Factory Revisiones 50 Revisiones • Técnicas • Gerenciales – Es una evaluación sistemática de un producto de software realizada por un equipo de personas calificadas que examinan la conformidad del producto de software e identifican discrepancias con las especificaciones y estándares. Las revisiones técnicas deben proveer recomendaciones de alternativas y examinar varias de esas alternativas. – Es una evaluación realizada por la gerencia para evaluar el progreso y determinar el estado de los planes e inventarios, confirmar requerimientos o evaluar la eficiencia de las aproximaciones realizadas por la gerencia. Calidad de software y Procesos ORT Software Factory 51 52 2- Aseguramiento de la calidad del software (SQA) Walk-through • Es una técnica de análisis en la cual un integrante del equipo de proyecto y/o demás partes interesadas, realizan preguntas y hacen comentarios sobre posibles errores, violaciones a los estándares de desarrollo y otros problemas. Calidad de software y Procesos ORT Software Factory Calidad de software y Procesos ORT Software Factory Calidad del producto de software Definición de estándares Actividades de SQA Técnicas para apoyar la tarea de SQA Análisis de la calidad de los productos 53 9 Análisis de la calidad Métricas del producto • Métricas de calidad – Son mediciones que se realizan del producto para evaluar en qué medida el producto cumple con las especificaciones (cumplimiento con los atributos de calidad, no conformidades, defectos, etc.). – Si el volumen de información lo requiere se puede crear un Plan de Métricas que contiene el detalle de las mediciones a realizar. – Los resultados obtenidos de medir la calidad de los productos, deben ser analizados para tomar acciones. Calidad de software y Procesos ORT Software Factory Proceso de software • Son mediciones que se realizan del producto para evaluar en qué medida el producto cumple con las especificaciones (cumplimiento con los atributos de calidad, no conformidades, defectos, etc.). • Si el volumen de información lo requiere se puede crear un Plan de Métricas que contiene el detalle de las mediciones a realizar. 55 Calidad de software y Procesos ORT Software Factory Calidad del producto Temario Producto de software Evaluación del producto de software: 1- Cumplimiento de atributos de calidad 2- Ausencia de defectos Calidad de software y Procesos ORT Software Factory 56 1- Calidad de software 2- Aseguramiento de la calidad del software (SQA) 3- Gestión de la calidad en el marco de ORTsf – Planificación de la calidad – Evaluación de la calidad – Mejora de la calidad 57 3- Gestión de la calidad en ORTsf Calidad de software y Procesos ORT Software Factory 58 Planificación de la Calidad • Implica: Planificación de la calidad Evaluación de la calidad Mejora de la calidad – Conocer quiénes son los clientes? – Entender la forma en que se va a resolver el problema (Definir el proceso del equipo). – Identificar qué necesidades tienen? – Diseñar la solución en función de los atributos de calidad. – Comunicar al equipo la forma de trabajo (Plan de Calidad o substituto). Calidad de software y Procesos ORT Software Factory 60 10 Proceso de ORTsf Proceso de ORTsf • Manuales • El proceso de ORTsf está compuesto por: – Manual del Proceso de producción de software – Manuales – Instructivos – Formularios – Estándares • Manual del Proceso de software (guía del proceso) • Manual de Construcción (descripción detallada de tareas por fase) – Manuales de apoyo por área • Manual de SQA • Manual de Gerencia • Manual de SCM Calidad de software y Procesos ORT Software Factory 61 Proceso de ORTsf Calidad de software y Procesos ORT Software Factory 62 Proceso de ORTsf • Instructivos • Formularios – Apoyo en uso de técnicas – Formatos tipo para los productos del proceso de ORTsf • Brindan guías para la aplicación de técnicas específicas (Ej. QFD adaptado al software) • ESRE, ESI, COTA, etc. • Planes, informes, etc. – Descripción de productos • Describen cómo elaborar productos específicos • Estándares – Codificación, documentación, etc. Calidad de software y Procesos ORT Software Factory Productos de trabajo 63 Calidad de software y Procesos ORT Software Factory 64 Proceso de Software Reportes de avance y estado 3- Gestión de la calidad en ORTsf Reportes de problemas y cambios Ingeniería Gerencia de Proyecto Aseguramiento de Calidad SCM Planificación de la calidad Evaluación de la calidad Mejora de la calidad 11 Evaluación de la calidad Proceso de software • Utilidad de las métricas en la evaluación de la calidad: “Las medidas son necesarias, si no podemos medir, no podemos controlar. Si no podemos controlar, no podemos gerenciar. Si no podemos gerenciar no podemos mejorar. Es tan simple como eso.” P. Selig Calidad de software y Procesos ORT Software Factory Medición de la Calidad Producto de software Evaluación del proceso de software: 1- Productividad 2- Costos de la calidad 67 Eficacia Eficiencia Evaluación del producto de software: 1- Cumplimiento de atributos de calidad 2- Ausencia de defectos Calidad de software y Procesos ORT Software Factory 68 Mejora de la calidad 3- Gestión de la calidad en ORTsf • Mejora del producto (eficacia) – Se puede realizar seguimientos de mejoras en un mismo producto a partir de las decisiones tomadas. – Comparación con competidores internos / externos. – Conocer el grado de calidad del producto de software. Planificación de la calidad Evaluación de la calidad Mejora de la calidad Calidad de software y Procesos ORT Software Factory Mejora de la calidad Proceso de software Medición de la Calidad Producto de software • Mejora del proceso (eficacia y eficiencia) – Aumentar productividad mediante un mayor conocimiento del proceso. – Tener más control sobre las actividades. – Posibilidad de realizar seguimientos. – Identificar puntos fuertes y oportunidades de mejora. – Reducir los costos de la no calidad. Calidad de software y Procesos ORT Software Factory 70 Evaluación del proceso de software: 1- Productividad 2- Costos de la calidad Eficacia Eficiencia Mejora 71 Calidad de software y Procesos ORT Software Factory Evaluación del producto de software: 1- Cumplimiento de atributos de calidad 2- Ausencia de defectos 72 12 Mejora en el proyecto Bibliografía Mejora del proceso Mejora del proceso basado en las métricas Proceso Producto OK? NO Corrección Corrige el producto SI Acción Correctiva Calidad de software y Procesos ORT Software Factory Elimina la causa del 73 problema • Cagnani M. - Inspecciones y revisiones: planificación, costos y beneficios. Marzo 2000. Universidad ORT Uruguay. • ISO/IEC 12207 - Information Technology - Software life cycle processes • ISO/IEC 9126 - Information Technology - Software product evaluation - Quality characteristics and guidelines for their use. • ORT Software Factory - Manual de SQA • ORT Software Factory - Manual de Construcción • G. Shulmeyer & J. McManus. Handbook of Software Quality Assurance. Calidad de software y Procesos ORT Software Factory 74 13