01 November 2006

Uso del Diagrama de Pareto

El Diagrama de Pareto es un histograma especial en donde se organizan diversas clasificaciones de datos por orden descendente, por medio de barras sencillas después de haber reunido los datos para calificar eventos, defectos, causas, mediciones, etc.; de modo que sea posible asignar un orden de prioridades. Consiste en detectar cuáles son las pocas causas que generan la mayor cantidad de consecuencias, a partir de concentrarse en los temas más importantes utilizando la filosofía del ABC.

El enfoque impulsado por el economista italiano, se denomina la regla del 20-80, es decir, que a pesar de que esa proporción anunciada por Pareto no se cumpla en forma precisa, el objetivo que persigue este método es que “el 20% de las causas producen el 80% de los efectos”.

El análisis resulta racional, ágil, práctico y efectivo dado que requiere poco esfuerzo concentrando el interés sólo en pocas causas, aunque de principal importancia ya que solucionan la mayor parte de los problemas.

Pareto es una herramienta de análisis de datos ampliamente utilizada y es útil en la determinación de la causa principal durante un esfuerzo de resolución de problemas. Este permite ver cuáles son los problemas más grandes, permitiéndoles a los grupos establecer prioridades. En casos típicos, los pocos (pasos, servicios, ítems, problemas, causas) son responsables por la mayor parte el impacto negativo sobre la calidad. Si enfocamos nuestra atención en estos pocos vitales, podemos obtener la mayor ganancia potencial de nuestros esfuerzos por mejorar la calidad.

La minoría vital aparece a la izquierda del gráfico y la mayoría útil a la derecha; hay veces que es necesario combinar elementos de la mayoría útil en una sola clasificación denominada otros, la cual siempre deberá ser colocada en el extremo derecho. La escala vertical indicará cantidades (de veces, de eventos, de unidades de moneda, de metros cúbicos, etc.) en unidades. Los factores se representan a lo largo del eje x en forma decreciente. La curva de frecuencia indica los pocos factores vitales que requieren atención.

Este diagrama se utiliza de la siguiente forma: 1. Seleccionar categorías lógicas para el tópico de análisis identificado (incluir el periodo de tiempo). 2. Reunir datos. La utilización de un Check List puede ser de mucha ayuda en este paso. 3. Ordenar los datos de la mayor categoría a la menor 4. Totalizar los datos para todas las categorías 5. calcular el porcentaje del total que cada categoría representa 6. trazar los ejes horizontales (x) y verticales (y primario - y secundario) 7. trazar la escala del eje vertical izquierdo para frecuencia (de 0 al total, según se calculó anteriormente) 8. de izquierda a derecha trazar las barras para cada categoría en orden descendente. Si existe una categoría “otros”, debe ser colocada al final, sin importar su valor. Es decir, que no debe tenerse en cuenta al momento de ordenar de mayor a menor la frecuencia de las categorías. 9. trazar la escala del eje vertical derecho para el porcentaje acumulativo, comenzando por el 0 y hasta el 100% 10. trazar el gráfico lineal para el porcentaje acumulado, comenzando en la parte superior de la barra de la primera categoría (la mas alta) 11. dar un título al gráfico, agregar las fechas de cuando los datos fueron reunidos y citar la fuente de los datos. 12. analizar la gráfica para determinar los “pocos vitales”

Se puede observar que los 2 primeros defectos representa en 71.6% del total planteado. Se deberán analizar las causas que lo provocaron para que así desaparezca la mayor parte de los defectos.

Este diagrama se puede aplicar a los siguientes puntos de la Norma ISO 9001:2000: “Objetivos de la Calidad” (5.4.1), “Generalidades de la revisión” (5.6.1), “Auditoria interna” (8.2.2), “Mejora continua” (8.5.1) y “Acción correctiva” (8.5.2) y “Acción preventiva” (8.5.3). La aplicación de este diagrama permite determinar si pocos problemas pueden provocar la mayor cantidad de problemas. Todos estos puntos mencionados forman parte de la Norma ISO 90003:2004 (ISO 9001:2000 aplicada al Software).

