イフコンピュータ > IF/Prolog > IF/Prologベースの応用 > COBOL保守波及分析

COBOL保守波及分析

IF/Prolog by Siemens
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

EDPコンサルティング会社であるコンピュータアプリケーション株式会社は、COBOLコードの変更および品質管理のための 生産性向上と信頼性の向上のためのシステム(PLASMA)を使用しています。

ソフトウェア保守業務の困難さ

ソフトウェア保守は、大規模システムをお持ちのお客様にとっても、ソフトウェアハウスにとっても大変頭の痛い問題です。

お客様にとっては、稼働中のシステムのトラブルの早期リカバリはもちろんのこと、外部環境の変化に合わせたシステムの進化や、エンドユーザーへのよりよいサービスの提供のための改造要求は留まるところを知りません。

ソフトウェアハウスにとっては、ソフトウェア保守プロジェクトの属人性によるアサインの長期化傾向があり、モラルの低下や技術レベルの停滞が問題となります。

ソフトウェア保守業務の実際

私たちは、ソフトウェア保守において最も難しいのは、既存システムの機能、実装方式の理解だと考えています。

例えば、A銀行と、B銀行の勘定系のシステムを比較すると、その内容はほとんど同じものであっても、システムは大きく異なるのが普通です。従って、A銀行のシステムを開発した技術者であっても、B銀行のシステムの保守は容易なことではありません。もちろん、業務の知識があるために、早い時期に機能を理解することはできますが、システムをどのように作り込んでいるか(システム実現方式)の知識がなければシステムを直すことはできません。

逆に、あるシステムに長く携われば携わるほど、システム実現方式の知識は、担当技術者に蓄積されます。このため、一旦システムを外注すると、システムの実装方式の知識は外注先に蓄積され、その期間が長くなればなるほど依存度が増し、その経費を削減することが困難になります。

従って、ソフトウェア保守を効率良く行なうためには、いかにして機能と、実装方式をわかりやすく整理しておくかどうかという点が問題になります。

PLASMAの利点

PLASMAは、ソフトウェア保守の効率化のためのツールです。もちろん、業務知識の属人性を排除することはできませんが、システムの実現方式をわかりやすく提示することによって、次のようなメリットを生み出します。

属人性の軽減

PLASMAを利用することによって、他人の書いたプログラムでも理解が容易になり、このプログラムはこの人でなければ、といった問題が軽減されます。

見積りの精度向上

PLASMAを利用することによって、現行システムの予備調査が容易になるため、保守作業の見積り精度が向上します。従って、保守作業を始めてみたら、次々と問題点が判明するとの問題が軽減されます。

保守作業品質の向上

保守作業を行なう前の予備調査作業の効率化高精度化に伴い、保守作業によるバグの顕在化などによるトラブルが未然に防止できます。もちろん、この作業品質の向上により費用も軽減されます。

潜在バグの発見

PLASMAを利用することにより、潜在バグを発見することが可能です。実際に、あるシステムではPLASMAの最初のステップで、約4000ラインに1つの潜在バグが発見されたことがあります。

PLASMAの機能

ここでは、前節で挙げた利点を導くPLASMAの機能を説明します。

業務を取り巻く環境は日々刻々と予告なく変化しますが、システム自身は外部からの入力がない限り変化することはありません。なぜなら、システムを実現する際には最終的にプログラムを書き、入力しているからです。

PLASMAは、EDPシステムが持つこの特徴に注目して開発したソフトウェアツールです。

PLASMAは、システムのソースコードを解析して知識ベースを作成します。この知識を用いて、既存システムの実装方式、システムの現状の調査を支援することを目的としています。

PLASMAの現在の解析対象範囲は、COBOLプログラム、(JCL、データベース定義 - オプション)です。この解析対象から得られた知識から以下の情報をツールユーザーに提供します。

サブルーチンの階層関係

サブルーチンの呼びだし関係を図示します。また、特定のサブルーチンを指定してその親ルーチン(そのサブルーチンを呼んでいるプログラム)の検索も表示できます。この機能で、未知のプログラムの理解も早まりますし、他のプログラムへの影響範囲も特定できます。

\psbox[width=14cm]{extern_call} \caption{外部サブルーチン構造図}

ファイルデータの推移の調査

