Computer Aided Software Engineering

Computer Aided Software Engineering (略: CASE)とは、ソフトウェア開発やソフトウェアの保守にソフトウェアツールを利用すること。そのようなツールをCASEツールと呼ぶ。

概要 
ソフトウェア開発のあらゆる工程でソフトウェアツールを利用でき、また様々なツールを使用したソフトウェア開発は CASE (アクロニムでケースと読まれる)と呼ぶことができる。CASEツールには、プロジェクト管理ソフトウェア、ビジネス分析・機能分析ツール、システム設計ツール、コード格納ツール、コンパイラ、変換ツール、テストツールなどが含まれる。

しかし、一般に CASEツールと称されているのは分析および設計に関するツールであり、設計情報からソフトウェア製品の一部（または全部）を自動生成する機能を備えるものが多い。そのようなツールからJackson Structured Programmingのような開発手法や、 Edward Yourdon, Chris Gane, Trish Sarson といった研究者が提唱するソフトウェアモデリング技法が生まれた。この狭い意味では、例えばデータベース製品に適用されるCASEツールの機能として、以下のようなものが一般的である。
ビジネス、実世界のプロセスとデータフローのモデリング
実体関連図（entity-relationship diagram）の形式でのデータモデルの開発
プロセスおよび関数仕様の開発
データベース生成用SQLとストアドプロシージャの製造

歴史 
CASE という用語は 1982年、ミシガン州サウスフィールドの Nastec Corporation というソフトウェア企業が考案したものである。同社のグラフィックおよびテキストの統合エディター GraphiText を指す言葉として使われた。GraphiText はマイクロコンピュータ向けでは最初期のハイパーリンクによるテキスト文字列の相互参照を実現していた。現在の Webページリンクの先駆けのひとつである。GraphiText の後継製品 DesignAid はソフトウェアやシステムの設計図を論理的かつ意味論的に評価し、データ辞書を作成するソフトウェアである。続いて Cambridge Technologies 社が Excelerator で市場に参入。DesignAid が Convergent Technologies 社やバロースのミニコンピュータで動作したのに対して、Excelerator は IBM PC/ATで動作した。当時のパーソナルコンピュータはミニコンピュータに比較してネットワーク機能とデータベース機能が貧弱ではあったが、それ以上にパソコンでのCASEツールには魅力があり、Excelerator は人気となった。その後すぐにKnowledgeWare、テキサス・インスツルメンツといった企業がCASE市場に参入することとなる。

初期の CASEツールはソフトウェア設計をグラフィカルに表現したり、それを分析するものが主流であった。プログラム設計に関するものとして、Excelerator・ADW がある。データ設計に関するものとして、Bachman・IEW・IEF などがある。DesignAid はプログラムとデータの両方を扱うだけでなく、プログラム生成ツール Transform を備えていた。これは、Nastec 社が Transform Logic Corporation を支配下に置いて得た製品である。1984年、Nastec 社はプロジェクト管理や製品構成管理を中心とした LifeCycle Manager を開発した。LifeCycle Manager の初期のコンセプトはシステム開発手法とプロジェクト管理システムの結合にあった。

従来型のCASEツールは1990年代初期にピークを迎えた。当時、IBMは以下のような協力ソフトウェア企業と共に AD/Cycle を発表した。これはソフトウェアのライフサイクル全体をカバーするツールを集約したものである。
 KnowledgeWare 社: IEW, ADW
 テキサス・インスツルメンツ 社: IEF
 Nastec 社: DesignAid, LifeCycle Manager

メインフレームの凋落に伴い、AD/Cycle などに代表されるCASEツールから今日の主流CASEツールへの市場の転換がなされた。興味深いことに1990年代初期のCASE市場を占めていた製品のほとんどは、CAが買収した (IEW, IEF, ADW, Cayenne, LBMS など)。

CASE ツール 
現在では、以下のような機能を持つソフトウェアが一般に CASE ツールとされている。

ソースコード生成ツール
UMLエディタ、または類似製品
リファクタリングツール
QVT またはモデル変換ツール
構成管理ツール（バージョン管理システムを含む）

CASE ツールはコードを出力するだけではない。様々なシステム分析やSSADMのような設計手法に基づく出力をも生成する。例えば、以下のようなものがある。
データベーススキーマ
データフロー図
実体関連図
プログラム仕様
ユーザー向け文書

CASEツールを以下の2種類に分類することもある:
 上流CASEツール: ソフトウェアの分析・設計工程に関するツール群（図作成ツール・報告書作成ツール・分析ツールなど）
 下流CASEツール: データベーススキーマ生成ツール・プログラム生成ツール・実装ツール・テストツール・構成管理など

関連項目 
統一モデリング言語 (UML)
RAD
4GL
モデル駆動型アーキテクチャ
ドメインモデリング
モデリング言語

外部リンク 
 Definition and discussion カーネギーメロン大学ソフトウェア工学研究所
 CASE Tools CASEツールのディレクトリ（英語）
 CASE tool index - 非常に詳細なリスト

ソフトウェア開発ツール
ソフトウェア開発工程