8
Evolutionary Prototyping VS Throwaway Prototyping 1 Ingeniería de Software I

Evolutionary Prototyping VS Throwaway Prototyping

  • Upload
    yuri

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

Ingeniería de Software I. Evolutionary Prototyping VS Throwaway Prototyping. Evolutionary Prototyping VS Throwaway Prototyping. Ingeniería de Software I. Evolutionary Prototyping VS Throwaway Prototyping. Ingeniería de Software I. Evolutionary Prototyping VS Throwaway Prototyping. - PowerPoint PPT Presentation

Citation preview

Page 1: Evolutionary Prototyping VS  Throwaway Prototyping

Evolutionary Prototyping VS

Throwaway Prototyping

1

Ingeniería de Software I

Page 2: Evolutionary Prototyping VS  Throwaway Prototyping

Evolutionary Prototyping VS Throwaway Prototyping Evolutionary Prototyping Throwaway Prototyping

Qué es? Es un ciclo de vida en el cual el sistema es desarrollado incrementalmente ya que va modificándose en base a la respuesta del cliente o del usuario final

Es un ciclo de vida en el cual el código es desarrollado para explorar factores críticos del éxito del sistema y luego es tirado

Magnitud del Proyecto

•Se recomienda utilizarlo en proyectos pequeños

•Se recomienda utilizarlo en Proyectos grandes

Desarrollador •Con mucha experiencia•Interacción continua con el cliente

•Inexperto

2

Ingeniería de Software I

Page 3: Evolutionary Prototyping VS  Throwaway Prototyping

Evolutionary Prototyping VS Throwaway Prototyping Evolutionary Prototyping Throwaway Prototyping

Uso • Primero se desarrollan partes del sistema que luego se integran al resto del sistema•El prototipo termina siendo el software final.•Al principio no siempre se sabe que es lo que se va a construir.•Se comienza con las partes mas riesgosas o visibles (interfaz de usuario)•Se desarrolla y luego se refina tantas veces como sea necesario en base al feedback del cliente o usuario final. •Los desarrolladores del sistema interactúan constantemente con el usuario.

•Se puede usar en:1. Interfaz de Usuario2. Formato de Reportes3. Formato de Gráficos4. Organización de base

de datos5. Performance de base

de datos6. Exactitud e

implantación de cálculos complejos

7. Desarrollar partes criticas en el momento

8. Performance del sistema

• Desarrolladores sin experiencia

3

Ingeniería de Software I

Page 4: Evolutionary Prototyping VS  Throwaway Prototyping

Evolutionary Prototyping VS Throwaway Prototyping Evolutionary Prototyping Throwaway Prototyping

Efectos •Progreso visible para todos•El temprano feedback determina una mayor probabilidad de que el sistema final será aceptable•Disminución general de líneas de código•Baja tasa de defectos•Menor curva de esfuerzo

•Reduce el riesgo del proyecto•Mejora la mantenibilidad•Provee resistencia a los requerimientos progresivos•Provee la posibilidad de entrenar programadores inexpertos

Interacción con otras Practicas

Combinado con otras prácticas es un efectivo removedor de defectos que genera bajo costo, eficiencia y corto calendario.

Se puede utilizar en muchas clases de proyectos sin tener en cuenta que otras practicas son usadas en él.

4

Ingeniería de Software I

Page 5: Evolutionary Prototyping VS  Throwaway Prototyping

Evolutionary Prototyping VS Throwaway Prototyping Evolutionary Prototyping Throwaway Prototyping

Ventajas •Reducción de calendario•Le provee al usuario final o al cliente constante visibilidad, signos de avance y da la impresión de rápido desarrollo.•Puede combinarse con User-Interface Prototypaing and Throwaway Prototypaing•Sirve como base para Evoluptionary Delivery•Disminuyó el esfuerzo de desarrollo de un 45% a un 80%•Otorga beneficios rápidamente.

•Velocidad de desarrollo•Se puede usar en cualquier etapa del proyecto•Reduce potencialmente los riesgos

5

Ingeniería de Software I

Page 6: Evolutionary Prototyping VS  Throwaway Prototyping

Evolutionary Prototyping VS Throwaway Prototyping Evolutionary Prototyping Throwaway Prototyping

Eficacia •Reducción del calendario•Visibilidad de progreso•Efecto sobre el riesgo de calendario

•Reducción del calendario•Visibilidad de progreso•Efecto sobre el riesgo de calendario

Major Risks •Calendario Irreal•Falsas expectativas•Falsas expectativas de performance•Diseño Pobre•Mantenibilidad Pobre

•Conservar el prototipo•Ineficiente uso del tiempo para prototipar •Calendario irreal y falsas expectativas

Riesgos •Calendario irreal y falsas expectativas•Poco control de proyecto•Feedback pobre por parte del usuario final o cliente•Pobre performance•Expectativas de Performance irreales, debido que el prototipo posee

• Quedarse con el prototipo• Uso ineficiente del tiempo de prototipado•Calendario irreal y falsas expectativas

6

Ingeniería de Software I

Page 7: Evolutionary Prototyping VS  Throwaway Prototyping

Evolutionary Prototyping VS Throwaway Prototyping Evolutionary Prototyping Throwaway Prototyping

Riesgos mayor performance que el producto final.•Diseño pobre: el producto final puede no tener los parches del prototipo, no tener en cuenta el feedback de los usuarios finales o clientes , enfocarse solo en la interface, usar un lenguaje de prototipado que no lo contemple•Pobre mantenibilidad: desarrollo descuidado•Incremento de funcionalidades•Uso ineficiente del tiempo de prototipado: al ser un proceso explorativo e iterativo debe manejarse cuidadosamente.

7

Ingeniería de Software I

Page 8: Evolutionary Prototyping VS  Throwaway Prototyping

Evolutionary Prototyping VS Throwaway Prototyping Evolutionary Prototyping Throwaway Prototyping

Claves para el éxito

•Seleccionarlo al inicio del proyecto•Limitar la interacción entre el prototipo y el usuario final o cliente.•Manejar explícitamente las expectativas del usuario final o cliente•Usar desarrolladores con experiencia•Usar checklist de diseño en cada etapa•Usar chacklist de codigo en cada etapa•Considerar temprano la performance

•Elegir un lenguaje de prototipado basado en que tan rápido te permitirá crear el código que vas a tirar.•Asegurarse de que tanto el manager como el staff técnico se comprometan a tirar el prototipo•Enfocarse en áreas o modules pobremente entendidos•Tratar las actividades como experimentos y monitorearlas y controlarlas

8

Ingeniería de Software I