デメリット開発に時間がかかる。工程順に開発を行うため、一般的に後戻りができない。万一後戻りが生じれば、時間的・工数的ロスが大きく、効率が著しく低下する。仕様が不明確な場合や、複雑で理解しにくいものには不向きである。要求仕様との差が開発終了間際で発見されることも多い。開発初期に短期間で暫定的に動作可能な試作品を完成し、要求仕様の確認・評価、ユーザーインタフェースの確定や性能確認を行い、後続段階での仕様変更による手戻りを防ぐ手法。プロトタイプの種類によって次の2つに分類できる。簡単な試作品目的だけのプロトタイプを作成し、改めて本格的なシステムを開発する。改良型(積み上げ型)洗練度の高いプロトタイプを作成し、改良を繰り返しながら最終的なシステムを開発する。プロトタイピングのメリットとデメリットは次が挙げられる。メリット試作品や雛形に基づいてユーザーと開発者が機能・操作性などを確認してから本格的なシステム開発を行うので、利用部門と開発部門との認識・解釈のずれや曖昧さを取り除くことができる。ユーザーのシステムに関する興味や関心が深くなり、運用への移行がスムーズに行われ、結果としてユーザーニーズに合ったシステムができる。開発者も段階的に経験を積むことにより、能力向上と自信の強化が図れる。ユーザーが説明しにくく、開発者が理解し難いシステム開発に適しているほか、プロトタイプに基づく正確な見積もりができる。デメリット試作品を簡単に作成できるツールが必要である。†ツールによる超短期でプロトタイプ作成を繰り返す手法。†=エボリューショナルモデル早期に核となる小さなシステムを開発し、その後、機能の追加ややんこうなどの開発を繰り返しながら、成長させていくプロセスモデルである。ウォータフォールモデルは要求仕様の変更に柔軟に対処できないという最大の欠点があった。それを解決するようにしたのが成長モデルである。成長モデルは、利用者の要求仕様の変更がある度に、ソフトウェア開発工程を繰り返し行う。何度も繰り返すことにより、ソフトウェアプロセスが成長していく。成長モデルのメリットとデメリットは次が挙げられる。メリット変更の要求に対応するので、ソフトウェア開発の実際場面にのっとっている。デメリット完成するまでに何度も繰り返すので、開発工数や費用の見積もりが困難であるなど、開発管理がしづらい。独立性の高いサブシステムごとにシステム設計、プログラミング、テストの工程を繰り返しながら、徐々に開発範囲を拡大し、改良を加えて全体を完成させる手法。各サブシステムの要求定義や外部使用の明確化・確認のためにプロトタイプを使用し、その後ウォータフォールモデルで開発を行う。ウォータフォールモデルと成長モデルの利点を取り入れていることになる。必要なシステムが早期に利用可能となる。スパイラルモデルのメリットとデメリットは次が挙げられる。メリット顧客の要求と最終実装が乖離しないという特長を持つ。開発の最初の段階にプロトタイプモデルを活用すると、利用者に使いやすいソフトウェアの開発が容易になる。サブシステム毎に順次開発していくので、後戻りも起こりにくく、また一度に多くの要員を必要としない。技術者の確保がやりやすい。ユーザー要求やニーズが反映されやすく、さらに開発者とユーザー両者の開発・運用経験が次の開発に活かされる。デメリット開発フェーズを独立したサブシステム単位にする必要がある。†システムを独立性の高いいくつかのサブシステムに分割して、サブシステムごとに順次開発、リリースしていくプロセスモデルである。サブシステムの開発が並列進行する点が、スパイラルモデルと異なる。最初にシステム全体の要求定義を行い、要求された機能をいくつかに分割して段階的にリリースするので,すべての機能がそろっていなくても、最初のリリースからシステムの動作の確認をすることができる。†システム全体のプロトタイプを最初に作り、それをバージョンアップしていく。スパイラルモデルは、部分毎にプロトタイプ、バージョンアップとしながら全体を作っていくので、この点で異なる。†ソフトウェア開発工程を作業ごとに分割し、それぞれ発注側と受注側で契約を交わしながら開発を進めていく手法。受注者は、提案書・開発の成果物などを提出する。この手続きを形式的な契機にして、互いに取り交わしてソフトウェア開発をしていく。契約モデルでは、ソフトウェアの分割が容易になり、開発管理もしやすい。機能設計(3272d)。