¿Cuáles son las diferencias entre los prototipos desechables y los prototipos evolutivos?

12

Tengo notas sobre varios métodos de creación de prototipos, y encontré varias definiciones en Internet, pero me gustaría confirmar lo que aprendí.

Entiendo que los prototipos desechables se desarrollan a partir de un esquema de una especificación, se entregan y modifican varios prototipos hasta que el cliente esté satisfecho con su funcionalidad.

Por otro lado, los prototipos evolutivos se construyen a partir de los requisitos básicos recopilados de los usuarios finales. Se presenta un prototipo inicial a los usuarios y se evalúa. El prototipo se modifica en función de los comentarios hasta que el cliente esté satisfecho.

¿Es esto correcto? ¿Existen mejores definiciones de prototipos desechables y evolutivos?

Thomas Owens
fuente
2
Más a menudo entonces no parece que el prototipo evolucione hacia el producto terminado. Nunca antes había oído hablar de lo desechable versus lo evolutivo.
itsmatt
1
Hola Mifas, lamento que esto se haya migrado, pero si obtuviste tus definiciones de la web, pedirle a la web que confirme si las definiciones son correctas es circular y no realmente sobre el tema aquí.
1
@ MarkTrapp Si eliminamos las definiciones, ¿podríamos volver a abrir? Tanto las definiciones en la publicación como la respuesta existente son incorrectas en términos de la definición formal de la frase. Hay duplicados en Stack Overflow, pero ninguno que pueda encontrar aquí y creo que es esencial, al menos, no poner más información falsa en Internet.
Thomas Owens
@Mifas Si elimina las definiciones, no hay cuerpo para la pregunta, ¿verdad? Si Mifas siguiera la pregunta aquí y la actualizara para explicar lo que está tratando de hacer que lo haga preguntar sobre estas definiciones, esa sería una pregunta perfectamente buena.
1
@Mark Fantastic. Gracias. Trabajando en mi respuesta ahora.
Thomas Owens

Respuestas:

11

Ambos métodos de creación de prototipos se utilizan cuando hay algún aspecto del sistema que no comprende del todo. Sin embargo, la diferencia clave es la metodología del ciclo de vida que utiliza. Con la creación de prototipos evolutivos, normalmente comprende algunos aspectos del sistema y no está seguro de otros. En la creación de prototipos desechables, tiene una falta general de comprensión que debe completar antes de poder construir un sistema listo para la producción.

Tenga en cuenta que hay muchos tipos de prototipos desechables, y ninguno está limitado a todo el sistema. Por ejemplo, el uso de bocetos en papel o pizarra de una interfaz de usuario puede considerarse prototipos descartables. Sí, puede pasar por varias iteraciones y descartar un diseño anterior, pero tampoco utilizará el prototipo final en el sistema (no es físicamente posible, por ejemplo).

Si está interesado en temas generales de ingeniería de software y la amplitud de SE, le recomiendo que elija el libro de Sommerville que cito. Es realmente bueno para cubrir la amplitud de los temas. Si está más interesado en los modelos y metodologías de procesos y cómo puede aplicarlos a varios proyectos, le recomendaría el libro McConnell: tiene un capítulo completo dedicado a la creación de prototipos evolutivos y otro capítulo dedicado a la creación de prototipos desechables.

También eché un vistazo rápido al artículo de Wikipedia sobre creación de prototipos de software . Algunas partes son un poco raras (al menos en mi lectura rápida), pero no parece haber nada con lo que esté totalmente en desacuerdo. Algo de esto está un poco enfocado en un aspecto en particular, pero no es realmente incorrecto lo que veo. Prefiero las definiciones a continuación, pero podría ser una lectura interesante sobre varios tipos de creación de prototipos.


Prototipos evolutivos

Desarrollo exploratorio donde el objetivo del proceso es trabajar con el cliente para explorar sus requisitos y entregar un sistema final. El desarrollo comienza con las partes del sistema que se entienden. El sistema evoluciona agregando nuevas características propuestas por el cliente. (Sommerville: Ingeniería de software, 8ª edición)


El prototipo evolutivo es un modelo de ciclo de vida en el que el sistema se desarrolla en incrementos para que pueda modificarse fácilmente en respuesta a los comentarios del usuario final y del cliente. La mayoría de los esfuerzos de creación de prototipos evolutivos comienzan creando prototipos de la interfaz de usuario y luego evolucionando el sistema completo a partir de eso, pero la creación de prototipos puede comenzar con cualquier área de alto riesgo. La creación de prototipos evolutivos no es lo mismo que la creación de prototipos desechables, y tomar la decisión correcta acerca de si desarrollar un prototipo evolutivo o un prototipo desechable es una de las claves del éxito. Otras claves para el éxito incluyen el uso de desarrolladores experimentados, la gestión de las expectativas de programación y presupuesto, y la gestión de la actividad de creación de prototipos en sí. (McConnell: Desarrollo rápido: domar los horarios de software salvaje)


Prototipos desechables:

La creación de prototipos desechables es donde el objetivo del proceso de desarrollo evolutivo es comprender los requisitos del cliente y, por lo tanto, desarrollar una mejor definición de requisitos para el sistema. El prototipo se concentra en experimentar con los requisitos del cliente que son poco conocidos. (Sommerville: Ingeniería de software, 8ª edición)


Con Throwaway Prototyping, el código se desarrolla para explorar factores críticos para el éxito del sistema, y ​​luego ese código se desecha. La implementación de creación de prototipos utiliza lenguajes de programación o prácticas de desarrollo o ambos que son mucho más rápidos que el lenguaje y las prácticas de destino. La interfaz de usuario se crea un prototipo con mucha más frecuencia que cualquier otra parte del sistema, pero otras partes de algunos sistemas también pueden beneficiarse de la creación de un prototipo. Cuando se utiliza como una ayuda para la especificación de requisitos, la práctica de Prototipos desechables puede acelerar proyectos basados ​​en modelos de ciclo de vida tradicionales, como los proyectos de DoD. Se puede iniciar a nivel administrativo o técnico. (McConnell: Desarrollo rápido: domar los horarios de software salvaje)

Thomas Owens
fuente
-2

Creación de prototipos desechables: con esto, se desarrolla una pequeña parte del sistema y luego se entrega a los clientes y usuarios finales para que lo intenten y evalúen. El usuario proporciona los comentarios que pueden incorporarse rápidamente en el desarrollo del sistema principal

Prototipos evolutivos: es un modelo de ciclo de vida en el que el sistema se desarrolla en incrementos para que pueda modificarse fácilmente en respuesta a los usuarios finales y los comentarios de los clientes

Samuel
fuente
1
Esta pregunta se hizo en 2011. Su respuesta no agrega mucho a las respuestas ya dadas.
Jan Doggen