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