Calidad | Calidad |
La gestión de la calidad reduce los costes de producción de software. Cuanto antes detectemos un error, menor será el coste del producto por el impacto que habremos evitado al no haberse producido.El aseguramiento de la calidad del software podemos definirlo como el conjunto de actividades que proporcionan evidencia de que un producto software es el que se ajusta a las necesidades de uso esperadas por los usuarios del mismo. Se alcanza mediante el establecimiento, seguimiento y control de directrices que lleven a obtener un producto software íntegro, bien acabado y que tenga una vida prolongada. Si bien el aseguramiento de la calidad reside en un conjunto de actividades básicas necesarias para asegurar que los procesos de elaboración del software están establecidos y continuamente mejorados para elaborar productos que se adaptan a las especificaciones, debe ser complementada con el Control de la Calidad, mediante el que se compara un producto con los estándares aplicables que desencadenará acciones para tratar las no conformidades que se puedan detectar, y Auditorías de la Calidad, que verifican que se hace un correcto seguimiento de los procedimientos y políticas establecidos. En definitiva, se trata de un esfuerzo planeado para asegurar que el software cumple esos criterios y otros específicos de cada proyecto como portabilidad, eficiencia, flexibilidad, reusabilidad o escalabilidad, cuyas actividades específicas en el seno del proyecto, monitorizan y controlan el proyecto software para que los objetivos del mismo sean alcanzados con el nivel deseado, siendo necesaria la colaboración y el consenso de todos los implicados en el proyecto, desde los gestores del proyecto, o el equipo de aseguramiento de calidad a los programadores o los usuarios finales del producto software. Rentabilidad de la CalidadLa gestión de la calidad reduce los costes de producción de software. Cuanto antes detectemos un error en el software, menor será el coste del producto por el impacto que habremos evitado por hecho de no haberse producido. Pensemos que un error cometido en etapas tempranas del ciclo de vida, por ejemplo una mala interpretación de alguna de las especificaciones que sea detectada al final del ciclo, ocasionará gran cantidad de trabajo perdido en las etapas siguientes con el consiguiente coste de resolución y de pérdida de tiempo, de especial impacto en productos cuya valía depende del tiempo de llegada al mercado. Si analizamos el coste efectivo de la gestión de calidad se debe a cuatro factores:
Los últimos pueden originar costes muy superiores a la propia resolución, puesto que pueden afectar a la reputación de la propia organización o producir pérdida de futuras ventas. La mayor rentabilidad se consigue sin duda con la prevención, que conseguirá minimizar el número de defectos que llegan a nuestros clientes, mejorando así la calidad del producto entregado y reduciendo los costes de producción y mantenimiento. Marcos y estándares de aseguramiento de la calidad en el softwareLa comunidad internacional dispone de numerosos organismos, tanto públicos como privados que promueven la estandarización de los procesos de trabajo desarrollados en el seno de las compañías. Esto facilita el entendimiento por terceros del cumplimiento de los procesos a la vez que facilita la cooperación interempresarial en la elaboración de los productos. Los más ampliamente difundidos son los elaborados por la ISO/IEC, pero en determinados sectores, como es el caso de la ingeniería de software, existen marcos privados que proporcionan niveles de aseguramiento de la calidad mayor, siendo el SEI (Software Engineering Institute) uno de los más relevantes, en lo relativo a la estandarización de procesos de desarrollo software. Su modelo CMMi (Capacity Maturity Model Integrated) está ampliamente reconocido por la industria. Kynetia se encuentra en este momento certificada en ISO 9001:2000, implantada según la ISO 90003:2004 que marca las directrices de aplicación de la ISO 9001:2000 a la industria de Ingeniería del Software. En nuestra constante preocupación por la calidad, en Kynetia trabajamos de forma continuada en la mejora y adaptación de nuestros procesos para que cumplan estándares cada vez más exigentes desde el punto de vista de la calidad del producto obtenido y entre los que CMMI tiene un lugar destacado como marco para el perfeccionamiento de los procesos de desarrollo que sigue la compañía, encontrándonos actualmente en pleno proceso de certificación CMMI. Elementos para el aseguramiento de la calidadLas actividades de aseguramiento de la calidad se pueden categorizar en:
Validación y VerificaciónLa validación es la comprobación al final del ciclo de vida del desarrollo de que el producto desarrollado satisface correctamente la especificación de requisitos del producto y las expectativas que han depositado en el mismo los usuarios. Con las necesidades de software altamente fiable en los sistemas de la industria aeroespacial a finales del siglo 20, en la que un fallo detectado al final podía causar el aborto de misiones y la pérdida de grandes cantidades de tiempo y dinero, surgió la necesidad de adelantarse a los errores, surgiendo el concepto de verificación. La verificación asegura que el producto y todos los subproductos relacionados en su construcción, satisfacen los requisitos especificados en el transcurso de todas las actividades realizadas durante el ciclo de vida del desarrollo, persiguiendo dos criterios fundamentales:
Al mismo tiempo, la verificación establece que ha de haber trazabilidad entre elementos software y las especificaciones de requisitos, de modo que todos los requisitos, incluidos nivel de acabado, rendimiento, etc., son adecuadamente cubiertos por pruebas y que los resultados de las pruebas son repetibles aun cuando se hayan producido cambios. La verificación, supone por lo tanto, un proceso me mejora continuo que debe usarse a lo largo de todo el ciclo de vida del producto, que gracias a la gestión de configuración permite monitorizar en cualquier momento el grado de seguimiento de los procedimientos establecidos para el desarrollo del producto que garantizan su calidad. El punto crítico de la verificación es el incremento considerable del coste de desarrollo. No obstante, si se considera todo el ciclo de vida del producto software, esto es, desde que se concibe hasta su abandono una vez que ha quedado obsoleto, la verificación reduce el coste general del software. Un plan efectivo de verificación reduce en una proporción de 4 a 1 el número de defectos en el sistema desplegado en producción y dado que el coste de reparación de estos defectos es del orden de 20 a 100 veces superior en operaciones de mantenimiento que los incurridos en las etapas de diseño, se justifica perfectamente la inversión inicial en prevención mediante procedimientos de verificación. Gestión de Configuración del SoftwareUna configuración de software es un conjunto de elementos software que forman una función del modelo de negocio. El propósito de la gestión de configuración es identificar todos los elementos del software que componen cada configuración, desde documentación de especificación o diseño al propio código o las pruebas, y controlar su evolución durante las distintas fases del ciclo de vida del producto. Es esencial para la monitorización y seguimiento tanto en el proceso de construcción, en las pruebas y en el mantenimiento de versiones en producción y es de especial importancia en la gestión de cambios y en la reusabilidad de software debido a las interrelaciones definidas entre todos los elementos del software, a la vez que garantiza la integridad de dichos elementos cuando son manipulados por los diferentes integrantes del proceso de construcción del software. Componentes a ser controlados incluyen propuestas, especificaciones de requisitos, plannings, documentos de análisis y diseño, código fuente, utilidades y bibliotecas, ejecutables, planes de pruebas y scripts de pruebas, actas e informes. En la gestión de cambios permite valorar exactamente el impacto de los mismo siguiendo las relaciones con otros componentes afectados y su documentación, permitiendo la valoración exacta de los mismos antes de tomar la decisión de llevarlos a cabo. En la reutilización de código, permite identificar todos los elementos necesarios porque cada componente software y sus relaciones con componentes de terceros, como bibliotecas o versiones de sistemas han quedado establecidas. Las actividades que componen los procesos de gestión de configuración se pueden agrupar en cuatro grandes grupos:
Aseguramiento indica que si el proceso es seguido, la calidad está asegurada y los gestores del proyecto pueden confiar en que hay calidad si se sigue el proceso. |