Les deux méthodes de prototypage sont utilisées lorsqu'il existe un aspect du système que vous ne comprenez pas entièrement. Cependant, la principale différence est la méthodologie de cycle de vie que vous utilisez. Avec le prototypage évolutif, vous comprenez généralement certains aspects du système et n'êtes pas sûr des autres. Dans le prototypage jetable, vous avez un manque général de compréhension que vous devez terminer avant de pouvoir construire un système prêt pour la production.
Notez qu'il existe de nombreux types de prototypage jetable, et aucun n'est limité à l'ensemble du système. Par exemple, l'utilisation de croquis papier ou tableau blanc d'une interface utilisateur peut être considérée comme un prototypage jetable. Oui, vous pouvez passer par plusieurs itérations et jeter une conception précédente, mais vous n'utiliserez pas non plus le prototype final dans le système (ce n'est pas physiquement possible, pour un).
Si vous êtes intéressé par les sujets généraux de génie logiciel et l'étendue de SE, je vous suggère fortement de prendre le livre de Sommerville que je cite. C'est vraiment bon pour couvrir l'étendue des sujets. Si vous êtes plus intéressé par les modèles de processus et les méthodologies et comment les appliquer à divers projets, je recommanderais le livre McConnell - il a un chapitre entier consacré au prototypage évolutif et un autre chapitre consacré au prototypage jetable.
J'ai également jeté un rapide coup d'œil à l'article de Wikipedia sur le prototypage de logiciels . Certaines parties sont un peu bizarres (au moins sur ma lecture rapide), mais il ne semble pas y avoir quoi que ce soit avec quoi je suis carrément en désaccord. Certains d'entre eux sont un peu concentrés sur un aspect particulier, mais ce n'est pas faux en fait que je vois. Je préfère les définitions ci-dessous, mais cela pourrait être une lecture intéressante sur différents types de prototypage.
Prototypage évolutif
Développement exploratoire où l'objectif du processus est de travailler avec le client pour explorer ses besoins et livrer un système final. Le développement commence par les parties du système qui sont comprises. Le système évolue en ajoutant de nouvelles fonctionnalités proposées par le client. (Sommerville: Génie logiciel, 8e édition)
Le prototypage évolutif est un modèle de cycle de vie dans lequel le système est développé par incréments afin qu'il puisse être facilement modifié en réponse aux commentaires des utilisateurs finaux et des clients. La plupart des efforts de prototypage évolutif commencent par le prototypage de l'interface utilisateur, puis le développement du système complet à partir de cela, mais le prototypage peut commencer avec n'importe quelle zone à haut risque. Le prototypage évolutif n'est pas la même chose que le prototypage jetable, et faire le bon choix quant au développement d'un prototype évolutif ou d'un prototype jetable est l'une des clés du succès. Parmi les autres clés du succès, citons le recours à des développeurs expérimentés, la gestion des délais et des attentes budgétaires et la gestion de l'activité de prototypage elle-même. (McConnell: Développement rapide: Taming Wild Software Schedules)
Prototypage jetable:
Le prototypage jetable est l'endroit où l'objectif du processus de développement évolutif est de comprendre les exigences du client et donc de développer une meilleure définition des exigences pour le système. Le prototype se concentre sur l'expérimentation des exigences des clients qui sont mal comprises. (Sommerville: Génie logiciel, 8e édition)
Avec Throwaway Prototyping, le code est développé pour explorer les facteurs essentiels au succès du système, puis ce code est jeté. L'implémentation du prototypage utilise des langages de programmation ou des pratiques de développement ou les deux qui sont beaucoup plus rapides que le langage et les pratiques cibles. L'interface utilisateur est prototypée beaucoup plus fréquemment que toute autre partie du système, mais d'autres parties de certains systèmes peuvent également bénéficier d'un prototypage. Lorsqu'elle est utilisée comme aide à la spécification des exigences, la pratique Throwaway Prototyping peut accélérer les projets basés sur des modèles de cycle de vie traditionnels, tels que les projets DoD. Il peut être initié au niveau de la gestion ou au niveau technique. (McConnell: Développement rapide: Taming Wild Software Schedules)