【ITパスポート試験】No.070|主なソフトウェア開発モデル

※本サイトで紹介している商品・サービス等の外部リンクには、プロモーションが含まれています。

本記事では、代表的なソフトウェア開発モデルの考え方と特徴を解説します。ウォーターフォールモデル、スパイラルモデル、プロトタイピングモデル、RAD、リバースエンジニアリングといったキーワードを、開発の進め方の違いという視点から整理していきます。


目次

1. 順番に進めるウォーターフォールモデル

この章では、伝統的な開発モデルであるウォーターフォールモデルについて説明します。上流から下流へ、一方向に流れていくイメージを持てるようにしておきましょう。

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

ウォーターフォールモデルは、要件定義、設計、プログラミング、テスト、導入・保守といった工程を、原則として一方向に順番に進めていく開発モデルです。上流工程が完了してから次の工程に進むため、川の水が段々を流れ落ちる「滝(ウォーターフォール)」にたとえられています。

メリットは、工程ごとに成果物や完了条件が明確で、進捗管理がしやすい点です。大規模な業務システムなど、初めに要件を固めやすいプロジェクトでよく用いられます。一方で、後の工程で仕様変更が発生すると手戻りが大きくなりやすく、「実際に動くものを見るのが最後の方になる」ため、ユーザの期待とのギャップが生まれやすいという課題もあります。

ITパスポート試験では、「工程を上から下へ順番に進めるモデル」「手戻りに弱い」というキーワードと結び付けて覚えておくと整理しやすくなります。


2. 反復と試作で進める開発モデル

この章では、ウォーターフォールモデルの欠点を補う形で登場した、スパイラルモデル、プロトタイピングモデル、RADについて説明します。いずれも「作って試し、評価してまた改善する」という反復的な進め方を取り入れている点が共通しています。

スパイラルモデル

スパイラルモデルは、「計画 → リスク分析 → 開発・テスト → 評価」という一連のサイクルを、らせん状(スパイラル)に何度も繰り返しながらシステムを作り上げていくモデルです。サイクルを回すごとに、システムの規模や詳細度を少しずつ広げていくイメージです。

特徴は、各サイクルでリスク分析を行う点です。技術的な不確実性や、コスト・スケジュールのリスクを早いうちから把握し、プロトタイプ作成などを通じてリスク低減策を検討します。大規模かつ不確実性の高いプロジェクトに向いているとされます。

試験では、「らせん状に反復する」「リスク分析を重視する」というキーワードとセットで押さえておくとよいでしょう。

プロトタイピングモデル

プロトタイピングモデルは、完成版の前に簡易版(プロトタイプ)を作成し、利用者に触ってもらいながら要件や設計を詰めていくモデルです。画面のイメージや操作感を早い段階で見せることで、「思っていたものと違う」というズレを小さくできます。

プロトタイプには、見た目だけを素早く作るものから、実際の一部機能を動かすものまでさまざまな種類があります。利用者からのフィードバックを反映しながら作り直していくため、仕様変更への柔軟性が高いというメリットがありますが、プロトタイプと本番システムの境界があいまいになると、スケジュール管理が難しくなる場合もあります。

ITパスポート試験では、「試作品を作りながら要件を詰めるモデル」と覚えておくと、関連する選択肢を見分けやすくなります。

RAD(Rapid Application Development)

RAD(Rapid Application Development)は、その名の通り「高速なアプリケーション開発」を目指すモデルです。ツールを活用した画面設計やコード生成、短い反復サイクル、利用者を巻き込んだワークショップなどを組み合わせて、早期に動くソフトウェアを提供することを重視します。

プロトタイピングの考え方を取り入れつつ、CASEツール(設計支援ツール)やローコード開発ツールなどを活用して、開発スピードを上げる点が特徴です。要件が比較的明確で、短期間で成果を出したい中小規模のシステム開発などに向いています。

試験では、「ツール活用」や「短期間での開発」などのキーワードが出てきたら、RADを連想できるようにしておきましょう。


3. 既存システムを理解して活かすアプローチ

この章では、既に存在するシステムを解析して設計情報や仕様を明らかにする、リバースエンジニアリングについて説明します。新しく作るよりも先に、「今あるものを正しく理解する」ことが目的となるアプローチです。

リバースエンジニアリング

リバースエンジニアリングは、完成済みのソフトウェアやシステムを解析し、その構造や処理内容を明らかにする手法です。ソースコードや実行ファイル、データベース構造などを調べて、元々の設計情報や仕様を推測・復元していきます。

レガシーシステムの改修や再構築の場面でよく用いられます。古いシステムは、当時のドキュメントが不十分だったり、担当者が退職して仕様が分からなくなっていたりすることが少なくありません。そこで、リバースエンジニアリングによって現在の挙動を分析し、UML図などに落とし込むことで、システムの全体像を再度把握できるようにします。

ITパスポート試験では、「既存システムを解析して構造や仕様を明らかにする」という説明があれば、リバースエンジニアリングを指していると考えて問題ありません。


まとめ

本記事では、代表的なソフトウェア開発モデルの特徴を整理しました。ウォーターフォールモデルは、工程を上から下へ順番に進める伝統的なモデルで、進捗管理がしやすい一方、手戻りに弱いという性質がありました。これに対して、スパイラルモデルやプロトタイピングモデル、RADは、試作や反復を取り入れることで、不確実性や仕様変更への柔軟な対応を目指すモデルであることを確認しました。

また、スパイラルモデルはリスク分析を重視しながららせん状に開発を進める点、プロトタイピングモデルは試作品を通じて利用者と認識を合わせる点、RADはツール活用などで短期間の開発を実現しようとする点がそれぞれの特徴でした。これらの違いを、「どれくらい仕様が固まっているか」「どれくらい早く成果を出したいか」といった観点と結び付けて理解しておくと、実務イメージもつかみやすくなります。

さらに、既存システムを解析するリバースエンジニアリングは、新規開発というよりも、レガシーシステムの理解や再構築に役立つアプローチであることも押さえました。ITパスポート試験では、各モデルの名前と特徴、そしてどのような場面に向いているかをセットで覚えておくことが大切です。開発モデルを単なる用語としてではなく、「プロジェクトの進め方の選択肢」としてイメージできるようにしておきましょう。

  • URLをコピーしました!

この記事を書いた人

IPA(独立行政法人 情報処理推進機構)の活動を陰ながら応援している、しがないソフトウェアエンジニア。
サトシ ナカモトの戦友。
ITやソフトウェアに関することをわかりやすくまとめ、多くの人にそれらを知ってもらおうと活動しています。
ご質問やご要望、お仕事依頼がございましたらお問合せフォームよりお願いいたします。

コメント

コメントする

CAPTCHA



reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

目次