Adaptive-software-development-sdlc-waterfall-model
提供:Dev Guides
SDLC-ウォーターフォールモデル
Waterfallモデルは、広く知られ、理解され、一般的に使用されている古典的なSDLCモデルです。 1970年にRoyceによって導入され、業界全体のさまざまな組織におけるソフトウェア開発の一般的なアプローチとして引き続き採用されています。
ウォーターフォールモデルでは、各ライフサイクルフェーズは、以前のライフサイクルフェーズが完了した後にのみ開始できます。 したがって、フィードバックループのない線形モデルです。
ウォーターフォールモデル–強み
ウォーターフォールモデルの強みは次のとおりです-
- わかりやすく、使いやすい。
- 経験の浅い開発チームに構造を提供します。
- マイルストーンはよく理解されています。
- 要件の安定性を設定します。
- 管理制御(計画、監視、レポート)に最適です。
- コストやスケジュールよりも品質が重要な場合に有効です。
ウォーターフォールモデル–弱点
滝モデルの弱点または欠点は-
- 理想化-現実とうまく一致しません。
- 非現実的-プロジェクトの初期段階で正確な要件を期待することはできません。
- より一般的な探索的開発の反復的な性質を反映していません。
- 変更が難しく、費用がかかります。
- ソフトウェアはプロジェクトの最後にのみ配信されます。 このため-
- 重大な欠陥の発見を遅らせます。
- 廃止された要件の配信の可能性。
- 小規模なチームやプロジェクトではコストがかかる可能性のある、大きな管理オーバーヘッド。
- アナリスト、デザイナー、開発者、テスターなど、あらゆる段階で経験豊富なリソースが必要です。
- テストが開始されるのは、開発が完了し、テスターが以前のフェーズに関与していない場合のみです。
- 各フェーズはサイロで実行されるため、部門を超えたチームの専門知識は共有されません。
ウォーターフォールモデルを使用する場合
以下の場合、ウォーターフォールモデルを使用できます。
- 要件はよく知られています。
- 製品の定義は安定しています。
- 技術はよく理解されています。
- 既存の製品の新しいバージョン。
- 既存の製品を新しいプラットフォームに移植する。
- 構造化された機能横断型チームを備えた大規模な組織。
- コミュニケーションチャネルは、組織内および顧客とも確立されています。
進化的プロトタイピングモデル
Evolutionary Prototypingモデルを使用したソフトウェア開発では、開発者は要件フェーズでプロトタイプを構築します。 その後、エンドユーザーはプロトタイプを評価し、フィードバックを提供します。 フィードバックは、プロトタイプの修正または追加機能です。 フィードバックに基づいて、開発者はプロトタイプをさらに改良します。
したがって、製品は、Prototype→Feedback→Refined Prototype Cycles、したがってEvolutionary Prototypingという名前で進化します。 ユーザーが機能と製品の動作に満足すると、プロトタイプコードが最終製品の配信に必要な標準に引き上げられます。
進化的プロトタイピングモデル–強み
進化的プロトタイプモデルの長所または利点は次のとおりです-
- 顧客/エンドユーザーは、プロトタイプを見て収集されたシステム要件を視覚化できます。
- 開発者は顧客から学習するため、ドメインまたは本番環境に関する曖昧さはありません。
- 柔軟な設計と開発が可能です。
- プロトタイプとの相互作用は、追加で必要な機能の認識を刺激します。
- 予期しない要件と要件の変更に簡単に対応できます。
- 着実かつ目に見える進歩の兆候が生まれます。
- 正確で保守可能な最終製品の提供。
進化的プロトタイピングモデル–弱点
進化的プロトタイプモデルの弱点または欠点は次のとおりです-
- コードと修正の開発で構造化開発を放棄する傾向がありますが、それはモデルで規定されているものではありません。
- このモデルは、手っ取り早い方法で評判が悪い。
- 全体的な保守性はおそらく見落とされる可能性があります。
- 顧客は、開発者が最終ステップを実行する機会を与えずに、おそらく最終版としてプロトタイプの提供を要求できます。 最終製品の標準化。
- プロジェクトは永久に継続することができ(継続的なスコープクリープを伴う)、経営者はそれを評価しないかもしれません。
進化的プロトタイピングモデルを使用する場合
あなたは進化的プロトタイプモデルを使用することができます-
- 要件が不安定な場合、または明確にする必要がある場合
- ウォーターフォールモデルの要件の明確化段階として
- ユーザーインターフェイスを開発するには
- 短命のデモンストレーション用
- 新規またはオリジナルの開発用
- 新しい技術を実装するために