CANO-AID

CANO-AIDはCOBOLソース、JCL、データベース定義等を自動生成する開発支援ツールである。

キヤノン株式会社において、メインフレームアプリケーションの開発生産性を向上させるため、本村昭二を中心としたプロジェクトによって開発された。

1984年キヤノンソフトウェア株式会社によって発売が開始され、メインフレームの各種DB/DCに対応し、稼働環境を広げていった。

ガメン オ ヨム、フアイル オ カク等、片仮名を使用した中間言語CORALで開発をする。また、ロジックは全て部品と言う概念で構成されている。

1992年に出荷されたCANO-AIDIIは、中間言語にCOBOL-Cを採用し、固有部品のコーディングも稼働環境のCOBOL言語で記述可能となった。

設計思想 
ユーザインターフェースである画面、帳票、データベース、ファイルに関わる入出力は、ある決まった処理手続きを踏んでいる。従って個々のロジックをプログラマがコーティングするのではなく、コンピュータシステムによってソースコードを自動生成することが可能である。自動生成のためには、事前にデータディクショナリを中心としたリポジトリに、その入出力に関わる設計情報を事前に登録をして置く。自動生成の際には、その設計情報から、その入出力に適合したソースコードを自動生成することになる。また、業務アプリケーションは、オンラインの場合、データベースをメンテナンスする、問い合わせる、バッチの場合は、マッチングする、サマリする、データを編集する、帳票を出力するといった機能に分類することができる。このようなものをパターンとして部品化しておき、その部品を自動的に組み合わせることによって動作するプログラムを自動生成することが、可能になるといった基本的な考え方が、CANO-AIDの設計思想である。

開発手順 

開発は、以下の手順で行われる。

データ項目定義
データディクショナリにデータ項目を登録する。
データベース、ファイル定義
データディクショナリ上のデータ項目を元にデータベース、ファイルを登録する。
画面、帳票定義
データディクショナリ上のデータ項目を元に画面、帳票を登録する。
プログラム定義
プログラムを登録する際、データベース、画面、標準パターンを指定する。標準パターンとは、標準部品の中のメインルーチンに当たり、標準パターン上から呼び出される部品をモジュールと言う。
固有部品の組み込み
プログラム定義を行うと、標準部品上に組み込まれたオウンコーディングポイントに固有部品を組み込むことが出来る。
CORAL言語で作成した固有部品を必要に応じて組み込み、プログラム自動生成を実行させると実行可能なロードモジュールが生成される。尚、固有部品を組み込まなくとも、標準部品だけで実行可能なロードモジュールが生成される。

CORAL版CANO-AIDは、以下のDB/DCに対応している。

ADM/DB DC 日立　VOS3
IMS/DB DC　 IBM　MVS
DB2オプション
IMS/DB CICS IBM　MVS
DB2オプション
XDM DCCM3　　日立　VOS3
RDBオプション
AIM/DB DC　　富士通　OSIV

プログラム自動生成 
CANO-AIDにおいて、プログラムは全て部品から自動生成される。部品には、予め、部品内のコードを変換することを想定して作成して置く。名称は置き換え、該当行の生成の有無等を事前に定義しておく。

メインルーチンをパターンという部品を定義し、そこから呼ぶ出される部品をモジュール、三階層以降の部品をブロックと呼ぶ。
部品は、データディクショナリを中心としたリポジトリから自動的にパラメータを取得し、部品を組み立て、加工しながらソースコードを自動生成する。

プログラムは、以下の区分に分かれる。
 MPP：オンライン型プログラム
 BMP：階層型データベースを使用するバッチメッセージ型プロプラム
 BPP：階層型データベースを使用するバッチプログラム
 BCH：階層型データベースを使用しないバッチプログラム

データベース定義自動生成 

サポート対象のIMS、DB2、ADM、XDM、AIMに関するデータベース定義を、リポジトリ上から、自動的に生成する。

画面定義自動生成 

サポート対象のIBM3270、日立560/20に適合した以下の画面定義を、リポジトリ上から、自動的に生成する。

 IBM IMS/DC MFS
 IBM CICS CANO-AID/MAP
 日立 ADM/DC MFB

JCL自動生成 
リポジトリ上、ジョブ定義を行い、その後ジョブステップ定義を行う。ジョブステップ定義では、先に登録したプロプラムの入出力が明確になっているため、既に登録したプログラム名称を登録していく、JCL生成の際、ファイルの入出力に伴うDD文は、SYS020、SYS021と連番になって振られる。
また、プログラム定義上のBMP、BPP、BCHの区分によって、展開されるカタプロが異なる。

ソフトウェア開発ツール
キヤノンの製品
メインフレーム