miércoles, 20 de mayo de 2015

Cap 3 - QA&V Ciclo de vida del Desarrollo de Software Parte - 1

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.

3.2.2 Cascada Modificado.



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:






Ilustración 4 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.

3.2.3 Modelo Incremental/Iterativo:



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.





Ilustración 5 Ciclo de vida Iterativo/Incremental.
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)      

             



Ilustración 6 Ciclo de vida Espiral.
Fuente: (Coleman, 2010).



Ilustración 7 Partes esenciales del ciclo de vida en espiral.
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.
Gracias.

Autor: Luis Eduardo Fernandez Rocha (Contacto Linkedin)

No hay comentarios.:

Publicar un comentario