QA&V Ciclo de vida del Desarrollo de Software
(QA&V Software Development Life Cycle)
En esta
sección se hablará de los tipos de ciclos que existen en el desarrollo de ciclo
de vida del software.
3.1 Modelos de ciclo de vida de las pruebas
de software.
El ciclo de vida de las pruebas de software es requerido para tener una
idea clara del resultado que se tendrá al aplicar las pruebas en un análisis
real, en resumen es el proceso de desarrollo de información de un sistema con
base en la investigación, análisis,
diseño, implementación, pruebas, evaluación y mantenimiento, con el objetivo de
disminuir los defectos, optimizar los recursos y mejorar los tiempos de
desarrollo.
3.2 Modelos Clásicos
Por ciclo de vida del software, entendemos la sucesión de etapas por las
que pasa el software desde que un nuevo proyecto es concebido hasta que se deja
de usar. Estas etapas representan el ciclo de actividades involucradas en el
desarrollo, uso y mantenimiento de sistemas de software, además de llevar
asociadas una serie de documentos que serán la salida de cada una de estas
fases y servirán de entrada en la fase siguiente. A continuación se muestran
los modelos clásicos de ciclo de vida del software.
Fuente: (Bedoya, 2012).
3.2.1 Cascada
Es el ciclo de
vida original, siendo de modo secuencial, es muy poco flexible a comparación de
los demás ciclos de vida, es utilizado usualmente en proyectos donde los
requerimientos están bien definidos y establecidos por el usuario, es decir con
óptimos requerimientos. (Ángel, 2013)
La Ilustración 3
muestra la representación gráfica del ciclo de vida en cascada, y se puede
apreciar que es un proceso de desarrollo secuencial.
Ilustración 3 Ciclo de vida en cascada.
Fuente: Elaboración Propia.
A continuación se desglosan los pasos generales y su objetivo en el
proceso del modelo en cascada:
·
Requerimientos, análisis y
definición de fases (Requirements):
·
Todos los requerimientos del sistema que serán desarrollados son
capturados en esta fase.
·
Los requerimientos son un grupo de funcionalidades y restricciones que
el usuario final pide para el funcionamiento del sistema.
·
Los requerimientos son tomados del usuario final a través de la
consulta.
·
Estos requerimientos son analizados para su validación y la posibilidad
de ser incorporados en los requerimientos del sistema que se desarrollará.
·
Finalmente, las especificaciones de los requerimientos son generados,
con la finalidad de ser una guía de la siguiente fase del modelo.
·
Fase de diseño (Design):
·
Antes de comenzar con la codificación del programa, es de suma importancia
entender lo que se va a crear.
·
Los requerimientos específicos que son generados en la primera fase, son
estudiados en esta fase y se prepara el diseño del sistema.
·
El diseño del sistema ayuda en las especificaciones de los
requerimientos del hardware y del software, y apoya a definir la arquitectura
total del sistema, creando la entrada de la siguiente fase del ciclo de vida.
·
Fase de construcción (Construction and Testing):
·
Después de recibir los documentos de diseño, el trabajo es dividido en
módulos y se comienza a codificar.
·
El sistema primero se desarrolla en pequeñas partes, llamadas unidades,
que posteriormente son integradas en la siguiente fase.
·
Estas unidades son desarrolladas y probadas, unidad por unidad, con la
finalidad de verificar si los módulos cumplen con las especificaciones de los
requerimientos.
·
Fase de pruebas (Integration and System testing):
·
Las unidades son integradas en un sistema completo durante la fase de
integración, son probadas y se revisa que todos los módulos funcionen
correctamente con otros módulos, de acuerdo a las especificaciones.
·
Después de que las pruebas del software son completadas
satisfactoriamente, es liberado al cliente.
·
Fase de operación y mantenimiento
(Operation and Maintenance):
·
Estas fases virtualmente nunca terminan o son muy largas.
·
Generalmente los problemas en el desarrollo del sistema vienen después
de que el software es liberado al cliente.
Este modelo es la combinación entre Takeuchi
y Nonaka, y es similar al modelo de
cascada, excepto en las fases de retroalimentación, con la variación de que la
prueba es aplicada a cada una de las fases del ciclo de vida. (Hernandez, 2009)
La Ilustración 4 muestra el modelo de ciclo de vida
en Cascada Modificado:
Fuente: Elaboración Propia.
·
Ventajas:
·
Simple y sencillo de usar.
·
Fácil de manejar aun cuando el modelo es rígido al trabajar.
·
Las fases son procesadas y completadas una a una.
·
Trabaja bien en proyectos pequeños donde los requerimientos son muy bien
comprendidos.
·
Desventajas:
·
El tiempo de desarrollo del sistema puede terminar mucho antes de lo
planeado.
·
El software solo se utiliza hasta el final del desarrollo.
·
Existen una gran cantidad de riesgo e incertidumbres.
·
Se pasará hasta la siguiente etapa cuando se concluya la fase en la que
se encuentre.
El modelo incremental es una forma evolucionada del modelo de cascada,
el producto es diseñado, implementado, integrado y probado en una serie de
pasos incrementales y este modelo de desarrollo de software es muy popular y es
comúnmente utilizado en muchas compañías comerciales y sistemas de ventas.
Fuente: Elaboración Propia.
·
Ventajas:
·
Genera que el trabajo en el desarrollo de software sea rápido y
sencillo.
·
Es más flexible el costo al cambiar los calendarios y requerimientos.
·
Las pruebas y la depuración son más sencillas.
·
El manejo de los riesgos es más sencillo.
·
Desventajas:
·
Cada fase de la iteración es rígida y no se puede llevar en paralelo con
otras fases.
·
Los problemas son muchos cuando los requerimientos no están bien
comprendidos, generando retrasos y problemas.
3.2.4 Modelo Espiral:
Es una combinación de elementos y procesos, así como también de diseño y
prototipos.
En un esfuerzo de combinar las ventajas de los conceptos de top-down y bottom-up, combina las ideas del modelo iterativo y sistemático,
controlado por aspectos de desarrollo en cascada.
El modelo espiral es usualmente eficiente en proyectos largos, cansados
y complicados.
Este modelo está basado en la constante mejora del producto indicada
por:
- Requerimientos.
- Análisis.
- Diseño del sistema y
software.
- Implementación.
En cada iteración alrededor del ciclo, los productos son extensiones de
productos anteriores, tiene mucho parecido al modelo de cascada, sin embargo
este modelo maneja riesgos y está construido por elaboración de prototipos y
simulaciones. (Ángel, 2013)
Fuente: (Coleman, 2010).
Fuente: Elaboración Propia.
·
Ventajas:
·
Una alta detección y análisis de riegos.
·
En proyectos largos y de misiones críticas, su desempeño es muy bueno.
·
El software se produce al mismo tiempo que se desarrolla el ciclo de
vida para mejorarlo.
·
Desventajas:
·
Es un modelo muy caro de usar.
·
Para el análisis de riesgos es requerido un alto grado de experiencia.
·
Para que el proyecto sea terminado correctamente depende directamente
del análisis de riesgos.
·
No es efectivo en proyectos pequeños.
Dejare pendiente algunos otros modelos para la siguiente publicación.
Te invito a dejar tus comentarios para mejorar la información.