Respecto de CMMi V1.1 se puede decir que el Diagrama de Pareto puede aplicarse a las siguientes áreas de proceso: Organizational Process Focus (OPF), Organizational Process Performance (OPP) y Decisión Analysis and Resolution (DAR).

De esta forma, el diagrama de Pareto es una herramienta que permite analizar y detectar aquellas situaciones que pueden provocar la mayoría de los problemas y que afectan a los objetivos de la empresa.

Gestión de la Calidad del Software

La Gestión de la Calidad de Software es un conjunto de actividades de la función general de la Dirección que determina la calidad, los objetivos y las responsabilidades. Se basa en la determinación y aplicación de las políticas de calidad de la empresa. La Gestión o Administración de la Calidad se aplica normalmente a nivel empresa o dentro de la gestión de cada proyecto. El propósito de la Gestión de la Calidad del Software es entender las expectativas del cliente en términos de calidad, y poner en práctica un plan proactivo para satisfacer esas expectativas.

Desde el punto de vista de la calidad, la Gestión de la Calidad del Software (CS) está formada por 4 partes, las cuales son: (1) Planificación de la CS, (2) Control de la CS, (3) Aseguramiento de la CS y (4) Mejora de la CS.

La Planificación de la Calidad del Software (1) es la parte de la Gestión de la Calidad encargada de realizar el proceso administrativo de desarrollar y mantener una relación entre los objetivos y recursos de la organización; y las oportunidades cambiantes del mercado. El objetivo es modelar y remodelar los negocios y productos de la empresa, de manera que se combinen para producir un desarrollo y utilidades satisfactorias.

Los aspectos a considerar en la Planificación de la CS son: Modelos/Estándares de CS a utilizar, Costos de la CS, Recursos humanos y materiales necesarios, etc. El plan de calidad define los atributos de calidad más importantes del producto a ser desarrollado y define el proceso de evaluación de la calidad. En la Planificación de la CS se debe determinar: (1) Rol de la Planificación, (2) Requerimientos de la CS, (3) Preparación de un Plan de CS, (4) Implementación de un Plan de CS y (5) Preparar un Manual de Calidad.

El Control de la Calidad del Software (2) son las técnicas y actividades de carácter operativo, utilizadas para satisfacer los requisitos relativos a la calidad, centradas en 2 objetivos fundamentales: (1) mantener bajo control un proceso y (2) eliminar las causas de los defectos en las diferentes fases del ciclo de vida. Está formado por actividades que permiten evaluar la calidad de los productos de software desarrollados. El aspecto a considerar en el Control de la CS es la “Prueba del Software”.

La prueba es el proceso de ejecutar un programa con intención de encontrar defectos. Es un proceso destructivo que determina el diseño de los casos de prueba y la asignación de responsabilidades. La prueba exitosa es aquella que descubre defectos. El “caso de prueba bueno” es aquel que tiene alta probabilidad de detectar un defecto aún no descubierto. El “caso de prueba exitoso” es aquel que detecta un defecto aún no descubierto.

La prueba no es: (1) demostración que no hay errores, (2) demostración que el software desempeña correctamente sus funciones y (3) establecimiento de confianza que un programa hace lo que debe hacer.

La prueba demuestra hasta qué punto las funciones del software parecen funcionar de acuerdo con las especificaciones y parecen alcanzarse los requisitos de rendimiento. Además, los datos que se van recogiendo a medida que se lleva a cabo la prueba proporcionan una buena indicación de la confiabilidad del software e indican la calidad del software como un todo. Pero, la prueba no puede asegurar la ausencia de defectos; sólo puede demostrar que existen defectos en el software.

Una estrategia Tradicional de prueba del software debe incluir pruebas de bajo nivel que verifiquen que todos los pequeños segmentos de código fuente se han implementado correctamente, así como pruebas de alto nivel que validen las principales funciones del sistema frente a los requisitos del cliente. Una estrategia proporciona un conjunto de hitos.

