domingo, 10 de abril de 2011

CICLOS DE VIDA DE UN SOFTWARE "MODELO EVOLUTIVO"

Se diferencia del modelo por prototipos en que en el modelo de prototipos se da por hecho que aunque se necesiten varias iteraciones para lograrlo al final se llegará a tener una serie de requisitos completos y sin errores, que no vayan a cambiar más.

En el modelo evolutivo se asume que los requisitos pueden cambiar en cualquier momento del ciclo de vida y no solo en la etapa de análisis.
El desarrollo de software en forma evolutiva requiere un especial cuidado en la manipulación de documentos, programas, datos de test, etc. 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. 

Como el modelo de desarrollo incremental, el modelo de desarrollo evolutivo (algunas veces denominado como prototipado evolutivo) construye una serie de grandes versiones sucesivas de un producto. Sin embargo, mientras que la aproximación incremental presupone que el conjunto completo de requerimientos es conocido al comenzar, el modelo evolutivo asume que los requerimientos no son completamente conocidos al inicio del proyecto. 

En el modelo evolutivo, los requerimientos son cuidadosamente examinados, y sólo esos que son bien comprendidos son seleccionados para el primer incremento. Los desarrolladores construyen una implementación parcial del sistema que recibe sólo estos requerimientos. 

El sistema es entonces desarrollado, los usuarios lo usan, y proveen retroalimentación a los desarrolladores. Basada en esta retroalimentación, la especificación de requerimientos es actualizada, y una segunda versión del producto es desarrollada y desplegada.

El proceso se repite indefinidamente.Podemos darnos cuenta que el desarrollo evolutivo es 100% compatible con el modelo cascada. El desarrollo evolutivo no demanda una forma específica de observar el desarrollo de algún incremento. Así, el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo. Obviamente, el desarrollo incremental y evolutivo puede ser combinado también. 


Todo lo que uno tiene que hacer es construir un subconjunto de requerimientos conocidos (incremental), y comprender al principio que muchos nuevos requerimientos es probable que aparezcan cuando el sistema sea desplegado o desarrollado. 

El desarrollo de software en forma evolutiva requiere un especial cuidado en la manipulación de documentos, programas, datos de test, etc. 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.

viernes, 8 de abril de 2011

CICLOS DE VIDA DE UN SOFTWARE "MODELO PROTOTIPADO"



El DESARROLLO DE SOFTWARE POR PROTOTIPOS.
Una de las metodologías más conocidas es el desarrollo de software basado en prototipos o lo que llamamos "El Prototipado".

EL MODELO PROTOTIPADO
El Prototipado consiste en construir un modelo del software a fabricar para que lo evalúe el cliente en conjunto con el programador. La construcción de un prototipo suele ser muy adecuado al comienzo de la etapa de "análisis", ya que el modelo es el único medio a través del cual se pueden obtener de una manera más eficaz los requisitos. El modelo evoluciona después hacia la producción del software. En la figura anterior se muestra las diferentes etapas por la que atraviesa la metodología por Prototipos.

Existen dos enfoques para utilizar prototipos, el denominado enfoque cerrado también denominado prototipo desechable tiene como único objetivo el poder demostrar y recolectar requisitos, luego este se desecha y se encara el desarrollo con un punto de vista diferente. Por su parte el enfoque abierto o Prototipado evolutivo.

 Este metodo utiliza el mismo enfoque en las primeras etapa de análisis y luego se continúa con el diseño y la construcción. Muchos usuarios finales suelen mostrar gran entusiasmo cuando se le presenta un prototipo del futuro software por lo que la situación suele ser adecuada para evaluar como seria la futura interacción entre el usuario y el software a construirse.

Los prototipos suelen ser adecuados cuando se evalué el proceso de procesamiento sin considerar errores como así también cuando se desarrolla solo él núcleo de la aplicación solo con los procesos básicos del software en construcción.

El ciclo comienza con la recolección de requisitos. El cliente y el desarrollador definen los objetivos globales para el software, identifican los requisitos conocidos y que áreas del problema requiere una atención. Luego se procede a realizar un “diseño rápido”. Este diseño rápido busca una representación sobre aspectos del software que serán importantes para el cliente/usuario como ser el diseño de pantallas y operatividad. A seguir se construye el prototipo. Este prototipo lo evalúa el cliente/usuario y se utiliza para refinar los requisitos del software a desarrollar. Cuando el prototipo satisface las necesidades del usuario/cliente y el programador tiene una clara comprensión de lo que se necesita hacer se procede a una nueva iteración.


IMPLEMENTACION POR FASES

Normalmente, el entorno de producción se despliega por fases.

El despliegue por fases es especialmente importante para las implementaciones que son de gran tamaño y afectan a un número importante usuarios.

La implementación por fases suele iniciarse con un pequeño conjunto de usuarios y con el tiempo se amplía el alcance a los demás usuarios hasta que se abarque a todos ellos. Este mismo enfoque suele ser utilizado también para los servicios que brindará el sistema.

Muchas veces el prototipo termina siendo la primera implementación del sistema, lo que no suele ser conveniente ya que el prototipo construido puede ser muy lento, muy grande o difícil de utilizar, por ello es mucho mejor desecharlo y comenzar la construcción de una versión nueva que resuelva estos inconvenientes. Cuando sea necesario introducir una nueva tecnología que reemplace al sistema viejo.(Principio y Fin)

Es aquí donde los desarrolladores y analistas deberán decidir si construir una versión "desechable "o hacer una para poder entregársela a los clientes .Una vez que la implementación del prototipo pasa los criterios de prueba, se podrá empezar a desplegar la implementación en un entorno de producción.

VENTAJAS Y DESVENTAJAS DEL MODELO DE PROTOTIPADO

VENTAJAS : 

Reducciòn de la incertidumbre y  del riesgo, reducciòn de tiempo y de costos , incrementos en la aceptacion del nuevo sistema, mejoras en la administracion de proyectos , mejoras en la comunicacion entre desarrolladores y clientes , etc...

DESVENTAJAS: 

La dependencia de las herramientas del software para el exito ya que la necesidad de disminuciòn de incertidumbre depende de las iteraciones del prototipo, entre màs iteraciones existan mejor y esto ùltimo se logra mediante el uso de mejores herramientas lo que hace a este proceso dependiente de las mismas.
No es posible aplicar la metodologia a todos los proyectos de software y finalmente, la mala interpretaciòn que pueden hacer los usuarios del prototipo, al  cual pueden confundir con el sistema terminado.