Modelos.Evolutivos

36
 MODELOS EVOLUTIVOS MODELO INCREMENTAL MODELO ITERATIVO DE PROCESOS MODELO ESPIRAL MODELO DE PROTOTIPOS

Transcript of Modelos.Evolutivos

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 1/36

 

MODELOS EVOLUTIVOSMODELO INCREMENTAL

MODELO ITERATIVO DE PROCESOS

MODELO ESPIRAL

MODELO DE PROTOTIPOS

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 2/36

 

« Ingeniería del Software», 7ª Edición, por Ian

Sommerville, 4.1.2.

Desarrollo Evolutivo: se basa en la idea de desarrollaruna implementación inicial, exponiéndola a loscomentarios del usuario y refinándola a través de lasdiferentes versiones hasta que se desarrolla unsistema adecuado.

Las actividades de especificación, desarrollo yvalidación se entrelazan, en vez de separarse, con unarápida retroalimentación entre éstas.

Unidad 3: Modelos Evolutivos: Incremental,

Iterativo, espiral, de prototipos 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 3/36

 

 

Modelo de desarrollo evolutivo:

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 4/36

 

Hay 2 tipos de desarrollo evolutivo:

1. Desarrollo exploratorio: Trabaja con el cliente para explorar sus requerimientos y entregar un sistema final.

El desarrollo empieza con las partes del sistema que secomprenden mejor.

El sistema evoluciona agregando nuevos atributos propuestospor el cliente.

2. Prototipos desechables: Busca comprender losrequerimientos del cliente y desarrollar una definiciónmejorada de los requerimientos.

El prototipo se centra en experimentar con los requerimientos

del cliente que no se comprenden del todo.

Tipos de Modelos Evolutivos

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 5/36

 

Es más efectivo que el enfoque en cascada, puessatisface las necesidades inmediatas de los clientes.

La especificación se puede desarrollar de formacreciente.

Tan pronto como el usuario entienda mejor suproblema, éste se puede reflejar en el sistemasoftware.

Ventajas del Modelo Evolutivo

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 6/36

 

1. El proceso no es visible. Los administradores debenhacer entregas regulares para medir el progreso.

Si los sistemas se desarrollan rápidamente, no esrentable producir documentos que reflejen cada

versión del sistema.

2. Genera  sistemas con estructura deficiente. Los

cambios continuos tienden a corromper la estructuradel software.

Incorporar cambios se convierte cada vez más en unatarea difícil y costosa.

Desventajas del Modelo

Evolutivo

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 7/36

Para sistemas pequeños y medios (de hasta 500.000líneas de código), el enfoque evolutivo de desarrollo esel mejor.

Los problemas del desarrollo evolutivo se agravan ensistemas grandes y complejos, con un periodo de vidalargo, donde diferentes equipos desarrollan distintaspartes del sistema.

Es difícil establecer una arquitectura del sistema establecon este enfoque, por la dificultad en integrar lascontribuciones de los equipos.

Recomendaciones para el

Modelo Evolutivo

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 8/36

Para sistemas grandes, se recomienda un proceso mixto queincorpore las mejores características del modelo en cascada ydel desarrollo evolutivo.

Se puede desarrollar un prototipo desechable (enfoqueevolutivo) para resolver incertidumbres en la especificación delsistema.

Entonces, las partes del sistema bien comprendidas se pueden

especificar y desarrollar utilizando un proceso basado en elmodelo en cascada.

Las otras partes del sistema que son difíciles de especificar poradelantado (interfaz de usuario), se pueden desarrollar usando

un enfoque de programación exploratoria.

Recomendaciones para el

Modelo Evolutivo 

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 9/36

Los cambios son inevitables en todos los proyectos de

software grandes. Hay cambios cuando: El negocio cambia por presiones externas.

Las prioridades de gestión cambian.

Cuando se dispone de nuevas tecnologías, cambian

los diseños y la implementación.