Inicialmente, la prueba se centra en cada módulo individualmente, asegurando que funciona adecuadamente como una unidad. La prueba de unidad hace un uso intensivo de las técnicas de prueba de caja blanca, ejercitando caminos específicos de la estructura de control del módulo para asegurar un alcance completo y una detección máxima de errores. La prueba de unidad centra el proceso de verificación en la menor unidad del diseño del software: el componente de software o módulo. Se prueba la interfaz del módulo para asegurar que la información fluye de forma adecuada hacia y desde la unidad de programa que está siendo probada. Se examinan las estructuras de datos locales para asegurar que los datos que se mantienen temporalmente conservan su integridad durante todos los pasos de ejecución del algoritmo. Se prueban las condiciones límite para asegurar que el módulo funciona correctamente en los límites establecidos. Se ejercitan todos los caminos independientes de la estructura de control con el fin de asegurar que todas las sentencias del módulo se ejecutan por lo menos una vez. Y, finalmente, se prueban todos los caminos de manejo de errores. Antes de iniciar cualquier otra prueba es preciso probar el flujo de datos de la interfaz del módulo. Si los datos no entran correctamente, todas las demás pruebas no tienen sentido. Además de las estructuras de datos locales, durante la prueba de unidad se debe comprobar el impacto de los datos globales sobre el módulo.

A continuación, se deben ensamblar o integrar los módulos para formar el paquete de software completo. La prueba de integración es una técnica sistemática que permite construir la estructura del programa mientras que, al mismo tiempo, se llevan a cabo pruebas para detectar errores asociados con la interacción. El objetivo es juntar los módulos probados mediante la prueba de unidad y construir una estructura de programa que esté de acuerdo con lo que dicta el diseño. Se combinan todos los módulos por anticipado. Se prueba todo el programa en conjunto. Se encuentra un gran conjunto de errores. Una vez que se corrigen esos errores aparecen otros nuevos y el proceso continúa en lo que parece ser un ciclo sin fin.

Después que el software se ha integrado, se dirigen un conjunto de pruebas de alto nivel. Se deben comprobar los criterios de validación establecidos durante el análisis de requisitos. La prueba de validación proporciona una seguridad final que el software satisface todos los requisitos funcionales, de comportamiento y de rendimiento. Durante la validación se usan exclusivamente técnicas de prueba de caja negra.

El software, una vez validado, se debe combinar con otros elementos del sistema. La prueba del sistema verifica que cada elemento se ajusta de forma adecuada y que se alcanza la funcionalidad y el rendimiento del sistema total. La prueba del sistema está constituida por una serie de pruebas diferentes cuyo propósito primordial es ejercitar profundamente el sistema basado en computadora. Aunque cada prueba tiene un propósito diferente, todas trabajan para verificar que se ha integrado adecuadamente todos los elementos del sistema y que realizan las funciones apropiadas.

La prueba de regresión es volver a ejecutar un subconjunto de pruebas que se han llevado a cabo anteriormente para asegurarse que los cambios no han propagado efectos colaterales no deseados. Este tipo de prueba es la actividad que ayuda a asegurar que los cambios no introduzcan un comportamiento no deseado o errores adicionales. A medida que progresa la prueba de regresión, el número de pruebas de regresión puede crecer demasiado. Por lo tanto, el conjunto de pruebas de regresión debería diseñarse para incluir sólo aquellas pruebas que traten una o más clases de errores en cada una de las funciones principales del programa. No es práctico ni eficiente volver a ejecutar cada prueba de cada función del problema después de un cambio.

Cuando se construye un software a medida para un cliente, se llevan a cabo una serie de pruebas de aceptación para permitir que el cliente valide todos los requisitos. Estas pruebas las realiza el usuario final en lugar del responsable del desarrollo de sistema. Una prueba de aceptación puede ir desde un informal paso de prueba hasta la ejecución sistemática de una serie de pruebas bien planificadas.

