lunes, 14 de septiembre de 2015

Cap 4 - QA&V QTP/UFT Introduccion (Español) Parte - 1

QA&V QTP/UFT Introduccion (Español) Parte - 1

(QA&V QTP/UFT Introduction)

4.1 Conceptos
Existen diferentes maneras de efectuar la automatización de Test Cases entre algunas herramientas para dicha automatización se encuentra QTP (QuickTest Professional) que ahora la pueden encontrar en su nueva versión de UFT (Unified Functional Testing).


4.1.1 ¿Que es la automatización de pruebas?

En las pruebas de software, la automatización de pruebas consiste en el uso de software especial para desarrollar y controlar la ejecución de pruebas y la comparación entre los resultados obtenidos y los resultados esperados. La automatización de pruebas permite incluir pruebas repetitivas y necesarias dentro de un proceso formal de pruebas ya existente o bien adicionar pruebas cuya ejecución manual resultaría difícil y tardada, por ejemplo tareas de generación de información sería una tarea repetitiva, la cual puede automatizarse y ser ejecutada al final del día para tener la data lista para utilizarse al día siguiente sin necesidad de ocupar esfuerzos extra por parte de otro equipo.

4.1.2 ¿Cuándo automatizar las pruebas?

Para poder determinar cuándo automatizar, depende de cada ingeniero de pruebas analizar y comprender el proceso y esfuerzo a realizar. Por ejemplo, dar de alta a pacientes en un hotel con diferentes características, sería un ejemplo ideal para automatizar y minimizar el esfuerzo.




4.1.3 Ventajas y desventajas de las pruebas automatizadas y explicación.

A continuación se podrán apreciar solo algunas ventajas de la automatización de las pruebas.

·        Minimiza los tiempos de ejecución:
Un ejemplo claro es cuando tienes que ejecutar un gran número de pruebas (ejemplo pruebas de regresión) y el personal disponible es limitado. Se pueden ejecutar un numero N de pruebas automatizadas en paralelo.

Ejemplo:
Existen 50 máquinas virtuales enlazadas a nuestra herramienta ALM, esta herramienta puede coordinar a estas 50 máquinas virtuales para que cada una ejecute un script en relación 1 a 1.
Entonces si una persona ejecuta una prueba en 15 minutos, el ALM      estaría ejecutando otras 50 pruebas en esos mismos 15 minutos. Lo que dispara nuestra cobertura y minimiza los posibles errores que aparezcan durante las nuevas implementaciones al sistema.

·        Minimiza los errores humanos:
Al estar automatizadas las pruebas, se elimina el error humano por agotamiento o distracción, mejorando de esa manera la efectividad de encontrar errores en el sistema previamente programados.

·        Se pueden ejecutar fuera de horarios:
Esto significa que se pueden dejar corriendo o programar la ejecución de las pruebas a cierta hora inclusive si el ingeniero en automatización no se encuentra  disponible para la ejecución manual.

·        Consistente:
La prueba será ejecutada de la misma manera una y otra vez, evitando posibles desviaciones.

·        Reusable:
Una vez que se tiene un flujo codificado y es necesario crear o incluir otro escenario, es posible volver a utilizar ese mismo código para evitar el re trabajo, minimizando de esa manera el tiempo de análisis y desarrollo de los scripts automatizados.


4.1.4 Factores a considerar en la planeación de la automatización

Se tienen que tomar en cuenta algunos parámetros para poder definir si se puede automatizar un proceso o no, algunos son técnicos y otros son administrativos, existen más factores, solo se mencionan algunos:

·        Estabilidad de la aplicación/sistema.
·        La relación de Costo/Beneficio.
·        Habilidades requeridas para el desarrollo de los scripts.
·        No es necesaria la ejecución constante de un mismo flujo.
·        Compatibilidad de la herramienta con el sistema.

4.2 Que es UFT/QTP?


UFT/QTP es una solución de pruebas de software automatizada que se enfrenta al desafío de los cambios constantes en la tecnología y los procesos. Las pruebas de automatización constituyen un salto adelante en las aplicaciones modernas y pueden mejorar drásticamente la calidad del software, al mismo tiempo que reducen los costes y la complejidad de las pruebas, incluso en los entornos con cambios más rápidos. Y con su integración con HP ALM, mejora significativamente la productividad y la colaboración entre probador y programador.  (HP, 2013)
UFT puede ser combinada con otras herramientas principalmente con ALM, el cual su modo completo, contiene la propiedad de archivar cada prueba y tener un control de versiones por cada user que entre en el proyecto, algo que por si mismo el UFT no tiene.

