ウォーターフォールモデルとは何か?各工程は?メリットとデメリット

スポンサーリンク
ソフトウェア開発のライフサイクル
スポンサーリンク

ウォーターフォールモデルとは?工程は?

ウォーターフォールモデルは、ソフトウェア開発で古くからあり、最も普及した開発方法です。

この開発手法では、開発が滝の流れのように流れ、後に戻らないという特徴があります。

 

ウォーターフォールモデルでは、以下の工程、フェーズがあります。

  • 要件定義(要求分析)
  • 外部設計(基本設計)
  • 内部設計(機能設計)
  • 詳細設計(プログラム設計)
  • 開発
  • 単体テスト
  • 統合テスト

 

これらの工程を見てみましょう。

要件定義 (要求分析)

要件定義 (Requirement Definition、RD) とは、システムやソフトウェアの開発において、実装すべき機能や満たすべき性能などを明確にしていく作業のことです。

ユーザ部門から要求を引き出し、システムに実装するべき機能を整理します。

要件定義フェーズでは、成果物として要件定義書を作成します。

 

基本設計 (外部設計)

基本設計 (Basic Design、BD) とは、システムを外から見たときどういう動きをするか(=外部設計、What) を決めるものです。

基本設計フェーズでは、成果物として基本設計書を作成します。

 

詳細設計 (内部設計)

詳細設計 (Detail Design) とは、基本設計で決められた動きを、どうやって実現するか(=内部設計、How) を決めるものです。

詳細設計フェーズでは、成果物として詳細設計書を作成します。

 

開発、コーディング、プログラミング

開発 (Development) とは、コーディング、プログラミングを行ってシステムを開発するフェーズです。

プログラマが、詳細設計書やデータベース定義を元にプログラムを作成することになり、仕様の通りに製造します。

開発フェーズは、製造と呼ばれることもあります。

開発フェーズでは、成果物としてプログラムを作成します。

 

単体テスト

単体テスト (Unit Test、UT、Part Test、PT) では、モジュールを一つずつ検査します。

詳細設計書を元に単体テスト仕様書を作成します。

テスターは、単体テスト仕様書に基づいたテストを実施し、バグがあれば実装者、プログラマーにモジュールを修正してもらいます。

単体テストフェーズでは、成果物として単体テスト報告書を作成します。

 

統合テスト

統合テスト (Integration Test、IT、System Test、ST) とは、完成したシステムに対してテストを行います。

システムテストとも言います。

顧客の動作環境でテストすることもあり、要件定義レベルのシステム要件がきちんと満たされているかを確認します。

統合テストフェーズでは、成果物としてシステムテスト報告書を作成します。

 

UATとは

UAT(User Acceptance Test)とは、ユーザーの受け入れテストのことです。

受け入れテストは、システム開発を発注した顧客企業側で行うテストです。

要求した機能や性能を満たしているかをテストします。

開発側で行ったシステムテストと同等のレベルでテストが行われます。

 

ただし、統合テストに顧客が立ち会う場合も多く、この場合は、統合テストを受け入れテストと見なすことで、UATを別途行わないこともあります。

 

統合テスト後の本番が稼動することを、本番稼働、カットオーバー(C/O)と呼びます。

ウォーターフォールモデルのメリット、デメリット

ウォーターフォールモデルのメリット

ウォーターフォールモデルの最大のメリットは、後戻りしないことにあると言えるでしょう。

各工程での成果を確実に文書化し、承認した上で次の工程へ進むので、成果物が確実に残る点や、工程と対応する成果物が明確で進捗を管理しやすいというメリットもあります。

そのため、数多くの適用事例があり、一般的なシステム開発プロジェクトの経験者であればほとんどの場合は経験済みの手法なので、多くの説明をせずに理解してもらうことができます。

当然、ウォーターフォールモデルでのプロジェクト管理経験が豊富なマネージャーも少なくないですから、プロジェクトマネージャーの確保がしやすいというのもメリットです。

 

ウォーターフォールモデルのデメリット

ウォーターフォールモデルのメリットは、裏を返すとデメリットになります。

 

つまり、ウォーターフォールモデルのデメリットは、前工程に手戻りすることを想定していないということです。

実際のシステム開発の現場では、契約時や要件定義時では明確ではなかった想定外の顧客の要望やニーズが、仕様を詳細化していく段階で明確になることが多々あります。

ユーザーの受け入れテスト(UAT)の段階で明確になることすらあります。

このように現場では、ITベンダー側ではコントロールしきれない要因で手戻りが必要になることがあるのですが、ウォーターフォールモデルではこの点を考慮されていないので、手戻りが発生すると納期遅延や予算超過へと繋がっていきます。

 

 

コメント

タイトルとURLをコピーしました