lunes, 25 de agosto de 2014

UML, Gestión de Calidad y Pruebas de Software



El desarrollo de un software se logra a partir de un enfoque sistemático y disciplinado. Es posible realizar software sin utilizar ninguna metodología, pero el resultado será evidentemente de una menor calidad. Es por eso que con el paso del tiempo ha venido evolucionando la ingeniería del software como parte de la búsqueda de la realización de software más robusto y estructurado.

Para lograr un producto de software coherente con la filosofía de la ingeniería de software se utilizan metodologías, cada equipo de desarrollo debe evaluar cual es la que mejor se adapta al proyecto que tiene asignado en su determinado momento. Siendo las metodologías un conjunto de procedimientos, técnicas, herramientas y soporte documental que ayuda a los desarrolladores a realizar nuevo software, es necesario tomar en cuenta la adaptabilidad de estas herramientas al equipo de trabajo y al proyecto.

Una de las herramientas más utilizadas para llevar a cabo lo que se considera el diseño de un sistema es el lenguaje unificado de modelado, de hecho, entra en sintonía con lo que son las metodologías agiles, que son las tendencias actuales en cuanto al desarrollo de software, ya que logra complementar la visión y comunicación existente con el cliente para lograr sistemas más comprendidos tanto por estos últimos como por los programadores. 

Los clientes en la actualidad deben estar en sintonía con el equipo de desarrollo (en el sentido de conocer que es lo que va a llevar a cabo), y debe estar atento y en capacidad de señalar cambios si no se han captado de manera correcta sus necesidades o cambia de opinión sobre la marcha. 

El UML pone a disposición una serie de diagramas que constituyen herramientas para el modelado de software. Cada diagrama se ajusta a una categoría referente a su utilidad, en la primera figura se ilustra la clasificación y en la siguiente, se explica por medio de un mapa conceptual cada uso.






Las metodologías para desarrollo de software por lo general incluyen una fase correspondiente a la calidad y otra a las pruebas. Estos elementos involucran en realidad una amplia cantidad de conceptos y normativas, así como sus propias etapas de diseño, planificación, ejecución y verificación. Inclusive existen herramientas de software dedicadas exclusivamente a esos ámbitos (por ejemplo, Daruma Software).

La gestión de calidad de software se basa en diferentes normativas: 


  •   ISO 9000
  •   MALCOM BALDRIGE NATIONAL QUALITY AWARD 
  •   Software Engineering Institute (SEI) Capatibility Maturity Model (CMM) for software.
De igual manera, involucra dos aspectos: el control de calidad y el aseguramiento de la calidad.

El aseguramiento de calidad del software está presente en:

  • Métodos y herramientas de análisis, diseño, programación y prueba.
  • Inspecciones técnicas formales en todos los pasos del proceso de desarrollo del software.
  • Estrategias de prueba multiescala.
  • Control de la documentación del software y de los cambios realizados.
  • Procedimientos para ajustarse a los estándares (y dejar claro cuando se está fuera de ellos).
  • Mecanismos de medida (métricas).
  • Registro de auditorías y realización de informes.
Por su parte, el control de calidad se rige por dos objetivos fundamentales: 

  • Mantener bajo control un proceso.
  • Eliminar las causas de los defectos en las diferentes fases del ciclo de vida.
Para el área de calidad de software, existen ciertos estándares que deben ser seguidos. Estos estándares de calidad son:

  •  ISO/IEC JTC1-SC7
        Ingeniería de Software y de Sistemas.
  •  IEEE – CS
        ISO 9126 – Calidad del producto.
        ISO 14598 – Evaluación de productos de software.
        ISO 12119 – Requerimientos de Calidad y Testing de COTS.
        ISO 15939 – Proceso de medición de software.

Para finalizar, comparto un mapa conceptual referente a las pruebas de software:



No hay comentarios:

Publicar un comentario