使い捨てと進化のプロトタイプの違いは何ですか?


12

プロトタイピングのさまざまな方法についてのメモがあり、インターネットでいくつかの定義を見つけましたが、学んだことを確認したいと思います。

使い捨てプロトタイピングは仕様の概要から開発され、クライアントがその機能に満足するまでさまざまなプロトタイプが提供および変更されることを理解しています。

一方、進化的なプロトタイプは、エンドユーザーから集められた基本的な要件から構築されます。最初のプロトタイプがユーザーに提示され、評価されます。プロトタイプは、クライアントが満足するまでフィードバックに基づいて修正されます。

これは正しいです?使い捨てと進化的プロトタイピングのより良い定義はありますか?


2
多くの場合、プロトタイプは完成品に進化するようではありません。これまでに、使い捨て対進化論について聞いたことがない。
マット

1
こんにちはMifas、これは移行されて申し訳ありませんが、Webから定義を取得した場合、Webに定義が正しいかどうかを確認するよう求めるのは循環的であり、実際にはここでは話題になりません。

1
@MarkTrapp定義を削除した場合、再開できますか?投稿の定義と既存の回答の両方が、フレーズの正式な定義に関して間違っています。Stack Overflowには重複がありますが、ここで見つけることができるものはありません。少なくとも、インターネット上に誤った情報を追加しないことが重要だと思います。
トーマスオーエンズ

@Mifas定義を削除すると、質問の本文はありませんか?Mifasがここの質問に従い、それを更新して彼が何をしようとしているのかを説明すると、これらの定義について尋ねられることになります。それは完全に素晴らしい質問です。

1
@マークファンタスティック。ありがとう。今私の答えに取り組んでいます。
トーマス・オーエンズ

回答:


11

プロトタイピングの両方の方法は、完全に理解していないシステムの側面がある場合に使用されます。ただし、重要な違いは、使用するライフサイクル方法論です。進化的プロトタイピングでは、通常、システムのいくつかの側面を理解し、他の側面については確信が持てません。使い捨てプロトタイピングでは、実稼働対応システムを構築する前に完了する必要があるという一般的な理解が不足しています。

使い捨てのプロトタイピングには多くの種類があり、どちらもシステム全体に限定されないことに注意してください。たとえば、ユーザーインターフェイスの紙またはホワイトボードスケッチを使用することは、使い捨てのプロトタイピングと見なすことができます。はい、何度も繰り返して前の設計を破棄することもできますが、システムで最終的なプロトタイプを使用することもありません(物理的には不可能です)。

一般的なソフトウェアエンジニアリングのトピックとSEの幅に興味がある場合は、引用したSommervilleの本を取り上げることを強くお勧めします。幅広いトピックをカバーするのに非常に便利です。プロセスモデルと方法論、およびそれらをさまざまなプロジェクトに適用する方法にもっと興味がある場合は、McConnellの本をお勧めします。この章には、進化的プロトタイピング専用の章全体と、使い捨てプロトタイピング専用の章があります。

また、ソフトウェアプロトタイプに関するウィキペディアの記事を一目見ました。その一部は少し奇妙です(少なくとも私のクイックリードでは)が、私がまったく反対するものはないようです。特定の側面に焦点を合わせているものもありますが、実際に間違っているわけではありません。私は以下の定義を好みますが、さまざまなタイプのプロトタイピングに関する興味深い読み物になるかもしれません。


進化的プロトタイピング

プロセスの目的が顧客と協力して要件を調査し、最終的なシステムを提供することである探索的開発。開発は、システムの理解されている部分から始まります。システムは、顧客が提案する新しい機能を追加することにより進化します。(サマービル:ソフトウェアエンジニアリング、第8版)


進化的プロトタイピングは、エンドユーザーおよび顧客のフィードバックに応じて容易に変更できるように、システムを段階的に開発するライフサイクルモデルです。ほとんどの進化的プロトタイピングの取り組みは、ユーザーインターフェイスのプロトタイピングから始まり、それから完成したシステムを進化させますが、プロトタイピングはリスクの高い領域から始めることができます。進化的プロトタイピングはスローアウェイプロトタイプと同じではありません。進化的プロトタイプを開発するかスローアウェイプロトタイプを開発するかについて正しい選択をすることが成功の鍵の1つです。他の成功の鍵には、経験豊富な開発者の使用、スケジュールと予算の予想の管理、およびプロトタイプ作成アクティビティ自体の管理が含まれます。(McConnell:迅速な開発:ワイルドソフトウェアスケジュールの調整)


使い捨てプロトタイピング:

使い捨てプロトタイピングは、進化的開発プロセスの目的が顧客の要件を理解することであり、システムのより良い要件定義を開発することです。プロトタイプは、あまり理解されていない顧客の要件の実験に集中しています。(サマービル:ソフトウェアエンジニアリング、第8版)


Throwaway Prototypingを使用すると、システムの成功に不可欠な要因を調査するためのコードが開発され、そのコードは破棄されます。プロトタイピングの実装では、プログラミング言語または開発プラクティス、あるいはその両方が、ターゲット言語とプラクティスよりもはるかに高速に使用されます。ユーザーインターフェイスは、システムの他の部分よりもはるかに一般的にプロトタイプ化されていますが、一部のシステムの他の部分もプロトタイプ化の恩恵を受けることができます。Throwaway Prototypingプラクティスを要件仕様の補助として使用すると、DoDプロジェクトなどの従来のライフサイクルモデルに基づいたプロジェクトを高速化できます。管理レベルまたは技術レベルで開始できます。(McConnell:迅速な開発:ワイルドソフトウェアスケジュールの調整)


-2

使い捨てのプロトタイピング-これにより、システムのごく一部が開発され、顧客およびエンドユーザーに提供され、試用および評価されます。ユーザーは、メインシステムの開発に迅速に協力できるフィードバックを提供します。

進化的プロトタイピング-エンドユーザーと顧客のフィードバックに応じて容易に変更できるように、システムを段階的に開発するライフサイクルモデルです


1
この質問は2011年に尋ねられました。あなたの答えは、すでに与えられた答えにあまり追加されません。
ヤンDoggen
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.