Iteración de procesosIan Sommerville, 4.2

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 10/36

El proceso del software no es un proceso único.

Las actividades del proceso se repiten regularmente amedida que el sistema se va rehaciendo, en respuesta a

peticiones de cambios. Hay dos modelos de procesos para apoyar esta

iteración :

1. Entrega incremental. La especificación, el diseño y la

implementación del software se dividen en una seriede incrementos, que se desarrollan por turnos.

2. Desarrollo en espiral. El desarrollo del sistema gira enespiral hacia fuera, empezando con un esbozo inicial yterminando con el desarrollo final.

Iteración de procesos 

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 11/36

En los procesos iterativos, la especificación se

desarrolla junto con el software. Inconvenientes => conflictos en los contratos de

desarrollo de software; donde se requiere unaespecificación completa del sistema previa, como

etapa de evaluación del del contrato. En el enfoque incremental, no existe una

especificación completa del sistema hasta quellegamos al incremento final.

Iteración de procesos 

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 12/36

El modelo de desarrollo en cascada requiere:

1. Obtener los Requerimientos del Sistema antes de

empezar el Diseño.2. Que el Diseñador cumpla estrategias particulares de

Diseño antes de la Implementación.

3. Los cambios de Requerimientos implican rehacer el

trabajo de captura de Requerimientos, de Diseño eImplementación.

4. La separación de las etapas origina sistemas biendocumentados, sólidos, que pueden evolucionar másfácilmente.

Entrega incremental 

Ian Sommerville, 4.2.1

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 13/36

En cambio, el Desarrollo Evolutivo tiene básicamente

estas características:1. Permite que los Requerimientos (Análisis) y las

decisiones de Diseño se retrasen.

2. Origina un software débilmente estructurado y

difícil de comprender y mantener.

Entrega incremental 

Desarrollo Evolutivo (caracteres)

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 14/36

La Entrega Incremental es un enfoque intermedio

que combina las ventajas de ambos modelos:1. Los clientes identifican, a grandes rasgos, los

servicios que proporcionará el sistema.

2. Identifican qué servicios son más importantes y

cuáles menos.3. Entonces, se definen varios incrementos en donde

cada uno proporciona una funcionalidad distinta delsistema.

Entrega incremental Características

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 15/36

Los incrementos que proporcionen servicios con mayorprioridad son desarrollados y entregados primero.

Una vez que se identifican los incrementos del sistema,se definen en detalle los requerimientos para losservicios que se van a entregar en el primer incremento,que es inmediatamente desarrollado.

Durante el desarrollo, se puede llevar a cabo un análisis

adicional de requerimientos para los requerimientosposteriores, pero no se aceptan cambios en losrequerimientos para el incremento actual.

Una vez que un incremento se completa y entrega, los

clientes pueden ponerlo en servicio.

Entrega incremental Características

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 16/36

Hay una entrega temprana de partes de la funcionalidad

del sistema. El cliente puede experimentar con el sistema, lo que le

ayuda a clarificar sus requerimientos para los incrementosposteriores y para las últimas versiones del incremento

actual. Tan pronto como se completan nuevos incrementos, se

integran en los existentes.

La funcionalidad del sistema mejora con cada incremento

entregado.

Entrega incremental Características

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 17/36

Los servicios comunes se pueden implementar al inicio delproceso o de forma incremental tan pronto como seanrequeridos.

Entrega incremental Características

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 18/36

1. Los clientes no tienen que esperar a que se entregueel sistema completo para poder sacarle provecho. Elprimer incremento satisface los requerimientos más

críticos y se puede utilizar el software inmediatamente. 2. Los clientes pueden utilizar los incrementos iniciales

como prototipos y obtener experiencia sobre losrequerimientos de los incrementos posteriores.

3. Existe un bajo riesgo de falla total del proyecto.Aunque se pueden encontrar problemas en algunosincrementos, lo normal es que el sistema se entregue deforma satisfactoria.

Entrega incremental Ventajas

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 19/36

