---
title: "CASEツールとは？上流CASE・下流CASE・統合CASEの違い【基本情報技術者試験】"
description: "CASEツールを、要求分析や設計を支援する上流CASE、プログラミングやテストを支援する下流CASE、開発工程全体を連携する統合CASEに分け、基本情報技術者試験での判断基準を解説します。"
last_modified_at: "2026-07-20"
canonical_url: "https://stemtazoo.github.io/fe/case-tools/"
section: "fe"
---

## まず結論

CASEツールとは、**ソフトウェアの開発や保守をコンピュータで支援するツール**です。

支援する工程によって、主に次の3つに分けます。

| 分類 | 主に支援する工程 |
|---|---|
| 上流CASE | 要求分析、要件定義、設計 |
| 下流CASE | プログラミング、テスト、保守 |
| 統合CASE | 上流から下流までの工程全体 |

基本情報技術者試験では、次の一文で切り分けます。

> **何を作るか考える工程は上流、実際に作って確かめる工程は下流。**

## 直感的な説明

ソフトウェア開発を、川の流れとして考えると分かりやすいです。

```text
上流
↓
要求分析
要件定義
設計
↓
プログラミング
テスト
保守
↓
下流
```

開発の早い段階ほど上流、完成に近い段階ほど下流です。

CASEツールは、この流れのどこを支援するかによって分類されます。

```text
要求や設計を整理する
→ 上流CASE

コード作成やテストを支援する
→ 下流CASE

各工程をつなげて管理する
→ 統合CASE
```

## 定義・仕組み

CASEは、次の略です。

```text
Computer Aided Software Engineering
```

日本語では、コンピュータ支援ソフトウェア工学と表されます。

目的は、開発作業を単に速くすることだけではありません。

- 成果物の形式をそろえる
- 設計の抜けや矛盾を減らす
- 前工程の情報を後工程へ引き継ぐ
- 文書や図を再利用しやすくする
- 開発と保守を効率化する

といった効果が期待されます。

### 上流CASE

上流CASEは、システムを実装する前の分析や設計を支援します。

代表的な機能は次のとおりです。

- 要求分析
- 要件定義
- 業務分析
- データモデル作成
- UMLなどによるモデリング
- 画面や帳票の設計
- 設計書の整合性確認

中心となる問いは、**何を作るか、どのように設計するか**です。

### 下流CASE

下流CASEは、設計内容を実際のプログラムへ落とし込み、動作を確認する工程を支援します。

代表的な機能は次のとおりです。

- ソースコード生成
- プログラミング支援
- デバッグ
- テストデータ作成
- テスト実行
- カバレッジ測定
- 保守や変更箇所の分析

中心となる問いは、**実際に作る、動かす、確かめる**です。

### 統合CASE

統合CASEは、上流と下流を個別に支援するだけでなく、開発工程全体を連携させます。

```text
要求分析
↓
設計
↓
プログラミング
↓
テスト
↓
保守
```

各工程の成果物を共通のリポジトリで管理し、設計変更をコードやテスト仕様へ反映しやすくします。

## 科目Aでどう出る？

科目Aでは、機能や工程からCASEツールの分類を選ばせる問題として出題されます。

| 問題文・選択肢の表現 | 分類 |
|---|---|
| 要求分析を支援する | 上流CASE |
| 要件定義や設計図作成を支援する | 上流CASE |
| ソースコード生成を支援する | 下流CASE |
| テストやデバッグを支援する | 下流CASE |
| 全工程の成果物を共通管理する | 統合CASE |
| 上流と下流の情報を連携する | 統合CASE |

試験中は、工程名を見つけてから分類します。

```text
要求・要件・分析・設計
→ 上流

コード・実装・テスト・保守
→ 下流

全工程・一元管理・共通リポジトリ
→ 統合
```

### 「テスト」と「保守」は分類名ではない

テスト支援ツールや保守支援ツールは存在します。

ただし、CASEツールの基本的な分類を問う問題では、これらは通常、**下流CASEの機能**として扱います。

## どんな場面で使う？

### 要求を整理するとき

利用者の要望を整理し、機能要件や非機能要件へ落とし込むときに上流CASEを使います。

図やモデルを使うことで、関係者間の認識を合わせやすくなります。

### 設計からコードを作るとき

設計情報からコードのひな型を生成したり、入力補完や構文チェックを行ったりするときに下流CASEを使います。

### テストを効率化するとき

テストケースの管理、テストデータの作成、実行結果の記録などを支援します。

### 変更を工程全体へ反映するとき

設計変更が発生したときに、関連するコードやテスト仕様を追跡しやすくするのが統合CASEです。

## よくある誤解・混同

### 誤解1：上流CASEは上級者向けのツール

違います。

上流は難易度ではなく、**開発工程の前半**を意味します。

### 誤解2：要求分析はプログラミングに近いので下流

違います。

要求分析は、何を作るかを決める段階なので上流です。

```text
要求分析
→ 作る前に考える
→ 上流CASE
```

### 誤解3：テストCASEという基本分類がある

基本分類は、上流CASE・下流CASE・統合CASEです。

テスト支援は、下流CASEの代表的な機能です。

### 誤解4：統合CASEは単に上流CASEと下流CASEを同時に導入すること

統合CASEの重要点は、単に両方の機能があることではありません。

> **工程間の成果物や情報が連携していること**

が中心です。

### 誤解5：CASEツールを使えば開発者が不要になる

違います。

CASEツールは、分析、設計、実装、テストを支援しますが、要求の判断や設計上の選択まで自動的に正しく行うわけではありません。

## まとめ（試験直前用）

- CASEツールは、ソフトウェアの開発や保守を支援する
- 要求分析・要件定義・設計は上流CASE
- プログラミング・テスト・保守は下流CASE
- 上流から下流までの情報を連携するのが統合CASE
- テストや保守は独立した基本分類ではなく、下流CASEの機能として考える

試験直前には、次の一文を思い出してください。

> **考える工程は上流、作って確かめる工程は下流、全工程をつなぐのが統合CASE。**
