FE EXAM

ウォーターフォールモデル(滝のように工程を順番に)

工程を上流から下流へ順番に進めるソフトウェア開発モデル。

DIAGRAM
各工程
下流への流れ
要件定義何を作るかを決める1設計作り方を図面に落とす2実装プログラムを書く3テスト動作を検証する4運用・保守稼働後に手入れする5上流(前工程)→ 下流(後工程)へ一方向に流れる
解説

📌
ウォーターフォールとは

工程1工程2工程3水が滝のように上から下へ落ちていくイメージ

ウォーターフォールモデルとは、ソフトウェアを作るときに工程を上流から下流へ順番に進めていく開発の進め方のことです。ウォーターフォール(waterfall)は「滝」という意味で、水が滝のように上から下へ流れる様子になぞらえています。

身近な例で考えると、家を建てる工事に似ています。「どんな家にするか決める→設計図を描く→基礎を作る→建てる→完成チェック」という順番を守り、いきなり屋根から作ったりはしませんよね。ソフト開発も同じで、前の工程が終わってから次へ進みます。

上の図解では、各工程が階段のように一段ずつ下へつながっています。原則として前の工程には戻らないのがこのモデルの大きな特徴です。

📌
工程の流れ

要件設計実装テスト

ウォーターフォールでは、ソフトを作る作業を次のような工程(フェーズ)に分け、上流から下流へ順番に進めます。
要件定義:利用者が何をしたいかを聞き取り、作るものを決める
設計:要件を実現する仕組みを図面(設計書)に落とす
実装(プログラミング):設計書をもとにプログラムを書く
テスト:作ったものが正しく動くか検証する
運用・保守:実際に使い始め、不具合の修正や改善を続ける

各工程の終わりには成果物(ドキュメントやプログラム)が作られ、それをチェックして問題なければ次の工程へ進みます。工程の区切りがはっきりしているため、いまどこまで進んだかが分かりやすいモデルです。

📌
利点と欠点

利点進捗が明確欠点手戻りが大きい

利点は次のとおりです。
進捗が分かりやすい:工程の区切りが明確で、どこまで進んだか把握しやすい
計画が立てやすい:工程ごとに必要な人や期間を見積もりやすい
大人数で分担しやすい:成果物(ドキュメント)が残るため引き継ぎがしやすい

一方で欠点もあります。
手戻りが大きい:後の工程で要件の誤りが見つかると、上流に戻ってやり直す負担が大きい
柔軟性が低い:途中で仕様を変えにくく、変化の多い開発には向かない
動くものが遅い:最後のテスト工程まで実際に動くソフトが出てこない

そのため、要件が最初から固まっている大規模な開発に向いています。逆に要件が変わりやすい場合は、後で学ぶスパイラルモデルやアジャイル開発のほうが適しています。

📌
後戻りが大きくなる仕組み

要件設計実装テストテストで発覚 → 要件まで戻る間に作ったものをすべてやり直す

後戻りの負担が大きくなる理由は、各工程が前の工程の成果物(=文書やプログラム)の上に積み重なっているからです。

例えば、テストの段階で「要件の決め方が間違っていた」と気づいた場合、次のすべてをやり直す必要があります。
要件定義を作り直す
・要件をもとにした設計書を作り直す
・設計をもとに書いたプログラムを作り直す
・そして改めてテストを行う

家の建築に例えると、屋根まで作ってから「間取りが違う」と気づくようなもの。全部壊してやり直すことになります。だからウォーターフォールでは最初の要件定義を丁寧に固めることがとても重要で、「後で変わるかもしれない」要件には向かないのです。

📌
3つの開発モデルを比べると

WF完成後戻りなし・1回で進むスパイラル完成反復あり・リスク重視WF=ウォーターフォール

ソフトウェア開発モデルには、このページで学んだウォーターフォールのほか、スパイラルモデル・プロトタイピングモデルがあります。3つの最大の違いは「後戻り・反復ができるかどうか」です。

モデル後戻り反復リスク対応向く開発
ウォーターフォール原則なしなし低い要件が固い
スパイラルあり(サイクル内)あり高い不確実・大規模
プロトタイピングあり(試作を繰り返す)あり中程度要件があいまい

ウォーターフォールは「最初から最後まで一本道」のイメージです。道が決まっているから速く進めるのが強みですが、途中で道を変えるのは難しいです。スパイラルとプロトタイピングはどちらも繰り返しがある点では似ていますが、スパイラルはリスクを見極めながら大きな開発を進めるもの、プロトタイピングは利用者に見せて要件を固めることを目的とする点が違います。

練習問題

🎯
基本情報技術者 練習問題

Q1.ウォーターフォールモデルの説明として最も適切なものはどれか。
A.工程を上流から下流へ順番に進め、原則として前の工程には戻らない
B.試作品を作って利用者の評価を繰り返しながら進める
C.リスク評価を繰り返しながら螺旋状に開発する
D.短い反復で動くソフトを素早く作り直していく
Q2.ウォーターフォールモデルの欠点として最も適切なものはどれか。
A.進捗管理がしづらい
B.後の工程で要件の誤りが見つかると手戻りが大きい
C.工程の区切りがあいまいになる
D.ドキュメントを作らないため引き継ぎが難しい
Q3.ウォーターフォールモデルにおいて、最初に行う工程はどれか。
A.実装
B.テスト
C.要件定義
D.設計

関連コンテンツ

ウォーターフォールモデル | Vizigo