LiderDeProyecto.com - Tu entrada al mundo de la administración de Proyectos
➔ Acceso al Programa 1000 Certificados
 
Manual de Administración de Proyectos
 

Gestión de la Calidad

Por Haylin Corujo Numa

Uno de los problemas que se afrontan actualmente en la esfera de la informática es el proceso de la calidad del software. Desde la década del 70, este tema ha sido motivo de preocupación para especialistas, ingenieros, investigadores y comercializadores de software.

La calidad del software es el conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia. La calidad es sinónimo de eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad.

En términos generales la calidad de software puede definirse como el grado en que un conjunto de características inherentes al software cumple con unos requisitos explícitos e implícitos.

La implantación de un sistema de calidad en una organización ayuda a mejorar la gestión del desarrollo de software, y esto traerá como consecuencia una disminución de los problemas y errores, favoreciendo las relaciones y comunicación entre las personas y grupos de organización, y de éstos con los clientes.

La gestión de la calidad va tomando cada día mayor importancia en el ámbito del desarrollo de software. De esta forma, los esfuerzos encaminados a integrar la gestión de la calidad dentro de la gestión de los proyectos deben generar también un aumento de la productividad.

Este artículo se basa en caracterizar los cuatro procesos que se encargan de definir las actividades para determinar los objetivos y las responsabilidades relativos a la calidad, de modo que percibamos como la gestión de la calidad dentro de la ingeniería del software va encaminada al aseguramiento de la calidad del software a lo largo del proceso de desarrollo del mismo.

La obtención de un software con calidad implica la utilización de metodologías o procedimientos, estándares para el análisis, diseño, programación y prueba del software que permitan uniformar la filosofía de trabajo, en aras de lograr una mayor confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven la productividad, tanto para la labor de desarrollo como para el control de la calidad del software.

Gestión de la calidad de software: Conjunto de actividades de la función general de la dirección que determina la calidad, los objetivos y las responsabilidades y se implanta por medios tales como:

1. Planificación de la Calidad del Software.
2. Control de la Calidad del Software.
3. Aseguramiento de la Calidad del Software.
4. Mejora de la Calidad del Software1.

1. La Planificación de la Calidad del Software

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 Calidad de Software son: Modelos/Estándares de Calidad de Software a utilizar, Costos de la Calidad de Software, Recursos humanos y materiales necesarios, entre otras.

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 Calidad de Software se debe determinar:

  • Rol de la Planificación.
  • Requerimientos de la Calidad de Software.
  • Preparación de un Plan de Calidad de Software.
  • Implementación de un Plan de Calidad de Software
  • Preparar un Manual de Calidad.

2. El Control de la Calidad del Software

Son las técnicas y actividades de carácter operativo, utilizadas para satisfacer los requisitos relativos a la calidad. Son las inspecciones, revisiones y pruebas para asegurar la calidad del producto centradas en 2 objetivos fundamentales:

  1. Mantener bajo control un proceso.
  2. Eliminar las causas de los defectos en las diferentes fases del ciclo de vida.

El control de calidad del software se ha convertido, por tanto en una parte esencial de los programas de control de calidad. La atención de los requisitos específicos de la calidad del software es una actividad que esta integrada a trabes del programa de procesamientos de información de la calidad.

Está formado por actividades que permiten evaluar la calidad de los productos de software desarrollados. El aspecto a considerar en el Control de la Calidad de Software es la “Prueba del Software”.

Las pruebas son elementos críticos para determinar la calidad del software. 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.

Objetivos de las pruebas:

  • Encontrar defectos en el software.
  • Una prueba tiene éxito si descubre un defecto.
  • Una prueba fracasa si hay defectos pero no los descubre.
  • Ejecución de un programa con la intención de descubrir un error.
  • Técnica experimental para la búsqueda de errores en los programas.

Algunos principios de las pruebas recogen lo siguiente:

  • Las pruebas deberían planificarse mucho antes de que comiencen.
  • No son posibles las pruebas exhaustivas: El número de permutaciones de camino para incluso programas pequeños es excepcionalmente grande. Por ese motivo es imposible ejecutar todas las combinaciones de caminos durante las pruebas.
  • Para ser más eficaces, las pruebas deberían ser realizadas por un equipo independiente: El ingeniero de software que creo el sistema no es el más adecuado para realizar las pruebas del software, ya que consciente o inconscientemente tiende a probar lo que sabe que funciona.

