Instituto Tecnológico de Chilpancingo Calidad de software Catedrático: José Daniel Sánchez Rodríguez Alumno: Isaac Calderón García Ensayo – Estándares de calidad aplicados al software Chilpancingo, GRO; A 17 de abril de 2013. Introducción Los primeros años de la era informática se vieron marcados por el desafío del desarrollo del hardware de los ordenadores. Este desafío se ha visto superado por los vertiginosos avances de la microelectrónica. Hoy en día el principal problema al que nos enfrentamos es la llamada “crisis del software”. La causa principal de esta crisis es el aumento de la complejidad de las aplicaciones sin la adopción de los procesos adecuados de desarrollo que contribuirían a obtener un producto de mayor calidad y menor costo. Calidad de Software Página 2 Índice 3.1 ISO -------------------------------------------------------------------------------------------- 4 3.2 SPICE ---------------------------------------------------------------------------------------- 5 3.3 CMM ------------------------------------------------------------------------------------------ 7 3.3.1 Definición del modelo ----------------------------------------------------------- 9 3.3.2 Nivel inicial ------------------------------------------------------------------------ 9 3.3.3 Nivel repetido --------------------------------------------------------------------- 10 3.3.4 Nivel definido -------------------------------------------------------------------- 11 3.3.5 Nivel administrativo ------------------------------------------------------------ 12 3.3.6 Nivel optimizado ----------------------------------------------------------------- 14 Calidad de Software Página 3 ISO (International Organization for Standardization) Es el organismo encargado de promover el desarrollo de normas internacionales de fabricación, comercio y comunicación para todas las ramas industriales a excepción de la eléctrica y la electrónica. Su función principal es la de buscar la estandarización de normas de productos y seguridad para las empresas u organizaciones a nivel internacional. El propósito de la ISO es promover el desarrollo de la estandarización y de las actividades relacionadas del mundo para facilitar el intercambio internacional de mercancías y de servicios, y para desarrollar la cooperación en actividad intelectual, científica, tecnológica y económica. El objetivo de ISO es promover el desarrollo de la normalización y actividades conexas en el mundo, con el fin de facilitar el intercambio internacional de bienes y servicios, y desarrollar la cooperación en las esferas de actividad intelectual, científica, tecnológica y económica. La misión de la ISO es promover el desarrollo de la estandarización y las actividades con ella relacionada en el mundo con la mira en facilitar el intercambio de servicios y bienes, y para promover la cooperación en la esfera de lo intelectual, científico, tecnológico y económico. Beneficios de la ISO Adecuación a la Administración de los procesos Enfoque a los resultados de la Institución Integración con otros sistemas de Administración de la Calidad Incluye procesos de mejora continua Adaptable a las necesidades de los alumnos Enfoque a las necesidades de los alumnos y partes interesadas. Calidad de Software Página 4 ¿Para qué implementar un sistema de gestión de calidad de organización? Para: Garantizar la calidad del aprendizaje significativo en el alumno Demostrar que los procesos se realizan de manera controlada Tener un enfoque de mejora continua de procesos y servicios de la Organización. Diseñar estrategias para la competitividad y permanencia en el mercado. Permitir contar con indicadores (ya que es un enfoque basado en procesos) cuando se implementa y mejora la eficacia de un SGC, para aumentar la satisfacción del cliente mediante el cumplimiento de sus requisitos. SPICE Para que una organización mejore la calidad de sus productos debe tener un método probado, consistente y fiable para evaluar el estado de sus procesos y además, unos medios para usar los resultados de la evaluación como parte de un programa de mejora coherente. El proyecto internacional SPICE, llevado a cabo por la organización ISO, ha obtenido en su primera fase del proyecto un Informe Técnico Tipo 2 (ISO 15504)1 formado por un conjunto de documentos todos ellos bajo el título general de Evaluación del Proceso Software. El proyecto SPICE arrancó con los objetivos de: a) Ayudar al proyecto de estandarización, en su etapa preparatoria, para desarrollar los borradores iníciales de trabajo. b) Realizar las pruebas de usuario, obteniendo datos de la experiencia que constituirán la base de la revisión del Estándar antes de emitirlo como International Standard. c) Crear el conocimiento del mercado y evolucionar el estándar. Elementos principales del SPICE: Los elementos esenciales para comprender SPICE son los siguientes: Modelo de Referencia Calidad de Software Página 5 Los resultados de la evaluación del proceso se describen en un modelo de dos dimensiones: Dimensión del proceso y Dimensión de la capacidad. Esto es lo que se denomina arquitectura del modelo de referencia. Dimensión del proceso: que está caracterizado por los objetivos del proceso que constituye los elementos fundamentales a medir; Dimensión de la capacidad del proceso: que está caracterizado por una serie de atributos de proceso, aplicables a cualquier proceso, que representan características necesarias para gestionar y mejorar su capacidad de realización. Dimensión del proceso: El modelo de referencia agrupa los procesos en categoría de procesos. Estos procesos se corresponden con los definidos en ISO 12207 Software Life-Cycle Process. (Tabla 1). La descripción de cada proceso consta de: Una declaración del objetivo del proceso describiendo a un alto nivel los objetivos generales del proceso, y también una descripción en términos genéricos de los probables resultados de una implementación efectiva del proceso; y Una o más observaciones proporcionando mayor información sobre los procesos y su relación a los procesos definidos en ISO 12207 y a otros procesos en este modelo de referencia. Dimensión de la capacidad: Está formada por seis niveles de capacidad y nueve atributos de proceso. Un nivel de capacidad está formado por uno o varios atributos que conjuntamente proporcionan una mejora importante en la capacidad de realizar un proceso. Los niveles proporcionan una manera racional de progresar en la mejora de la capacidad de cualquier proceso. El modelo de referencia por sí solo no se puede usar como base para realizar evaluaciones fiables y consistentes de la capacidad de proceso puesto que no es suficiente el nivel de detalle. Se debe soportar con un conjunto de indicadores comprensibles del rendimiento y capacidad del proceso. Calidad de Software Página 6 VENTAJAS Y DESVENTAJAS SPICE ofrece una base para una evaluación muy detallada del estado actual del proceso de una organización. Por su gran nivel de descomposición de los procesos e indicadores, proporciona evaluaciones objetivas y con resultados repetibles, especialmente cuando es realizada por evaluadores entrenados y cualificados. El European Software Institute (ESI) ya ofrece cursos para ello. Al disminuir la subjetividad se consigue reducir discordias sobre los resultados de la evaluación y a adoptar actitudes positivas de los equipos hacia la evaluación. Por contra se requiere un gran esfuerzo para realizar las evaluaciones y por tanto un alto costo. Las evaluaciones se pueden llevar a cabo por personal interno de tal manera que se puedan ver reducidos estos costes. Es importante tener en cuenta que la evaluación no necesita abordarse a toda la organización, las evaluaciones SPICE se puede realizar únicamente en aquellos procesos que sean áreas de problema. El modelo de referencia SPICE no contiene una estrategia de mejora del proceso. Esto puede verse como positivo o negativo dependiendo de lo que se quiera. Pero la ventaja principal es que al disponer de un estándar internacional se pueden realizar comparaciones a nivel mundial entre evaluaciones en contextos similares. CMM (Capability Maturity Model for Software) Ya que el problema fundamental de las organizaciones de software es su inhabilidad para administrar sus procesos. CMM para Software (Capability Maturity Model for Software) se convierte en una guía que ayudará a ganar el control sobre estos procesos y así desarrollar y mantener un mejor software. La meta será: La evolución hacia una cultura de excelencia tanto en la Ingeniería como en la Administración de software. El CMM incluye prácticas de: Planeación. Ingeniería. Administración de desarrollo. Mantenimiento de software. Calidad de Software Página 7 Si se siguen estas prácticas aumentará la habilidad con que una organización podrá alcanzar metas como: costo, programa, funcionalidad y calidad de producto. El propósito de CMM es: Guiar a las organizaciones en la selección de estrategias de mejora determinando la madurez del proceso actual e identificando los puntos importantes que se deben atacar, para así mejorar tanto el proceso como la calidad del software. ¿Por qué confiar en CMM? El modelo de capacidad de Madurez está basado en prácticas reales, refleja las mejores prácticas en el área y la necesidad de los individuos de llevar a cabo una mejora en el proceso de software, al igual que su valoración. Por otra parte, CMM está documentado y es público. CMM es: Una estrategia de mejora. Una señalización de deficiencias dentro de una organización. Una guía para poder avanzar hacia una cultura de calidad. CMM NO es: Una solución rápida (es gradual). Un checklist que puede ser utilizado en todos los ambientes, aunque las prácticas detalladas en el CMM sirven como guía para tomar decisiones. Estructura CMM cuenta con cinco niveles de Madurez. Niveles que son progresivos y no autónomos y que están organizados conforme a su importancia (Prioridad). 1. Analogía: 2. Cada Piso (Nivel de madurez). 3. Plataformas intermedias (la próxima meta). 4. Plataformas KPA (metas intermedias). 5. Escalones (Prácticas Clave). Calidad de Software Página 8 NIVELES DE MADUREZ DE LOS PROCESOS DEL SOFTWARE NIVEL 1: INICIAL Una empresa estará ubicada en el nivel inicial si su proceso es ad-hoc o caótico. Esto quiere decir que realmente no existe un ambiente estable en el cual se pueda desarrollar o mantener software. En este nivel se tendrán un número de entradas, seguidas por cierto proceso que realmente no estaba documentado, ni se documenta: Visibilidad y Madurez del Proceso de Software Inicial En este nivel lo normal es no alcanzar las metas definidas ni en tiempo, ni costo, ni recursos planeados. La Figura muestra otra cara de cómo se realiza el proceso dentro de las Organizaciones de Nivel 1. Se tienen como entrada las necesidades del cliente. Calidad de Software Página 9 Estas pasan por una transformación no definida para dar como resultado un producto. Ahora este producto puede o no satisfacer las necesidades del cliente y puede o no, haber cumplido con los estimados propuestos por la Organización que otorga el servicio. La capacidad es una cualidad de las personas más no de la organización. Se alcanza el propósito del proceso de manera inconsistente. No es planeado ni lleva un seguimiento. Nota: Los objetivos de costo y del plan son normalmente sobrepasados por las Organizaciones de Nivel 1. NIVEL 2: REPETIBLE Para poder dejar atrás el Nivel 1 la Organización debe empezar a documentar su proceso, se empieza a guardar información. Así pues, si una empresa cuenta con políticas que le permitan administrar un proyecto de software y a su vez, con procedimientos para verificar que esas políticas son implementadas, se ubicaría en el nivel dos. Visibilidad y Madurez del Proceso de Software Nivel 2 Calidad de Software Página 10 Al término de cada caja se tiene una revisión donde se podrá detectar si el proceso está funcionando. Se puede actuar ante los problemas en cuanto se sabe de ellos. El cliente puede saber acerca del status del proyecto al finalizar cada una de las cajas. La capacidad del proceso de software de una Organización Nivel 2 tiene disciplina, ya que el proyecto de software involucra planeación y seguimiento; es un proceso documentado. El proceso es estable y los éxitos anteriores pueden repetirse. Pero aún no se cuenta con métricas para servicios, solamente para productos. Nota: Los planes basados en desempeños anteriores son más realistas en organizaciones de Nivel 2. NIVEL 3: DEFINIDO En el Nivel 3 ya no hay cajas negras y se cuenta, con un proceso de software estándar de la organización para desarrollar o mantener el software; éste está documentado y es implementado a lo largo de toda la organización en distintos proyectos y este proceso, es la unión de prácticas de Ingeniería de Software y de Administración de Procesos. La figura muestra el interior de estas cajas; como consecuencia se incrementa el número de accesos, para conocer la situación del proyecto tanto por la organización como por el cliente. Visibilidad y Madurez del Proceso de software Nivel 3. Calidad de Software Página 11 En el Nivel 3 se agrega al proceso un enfoque Organizacional y procesos de Ingeniería: El Nivel 3 es estándar y consistente, ya que gracias a las prácticas de Ingeniería de Software y a las de administración de proyectos el proceso es estable y repetible. La capacidad se logra basándose en el entendimiento de las actividades, roles y responsabilidades en un proceso de software bien definido. La administración ahora puede prepararse con anterioridad para afrontar riesgos posibles. En este Nivel se cuenta con planes y programas de mejora aunque no necesariamente se les da un seguimiento. La medición no es sólo de productos sino también de servicios. Nota: Con procesos bien definidos el desempeño mejora en Organizaciones de Nivel 3. NIVEL 4: ADMINISTRADO En el Nivel 4 se hace uso de todos los datos que se han recolectado, se convierten datos en información relevante para la organización, para así poder identificar qué era lo que estaba mal. Este nivel podría llamarse "cuantitativo" ya que en él, cualquier decisión es respaldada por una base cuantitativa; se mide el progreso y los problemas y mientras se aumenta la probabilidad de ser más precisos en los estimados, se reduce la variabilidad (incertidumbre) del proceso. El cliente tendrá un entendimiento medible tanto de la capacidad del proceso como del riesgo que éste implica, incluso antes de que el proyecto inicie. Calidad de Software Página 12 En este nivel la organización fija metas de calidad tanto del proceso como del producto. Existe un programa de medición dentro de la organización que es aplicado a lo largo de todos los proyectos, midiendo así la productividad y la calidad. En la Figura se logra apreciar que no sólo se toma información del proyecto, sino que también se ingresa información; existe una retroalimentación. Visibilidad y Madurez del Proceso de software nivel 4 Todos los procesos de software son medidos. En este nivel se forma la parte cuantitativa de la organización, para poder evaluar los proyectos, los procesos y los productos. Esto no quiere decir que en niveles anteriores no se obtuvo información cuantitativa. Puede ser que sí se guardó este tipo de información, pero no es sino hasta el Nivel 4 que se le da un significado a esta valiosa información. En el nivel 4 se agrega una retroalimentación cuantitativa al proceso: Calidad de Software Página 13 El Nivel 4 es cuantificable y predecible. Todo gracias a que el proceso, a la par que el producto y servicios, es medido y opera dentro de un límite cuantificable. Se cumple con planes y programas de mejora. Se hace una distinción entre los procesos principales y los de apoyo. Se pueden observar cadenas cliente-servidor a lo largo del proceso. Como resultado se obtiene un producto de Alta Calidad. Nota: El desempeño continúa su mejora basándose en el entendimiento cuantitativo del producto y del proceso. NIVEL 5: OPTIMIZADO En el Nivel 5 la organización se dedica a mejorar continuamente su proceso probando nuevas maneras de construcción de software, pero siempre de una manera controlada. Para lograr esto es necesario poder localizar tanto debilidades como fortalezas y al analizarlas, se podrá mejorar el proceso y así prevenir defectos. Si un defecto es encontrado, entonces es revisado o sustituido, como puede observarse en la figura 11. Los defectos son analizados con el fin de determinar sus causas. El objetivo de esta actividad es el prevenir y evitar la recurrencia de estos defectos. Una vez encontradas las causas es importante difundirlas para que así todos los integrantes de la organización aprendan la lección. Visibilidad y Madurez del Proceso de software Nivel 5 En el Nivel 5 los directivos son capaces de estimar y después dar un seguimiento cuantitativo al impacto y a la efectividad del cambio. La relación con el cliente es más fuerte. Calidad de Software Página 14 A partir de la eficiencia del proceso es posible generar reportes de costo/beneficio de nuevas tecnologías o proponer cambios al proceso estándar de la organización. Es en este Nivel 5 que se agrega una fase más, la optimización del proceso y es así, como se cierra el círculo del proceso: El nivel optimizado se dedica al mejoramiento continuo de su proceso (capacidad) a la par de su madurez. Este mejoramiento se da gracias al uso o implementación de nuevas tecnologías o métodos. Se obtiene un cumplimiento total de objetivos de calidad. Los ciclos de mejora continua son identificables. Los indicadores de desempeño competitivos son comparados contra los mejores en su clase. Existe una relación causal entre la mejora de calidad y el desempeño financiero de la compañía. Nota adicional: sería bueno destacar que alcanzar el Nivel 5, no significa que la organización ya no tenga una meta superior a la cual aspirar. Es más, si la organización no persiste en su mejoramiento continuo ésta podría bajar a un nivel inferior de la escala de CMM. Por lo tanto, como moraleja: si lo ganado no se cuida, ni se trabaja, se pierde. Calidad de Software Página 15