はじめに
幽灯子/基本情報技術者副専門官IT業界で働く人なら一度は耳にする「ウォーターフォール」「アジャイル」といった言葉。これらはソフトウェア開発モデルと呼ばれるもので、「どうやってシステムやアプリを作るか」という手順や進め方のことです。
基本情報技術者試験でも頻出のテーマですが、実はITに詳しくない人でも身近な例で理解できます。今回はそれぞれの開発モデルをわかりやすく解説します。
そもそもソフトウェア開発モデルとは?





家を建てることを想像してみてください。設計図を作って、基礎を作って、壁を建てて、内装を整えて…と順番に進めますよね。同じように、ソフトウェアを作るときも「どの順番で何をやるか」という設計図=開発モデルがあります。
ソフトウェア開発の主な工程は次の通りです。
- 要件定義:「何を作るか」を決める
- 設計:「どうやって作るか」を考える
- 実装(プログラミング):実際にコードを書く
- テスト:ちゃんと動くか確認する
- リリース・運用:世に出して維持する
開発モデルとは、この工程をどんな順番・やり方で進めるかをまとめたものです。
① ウォーターフォールモデル ─ 王道の「順番どおり」型
どんなモデル?
ウォーターフォール(滝)という名前の通り、水が上から下に流れるように、工程を上から順番に一つずつ進めていく方法です。要件定義→設計→実装→テスト→リリース、と各工程が完全に終わってから次に進みます。
わかりやすい例え
「旅行の計画を立てる」と似ています。「行き先を決める→ホテルを予約する→交通手段を手配する→荷物を準備する→出発!」という順番で、前の工程が完了しないと次に進めません。
メリット
- 進捗が管理しやすく、どこまで終わったかが一目でわかる
- 大規模プロジェクトや官公庁のシステム開発に向いている
- ドキュメント(設計書など)がしっかり残る
デメリット
- 途中で「やっぱり仕様を変えたい」となると、前の工程に戻るのが大変
- 最初の要件定義の段階で全てを決めないといけないので、後から変更に対応しにくい
- 完成品を見るのが最後になるため、「こんなのじゃなかった…」となるリスクがある
試験ポイント
「各工程を順番に進める」「前工程が完了してから次へ」「変更に弱い」がキーワードです。
② プロトタイプモデル ─ 「試作品」を見せながら進める型
どんなモデル?
最初から完成品を作るのではなく、まずプロトタイプ(試作品)を素早く作って、ユーザーに確認してもらい、フィードバックを受けながら改善していくモデルです。
わかりやすい例え
洋服を作るときに、まず安い布で「仮縫い」を作り、着てもらって「ここをもう少し広げて」「丈を短くして」と調整してから本番を縫う、というイメージです。
メリット
- ユーザーが実際に触ってみて確認できるため、認識のずれが減る
- 要件が曖昧なときに有効
- 早い段階で問題を発見できる
デメリット
- プロトタイプ作成に時間とコストがかかる
- プロトタイプがそのまま本番になってしまうことがあり、品質が下がるリスクがある
③ スパイラルモデル ─ 「螺旋」のように繰り返す型
どんなモデル?
スパイラル(螺旋)モデルは、開発を小さなサイクル(ループ)に分けて繰り返す方法です。1回のサイクルで「計画→リスク分析→開発→評価」を行い、それを何度も繰り返して機能を追加・改善していきます。
わかりやすい例え
山を登るときにジグザグに登るイメージです。一気に頂上を目指すのではなく、一段一段確認しながら登っていきます。
メリット
- リスクを早期に発見・対処できる
- 大規模で複雑なシステムに適している
- 途中での仕様変更に対応しやすい
デメリット
- 管理が複雑でコストがかかりやすい
- プロジェクト全体のスケジュールが読みにくい
④ アジャイル開発 ─ 「小さく・速く・柔軟に」型
どんなモデル?
アジャイル(Agile)とは「機敏な・素早い」という意味です。開発を短い期間(スプリント)に区切り、その期間ごとに機能を追加・改善していく現代的な開発方法です。スクラム(Scrum)やXP(エクストリームプログラミング)などが代表的な手法です。
わかりやすい例え
料理番組でシェフが「まず前菜を一皿作って出す→次に主菜を作る→デザートを加える」と、コース料理を少しずつ提供するイメージです。完成形を一度に出すのではなく、小さな「完成品」を積み重ねていきます。
スクラムのキーワード
- スプリント:1〜4週間程度の短い開発サイクル
- プロダクトバックログ:作りたい機能の一覧
- スプリントレビュー:各スプリント終わりに成果を確認する会
メリット
- 変化する要件にすぐ対応できる
- ユーザーとこまめにコミュニケーションを取れる
- 早い段階で動くものをリリースできる
- スタートアップやWebサービス開発に向いている
デメリット
- ドキュメントが少なくなりがちで、後から振り返りにくい
- 全体の完成像が見えにくく、スケジュール管理が難しい
- チームの自律性が必要で、経験のないチームには難しい
試験ポイント
「短いイテレーション(反復)」「柔軟な変更対応」「ユーザーとの継続的なコミュニケーション」がキーワードです。
⑤ DevOps ─ 「開発」と「運用」をつなぐ考え方
どんなモデル?
DevOpsは開発(Development)と運用(Operations)を組み合わせた言葉です。開発チームと運用チームが密に連携し、自動化ツールを使って継続的に改善・デリバリーするアプローチです。厳密には開発モデルではなく文化・考え方ですが、試験でも出題されます。
メリット
- リリースの頻度を高めて、素早く改善できる
- 障害に素早く対応できる
開発モデルの比較まとめ
| モデル | 変更への対応 | 向いているプロジェクト | 特徴 |
|---|---|---|---|
| ウォーターフォール | 弱い | 要件が明確・大規模 | 工程を順番に進める |
| プロトタイプ | 普通 | 要件が曖昧 | 試作品を作りながら確認 |
| スパイラル | 強い | 大規模・リスクが高い | リスク分析しながら繰り返す |
| アジャイル | 非常に強い | 変化が多い・スピード重視 | 短いサイクルで繰り返す |
試験対策のポイント





基本情報技術者試験では、各モデルの特徴・メリット・デメリットを正確に押さえることが大切です。特によく出るのは次の点です。
- ウォーターフォールモデルは「前工程が終わってから次へ進む」
- プロトタイプモデルは「試作品でユーザーの確認を取る」
- スパイラルモデルは「リスク分析」を重視する
- アジャイル開発は「スプリント」や「スクラム」というキーワードと合わせて覚える
開発モデルの問題は「どのモデルが最も適切か」という問題形式が多いので、プロジェクトの特徴(要件の明確さ、規模、変更の多さなど)と各モデルの強みを照らし合わせて考える練習をしましょう。
まとめ
ソフトウェア開発モデルは、「どうやってソフトウェアを効率よく・確実に作るか」を考えた先人たちの知恵の結晶です。



一つの正解があるわけではなく、プロジェクトの性質に応じて使い分けることが重要です。試験でも実務でも、各モデルの「強みと弱み」を理解していることが大切です。














コメント