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)