予測型アプローチとは何か?ウォーターフォール・モデルに代表される開発アプローチを解説

2022年3月17日

予測型アプローチの概要

ウォーターフォールモデルのイメージ

予測型アプローチとは、スコープやスケジュール、コストなど計画の大部分をプロジェクトの初期段階で立案し、当初計画に沿って開発を進めていくアプローチ方法です。
予測型アプローチでは1つのフェーズを完了させた後に、次のフェーズを開始します。そして原則前のフェーズには戻りません。
この開発の進行が水が下に落ちる様子に似ているため「ウォーターフォール・モデル」「ウォーターフォール型」とも呼ばれます。

予測型アプローチでの開発の進め方

システム開発のVモデル

予測型アプローチでの基本的な開発の進め方は下記の通りです。

  • 要件定義
  • 外部設計
  • 内部設計
  • 開発
  • 単体テスト
  • 結合テスト
  • 総合テスト

システム開発では、上記の進め方をVモデルと呼びます。要件定義が完了したら外部設計に、外部設計が完了したら内部設計にという流れで順番に進めていきます。それぞれのフェーズを簡単に説明します。

要件定義

要件定義では、クライアントにヒアリングを行い、実装したい機能や性能を明確にしていきます。
要件定義でクライアントが必要としている機能、開発側として実現する機能を如何に明確にできるかが、以降のすべてのフェーズの進行を左右します。

外部設計

外部設計では、クライアントの希望に合わせた機能・製品をどのような形で開発していくかを決定します。
開発側は要件定義書を参考にしながら外部設計書を作成していきます。
この外部設計書はクライアントにも共有し、完成品の仕上がりイメージに違いや問題がないかを確認します。

内部設計

内部設計では、開発者や内部者に向けて、どのような開発を行うのかプログラムを動作させるかなどの書類を作成します。
書類には機能が正常に動作した場合だけでなく、たとえば「テキストの打ち間違い」など、正常に操作されなかった場合の処理方法についても記載をしていきます。

開発


ソフトウェア開発では設計を基にプログラマーやエンジニアがプログラミングを行います。

単体テスト

開発した製品の機能単体に不具合がないか、エラーなく作動しているかなどの性能をテストします。テスト内容や結果はテストを実施した証拠として記録していきます。

結合テスト

単体テストに合格した機能同士を結合した上で、問題なく作動するかを確認・評価します。

総合テスト

システムの機能全部を結合させて、製品自体の性能をテストします。製品の機能すべてを組み合わせた際に、エラーや異常がなく動作するかをチェックするのが目的です。

予測型アプローチのメリット・デメリット

予測型アプローチで開発を進めるメリットは、開発の流れがシンプルで進行しやすい点です。要件定義からはじまり、総合テストまでのフェーズを順番に行っていきます。そのため、チーム内で開発の流れを共有しやすく、作業者の混乱が少なく一連の流れに沿って動けます。
一方で、予測型アプローチは不測の事態が発生した際に、即時対応が難しい点がデメリットです。1つのフェーズで問題が発生すると、解決するまで次のフェーズに進めません。また、「単体テストで発見された問題を解消するために内部設計を見直す」というように、プロジェクトを前段階に戻さないといけないという場合、予測型アプローチでは多大なコストと時間が必要になります。

開発の流れがシンプルだというメリットを享受するため、予測型アプローチは見通しが立っている小規模のプロジェクトに向いており、大規模で複雑なプロジェクトには不向きだと言われています。
予測ができないプロジェクトではアジャイル開発に代表される適応型アプローチを採用するとよいでしょう。