· theory · 7 min read
王道の開発手法!ウォーターフォールモデルの工程をマスター

システム開発の現場で最も伝統的かつ広く採用されている手法、それがウォーターフォールモデルです。
名前の通り、水が滝を流れ落ちるように、前の工程が完了してから次の工程へと進むスタイルが特徴です。試験対策としては、単に名前を覚えるだけでなく、各工程で「何を決めるのか」と、プロジェクトにおけるメリット・デメリットを整理しておくことが重要です。
今回は、ウォーターフォールモデルの全貌を、PASBECASの視点で深掘りします。
Problem:なぜ「順番」が重要なのか?
システム開発において、最も避けたい事態は「ゴールが分からないまま走り出すこと」です。
要件が曖昧なままプログラミングを始めてしまうと、完成間近になって「そんな機能、頼んでないよ!」という致命的な手戻り(仕様のすれ違い)が発生します。特に大規模なシステムでは、この手戻りが数億円規模の損失に繋がることも珍しくありません。
Affinity:経験したことはありませんか?
「とりあえず手を動かしてから考えよう」とした結果、後から根本的なミスに気づき、全てをやり直した経験はありませんか?
- レポートを書き終えた後に、お題を勘違いしていたことに気づく
- 料理を作っている途中で、メインの調味料がないことに気づく
ウォーターフォールは、こうした「後戻りできないリスク」を最小限にするための知恵です。
Solution:工程ごとの「成果物」を明確にする
ウォーターフォールモデルは、一般的に以下の工程で進みます。
1. 要件定義(Requirement Definition)
「何を作るか」をユーザーと合致させる最重要工程です。システムの機能だけでなく、性能やセキュリティなどの非機能要件も決定します。
2. 外部設計 / 内部設計(Design)
「どう作るか」を決めます。
- 外部設計:ユーザーから見える部分(操作画面や帳票など)。
- 内部設計:開発者側の詳細(プログラムの分割方法やデータ構造など)。
3. プログラミング(Coding / Implementation)
設計書に基づき、実際にソースコードを記述します。
4. テスト(Testing)
プログラムが設計通りに動作するかを確認します。単体テスト、結合テスト、システムテスト、運用テスト(受入テスト)の順で進みます。
5. 運用・保守(Maintenance)
完成したシステムを利用し、不具合の修正や機能の追加を行います。
Benefit:計画性と管理のしやすさ
ウォーターフォールモデルの最大の利点は、「計画が立てやすい」ことです。
- 進捗管理が容易:工程が明確に分かれているため、「現在は設計の80%まで完了」といった把握がしやすいです。
- 品質の安定:各工程の終わりにチェック(検収)を行うため、早い段階でミスを検出しやすくなります。
- スキルの標準化:何を作るかが設計書に書かれているため、多くの開発メンバーが参加しやすくなります。
Evidence:大規模開発での圧倒的な実績
日本の銀行、保険、公共インフラなどのミッションクリティカルな大規模システムの多くは、今でもウォーターフォール(あるいはその派生)で開発されています。
「変更が許されない」「高い信頼性が求められる」プロジェクトにおいて、ガチガチに固めた計画と管理は、最も確実な成功ルートだからです。
Contents:試験に出るキーワード
試験では、以下の特徴が問われやすいです。
- 手戻りのコスト:後の工程でミスが発覚するほど、修正コストは跳ね上がります(指数関数的に増加)。
- ドキュメント主義:各工程の成果物として、膨大な設計書や報告書が作成されます。
Agitation:もし計画を無視したら?
「今はアジャイルの時代だから、計画なんて適当でいい」と考えるのは危険です。 ウォーターフォールを理解せずに柔軟な開発はできません。計画の「核」となる工程管理を知らなければ、プロジェクトは例外なく「終わらない沼」に沈みます。
Solution(Hacks):AIを活用した工程管理
現代のウォーターフォールは、AIで効率化できます。
学習ハック:NotebookLMで設計書を読み解く ウォーターフォールの膨大な設計書をNotebookLMにアップロードし、「この設計でセキュリティ上の懸念点はあるか?」「画面設計とデータ定義に矛盾はないか?」と質問してみてください。人間が見逃す「工程間の矛盾」をAIが一瞬で指摘してくれます。
まとめ
ウォーターフォールモデルは、「確実に、計画通りに」システムを作り上げるための王道です。
ITパスポートや基本情報を目指すなら、まずは「要件定義(なに)→設計(どう)→開発(つくる)→テスト(たしかめる)」の流れを、滝のイメージと共に脳内に定着させましょう。
:::tip 試験対策メモ アジャイル開発と比較して「変更に弱い」というデメリットもセットで覚えておきましょう。 :::