Modelo de Desarrollo Evolutivo | Ingeniería de Software

1 Descripción

Los evolutivos son modelos iterativos, permiten desarrollar versiones cada vez más completas y complejas, hasta llegar al objetivo final deseado; incluso evolucionar más allá, durante la fase de operación. Los modelos “Iterativo Incremental” y “Espiral” (entre otros) son dos de los más conocidos y utilizados del tipo evolutivo. (Trejos, 2018)

Este tiene una propiedad especial que es de satisfacer los nuevos requerimientos lo más rápido posible, además este modelo asume que los requerimientos están sujetos a cambios continuos de ahí su nombre.

El modelo evolutivo debe tener especial cuidado en la manipulación de documentos, programas, datos de test, entre otros desarrollados para distintas versiones del software. Cada paso debe ser registrado, la documentación debe ser recuperada con facilidad, los cambios deben ser efectuados de una manera controlada.

El modelo además construye una serie de versiones sucesivas del producto, pero es asumido que al inicio del proyecto los requerimientos no son completamente conocidos.
Al seguir el modelo se dispone de una versión inicial que se va a ir mejorando o añadiendo nuevas características de acuerdo a las necesidades del cliente lo que implica que las fases de especificación, desarrollo y validación se entrelazan en vez de separarse.

2 Tipos

Existen tan solo dos tipos del modelo de desarrollo de software evolutivo que se aplican actualmente.

2.1 Desarrollo Exploratorio

Aquí el objetivo principal es trabajar conjuntamente con el cliente para explorar sus requerimientos y entregar un sistema final, se empieza con la parte del sistema que se entiende de mejor manera, para posteriormente ir agregando nuevas características al sistema.

2.2 Prototipos Desechables

El objetivo es comprender los requerimientos del cliente y entonces desarrollar una definición mejorada de los requerimientos para el sistema.

Se centra en experimentar con los requerimientos del cliente que no se comprenden del todo. Se puede ver que el nombre está de acuerdo a su definición ya que si no funciona pues lo desechamos.

3 Ventajas

  1. Satisface necesidades inmediatas de los clientes.
  2. Las especificaciones pueden desarrollarse de forma creciente.
  3. Se logra un mejor entendimiento del sistema lo que logra un software de mayor calidad

4 Desventajas

  1. Se debe hacer entregas regulares del software para medir el progreso, lo que hace que el desarrollo sea más lento.
  2. La mayoría de veces los sistemas tienen una estructura deficiente ya que los cambios continuos corrompen la estructura del software.
  3. Incorporar cada vez cambios en el software se hace más difícil y costoso

5 Proceso

  1. Se genera una versión inicial con los requerimientos que mejor se entendieron al hablar con el cliente.
  2. Se vuelve con el cliente para que comente sobre el software y se procede con los nuevos requerimientos.

En la siguiente imagen se puede observar como el proceso evolutivo es repetir una y otra vez el proceso de desarrollo de software, ya que en cada versión se ejecuta la especificación, desarrollo y validación. Esto permite una rápida retroalimentación por parte del cliente para desarrollar e implementar las nuevas mejoras que se requieren.

Comentarios

Entradas populares de este blog

Paginación de Memoria

Principales herramientas del Banco Central del Ecuador para reducir la oferta de dinero