4. Como los servicios más prioritarios se entregan

primero, y los incrementos posteriores se integran,después, en ellos; a esos servicios más importantes seles hacen más pruebas.

Así, es menos probable que haya fallas en las partes

más importantes del sistema.

Entrega incremental Ventajas

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 20/36

Los incrementos deben ser relativamente pequeños(no más de 20.000 líneas de código) y cada uno debeentregar alguna funcionalidad del sistema.

Puede ser difícil adaptar los requerimientos delcliente a incrementos de tamaño apropiado.

Muchos sistemas requieren un conjunto de recursosque se utilizan en diferentes partes del sistema.

Como los requerimientos no se definen en detallehasta que un incremento se implementa, puede serdifícil identificar los recursos comunes que requierentodos los incrementos.

Entrega incremental Desventajas

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 21/36

El modelo en espiral del proceso del software fuepropuesto por Boehm (1988).

No representa al proceso del software como unasecuencia de actividades, sino como una espiral.

Cada ciclo en la espiral representa una fase delproceso del software.

Así. el ciclo más interno alude a la Viabilidad delSistema, el siguiente ciclo a la Definición deRequerimientos, el siguiente ciclo al Diseño delSistema, y así sucesivamente.

Desarrollo en espiral Ian Sommerville, 4.2.2

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 22/36

Cada ciclo de la espiral se divide en cuatro sectores:

1. Definición de objetivos. Para esta fase del proyectose definen los objetivos específicos.

Se identifican las restricciones del proceso y elproducto, y se traza un plan detallado de gestión.

Se identifican los riesgos del proyecto.

Dependiendo de estos riesgos, se planean estrategiasalternativas.

Desarrollo en espiral

4 Sectores de cada Ciclo

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 23/36

2. Evaluación y reducción de riesgos. Se lleva a cabo un

análisis detallado para cada uno de los riesgos delproyecto identificados.

Se definen los pasos para reducir dichos riesgo.

Por ejemplo, si existe el riesgo de tener

requerimientos inapropiados, se puede desarrollar unprototipo del sistema.

Desarrollo en espiral

4 Sectores de cada Ciclo

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 24/36

3. Desarrollo y validación. Después de la evaluación de

riesgos, se elige un modelo para el desarrollo delsistema.

Por ejemplo, si hay riesgos en la interfaz de usuario =>construir prototipos evolutivos.

Si hay riesgos de seguridad => un desarrollo basado en transformaciones formales.

Si el mayor riesgo es la integración de los subsistemas=> Modelo en Cascada.

Desarrollo en espiral

4 Sectores de cada Ciclo

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 25/36

4. Planificación. El proyecto se revisa y se toma la

decisión de si se debe continuar con un ciclo posteriorde la espiral.

Si se decide continuar, se desarrollan los planes parala siguiente fase del proyecto.

Desarrollo en espiral

4 Sectores de cada Ciclo

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 26/36

 

Desarrollo en espiralFigura Ilustrativa

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 27/36

La diferencia principal entre el modelo en espiral y los

otros modelos es la consideración explícita del riesgoen el modelo en espiral.

El riesgo significa sencillamente que algo puede irmal.

Por ejemplo, si se quiere utilizar un nuevo lenguaje deprogramación, un riesgo es que los compiladoresdisponibles sean poco fiables o que no produzcancódigo objeto suficientemente eficiente.

Desarrollo en espiralLa consideración del RIESGO

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 28/36

Los riesgos originan problemas en el proyecto; como

ser: problemas de agendas y excesos en los costos. Por eso la disminución de riesgos es una actividad

muy importante en la gestión del proyecto.

Un ciclo de la espiral empieza con la elaboración de

objetivos, como el rendimiento y la funcionalidad. Entonces se enumeran alternativas de alcanzar estos

objetivos y las restricciones de cada una.

Desarrollo en espiral

La consideración del RIESGO 

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 29/36

Cada alternativa se evalúa contra cada objetivo

