it-swarm.dev

Was sind die Unterschiede zwischen Wegwerf- und Evolutionsprototypen?

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

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

Auf der anderen Seite werden evolutionäre Prototypen aus den grundlegenden Anforderungen der Endbenutzer erstellt. Ein erster Prototyp wird den Benutzern 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?

12
Mifas

Beide Methoden des Prototyping werden verwendet, wenn es einen Aspekt des Systems gibt, den Sie nicht vollständig verstehen. Der Hauptunterschied ist jedoch die von Ihnen verwendete Lebenszyklusmethode. Beim evolutionären Prototyping verstehen Sie normalerweise einige Aspekte des Systems und sind sich über andere nicht sicher. Beim Wegwerfprototyping haben Sie einen allgemeinen Mangel an Verständnis, den Sie abschließen müssen, bevor Sie ein produktionsfähiges System erstellen können.

Beachten Sie, dass es viele Arten von Wegwerfprototypen gibt und beide nicht auf das gesamte System beschränkt sind. Die Verwendung von Papier- oder Whiteboard-Skizzen einer Benutzeroberfläche kann beispielsweise als wegwerfbares Prototyping betrachtet werden. Ja, Sie können mehrere Iterationen durchlaufen und ein vorheriges Design wegwerfen, aber Sie werden auch nicht den endgültigen Prototyp im System verwenden (zum einen ist dies physikalisch nicht möglich).

Wenn Sie sich für allgemeine Themen der Softwareentwicklung und die Breite von SE interessieren, würde ich Ihnen dringend empfehlen, das von mir zitierte Sommerville-Buch in die Hand zu nehmen. Es ist wirklich gut, um die Breite der Themen abzudecken. Wenn Sie sich mehr für Prozessmodelle und -methoden interessieren und wie Sie sie auf verschiedene Projekte anwenden können, würde ich das McConnell-Buch empfehlen - es enthält ein ganzes Kapitel zum evolutionären Prototyping und ein weiteres Kapitel zum Wegwerfprototyping.

Ich habe auch einen kurzen Blick auf den Wikipedia-Artikel zum 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 es ist nicht sachlich falsch, dass ich sehe. Ich bevorzuge die folgenden Definitionen, aber es könnte eine interessante Lektüre über verschiedene Arten von Prototyping 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 bereitzustellen. 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 leicht als Reaktion auf Endbenutzer- und Kundenfeedback geändert werden kann. Die meisten evolutionären Prototyping-Bemühungen beginnen mit dem Prototyping der Benutzeroberfläche und der anschließenden Weiterentwicklung des fertigen Systems. Das Prototyping kann jedoch in jedem Bereich mit hohem Risiko beginnen. Evolutionäres Prototyping ist nicht dasselbe wie Throwaway Prototyping, 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: Schnelle Entwicklung: Wild Software-Zeitpläne zähmen)


Wegwerf-Prototyping:

Beim Throwaway-Prototyping besteht das Ziel des evolutionären Entwicklungsprozesses darin, die Anforderungen des Kunden zu verstehen und damit eine bessere Anforderungsdefinition für das System zu entwickeln. Der Prototyp konzentriert sich darauf, mit den Kundenanforderungen zu experimentieren, die wenig 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 Entwicklungspraktiken oder beides, die viel schneller sind als die Zielsprache und -praktiken. Die Benutzeroberfläche wird weitaus häufiger als jeder andere Teil des Systems als Prototyp erstellt, aber auch andere Teile einiger Systeme können vom Prototyping profitieren. Bei Verwendung als Anforderungsspezifikationshilfe kann die Throwaway Prototyping-Praxis Projekte beschleunigen, die auf traditionellen Lebenszyklusmodellen wie DoD-Projekten basieren. Es kann entweder auf Management- oder auf technischer Ebene initiiert werden. (McConnell: Schnelle Entwicklung: Wild Software-Zeitpläne zähmen)

11
Thomas Owens