Beneficios de las pruebas automatizadas.
Rápido
UFT puede correr pruebas más rápido que los recursos humanos.
Rentable
Tiene más precisión al realizar tareas con alto grado de precisión, eliminando el error humano.
Repetible
Puedes observar como la aplicación reacciona después de repetir la ejecución en varias ocasiones.
Programable
Se pueden crear pruebas sofisticadas protegiendo y guardando la información.
Exhaustivo
Puedes crear un grupo de pruebas que cubran una cantidad determinada de características en la aplicación o sitio Web.
Reusable
Puedes reutilizar las pruebas en diferentes escenarios del sitio Web o aplicación, siempre y cuando la interfaz no cambie.



QTP es una herramienta basada en etiquetas, facilita la creación de pruebas grabando las operaciones que el programador desarrolla.
Se puede crear un flujo para navegar a través  de la aplicación, y probar gráficamente las ventanas existentes.

El proceso de desarrollo de pruebas automatizadas se divide en 3 principales fases:

Ilustración Fases de QTP.
Fuente: (Elaboración propia).




Te invito a dejar tus comentarios para mejorar la información.
Gracias.

Autor: Luis Eduardo Fernandez Rocha (Contacto Linkedin)

lunes, 22 de junio de 2015

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

QA&V Ciclo de vida del desarrollo de Software Parte - 2

(QA&V Software Development Life Cycle)

3.2.2.5 Modelo Prototipo:
Este modelo de desarrollo de software se basa en la creación de prototipos con base en los requerimientos del cliente, este modelo está constituido en 4 fases principales:
  • Definición de los requerimientos básicos.
  • Creación del prototipo de trabajo.
  • Verificación del prototipo.
  • Cambio o elaboración de los requerimientos.

Todo esto para la creación de un método de trabajo rápido y aplicable al proyecto donde los requerimientos del sistema no son del todo claros al inicio o donde los desarrolladores no tienen bien establecidos los algoritmos o la estructura del software. (Softtek, 2013)

Existen dos tipos principales de prototipos:
  • Evolutivo: Donde el objetivo del prototipo es liberar y mostrar el trabajo a los usuarios finales, esto es usado por sistemas donde las especificaciones del proyecto no están del todo claras, y donde la verificación es imposible debido a que no hay especificaciones.
  • Desechables: El objetivo de los desechables es validar u obtener los requerimientos del sistema. Los desechables o prototipos rápidos, hacen referencia a la creación de un modelo que es eventualmente descartado conforme se llega a la parte final del software. Después de que los requerimientos preliminares fueron establecidos, un modelo simple del sistema es construido para poder mostrar al cliente cómo es que los usuarios verán la aplicación, y con ello ir definiendo poco a poco los requerimientos finales a implementar para que se genere un proyecto de calidad.  (Society, 1998)


El ciclo del prototipo es:
  • Identificar la base de los requerimientos.
  • Desarrollar el prototipo inicial.
  • Obtener una revisión de los usuarios finales y clientes.
  • Basado en esa revisión, revisar la utilidad del prototipo y valorar si es lo que el cliente necesita.



Ilustración 8 Modelo evolutivo.
Fuente: Elaboración Propia.
·         Ventajas:

·         El modelo puede ser usado cuando los requerimientos están o no están especificados.
·         El usuario puede experimentar con el sistema para mejorar los requerimientos.
·         Desventajas:

·         El uso de este método es exploratorio, lo que genera tener siempre un alto riesgo y por ello se necesita un manejo estricto de situaciones en las que se encuentre el proyecto.
·         Este método puede ser usado incluyendo o no la documentación del diseño, siempre que sean entendidos perfectamente.


3.2.2.6 Modelo V:
El modelo V es la evolución del modelo en cascada, es un modelo secuencial y en cada paso finalizado se inicia el comienzo de la próxima fase, y una vez que se llega al fondo del modelo (ver Ilustración 9) se vuelve a subir simulando una V.
Las pruebas son mucho más exhaustivas en este modelo a comparación del modelo en cascada, y las pruebas son más sencillas, así como también más eficaces, mejorando la calidad en el desarrollo de los productos. (Ángel, 2013)
                                              



Ilustración 9 Modelo V.
Fuente: Elaboración Propia.
·         Ventajas:

·         Simple y fácil de usar.
·         Para cada fase existe un entregable.
·         Tiene una gran probabilidad de que el proyecto sea terminado satisfactoriamente.
·         El flujo de trabajo funciona muy bien cuando los requerimientos están bien entendidos.


·         Desventajas:

·         Es poco flexible, como el modelo en cascada.

·         Ajustar los calendarios de trabajo es difícil y muy caro.

·         El modelo no está diseñado para un camino sencillo a la hora de encontrar problemas durante la fase de desarrollo.

 

3.2.3 Modelos Ágil