Existen varios tipos de pruebas que pueden realizarse durante el proceso de desarrollo de software como son:

  • Unitarias: Pretenden probar cada función en un archivo de programa simple (una clase en terminología de objetos).
  • Integración: Pretenden comprobar la integración de los componentes, es decir, la comunicación a través de interfaces, acceso incoherente a estructuras de datos globales.

Las pruebas de integración pueden realizarse de forma ascendente o descendente

  • Validación: Pretende comprobar que se satisfacen los requisitos.
  • Sistema: Se centran en comprobar la recuperación, seguridad, resistencia, rendimiento.

Asociado a los tipos de pruebas existen también técnicas de pruebas que ayudan a definir conjuntos de casos de pruebas aplicando ciertos criterios, como son:

  • Pruebas de caja blanca: Se centra en comprobar la interacción interna de los componentes del sistema.
  • Pruebas de caja negra: “Se centran en los requisitos funcionales del software. O sea, la prueba de de caja negra permite al ingeniero del software obtener un conjunto de condiciones de entrada que ejerciten completamente todos los requisitos”.

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.

3. El Aseguramiento de Calidad del Software

Es el conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza que el software satisfará los requisitos dados de calidad. Se trata de una actividad de protección que se aplica a lo largo de todo el proceso de ingeniería del software.

Se diseña para cada aplicación antes de comenzar a desarrollarla y no después. El aseguramiento de la calidad del software engloba:

  • Un enfoque de gestión de calidad.
  • Métodos y herramientas de Ingeniería del Software.
  • Revisiones técnicas formales aplicables en el proceso de software.
  • Una estrategia de prueba multiescala.
  • El control de la documentación del software y de los cambios realizados.
  • Procedimientos para ajustarse a los estándares de desarrollo del software.
  • Mecanismos de medición y de generación de informes.

Todo el que este involucrado en el proceso de desarrollo del software es responsable de la calidad desarrolladores, analistas, arquitectos, jefes de proyectos, clientes y aquellas personas que en los proyectos llamamos grupo de aseguramiento de la calidad.

Las actividades del grupo de aseguramiento de la calidad son:

  • Establecimiento del plan de aseguramiento de la calidad para un proyecto.
  • Participación en el desarrollo de la descripción del proceso de software.
  • Revisión de las actividades de ingeniería del software.
  • Auditorías de los procesos de software designados para verificar el ajuste con los definidos como parte del proceso de software.
  • Registrar lo que no se ajuste a los requisitos e informar a los superiores.
  • Coordinar el control de cambio.

CMMI v1.2 en el área de proceso de aseguramiento de la calidad propone:

  • Elaborar objetivamente los procesos.
  • Evaluar objetivamente los artefactos y servicios.
  • Comunicar y asegurar la resolución de las no conformidades.
  • Establecer registros.

Además de estas actividades, el grupo de aseguramiento de la calidad 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 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.

4. La Mejora de la Calidad del Software

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 auditorías, a efectuar mejoras en la calidad del software.

Las auditorías según el estándar ISO 19011:2002 se define como: proceso sistemático, independiente y documentado para evaluar el estado actual (evidencias de la auditoría) y evaluarlas de manera objetiva con el fin de determinar la extensión en que se cumplen los criterios de auditoría.

Una Auditoría de Calidad tiene como objetivo:

  • Mostrar la situación real para aportar confianza y destacar las áreas que pueden afectar adversamente esa confianza.
  • 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 auditoría 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 auditoría, las recomendaciones son informadas e incluidas en los resultados de la auditoría.

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.

Conclusiones

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.

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, en particular, cuando éste se concentra en la producción de sistemas de información y software especializado.

Referencias Bibliográficas

  • Pressman, R. S. Ingeniería del Software Un enfoque práctico, Félix Varela, 2005.
  • [1] Software Quality Management
  • Software Engineering Institute, CMMI® for Development, Version 1.2, Software Engineering Institute Pittsburgh, PA 152133890: 2006;
    http://www.sei.cmu.edu/publications/documents/06.reports/06tr008.html.
  • ISO, “ISO 19011:2002 Auditorias de gestión de calidad y/o ambiental,” Oct. 2002; http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm

Temas relacionados:
Curso Control y Seguimiento del Proyecto
Admin. de Proyectos con CMMI2, El Proceso Unificado y UML
Planificación de la calidad en un proyecto (artículo)

Comparte esto en redes sociales