特集
オブジェクト指向技術の実用化
プbグラミング環境を充実させたオブジェクト指向COBOJ
ProgrammingEnvironmentsforObject-OrientedCOBOL
西尾高典* 7滋ん`′”√ノ7′Z〃ム}んオり前田秀子*Jイオ〟どん√ノルねどdα
⊂)
分散システムの構築横塚大典*
加わ"々ビnノカ√)′s〟々α権藤文代*
ダ〟椚か〃C(川〟√丁⊂⊃
グラフイカルユーザー インタフェースの構築 オブジェクト オブジェクト指向COBOLの 利用で広がる世界 オブジェクト指向 データベースの構築 COBO+プログラマの 人的財産J⊃
既存システムの 継承 COBOL プログラム RDB 既存 ファイル 注:略語説明 COBOL(CommonBusinessOrientedLanguage) RDB(RelationalDatabase) オブジェクト指向の世界へのゲートウェイ「オブジェクト指向COBOJ+ オブジ工クト指向COBOLにより,過去のプログラム・データ資産と最新のオブジェクト指向技術との融合を図ることができる。また,COBOL85 と完全上位互換であるため,徐々にオブジ工クト指向を取り込むことができる。このたび,次期標準COBOL97の「プリビュー+と
もいうべきオブジェクト指向COBOL(以 ̄卜`,
00COBOLと言う。)の本格的なプログラミング環
塙を,WindowsNT削)およびUNIX※2)で製.肘ヒした。
この環境は,開発マネージャやブラウザ,COBOL
エディタ,アニメータ機能を持つデバッガ,ファイ
ル・レコード走去,スクリーン左義機能など,
COBOLプログラム開発向けの充実した機能を提供
している。COBOL85と`完全上位互換であるため,
*l川二磐望作巾 ソフトウェア問才色本部徐々にオブジェクト指向を取り込めると同時に既存
資産もそのまま活用できる。オブジェクト指向デー
タベースや分散オブジェクト環境などの新しいパラ
ダイムの考え方とも親和性が良い。また,RDBや
OLTP(Online
TrallSaCtionProcessing)などの各
種ミドルソフトウェアや上流CASE(Computer
Aided Software
Engineering),GUI(Graphical
UserInterface)構築ツールとも連携しており,企業
情報システム開発の中核としての活躍が期待できる。
856 日立評論 VOL.77 No.12(1995-12)
n
はじめに COBOLが汎(はん)用計算機用プログラミング言語と して誕牛してから30年以上がたち,その間に計算機も, これを利用する社会も大きく変貌(ぼう)を遂げた。言語自体に対する要求も時代とともに大きく変わった。
COBOLの場合,過去に3回の大改革を経験した。そして 今,1985年の第3次規格から10年余を経て,1997年に向 けて4回目の大改革を迎えようとしている。COBOL97の時代到来である。
このたび,次期COBOLの中で最大の拡張ともいえるオ ブジェクト指向の概念の重要性に着目し,00COBOLとしていち早く製品化した。00COBOLの役割は,
COBOL文化へのオブジェクト指向の考え方の定着,ク
ラスライブラlい開発環境の充実,オブジェクト指向関 連他製品との連携など,COBOL85からCOBOL97へのス ムーズな橋渡しと言える。 ここでは,00COBOLの言語としての特徴,および日立製作所のプログラミング環境での機能的な特徴,メリ
ットなどについて述べる。凶
オブジェクト指向COBOLの概要
2.1だれが作っているか SmalltalkであればGoldberg氏という具合に,言語に はある個人名が結び付くことが多い。ところが,COI∃OLの作成者のプロフィールはほとんど見えない。米凶の
CODASYL(Conference on Data System Languages)
が制定してきたからである。現在は米国の標準化団体
ANSI(AmericanNationalStandardsInstitute)傘Fの
委員会Ⅹ3J4が仕様の検討などを行っている。ドラフトが
ほぼ固まりつつあり,舞台はISO(InternationalStan-dardizationOrganization)へと移りつつある。Ⅹ3J4にはわが同の情報処理学会規格調査会も加入し
ている。米国の委員会でありながら,わが国もその仕様 確定に寄与している。この調査会のSC(Subcommittee) 22COBOLWG(WorkingGroup)の主査は日立製作所が務める。米国の委員会にも積極的に参加しており,
COBOLの標準化に貢献している。 ※1)WindowsNTは,米国MicrosoftCorp.の商標である。 ※2)UNIXは、Ⅹ/OpenCompanyLimitedがライセンスし ている米田ならびに他の匡lにおける登録商標である。 28 2.2 言語の特徴 (1)COBOL85との上位互換性 00COBOLの最も大きな特徴は,従来のCOBOLとの 完全上位互換性であろう。800倍ステップと言われる過去 の膨大なプログラム資産を牛かしつつ,新しいパラダイムへと進化できる。-_L位互換性を保つためにCOBOL85
の構文をすべて継承しておl),さらにオブジェクト指向 プログラミングに不可欠の2文だけを追加している。ま た00COBOLからCOBOL85を呼び州した-),逆に COBOL85から00COBOLを呼び出せる。 (2)どこがオブジェクト指向か 00COBOLでのオブジェクト指向の諸概念の抜い ̄ガ について述べる。(a)プログラム定義とクラス定義
00COBOLは,新たにクラスというモジュールを扱 う。このモジュールでは,そのクラスやオブジェクト が使用するデータおよびメソッドを定義する(図1参 照)。データやメソッドをクラスとオブジェクトで構文的に書き分けることにより,理解容易性の向上が期待
できる。 (b)継水機能 クラス定義で他のクラスとの継承関係が定義できる。 lDENTIF】CAT10N DlVIS10N. CLASS-1D.クラス名INHERITS祖先クラス名. ENVIRONMENTS DlVIS10N. クラスの環境部本体 ‖〕ENTIFICAT10N DlVIS10N. CLASS-OBJECT. ENVIRONMENTS DIVIS10N. クラスオブジェクトの環境部本体 DATA D】VISK)N. クラスデータ定義 PROCEDURE DlVISK)N. クラスメソッド定義 END CLASS-OBJECT. lDENTIFICAT10N DlVIS10N. OBJECT. ENVIRONMENTS DlVIS10N. オブジェクトの環境部本体 DATA DlVIS10N. オフ一ジェクトデータ定義 PROCEDURE DlVIS10N. オブジェクトメソッド定義 END OBJECT. END CJASSクラス名. 図l オブジ工クト指向COBOLのクラス定義の構文 クラス定義では,クラス用のデータ・メソッド,インスタンス用 のデータ・メソッドを明確に書き分けることにより,読みやすさの 向上を図っている。PROCED〕RE DIVIS】ONでの追加命令文はわずか に2文だけである。プログラミング環境を充実させたオブジェクト指向COBOL 857 継承元のクラスを上位クラスと呼ぶ。上位クラスのデ ータやメソッドの定義が自クラスでも使用できる。複 数の上位クラスを持つ多重継承もサポートしている。 (c)メッセージの受け渡し オブジェクト指向言語では,モジュール間の呼汁-し (caller-Callee)関係に代わり,オブジェクト間のメッ セージ送受信関係が実行の基本である。00COBOLで
はCALL文と類似の構文を円いて実行したいメソッド
を持つオブジェクトにメッセージが送信できる。 (d)メソッドの記述 各クラスで定義するメソッドは,クラスメソッド, イ・ンスタンスメソッドに分けて従来のプログラム定義と類似の構文で定義できる。
(e)インスタンスの生成と管理法 インスタンスの牛J戊機構は,あらゆるクラスの最上 位クラス「baseクラス+に"CBL-NEW”メソッドと して用意されている。生成したいクラスに対して "CBL-NEW''を送信するとインスタンスが生成される。 作成されたインスタンスには,識別子(オブジェク ト参照と呼ぶ)が付与され,"CBL-NEW''メソッドの 実効結果として送信側に返される。以後,このインス タンスは「オブジェクト参照+を使ってアクセスされる。田
00COBO+プログラミング
00COBOLはCOBOL85と完全上位二わ二挽なので, 00COBOLによって従来どおりの構造化設計プログラ ミングができる。00COBOLを適用することにより,さ らに以下に述べることが実現できる。 3.1データ抽象の実現データ抽象の考え方は1970年代中ごろに生まれ,情報
隠蔽(ぺい)あるいは部占占化と呼ばれてきた。内部処理の 変更を外のプログラムに波及させないすぐれた手法であ る。00COBOLでは,個々のオブジェクトの保持するデ ータへのアクセスをメソッドを介してだけ行うので,そ のままでデータ抽象プログラミングができる。 3.2 継承機能による差分コーディングの実現 上位クラスに含まれない自クラス特有の処理だけをコ ーディングすることを「差分コーディング+と呼ぶ。牛こf にビジネスアプリケーションでは類似の概念を扱うケー スが多いので,クラス階層を有効活用することにより, コーディング量の大幅削減が期待できる。 00COBOLは多重継承もサポートしているので,強力 な差分コーディングができる。 フ7イ州F】表示IV)アロゾ、ェ州P)-リール(T〉Jアシ])(0)実行IR)∼レれ川 蘭画匡直□[ヨヨ囲ヨ巨〕 Receわ†s.exeE喜喜道三呂昌至言ト㌦
LR叩MenuO2≠∬ 実行フ7イル COBOLソース COBOしソース 豊】桑集原文 フ7イル定義フ7イル 登録集原文 レコード定義フフィル COBO+ソース 芸事景集原文 画面定義フ7イル ツールめオヲションま受定 □口ロロロロロロ 一一クタトト、ト 帽暗ラ伸一丁・刀化稚] ロ■”㌍宍紆討 ‖¶m¶巧Ⅷ¶¶ スバック情報の出力 □馳主アロケ、ラム生成 □娠似昌げログラム生成⊂=正二二ニコ[二二重亘][二重□
図2 開発マネージャのイメージ画面 間発マネージャからコンパイラをはじめとする各ツールを呼び 出すことができる。 3.3 データの動的管理可能 従来のCOBOLは一つのデータ定義で一時に一つの値 しか扱えなかった。このため複数件のデータをループで扱う場合など,新データを設定する際に前件データを捨
てざるを得ない。例えば集計値の計算を追加する際,前 作データ待避などのロジック修正が発チトする。 00COBOLでは複数件のおのおのに対してオブジェ クトが生成・管理できるので,さまざまな要求があとで 発生しても新規追加だけで済み,既存部分のロジック変 如が不要の場合が多い。 3.4 オブジェクト指向分析・設計手法とのタイアップ00COBOLは従来の構造化手法の中で十分その効果
を発揮するうえに,本格的なオブジェクト指向分析・設計手法と連携することにより,さらに効果を_Lげること
ができる。 _H患丁程で表現されるオブジェクトモテリレは,プログ ラム実装_1二程で作成するオブジェクトとギャップが小さ いことから,_卜流から ̄卜流までの開発がスムーズに行え る。実 ̄牡界モデルを反映した構造なので,変更・保!、1:に 強いプログラム構造が得られる。田
00COBOLプログラミング環境
00COBOLは,UNIX版,WindowsNT版をサポート している。主にNT版に別して00COBOLのプログラム 環境について以 ̄卜に述べる。このプログラミング環境では,00COBOL/COI∃OL85
コンパイラ,ブラウザ,テストデバッガ,データベース 定義,両面定義,ファイル・レコード定義,ISAM 29858 日立評論 〉OL.了7 No.12(1995-1Z) =■■ コ)和一州C テ卦m 検索・一生作) 才アラコ)10)ウのドゥ(叫 ∼げ川) 逐次(少 0002mO OO82108 0082200 0002300 000Z4α:l 〔棚〕2500 0002¢∝l ∝旧27∝1 0002畠伽 0脚2gα〕 00030〔旧 0∝但10〔1 0鵬200 斬喧) P配CmE DIVISI珊. OP訓Ⅰ肝l汀 FILEI HOVE 55 TO 甲1-1. 鰐 削一1TO Wl-2. 1F甲1-1=甲1-2THEN DISPLÅY'1F訂rÅTEH訓T OK' nSE DISPLAY'IF STAT祖Ⅰ封TⅣ別呈上一 打旧一IF. 00肝l汀E甲ト3=利一2/削一1 C瓜⊥ 一SUBP' C札L '既SUB◆ mSE FILEl 08033押 mP 吼肘. K∝BlOO町-!テストデバッグを開始します。 g[t(文識別子)】 [叩(バラメタ文字列)] 1994一 AT HITÅCHI9)mÅR Ⅸ刀DE1 98〔叫28Z4 甘1-1 ‡'00000亡iOO' Vl-2 Ⅹ'0〔の00000一 FIIE-COⅣT艮)L. S旺.m FILEI ASSI(訓TO 〔拓Å椚ZATIO付 SE馴 DATA t)ⅠⅤISIOII. FILE SmI珊. FD FILEI ロムTAI氾刀RDIS DÅTAl. 01軸雅!;. OZ Ⅸ刀DEI PIC 9(朗∝l 図3 デバッガのイメージ画面 アニメ一夕モードでデバッグを行っている画面である。動作中に 実行速度を切り換えたり,一時停止・再実行させたりしてデータの 参照・設定などができる。 (IndexedSequentialAccessMethod),ソート(Sort), およびツールクラス ライブラリが一体となっている。 (1)開発マネージャ この環境に内蔵されるさまざまなツールの統合化およ び業務プログラムの統合的管理を図っているのが開発マ ネージャである(図2参月号号)。憤始文や登録集原文,画面 定義,ファイルレコード定義などのリソース管理,各リ