El diseño de casos de prueba para el software o para otros productos de ingeniería puede requerir tanto esfuerzo como el propio diseño inicial del producto. Sin embargo, los Ingenieros de Software tratan las pruebas como algo sin importancia, desarrollando casos de prueba que “parezcan adecuados”, pero que tienen poca garantía de ser completos. Se deben diseñar pruebas que tengan la mayor probabilidad de encontrar el mayor número de errores con la mínima cantidad de esfuerzo y tiempo posible. Cualquier producto de ingeniería puede probarse de una de estas 2 formas: (1) prueba de caja negra y (2) prueba de caja blanca.

Cuando se considera el software de computadora, la prueba de caja negra se refiere a las pruebas que se llevan a cabo sobre la interfaz del software. Los casos de prueba pretenden demostrar que las funciones del software son operativas, que la entrada se acepta de forma adecuada y que se produce un resultado correcto, así como que la integridad de la información externa se mantiene.

La prueba de caja blanca del software se basa en el minucioso examen de los detalles procedimentales. Se comprueban los caminos lógicos del software proponiendo casos de prueba que ejerciten conjuntos específicos de condiciones y/o bucles. Se puede examinar el estado del programa en varios puntos para determinar si el estado real coincide con el esperado o mencionado. Para este tipo de prueba, se deben definir todos los caminos lógicos y desarrollar casos de prueba que ejerciten la lógica del programa.

El Aseguramiento de Calidad del Software (3) es el conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza que el software satisfará los requisitos dados de calidad. Este aseguramiento se diseña para cada aplicación antes de comenzar a desarrollarla y no después. El aseguramiento de la calidad del software engloba: (1) un enfoque de gestión de calidad, (2) métodos y herramientas de Ingeniería del Software, (3) revisiones técnicas formales aplicables en el proceso de software, (4) una estrategia de prueba multiescala, (5) el control de la documentación del software y de los cambios realizados, (6) procedimientos para ajustarse a los estándares de desarrollo del software y (7) mecanismos de medición y de generación de informes.

Este aseguramiento tiene asociado 2 constitutivos diferentes: los Ingenieros de Software que realizan el trabajo técnico y un grupo de SQA (Software Quality Assurance) que tiene la responsabilidad de la planificación de aseguramiento de la calidad, supervisión, mantenimiento de registros, análisis e informes.

Las Actividades del grupo de SQA son: (1) Establecimiento de un plan de SQA para un proyecto, (2) Participación en el desarrollo de la descripción del proceso de software del proyecto, (3) Revisión de las actividades de Ingeniería del Software para verificar su ajuste al proceso de software definido, (4) Auditoria de los productos de software designados para verificar el ajuste con los definidos como parte del proceso del software, (5) Asegurar que las desviaciones del trabajo y los productos del software se documentan y se manejan de acuerdo con un procedimiento establecido, y (6) Registrar lo que no se ajuste a los requisitos e informar a sus superiores.

Además de estas actividades, el grupo de SQA coordina el control y la gestión de cambios y; ayuda a recopilar y analizar las métricas del software. Las métricas son escalas de unidades sobre las cuales puede medirse un atributo cuantificable. Cuando se habla de software nos referimos a la disciplina de recopilar y analizar datos basándonos en mediciones reales de software, así como a las escalas de medición. Los atributos son características observables del producto o del proceso de software, que proporciona alguna información útil sobre el estado del producto o sobre el progreso del proyecto. El término producto se utiliza para referirse a las especificaciones, a los diseños y a los listados del código. Los valores de las métricas no se obtienen sólo por mediciones. Algunos valores de métricas se derivan de los requisitos del cliente o de los usuarios y, por lo tanto, actúan como restricciones dentro del proyecto.

Las medidas de Calidad del Software deben comenzar desde la especificación y terminar con la implementación, implantación y mantenimiento o post-implantación. Debe aplicarse a lo largo de todo el proceso de Ingeniería de Software. Básicamente, la medición es una fase normal de cualquier actividad industrial Sin mediciones es imposible perseguir objetivos comerciales normales de una manera racional.

