miércoles, 15 de mayo de 2013

Modelos Evolutivos

Modelos Evolutivos 

El software, al igual que todos los sistemas complejos, evoluciona con el tiempo. El modelo lineal secuencial se diseña para el desarrollo en línea recta. En esencia, este enfoque en cascada asume que se va entregar un sistema completo una vez que la secuencia lineal se haya finalizado. El modelo de construcción de prototipos se diseña para ayudar al cliente (o al que desarrolla) a comprender los requisitos. En general, no se diseña para entregar un sistema de producción. En ninguno de los paradigmas de ingeniería del software se tiene en cuenta la naturaleza evolutiva del software. Los modelos evolutivos son iterativos. Se caracterizan por la forma en que permiten a los ingenieros del software desarrollar versiones cada vez más completas del software.



imagen: http://www.saludalia.com/Uploads/saludalia.com/Imagenes/pensamiento.jpg

Modelo Espiral


En el modelo espiral, el software se desarrolla en una serie de versiones incrementales. Durante las primeras iteraciones la versión incremental podría ser un modelo en papel o un prototipo, durante las últimas iteraciones se producen versiones cada vez más completas del sistema diseñado.

EL modelo en espiral se divide en un número de actividades de marco de trabajo, también llamadas REGIONES DE TAREAS , Cada una de las regiones están compuestas por un conjunto de tareas del trabajo llamado CONJUNTO DE TAREAS que se adaptan a las características del proyecto que va a emprenderse en todos los casos se aplican actividades de protección.

Grafico:




Cada vuelta se divide en 4 sectores:
  • Planeación : determinación de los objetivos, alternativas y restricciones
  • Análisis de riesgo : análisis de alternativas e identificación/resolución de riesgos
  • Ingeniería : desarrollo del producto hasta "el siguiente nivel".
  • Evaluación : valoración por parte del cliente de los resultados obtenidos.
El movimiento de la espiral, ampliando con cada iteración su amplitud radial, indica que cada vez se van construyendo versiones sucesivas del software, cada vez más completas.
Uno de los puntos más interesantes del modelo, es la introducción al proceso de desarrollo a las actividades de análisis de los riesgos asociados al desarrollo y a la evaluación por parte del cliente de los resultados del software.
Ventajas
  • El modelo en espiral puede adaptarse y aplicarse a lo largo de la vida del software de computadora.
  • Como el software evoluciona a medida que progresa el proceso, el desarrollador y el cliente comprenden y reaccionan mejor ante riesgos en cada uno de los nivele evolutivos.
  • El modelo en espiral permite a quien lo desarrolla aplicar el enfoque de construcción de prototipos en cualquier etapa de evolución del producto.
  • El modelo en espiral demanda una consideración directa de los riesgos técnicos en todas las etapas del proyecto y si se aplica adecuadamente debe reducir los riesgos antes de que se conviertan en problemas.
  • En la utilización de grandes sistemas a doblado la productividad.

Desventajas



  • Resulta difícil convencer a grandes clientes de que el enfoque evolutivo es controlable.
  • Debido a su elevada complejidad no se aconseja utilizarlo en pequeños sistemas.
  • Genera mucho tiempo en el desarrollo del sistema
  • Modelo costoso
  • Requiere experiencia en la identificación de riesgos

Modelo Concurrente

El modelo de proceso concurrente define una serie de acontecimientos que dispararán transiciones de estado a estado para cada una de las actividades. Durante las primeras etapas del diseño, no se contempla una inconsistencia del modelo de análisis. Esto genera la corrección del modelo de análisis de sucesos, que disparará la actividad de análisis del estado hecho al estado cambios en espera.


imagen: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb_-ofUPkvunSUS4tA3IxvQAnvHQtcG4kHd81j1croSTvuG3vjdveQ969gLRDFda96aYG2rVY1XYAWDMZeQa21Hz8lTQipp7qQfUKIJULcEJdDIPHpgArY7tk_hpb4WP34YVCWAIjrNmI/s1600/concurrente.gif

La imagen anterior proporciona una representación esquemática de una actividad(análisis) como se puede observar todas las actividades existen concurrentemente, pero residen en estados diferentes, al principio es la comunicación con el cliente (no esta plasmada en la figura) y esta en estado de cambios en espera.La actividad de análisis esta en ninguna significa que ya se ha hecho la comunicación con el cliente luego hace una transición al estado bajo desarrollo. sin embargo si el cliente indica que se deben hacer cambios en requisitos , la actividad de análisis cambia del estado bajo desarrollo al estado cambios en espera.

El modelo de proceso concurrente define una serie de acontecimientos que dispararan transiciones de estado a estado para cada una de las actividades de la ingeniería del software.

Características:
  • se puede expresar de manera esquematizada
  • las actividades llevan procesos concurrentes
  • es aplicable a todo tipo de desarrollo de software
  • es un modulo aplicable para cliente soñador
  • esta dirigido por las necesidades del usuario
  • es aplicable al cliente servidor
Ventajas:
  • Excelente para proyectos en los que se conforman grupos de trabajo independientes.
  • Proporciona una imagen exacta del estado actual de un proyecto.
Desventajas:
  • Si no se dan las condiciones señaladas no es aplicable.
  • Si no existen grupos de trabajo no se puede trabajar en este método
Modelo Incremental


El Modelo Incremental para el desarrollo del software, consiste en crear funcionalidad por pequeña que sea de modo que a partir de ella, las creaciones posteriores en base a la que primero fue creada, tendrán una característica (o características) funcionales, lo cual hace que se constituya en base a elementos que funcionan y que va siendo cada vez más compleja su funcionalidad.

Los avances son entregados mediante fechas programadas, de modo que cada incremento posee nuevas funcionalidades a comparación de un incremento anterior.

Este modelo posee etapas tales como:

  • Definición de requirimientos
  • Asignar los requerimientos a los incrementos.
  • Diseño del incremento a partir de los requirimientos.
  • Desarrollo del incremento.
  • Validar incrementos.
  • Integrar incrementos.
  • Validar funcionamiento.
Las ideologías del modelo incremental pretende dar pautas en la creación del software mediante incrementos pequeños, permitiendo su fácil administración, así como su sencilla comprensión y sus correspondientes pruebas, esto implica que el desarrollo inicial se logra más temprano obteniendo resultados de inversión en poco tiempo, otro aspecto a considerar es que este modelo se presta a posibles cambios debido a que los incrementos de van adaptando de acuerdo a los requerimientos que se obtienen en base a las nuevas necesidades que van surguiendo.


imagen: http://ldc.usb.ve/~vtheok/cursos/ci3711/apuntes/99-01-14/Info/esquema5.gif

Ventajas:

  • Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial.
  • También provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del Software.
  • El modelo proporciona todas las ventajas del modelo en cascada realimentado, reduciendo sus desventajas sólo al ámbito de cada incremento.
  • Permite entregar al cliente un producto más rápido en comparación del modelo de cascada.
  • Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.
  • Por su versatilidad requiere de una planeación cuidadosa tanto a nivel administrativo como técnico.

Desventajas:

  • El modelo Incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice de riesgos.
  • Requiere de mucha planeación, tanto administrativa como técnica.
  • Requiere de metas claras para conocer el estado del proyecto.

No hay comentarios:

Publicar un comentario