CASE (Computer Aided Software Engineering) の概要
CASEとは、Computer Aided Software Engineeringの略で、日本語では「コンピュータ支援
ソフトウェア工学」と訳されます。ソフトウェア開発工程において、様々なソフトウェアツールを活用することで開発効率や品質向上を目指す手法、そしてそのために用いられるツール群を指します。CASEツールを用いることで、プロジェクト管理、要件定義、設計、実装、テスト、保守といったソフトウェア開発ライフサイクル全体を効率的に進めることが可能になります。
CASEツールの種類と機能
CASEツールは、その機能によって様々な種類に分類できます。代表的なものとしては、以下のものが挙げられます。
プロジェクト管理ツール: プロジェクトの進捗管理、タスク割り当て、資源管理などを支援します。ガントチャートやスケジュール管理機能などを備えています。
要件定義・分析ツール: 顧客のニーズを分析し、ソフトウェアの機能要件を明確にするためのツールです。ユースケース図やデータフロー図などを用いたモデリング機能が搭載されていることが多いです。
設計ツール: ソフトウェアのアーキテクチャ、モジュール構成、データベース設計などを図表を用いて設計するためのツールです。UML(Unified Modeling Language)を用いたモデリングが主流となっています。
コーディングツール: プログラムコードの記述、コンパイル、デバッグなどを支援するツールです。統合開発環境(IDE)などがこれに当たります。
テストツール: ソフトウェアの機能テスト、性能テスト、セキュリティテストなどを自動化するためのツールです。単体テスト、結合テスト、システムテストなど、様々なレベルのテストを支援します。
保守ツール: ソフトウェアの保守・メンテナンスを支援するツールです。バグ追跡システムや
バージョン管理システムなどが含まれます。
特に、分析・設計工程で使用されるツールは、設計情報からコードを自動生成する機能を持つものが多く、生産性向上に大きく貢献しています。Jackson Structured Programmingのような開発手法や、Yourdon, Gane, Sarsonらが提唱したソフトウェアモデリング技法なども、こうしたツールの発展に伴って生まれました。
データベース設計においては、ビジネスプロセスのモデリング、ER図の作成、SQLコードの生成などがCASEツールの主要な機能となっています。
CASEツールの歴史
CASEという用語は1982年、Nastec Corporationによって考案されました。同社のGraphiTextという、マイクロコンピュータ向け初期の
ハイパーリンク機能を持つテキストエディタを指す言葉として使われ始めました。その後、DesignAid、Exceleratorといった製品が登場し、CASEツール市場は急速に拡大しました。
初期のCASEツールは、
ソフトウェア設計をグラフィカルに表現・分析するものが主流でしたが、プログラム生成機能を持つものも登場しました。Excelerator、ADW、Bachman、IEW、IEFなどが代表的な製品です。
1990年代初期には、
IBMのAD/Cycleのような、ソフトウェアライフサイクル全体をカバーする統合的なCASEツールが登場しました。しかし、メインフレームの衰退に伴い、市場は変化し、現在の主流CASEツールへと移行していきました。
現代のCASEツール
現代のCASEツールは、ソースコード生成、UMLエディタ、リファクタリングツール、モデル変換ツール、
構成管理ツールなどを備えています。単にコードを生成するだけでなく、
データベーススキーマ、データフロー図、ER図、プログラム仕様、ユーザー文書といった様々な成果物を生成することができます。
CASEツールは、上流CASEツール(分析・設計工程向け)と下流CASEツール(実装・テスト工程向け)に分類されることもあります。
CASEツールと関連技術
CASEツールは、UML、RAD、
第四世代言語、モデル駆動型アーキテクチャ、ドメインモデリングなどの技術と密接に関連しています。これらの技術を効果的に活用することで、さらに高度なソフトウェア開発を行うことが可能になります。
CASEツールは、ソフトウェア開発における生産性向上に不可欠な存在であり、今後もその進化が期待されます。