Existen métricas a nivel Proyecto, Proceso y Producto respectivamente. Las métricas a recabar dependen de los objetivos del negocio en particular. Los desarrolladores tienen a la vez objetivos comunes como, respetar el presupuesto y respetar los plazos, minimizar las tasas de defectos antes y después de la entrega del producto e intentar mejorar la calidad y la productividad. Las métricas deben ayudar a la evaluación de las representaciones del modelo lógico y físico, deben tener la capacidad de intuir sobre la complejidad del diseño y construcción; y deben ayudar en el diseño de casos de prueba.

La Mejora de la Calidad del Software (4) es la parte de la Gestión de la Calidad que contribuye, por medio de las mediciones, a los análisis de los datos y auditorias, a efectuar mejoras en la calidad del software.

Una Auditoria de Calidad tiene como objetivo mostrar la situación real para aportar confianza y destacar las áreas que pueden afectar adversamente esa confianza. Otro objetivo consiste en suministrar una evaluación objetiva de los productos y procesos para corroborar la conformidad con los estándares, las guías, las especificaciones y los procedimientos.

Los resultados de la auditoria son documentados y remitidos al director de la organización auditada, a la entidad auditora, y cualquier organización externa identificada en el plan de auditoria. El informe incluye la lista de elementos no conformes u otros aspectos para las posteriores revisiones y acciones. Cuando se realiza el plan de auditoria, las recomendaciones son informadas e incluidas en los resultados de la auditoria.

Para implementar un programa de mejoras es necesario definir procesos, decidir qué se quiere mejorar, definir qué medidas serán necesarias recoger, cómo y dónde tomarlas, gestionarlas mediante herramientas, utilizarlas para la toma de decisiones y reconocer las mejoras. Cuando el proceso a mejorar es el de desarrollo del software, es importante definir qué objetivos se quieren alcanzar, para reducir el número de medidas y, en consecuencia, el coste de recopilarlas y el impacto sobre la actividad de producción de software.

La calidad ha dejado de ser un tópico y es necesario que forme parte de los productos o servicios que comercializamos para nuestros clientes. El cliente es el mejor auditor de la calidad, él exige el nivel que está dispuesto a pagar por ella, pero no más. Por tanto, debemos de cuantificar cuál es el nivel de calidad que nos exige para poder planificar la calidad de los productos que se generen a lo largo de la producción del producto o servicio final. Al analizar las necesidades de nuestros clientes, deberemos tener en cuenta la previsible evolución de sus necesidades y tendencias en cuanto a características. Deberemos tener en cuenta la evolución tecnológica del entorno de producción de nuestros productos para suministrarlos con el nivel tecnológico adecuado. No debemos olvidar el nivel de calidad de nuestros competidores, debiendo elaborar productos cuyas características y funcionalidades sean competitivas con las de nuestros competidores.

La Calidad de Software es resultado del movimiento global dentro del proceso de mejoramiento continuo de los modelos y/o estándares de producción en todos los sectores industriales, en particular, cuando éste se concentra en la producción de sistemas de información y software especializado.

Realización del Producto e ISO 9001:2000 (4)

En todo Sistema de Gestión de la Calidad, se puede decir que la realización del producto, es la secuencia de procesos principales y procesos de apoyo requeridos para la obtención del producto.

Los aspectos a considerar en “Realización del Producto” son: (1) Planificación de la realización del producto, (2) Procesos relacionados con el cliente, (3) Diseño y desarrollo, (4) Compras, (5) Producción y prestación del servicio y (6) Control de los dispositivos de seguimiento y de medición.

La norma ISO 90003:2004 considera los mismos ítems que la Norma ISO 9001:2000 para el punto de Realización del Producto y añade subítems propios de la Ingeniería de Software.

Respecto del punto “Planificación de la Realización del Producto” (7.1) hace referencia a la planificación de la calidad que se requiere como paso inicial para coordinar todos los procesos que concurrirán a la ejecución del producto. Incluye la definición a partir de los requisitos de clientes, el diseño y las etapas de verificación y validación del diseño, la implantación de los procesos de elaboración y la distribución.

