Was sind die Unterschiede zwischen wegwerfbaren und evolutionären Prototypen?

12

Ich habe Notizen zu verschiedenen Methoden des Prototyping und habe im Internet verschiedene Definitionen gefunden, möchte aber bestätigen, was ich gelernt habe.

Ich verstehe, dass das Einwegprototyping aus einem Entwurf einer Spezifikation entwickelt wird, verschiedene Prototypen geliefert und modifiziert werden, bis der Kunde mit seiner Funktionalität zufrieden ist.

Zum anderen basieren evolutionäre Prototypen auf den grundlegenden Anforderungen der Endbenutzer. Den Anwendern wird ein erster Prototyp vorgestellt und bewertet. Der Prototyp wird basierend auf dem Feedback geändert, bis der Kunde zufrieden ist.

Ist das richtig? Gibt es bessere Definitionen für Wegwerf- und evolutionäres Prototyping?

Thomas Owens
quelle
2
In den meisten Fällen scheint der Prototyp sich zum fertigen Produkt zu entwickeln. Ich habe noch nie so richtig von Wegwerf gegen Evolution gehört.
Es ist der
1
Hallo Mifas, es tut mir leid, dass dies migriert wurde, aber wenn Sie Ihre Definitionen aus dem Web erhalten haben, ist es zirkulär und nicht wirklich thematisch.
1
@MarkTrapp Wenn wir die Definitionen entfernt hätten, könnten wir sie erneut öffnen? Sowohl die Definitionen im Beitrag als auch die vorhandene Antwort sind hinsichtlich der formalen Definition des Ausdrucks falsch. Es gibt Duplikate bei Stack Overflow, aber keine, die ich hier finden kann, und ich denke, es ist wesentlich, zumindest keine falschen Informationen im Internet zu veröffentlichen.
Thomas Owens
@Mifas Wenn Sie die Definitionen entfernen, gibt es keinen Text für die Frage, oder? Wenn Mifas der Frage hier folgen und sie aktualisieren würde, um zu erklären, was er versucht, was ihn dazu bringt, nach diesen Definitionen zu fragen, wäre das eine sehr gute Frage.
1
@Mark Fantastic. Vielen Dank. Ich arbeite jetzt an meiner Antwort.
Thomas Owens

Antworten:

11

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)

Thomas Owens
quelle
-2

Einweg-Prototyping - hiermit wird ein kleiner Teil des Systems entwickelt und dann an Kunden und Endbenutzer weitergegeben, um es auszuprobieren und zu bewerten. Der Benutzer gibt das Feedback, das schnell in die Entwicklung des Hauptsystems einfließen kann

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

Samuel
quelle
1
Diese Frage wurde im Jahr 2011 gestellt. Ihre Antwort fügt den bereits gegebenen Antworten nicht viel hinzu.
Jan Doggen