El manifiesto de los modelos ágil establece la diferencia con los modelos tradicionales, este manifiesto indica lo siguiente:

·         Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas. La gente es el principal factor de éxito de un proyecto de software. Es más importante construir un buen equipo que construir el entorno. Muchas veces se comete el error de construir primero el entorno y esperar que el equipo se adapte automáticamente. Es mejor crear el equipo y que éste configure su propio entorno de desarrollo con base en sus necesidades.

·         Se debe desarrollar software que funciona más que conseguir una buena documentación. La regla a seguir es “no producir documentos a menos que sean necesarios de forma inmediata para tomar una decisión importante”. Estos documentos deben ser cortos y centrarse en lo fundamental.

·         Buscar o preferir la colaboración con el cliente más que la negociación de un contrato. Se propone que exista una interacción constante entre el cliente y el equipo de desarrollo. Esta colaboración entre ambos será la que marque la marcha del proyecto y asegure su éxito. (Amaro Calderón, 2007)

·         Responder a los cambios más que seguir estrictamente un plan. La habilidad de responder a los cambios que puedan surgir a lo largo del proyecto (cambios en los requisitos, en la tecnología, en el equipo, etc.) determina también el éxito o fracaso del mismo. Por lo tanto, la planificación no debe ser estricta sino flexible y abierta.
Este manifiesto tiene doce puntos:

  1. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de software que le aporte un valor.

  1. Dar la bienvenida a los cambios. Se capturan los cambios para que el Cliente tenga una ventaja competitiva.

  1. Entregar frecuentemente software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre entregas.

  1. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto.

  1. Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo.

  1. El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo.

  1. El software que funciona es la medida principal de progreso.

  1. Los procesos ágiles promueven un desarrollo sostenible. Los promotores, desarrolladores y usuarios deberían ser capaces de mantener una paz constante.

  1. La atención continua a la calidad técnica y al buen diseño mejora la agilidad.

  1. La simplicidad es esencial.

  1. Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí mismos.

  1. En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y según esto ajusta su comportamiento. (Amaro Calderón, 2007)



3.2.3.1 XP- extreme Programming:
XP es la primera metodología ágil y la que le dio conciencia al movimiento actual de metodologías ágiles, creada a mediados de los 90 por Kent Beck, poniendo las 12 ideas anteriormente citadas en el manifiesto como fundamentales en los principios de un desarrollo XP. (Amaro Calderón, 2007)



Ilustración 10 Modelo XP.
Fuente: (Amaro Calderón, 2007).
·         Ventajas:

·         Se construye el proyecto con base a la calidad.
·         Es simple.
·         Siempre se está programando.
·         El cliente siempre está al pendiente del desarrollo del proyecto.
·         Es una buena práctica de sinergia.


·         Desventajas:

·         Cuando el proyecto es muy largo, se vuelven más complejos los ambientes.

·         Se generan muchas situaciones críticas si no se lidera bien.

·         Demanda tener muy bien entendido los requerimientos del proyecto.

·         El cliente puede estar distante o no saber exactamente lo que desea.
3.2.3.2 Scrum:
Scrum es un marco de trabajo para desarrollar productos y sistemas complejos, que son desarrollados bajo una teoría empírica, el cual emplea un desarrollo de optimización iterativo incremental para optimizar la predicción y el control de riesgos.
Scrum es un método iterativo e incremental que enfatiza prácticas y valores de project management por sobre las demás disciplinas del desarrollo. Al principio del proyecto se define el Product Backlog, que contiene todos los requerimientos funcionales y no funcionales que deberá satisfacer el sistema a construir. Los mismos estarán especificados de acuerdo a las convenciones de la organización ya sea mediante: features, casos de uso, diagramas de flujo de datos, incidentes, tareas, etc. El Product Backlog será definido durante  reuniones de planeamiento con los stakeholders (son los individuos que se relacionan directamente con el proyecto). A partir de ahí se definirán las iteraciones, conocidas como Sprint en la jerga de Scrum, en las que se irá evolucionando la aplicación evolutivamente. Cada Sprint tendrá su propio Sprint Backlog que será un subconjunto del Product Backlog con los requerimientos a ser construidos en el Sprint correspondiente. La duración recomendada del Sprint es de un mes.  (Amaro Calderón, 2007)


