sábado, 1 de agosto de 2009

modelo incremental


modelo incremental evolutivo:



MODELO INCREMENTAL EVOLUTIVO


El software evoluciona con el tiempo. Los requisitos del usuario y del producto suelen cambiar conforme se desarrolla el mismo. Las fechas de mercado y la competencia hacen que no sea posible esperar a poner en el mercado un producto absolutamente completo, por lo que se debe introducir una versión funcional limitada de alguna forma para aliviar las presiones competitivas.
En esas u otras situaciones similares los desarrolladores necesitan modelos de progreso que estén diseñados para acomodarse a una evolución temporal o progresiva, donde los requisitos centrales son conocidos de antemano, aunque no estén bien definidos a nivel detalle.
En el modelo Cascada y Cascada Realimentado no se tiene en cuenta la naturaleza evolutiva del software, se plantea como estático con requisitos bien conocidos y definidos desde el inicio.
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.










El modelo incremental
􀂾 Combina elementos del modelo lineal con la filosofía de creación de prototipos
􀂾 El primer incremento a menudo es un producto esencial (núcleo)
􀂾 A partir de la evaluación se planea el siguiente incremento y así sucesivamente
􀂾 Es interactivo por naturaleza
􀂾 Es útil cuando el personal no es suficiente para la implementación completa
El modelo incremental
Incremento 1
Análisis-Diseño-Código-Pruebas Entrega de 1er incremento
Análisis-Diseño-Código-Pruebas Entrega de
2º incremento

Análisis-Diseño-Código-Pruebas Entrega de
3er incremento

Análisis-Diseño-Código-Pruebas Entrega de
4o incremento

Tiempo de calendario
􀂾 Ventajas 􀂾 Se puede financiar el proyecto por partes 􀂾 Apropiado para proyectos grandes de larga duración 􀂾 No se necesita tanto personal al principio como para una implementación completa 􀂾 Inconvenientes 􀂾 Se necesitan pruebas de regresión 􀂾 Pueden aumentar el coste debido a las pruebas
perteneciente a la familia de los procesos evolutivos. el Modelo Incremental combina elementos del MLS con la filosofía interactiva de construcción de prototipos. En una visión genérica, el proceso se divide en 4 partes: Análisis, Diseño, Código y Prueba. Sin embargo, para la producción del Software, se usa el principio de trabajo en cadena o “Pipeline”, utilizado en muchas otras formas de programación. Con esto se mantiene al cliente en constante contacto con los resultados obtenidos en cada incremento. Es el mismo cliente el que incluye o desecha elementos al final de cada incremento a fin de que el software se adapte mejor a sus necesidades reales. El proceso se repite hasta que se elabore el producto completo. De esta forma el tiempo de entrega se reduce considerablemente. Al igual que los otros métodos de modelado, el Modelo Incremental es de naturaleza interactiva pero se diferencia de aquellos en que al final de cada incremento se entrega un producto completamente operacional. El Modelo Incremental es particularmente útil cuando no se cuenta con una dotación de personal suficiente. Los primeros pasos los pueden realizar un grupo reducido de personas y en cada incremento se añadirá personal, de ser necesario. Por otro lado los incrementos se pueden planear para gestionar riesgos técnicos.




Modelos evolutivos: Incremental
Modelo incremental
Combina: modelo lineal + la construcción de prototipos
Incorporación incremental de funcionalidades
Problemas:
Los sistemas están pobremente especificados
Poca visibilidad en el proceso de desarrollo













Modelo De Desarrollo Evolutivo
Como el modelo de desarrollo incremental, el modelo de desarrollo evolutivo (algunas veces den
ominado 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.
Note 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.




video modelo incremental evolutivo



El modelo Incremental parte de una consideración en cuanto a la solución de los problemas, y es tomar el asunto en consideración por las ramas, es decir contrario a como comúnmente se expresa popularmente “coger el toro por los cachos”.Este planteamiento flexibiliza la posibilidad en cuanto a recursos, tiempos, y permite ganar experiencia en las diferentes etapas del desarrollo de software; para percibir las bondades del modelo incremental es interesante plantear una comparación con el modelo lineal. En el modelo lineal se plantea un proyecto con sus diferentes etapas de desarrollo, con un presupuesto especifico, proyectado a una fecha especifica de cumplimiento, con un objetivo a conseguir, se plantean unas etapas de análisis, diseño, desarrollo de código, pruebas, rediseño, y finalmente puesta en marcha del producto.En la etapa de pruebas surgen muchos de los problemas que no se contemplaron al comienzo del proyecto, pues en el acople de los diferentes módulos surgen variables que probablemente no se habían contemplado, de igual forma surgen inconvenientes al momento de implementarlo en el usuario final, todas estas variables no contempladas y todos los inconvenientes presentados a nivel de usuario, se multiplican en la medida que los módulos a acoplar sean mayores.Como se percibe, un proyecto de este tipo requiere de un buen análisis previo al mismo diseño, con el animo de reducir la cantidad de variables no contempladas, ya que la etapa de rediseño podría perfectamente requerir de cambios bruscos que afecten gravemente el proyecto llegando inclusive a requerir de un cambio total .En contraste en el modelo incremental el desarrollo de software se lleva a cabo por módulos, es decir que el proyecto se entrega por etapas .En el modelo incremental se plantea un proyecto con sus diferentes etapas de desarrollo, con un presupuesto global indefinido, proyectado en fechas especificas únicamente para cada modulo, se plantean unas etapas de análisis, diseño, desarrollo de código, pruebas, rediseño, y finalmente puesta en marcha de cada modulo.La ventaja de desarrollar el proyecto por etapas, es que permite adquirir experiencia en la medida que se va entregando cada modulo, los inconvenientes surgidos en la puesta en marcha de las primeras etapas del proceso van dejando experiencias que permiten diseñar la siguientes partes del proceso con menores posibilidades de error entre estos el acople entre los mismos.