martes, 29 de abril de 2014

Control de la Calidad


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.

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 Software.

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 está integrada a través 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.

9 comentarios:

  1. la elaboración de un software con calidad involucra el manejo de metodologías o procedimientos estándares para el prueba del software, programación, análisis y diseño que permitan lograr una mayor confiabilidad, mantenimiento
    la calidad del software debe ser una método más dentro de la ingeniería del software, el principal instrumento para garantizar la calidad de las aplicaciones sigue siendo el plan de calidad el plan se basa en unas normas o modelos genéricos y en unos procedimientos particulares.

    ResponderEliminar
    Respuestas
    1. El control de calidad de un software es muy importante porque contribuye a la adaptación de los procesos a los avances tecnológicos; permitiendo eliminar procesos repetitivos de poco rendimiento evitando así gastos innecesarios;si existe reducción de productos defectuosos, trae como consecuencia una reducción en los costos, incrementando la productividad y dirige a la organización hacia la competitividad, lo cual es de vital importancia para las actuales organizaciones.

      Eliminar
  2. Para controlar la Calidad del Software es necesario, definir los parámetros o criterios de medición el software posee determinados índices que se pueden medir que son las bases para la calidad del mismo, el control y el perfeccionamiento de la productividad para la cual fue diseñado, una vez seleccionados los índices de calidad, debe establecerse el proceso de control, la calidad debe mejorarse y es una disciplina de la ing del software y es el medio para garantizar la calidad de las aplicaciones

    ResponderEliminar
  3. Calidad de software. Se define la calidad de software como la ausencia de errores de funcionamiento, la adecuación a las necesidades del usuario, y el alcance de un desempeño apropiado (tiempo, volumen, espacio), además del cumplimiento de los estándares. Los objetivos que la calidad persigue son : La aceptación (utilización real por parte del usuario) y la Mantenibilidad (posibilidad y facilidad de corrección, ajuste y modificación durante largo tiempo). Para alcanzar estos objetivos, es necesaria una actitud y compromiso de todo el personal que se encuentre en el desarrollo del proyecto, y en todas y cada una de las etapas (en general, planeación, análisis, diseño, programación, pruebas, mantenimiento) correspondientes al ciclo de vida que se hubiese seleccionado para el proyecto. En forma adicional durante el proceso de aplicación de las metodologías se requiere tener en cuenta :
    Realización de Revisiones Técnicas Formales durante cada etapa.
    Realización de pruebas y revisiones por personas "externas" al proyecto.
    Elaboración de la adecuada documentación del software, y de los cambios.
    Verificación del cumplimiento de los estándares de desarrollo
    Medición permanente de la productividad del proceso y de la calidad de los resultados.
    Desarrollo y ajustes de modelos estadísticos de calidad y productividad.
    Control de la desviación de los promedios de calidad y productividad.
    Uno de los elementos que permite dar garantía acerca de la calidad del software es la aplicación de métricas, estas son medidas estadísticas aplicadas a un software determinado, garantizando calidad así como lo afirma Pressman: "La garantía de calidad del software, es una "Actividad de protección" que se aplica a lo largo de todo el proceso de ingeniería del software"
    Todos los elementos anteriormente enumerados indican herramientas que se deben tener en cuenta al momento de desarrollar un software, agrupando en una definición estos elementos se afirma que : Un software debe estar desarrollado "En concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software" , si cumple los aspectos señalados se puede afirmar que se posee un software de calidad. Teniendo en cuenta esto, se puede afirmar
    Los requisitos del software son la base de las medidas de la calidad.
    Los estándares especificados definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software, Si no se distinguen esos criterios no habrá calidad del software.
    Existe un conjunto de requisitos implícitos que a menudo no se mencionan, si no se alcanzan estos requerimientos podría la calidad quedar en entredicho. Los requisitos son llamados por los usuarios finales llaman elementos obvios, los cuales el diseñador no debe dejar pasar sin explicación.

    ResponderEliminar
    Respuestas
    1. http://www.monografias.com/trabajos15/ingenieria-software/ingenieria-software.shtml

      Eliminar
  4. La calidad ha sido durante mucho tiempo una preocupación para las empresas, como lo debe ser para los analistas de sistemas en el análisis y diseño de sistemas de información.
    Es demasiado arriesgado emprender todo el proceso de análisis y diseño sin usar un enfoque de aseguramiento de la calidad. Los tres enfoques para el aseguramiento de la calidad mediante ingeniería de software son: (1) garantizar el aseguramiento de la calidad total diseñando sistemas y software con un enfoque modular, descendente (de arriba abajo); (2) documentar el software con las herramientas adecuadas, y (3) probar, mantener y auditar el software.

    ResponderEliminar
  5. El grupo de calidad de software así como todos los que participan en la ingeniería de software tiene un papel muy importante, ya que ellos son los que garantizan en un nivel muy elevado que el Software a entregar cumple con los requisitos que el cliente plasmo con anterioridad, con diversas herramientas, una por ejemplo es el hecho de que pueden hacer medidas métricas de manera cuantificativa, por medio de valores que son dados por los mismos cliente, para que de esta manera se entregue a un 100 por ciento los requisitos exigidos por el mismo.

    ResponderEliminar
  6. Es indispensable que los productos sean comprobados, validados y estandarizados con los parámetros mas rigurosos, hoy dia podemos ver como el consumo de bienes y servicio a puesto a las industrias a implementar medidas de calidad complejas que demuestren que su marcan, o a la que representan son intachables, lo mismo pasa con los nuevos sistemas, se debe tener criterios y estándares muy altos para competir con un mercado cada vez mas fuerte, haciendo de sus sistema un producto eficaz y eficiente

    ResponderEliminar
  7. La calidad de software es todo el conjunto de cualidades que lo caracterizan determinando su eficiencia y utilidad, satisfaciendo las necesidades tanto implícitas como explícitas del cliente.La garantía de calidad del software, aplicada a lo largo de todo el proceso de ingeniería del software, engloba a los métodos y herramientas de análisis, diseño, codificación y prueba, al control de la documentación y de los cambios, a los procedimientos para asegurar el ajuste a los estándares, y a los mecanismos de medida (métricas) e informes.

    ResponderEliminar