Se identifican las fuentes de riesgo del proyecto.

El siguiente paso es resolver estos riesgos, mediante:la recopilación de información, detallar más el análisis,la construcción de prototipos y la simulación.

Una vez que se han evaluado los riesgos, sedesarrolla, seguido de una actividad de planificaciónpara la siguiente fase del proceso.

Desarrollo en espiral

Conclusiones

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 30/36

El Prototipado consiste en construir un modelo del softwarea fabricar para que lo evalúe el cliente en conjunto con elprogramador.

La construcción de un prototipo suele ser muy adecuado alcomienzo de la etapa de "análisis", ya que el modelo es elúnico medio a través del cual se pueden obtener de unamanera más eficaz los requisitos.

El modelo evoluciona después hacia la producción delsoftware. En la figura anterior se muestra las diferentesetapas por la que atraviesa la metodología por Prototipos

EL MODELO PROTOTIPADO 

  

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 31/36

Modelo en prototipos

Metodología masconocida de desarrollo desoftware basada en

prototipos o tambiénllamada “El Prototipado” 

Comunicación 

Plan rápido 

Modelado dediseño rápido

Construcción delprototipo

Desarrollo,Entrega y

retroalimentación

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 32/36

Comunicación:Se inicia cuando el ingeniero de software y el cliente se encuentran y definen losobjetivos globales para el software, se identifican los requisitos ya conocidos y las áreasdel esquema en donde se necesitaría mas definición.Plan rápido:

Se plantea con rapidez una iteración de construcción de prototipos y se presenta elmodelo (en forma de un diseño rápido).El diseño rápido se centra en una representación de aquellos aspectos del software quesean visibles para el cliente o el usuario final(ejemplo: la configuración de la interfaz conel usuario, el formato de despliegue de salida).Diseño rápido:

Conduce a la construcción del prototipo

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 33/36

Existen dos enfoques para utilizar prototipos, el denominadoenfoque cerrado también denominado prototipo desechabletiene como único objetivo el poder demostrar y recolectarrequisitos, luego este se desecha y se encara el desarrollocon un punto de vista diferente. Por su parte el enfoqueabierto o Prototipado evolutivo.Este método utiliza el mismo enfoque en las primeras etapade análisis y luego se continúa con el diseño y laconstrucción.

Muchos usuarios finales suelen mostrar gran entusiasmocuando se le presenta un prototipo del futuro software porlo que la situación suele ser adecuada para evaluar comoseria la futura interacción entre el usuario y el software a

construirse. 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 34/36

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 delproblema 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 queserán importantes para el cliente/usuario como ser eldiseño de pantallas y operatividad.

A seguir se construye el prototipo.Este prototipo lo evalúa el cliente/usuario y se utilizapara refinar los requisitos del software a desarrollar.

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 35/36

• Cuando el prototipo satisface las necesidades delusuario/cliente y el programador tiene una claracomprensión de lo que se necesita hacer se procede a unanueva iteración.

VENTAJAS Y DESVENTAJAS DEL MODELO DE PROTOTIPADO 

VENTAJAS : 

Reducción de la incertidumbre y del riesgo, reducción detiempo y de costos ,incrementos en la aceptación del nuevosistema, mejoras en la administración de proyectos , mejorasen la comunicación entre desarrolladores y clientes .

 

5/16/2018 Modelos.Evolutivos - slidepdf.com

http://slidepdf.com/reader/full/modelosevolutivos 36/36

 DESVENTAJAS: 

La dependencia de las herramientas del software para eléxito ya que la necesidad de disminución deincertidumbre depende de las iteraciones del prototipo,entre más iteraciones existan mejor y esto último se

logra mediante el uso de mejores herramientas lo quehace a este proceso dependiente de las mismas.No es posible aplicar la metodología a todos losproyectos de software y finalmente, la malainterpretación que pueden hacer los usuarios delprototipo, al cual pueden confundir con el sistematerminado