Las áreas de procesos “Organizational Process Definition” (OPD), “Project Planning” (PP), “Integrated Project Management” (IPM) y “Quantitative Project Management” (QPM) de CMMi V1.1 guardan relación con este punto.

El punto “Procesos relacionados con el Cliente” (7.2) plantea que la organización debe revisar los requisitos de clientes y otras partes interesadas aplicando un procedimiento de revisión de contrato. Esta revisión debe hacerse en dos instancias, antes que se formalice el contrato e inmediatamente después de formalizarlo es decir, con la orden de compra colocada, con el propósito de verificar si las condiciones acordadas en la presentación de la oferta, son consistentes con las de la orden de compra definitiva.

Las áreas de procesos “Requirements Development” (RD), “Requirements Management” (REQM), “Technical Solution” (TS), “Verification” (VER), “Integrated Project Management” (IPM) y “Measurement & Analysis” (M&A) de CMMi V1.1 guardan relación con este punto.

El punto “Diseño y Desarrollo” (7.3) hace referencia a la expresión diseño y desarrollo como el conjunto de procesos que transforma los requisitos en características específicas (diseño del producto) y en la especificación del proceso de realización del producto. Las palabras diseño y desarrollo en esta norma, se pueden aplicar indistintamente a productos o procesos.

Las áreas de procesos “Project Planning” (PP), “Integrated Project Management” (IPM), “Verification” (VER), “Validation” (VAL), “Product Integration” (PI), “Requirements Development” (RD), “Technical Solution” (TS), “Project Monitoring and Control” (PMC) y “Configuration Management” (CM) de CMMi V1.1 guardan relación con este punto.

El punto “Compras” (7.4) hace mención a que el proceso de compras deberá conducirse de modo de comprar sólo a proveedores calificados para abastecer los productos respectivos. La organización debe tener proveedores alternativos para aquellos casos donde el proveedor principal falla en su abastecimiento.

Las áreas de procesos “Supplier Agreement Management” (SAM), “Technical Solution” (TS) y “Verification” (VER) de CMMi V1.1 guardan relación con este punto.

El punto “Producción y prestación del servicio” (7.5) hace referencia a que el servicio de Producción debe cumplir los requisitos que se hayan fijado para la elaboración del producto a fin de asegurar el cumplimiento de las especificaciones y satisfacer las necesidades y expectativas de las partes interesadas.

Las áreas de procesos “Technical Solution” (TS), “Validation” (VAL), “Configuration Management” (CM), “Product Integration” (PI) y “Requirements Management“ (REQM) de CMMi V1.1 guardan relación con este punto.

El punto “Control de los dispositivos de seguimiento y medición” (7.6) hace referencia a la capacidad de garantizar que la medición realizada con los medios con que cuenta la organización, es exacta cuando se la compara con medios considerados como patrón. Esta exigencia requiere calibrar los medios de medición, ensayo, verificación y seguimiento, con respecto a otros medios tomados como patrón. Los patrones a su vez, deben estar calibrados con relación a otros cuyo estado de calibración sea aceptado en el ámbito nacional, en el ámbito oficial. Estos medios de control a su vez, están calibrados respecto a otros cuya validez es reconocida internacionalmente.

Las organizaciones que disponen de medios de control calibrados bajo estas reglas, gozan del atributo de asegurar la medida y por lo tanto, aquellas validaciones que otorgan a sus productos y a sus procesos como resultado de la medición, es perfectamente válida y reconocida por cualquier cliente y por cualquier norma de aseguramiento de la calidad.

Las áreas de procesos “Verification” (VER), “Validation” (VAL) y “Measurement & Analysis” (M&A) de CMMi V1.1 guardan relación con este punto.

De esta forma, el punto “Realización del Producto” forma parte del modelo de un Sistema de Gestión de la Calidad, el cual está basado en procesos que ilustran los vínculos entre los procesos presentados en los capítulos 4 a 8 de la ISO 9001:2000.