Beide Methoden des Prototyping werden verwendet, wenn Sie einen Aspekt des Systems nicht vollständig verstehen. Der Hauptunterschied ist jedoch die von Ihnen verwendete Lebenszyklusmethode. Mit evolutionärem Prototyping verstehen Sie normalerweise einige Aspekte des Systems und sind sich bei anderen nicht sicher. Beim Einweg-Prototyping besteht ein allgemeines Unverständnis, das Sie abschließen müssen, bevor Sie ein produktionsfertiges System erstellen können.
Beachten Sie, dass es viele Arten von Einweg-Prototypen gibt und keine auf das gesamte System beschränkt ist. Die Verwendung von Papier- oder Whiteboard-Skizzen einer Benutzeroberfläche kann beispielsweise als Wegwerfprototyp angesehen werden. Ja, Sie könnten mehrere Iterationen durchlaufen und ein vorheriges Design wegwerfen, aber Sie werden auch nicht den endgültigen Prototyp im System verwenden (dies ist physikalisch nicht möglich).
Wenn Sie sich für allgemeine Softwareentwicklungsthemen und die Breite von SE interessieren, empfehle ich dringend, das von mir zitierte Sommerville-Buch zu lesen. Es ist wirklich gut, um die Breite der Themen abzudecken. Wenn Sie mehr an Prozessmodellen und -methoden interessiert sind und wissen möchten, wie Sie sie auf verschiedene Projekte anwenden können, würde ich das McConnell-Buch empfehlen. Es enthält ein ganzes Kapitel über evolutionäres Prototyping und ein weiteres Kapitel über wegwerfbares Prototyping.
Ich habe auch einen kurzen Blick auf den Wikipedia-Artikel über Software-Prototyping geworfen . Einige Teile davon sind etwas seltsam (zumindest beim schnellen Lesen), aber es scheint nichts zu geben, mit dem ich überhaupt nicht einverstanden bin. Einiges davon konzentriert sich ein wenig auf einen bestimmten Aspekt, aber ich sehe, dass es nicht faktisch falsch ist. Ich bevorzuge die Definitionen unten, aber es könnte eine interessante Lektüre über verschiedene Arten von Prototypen sein.
Evolutionäres Prototyping
Explorative Entwicklung, bei der das Ziel des Prozesses darin besteht, mit dem Kunden zusammenzuarbeiten, um dessen Anforderungen zu untersuchen und ein endgültiges System zu liefern. Die Entwicklung beginnt mit den Teilen des Systems, die verstanden werden. Das System entwickelt sich durch Hinzufügen neuer vom Kunden vorgeschlagener Funktionen. (Sommerville: Software Engineering, 8. Ausgabe)
Evolutionary Prototyping ist ein Lebenszyklusmodell, bei dem das System schrittweise entwickelt wird, sodass es problemlos an das Feedback von Endbenutzern und Kunden angepasst werden kann. Die meisten Evolutions-Prototyping-Bemühungen beginnen mit der Erstellung von Prototypen für die Benutzeroberfläche und der anschließenden Weiterentwicklung des fertigen Systems. Prototyping kann jedoch in jedem risikoreichen Bereich beginnen. Evolutionäres Prototyping ist nicht dasselbe wie Wegwerfprototyping, und die richtige Wahl, ob ein evolutionärer Prototyp oder ein Wegwerfprototyp entwickelt werden soll, ist ein Schlüssel zum Erfolg. Weitere Schlüssel zum Erfolg sind die Verwendung erfahrener Entwickler, die Verwaltung von Zeitplan- und Budgeterwartungen sowie die Verwaltung der Prototyping-Aktivitäten selbst. (McConnell: Rapid Development: Zeitpläne für wilde Software zähmen)
Einweg-Prototyping:
Beim Einweg-Prototyping besteht das Ziel des evolutionären Entwicklungsprozesses darin, die Kundenanforderungen zu verstehen und eine bessere Anforderungsdefinition für das System zu entwickeln. Der Prototyp konzentriert sich auf das Experimentieren mit den Kundenanforderungen, die schlecht verstanden werden. (Sommerville: Software Engineering, 8. Ausgabe)
Mit Throwaway Prototyping wird Code entwickelt, um Faktoren zu untersuchen, die für den Erfolg des Systems entscheidend sind, und dieser Code wird dann weggeworfen. Die Prototyping-Implementierung verwendet Programmiersprachen oder Entwicklungsmethoden oder beides, die viel schneller sind als die Zielsprache und -methoden. Die Benutzerschnittstelle wird weitaus häufiger als jeder andere Teil des Systems als Prototyp erstellt, aber auch andere Teile einiger Systeme können vom Prototyp profitieren. Bei Verwendung als Anforderungsspezifikationshilfe kann das Throwaway Prototyping-Verfahren Projekte beschleunigen, die auf traditionellen Lebenszyklusmodellen basieren, z. B. DoD-Projekte. Es kann entweder auf Management- oder auf technischer Ebene initiiert werden. (McConnell: Rapid Development: Zeitpläne für wilde Software zähmen)