あるロードモジュールで特定の入力ファイルのデータがどの出力ファイルのどこに影響を与えているかを解析します。もちろん、特定の出力データから入力データを調べることも可能です。この機能によって、従来知りたくてもなかなか知り得なかった、「結局このデータはどこに入るんだ?」と質問に即座に答えることができるようになります。

データのフォーマット変更の波及範囲分析

コードの拡張や、数値データの桁数の変更、日付の和暦、西暦変換などの保守の際に効果を発揮します。プログラム中の特定のデータに対してそのデータの表現形式を変更した場合に影響範囲を分析します。この機能により、今までしばしば起きていた修正洩れを未然に防ぐことが可能です。

\psbox[width=14cm]{data_group} \caption{データグループ}

プログラムの構造表示

プログラムを理解するために有用な、Perform内部サブルーチンの階層構造、またPerformの中身をPadに近い表現で図示することが可能です。今までは、結局ソースコードをはじから読まなくてはならなかったのが、ビジュアルな情報を利用して問題点の「あたり」がつきやすくなります。

\psbox[width=12cm]{pgm_struct} \caption{プログラムの構造表示}

データの波及分析

プログラムの中で特定箇所の特定データが変更された場合の波及先を分析します。逆に、特定箇所の特定データの値がその直前にどこで変更されたかを分析することも可能です。この機能はがんこなバグの原因究明に力を発揮します。

PLASMAの成功事例

PLASMAは、銀行業務のシステム保守プロジェクトで実際に利用されています。このプロジェクトでは、主に他人の開発したプログラムの理解にPLASMAを利用しています。また、PLASMAの知識ベースを利用して、プログラムのクリーニング作業を実施しています。具体的には、数値データで桁落ちの可能性のあるデータを調査、修正したり、利用されていないPerform内部サブルーチンを消去したりします。また、20Kラインのサブシステムのクリーニングの過程で内在バグが10個以上発見されました。

PLASMAとUnix機能の相乗効果

PLASMAは、Unixワークステーション上で動作し、ホストからソースコードを転送しています。実際の保守プロジェクトでは、PLASMAを利用するだけでなく、Unix上でソース分析のためのツールをいくつも開発して利用しています。なかでも、COPYメンバーに出てくるデータのシステム全体に対するクロスリファレンスは非常に有効に利用されています。

また、プログラムの調査結果をエディタを利用してUnixワークステーション上のファイルとして保存しています。この作業により、再度の変更の場合の作業効率が向上しています。

以上の、PLASMAとUnixワークステーションの機能を利用することにより、従来より正確な保守作業工数の見積もりが可能になり、作業品質も向上しました。

PLASMAの開発推移とさらなる拡張

PLASMA開発元の(株)コンピュータアプリケーションズでは、1984年より研究部門がソフトウェア保守の研究を続けており、ツールや、方法論を開発し、PLASMAを完成するに至りました。

ソフトウェア保守の研究は、現在も強力に続けられています。その研究成果は日本科学技術連盟でも高く評価されています。

さらに、ソースコードだけの解析ではなく、電子化されたドキュメントからシステムの索引を作成する機能や、サブルーチンの整理をオブジェクト指向技術を利用して行なうことにより、既存コードの再利用を推進するためのツールを研究開発中です。

PLASMA関連サービス

PLASMA開発元の(株)コンピュータアプリケーションでは、PLASMAを使用して実際に、お客様のシステム保守の請負もしております。その他のさまざまなサービスについてもお問い合わせ下さい。

動作環境など

PLASMAは主なUNIXワークステーション上で動作します。実行には、IF/PrologおよびOSF/Motifが必要です。現在、対応しておりますホスト対象システムは、IBM OS/VS COBOLですが、他に、Hitac XCOBOL、富士通社製COBOLにも対応しております。その他の環境については、 お問い合わせ下さい。

PLASMAのユーザインタフェースとマニュアルは和文、英文、または独文の中からいずれか選んでいただけます。

PLASMAの出荷の前に、弊社エンドユーザ間においてライセンス契約を結ぶことになります 。予知なく価格や仕様を変更することがあります。 PLASMAの開発元は(株)コンピュータアプリケーションズ(本社東京)です。

document: http://www.ifcomputer.co.jp/IFProlog/Applications/COBOLMaintenance/print_jp.html
published 2008/11/17 update 1996/12/20 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 start (AT) ifcomputer.com
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
戻る> managed with ubiCMS