Esta metodología es susceptible a incertidumbres y riesgos sin embargo provee técnicas específicas y prácticas para resolver estos riesgos, es muy similar al modelo iterativo e incremental. En esta metodología se maneja el Sprint, el cual es un periodo aproximado de 30 días donde se trabaja para sacar el producto entregable al cliente. En cada fase de desarrollo se requiere una serie de Sprints para determinarlos, donde primero se planean las prioridades y el tiempo de revisión de las actividades que se llevarán a cabo, tratando de localizar el tiempo que se tomará para cada una de las actividades, este tiempo es determinado en una junta con los administradores del proyecto. Se trata de no gastar tiempo en detalles ya que se tiene un conocimiento previo de lo deseado. El seguimiento se trata de monitorear a los involucrados en el desarrollo del producto, en el caso de QA se busca observar los problemas encontrados por el equipo de Testers manuales y la comunicación con Automatización.
Estas reuniones llevan el nombre de Scrum Meeting, y tienen la duración de 15 a 30 minutos con cada equipo, donde se habla de lo que se realizó en el anterior Scrum Meeting, cuáles fueron los problemas encontrados, si alguien no logró terminar el trabajo en el tiempo asignado, y lo que se trabajará para el siguiente Sprint.
Los roles involucrados en el Scrum Meeting son:
·         Cliente.
·         Scrum Master.
·         Equipo QA.


Como se puede observar en la Ilustración 11. La metodología resulta sencilla definiendo algunos roles y artefactos que contribuyen a tener un proceso que maximiza el feedback para mitigar cualquier riesgo que pueda presentarse.


Ilustración 11 Modelo Scrum.
Fuente: (Amaro Calderón, 2007).
La intención de Scrum es la de maximizar la realimentación sobre el desarrollo, pudiendo corregir problemas y mitigar riesgos de forma temprana. Su uso se está extendiendo cada vez más dentro de la comunidad de Metodologías Ágiles, siendo combinado con otras – como XP – para completar sus carencias. Cabe mencionar que Scrum no propone el uso de ninguna práctica de desarrollo en particular; sin embargo, es habitual emplearlo como un framework ágil de administración de proyectos que puede ser combinado con cualquiera de las metodologías mencionadas. (Amaro Calderón, 2007)


3.2.3.3 Ciclo de Vida de Scrum:
El ciclo de vida de Scrum es el siguiente:

1. Pre-Juego: Planeamiento. El propósito es establecer la visión, definir expectativas y asegurarse la financiación. Las actividades son la escritura de la visión, el presupuesto, el registro de acumulación o retraso (backlog) del producto inicial y los ítems estimados, así como la arquitectura de alto nivel, el diseño exploratorio y los prototipos. El registro de acumulación es de alto nivel de abstracción.
2. Pre-Juego: Montaje (Staging). El propósito es identificar más requerimientos y priorizar las tareas para la primera iteración. Las actividades son planificación, diseño exploratorio y prototipos.
3. Juego o Desarrollo. El propósito es implementar un sistema listo para entrega en una serie de iteraciones de treinta días llamadas “corridas” (sprints). Las actividades son los planeamientos de corridas en cada iteración, la definición del registro de acumulación de corridas y los estimados, y encuentros diarios de Scrum.
4. Pos-Juego: Liberación. El propósito es el despliegue operacional. Las actividades, documentación, entrenamiento, mercadeo y venta.

Usualmente los registros de acumulación se llevan en planillas de cálculo comunes, antes que en una herramienta sofisticada de gestión de proyectos. Los elementos del registro pueden ser prestaciones del software, funciones, corrección de bugs, mejoras requeridas y actualizaciones de tecnología. Hay un registro total del producto y otro específico para cada corrida de 30 días. En la jerga de Scrum se llaman “paquetes” a los objetos o componentes que necesitan cambiarse en la siguiente iteración. (Ángel, 2013)



Ilustración 12 Ciclo de vida de Modelo Scrum.
Fuente: (Amaro Calderón, 2007).


La lista de Acumulación del Producto contiene todos los rasgos, tecnología,  mejoras y lista de bugs que, a medida que se desenvuelven, constituyen las futuras entregas del producto. Los rasgos más urgentes merecerán mayor detalle, los que pueden esperar se tratarán de manera más sumaria. La lista se origina a partir de una variedad de fuentes. El grupo de mercadeo genera los rasgos y la función; la gente de ventas genera elementos que harán que el producto sea más competitivo; los de ingeniería aportarán paquetes que lo harán más robusto; el cliente ingresará debilidades o problemas que deberán resolverse. El propietario de la administración y el control del backlog en productos comerciales bien puede ser el product manager; para desarrollos in-house podría ser el project manager, o alguien designado por él. Se recomienda que una sola persona defina la prioridad de una tarea; si alguien tiene otra opinión, deberá convencer al responsable. Se estima que priorizar adecuadamente una lista de producto puede resultar dificultosa al principio del desarrollo, pero deviene más fácil con el correr del tiempo.  (Amaro Calderón, 2007)


Te invito a dejar tus comentarios para mejorar la información.
Gracias.

Autor: Luis Eduardo Fernandez Rocha (Contacto Linkedin)

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)