J'ai des notes sur diverses méthodes de prototypage, et j'ai trouvé plusieurs définitions sur Internet, mais je voudrais confirmer ce que j'ai appris.
Je comprends que prototypage jetable est développé à partir d'un aperçu d'une spécification, divers prototypes sont livrés et modifiés jusqu'à ce que le client soit satisfait de ses fonctionnalités.
De l'autre, et prototypes évolutifs sont construits à partir des exigences de base recueillies auprès des utilisateurs finaux. Un premier prototype est présenté aux utilisateurs et évalué. Le prototype est modifié en fonction des commentaires jusqu'à ce que le client soit satisfait.
Est-ce correct? Existe-t-il de meilleures définitions du jetable et du prototypage évolutif?
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 au article Wikipedia sur le prototypage logiciel . 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 une erreur factuelle 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.
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: Software Engineering, 8th Edition)
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. Les autres clés du succès incluent le recours à des développeurs expérimentés, la gestion des prévisions de calendrier et de budget et la gestion de l'activité de prototypage elle-même. (McConnell: Rapid Development: Taming Wild Software Schedules)
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: Software Engineering, 8th Edition)
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: Rapid Development: Taming Wild Software Schedules)