(57)【要約】【課題】  情報処理装置間での移行を行う際にプログラムの再利用を効率良く行うことが可能な技術を提供する。【解決手段】  データベースへのアクセスを行うプログラムを特定するステップと、前記特定したプログラムでのデータベースへのアクセスで用いられるデータ及びテーブルの情報を抽出するステップと、前記抽出したデータ及びテーブルの情報で用いられているデータの名称及び構造を所定の表記やデータ構造表現に変換して移行前のデータベースのデータ構造を具現化するステップと、前記具現化した移行前のデータベースのデータ構造から移行後のデータベースのデータモデルを作成し、移行後のデータベースのデータ構造を作成するステップと、前記移行前のデータベースのデータ構造と移行後のデータベースのデータ構造とを対応付ける対応情報を作成するステップと、前記プログラム中の移行前のデータベースのデータ及びテーブルの名称を前記作成した対応情報に従って移行後のデータベースのデータ及びテーブルの名称に修正するステップとを有するものである。【選択図】        図１
2006004099.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置間での処理システムの移行の際にプログラムを修正して再利用するプログラム再利用装置におけるプログラム再利用方法であって、
データベースへのアクセスを示すプログラム中の記述を前記プログラム再利用装置内の記憶装置上で検索してデータベースへのアクセスを行うプログラムを特定するステップと、
前記特定したプログラムでのデータベースへのアクセスで用いられるデータ及びテーブルの情報を前記記憶装置上の当該プログラムから抽出するステップと、
前記抽出したデータ及びテーブルの情報で用いられているデータの名称及び構造を所定の表記やデータ構造表現に変換して移行前のデータベースのデータ構造を具現化するステップと、
前記具現化した移行前のデータベースのデータ構造から移行後のデータベースのデータモデルを作成し、そのデータモデルから移行後のデータベースのデータ構造を作成して前記記憶装置に格納するステップと、
前記移行前のデータベースのデータ構造と移行後のデータベースのデータ構造とを対応付ける対応情報を作成して前記記憶装置に格納するステップと、
前記プログラム中の移行前のデータベースのデータ及びテーブルの名称を前記作成した対応情報に従って移行後のデータベースのデータ及びテーブルの名称に修正して前記記憶装置に格納するステップとを有することを特徴とするプログラム再利用方法。
【請求項２】
前記データベースへのアクセスを行うプログラムを特定するステップで特定した第１のプログラムと第２のプログラムとの間で類似するデータ及びテーブルを集約して前記具現化を行うことを特徴とする請求項１に記載されたプログラム再利用方法。
【請求項３】
前記移行後のデータベースのデータ構造を作成するステップで移行前のデータベースの第１のデータ構造と第２のデータ構造との間で重複するデータ項目を別ファイルとするデータモデルを作成して移行後のデータベースのデータ構造を作成することを特徴とする請求項１または請求項２のいずれかに記載されたプログラム再利用方法。
【請求項４】
情報処理装置間での処理システムの移行の際にプログラムを修正して再利用するプログラム再利用装置において、
データベースへのアクセスを行うプログラムを格納する記憶装置と、
データベースへのアクセスを示すプログラム中の記述を前記記憶装置上で検索してデータベースへのアクセスを行うプログラムを特定するＤＢアクセスプログラム特定処理部と、
前記特定したプログラムでのデータベースへのアクセスで用いられるデータ及びテーブルの情報を前記記憶装置上の当該プログラムから抽出するデータ／テーブル抽出処理部と、
前記抽出したデータ及びテーブルの情報で用いられているデータの名称及び構造を所定の表記やデータ構造表現に変換して移行前のデータベースのデータ構造を具現化するデータ構造具現化処理部と、
前記具現化した移行前のデータベースのデータ構造から移行後のデータベースのデータモデルを作成し、そのデータモデルから移行後のデータベースのデータ構造を作成して前記記憶装置に格納するＤＢ設計処理部と、
前記移行前のデータベースのデータ構造と移行後のデータベースのデータ構造とを比較し、それらの対応する情報から対応情報を作成して前記記憶装置に格納する新旧ＤＢ対応情報作成処理部と、
前記プログラム中の移行前のデータベースのデータ及びテーブルの名称を前記作成した対応情報に従って移行後のデータベースのデータ及びテーブルの名称に修正して前記記憶装置に格納するプログラム修正処理部とを備えることを特徴とするプログラム再利用装置。
【請求項５】
情報処理装置間での処理システムの移行の際にプログラムを修正して再利用するプログラム再利用装置におけるプログラム再利用方法をコンピュータに実行させる為のプログラムであって、
データベースへのアクセスを示すプログラム中の記述を前記プログラム再利用装置内の記憶装置上で検索してデータベースへのアクセスを行うプログラムを特定するステップと、
前記特定したプログラムでのデータベースへのアクセスで用いられるデータ及びテーブルの情報を前記記憶装置上の当該プログラムから抽出するステップと、
前記抽出したデータ及びテーブルの情報で用いられているデータの名称及び構造を所定の表記やデータ構造表現に変換して移行前のデータベースのデータ構造を具現化するステップと、
前記具現化した移行前のデータベースのデータ構造から移行後のデータベースのデータモデルを作成し、そのデータモデルから移行後のデータベースのデータ構造を作成して前記記憶装置に格納するステップと、
前記移行前のデータベースのデータ構造と移行後のデータベースのデータ構造とを対応付ける対応情報を作成して前記記憶装置に格納するステップと、
前記プログラム中の移行前のデータベースのデータ及びテーブルの名称を前記作成した対応情報に従って移行後のデータベースのデータ及びテーブルの名称に修正して前記記憶装置に格納するステップとをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置間での処理システムの移行の際にプログラムを修正して再利用するプログラム再利用技術に関し、特に既存のメインフレームシステムからオープンシステムへの移行の際にデータベース構造の変更に合わせてプログラムを修正して再利用を行うプログラム再利用技術に適用して有効な技術に関するものである。
【背景技術】
【０００２】
オープンシステムの構築において、これまでメインフレームシステムによって業務運用を行っていた場合、既存のメインフレームシステムのプログラムを再利用することによって新システムを構築し、オープンシステムのプログラムの開発工数を少なくするということが行われている。この様な既存メインフレームシステムのプログラム再利用において、従来はプログラム中に記述されている業務に直結する処理の部分をそのままオープンシステム環境に移行するという方法で行っている。また、データベースに関係する記述部分のプログラムに関しては、データベースのデータ構造の変更がない場合のみプログラムの再利用を行い、データベースのデータ構造の変更がある場合は対応手段を見出し、その場その場で対策を実施している。そのため、データベースに関係するプログラムは全て新規に作成することもある。
【０００３】
データ構造の変更に伴ってプログラムの修正が必要となった場合、データ構造に依存するプログラムを検出することによってプログラム修正の支援を行う技術もある。例えば、データ構造の変更が生じた場合、プログラムと移植元と移植先のアロケート情報を入力し、構造体、データ構造の相違、配置相違のそれぞれの検出手段を場合に応じて駆動し、配置結果の相違内容と相違が発生した構造体を特定し、データ構造の変化が処理に影響するプログラム中の箇所を検出して、プログラムの移植支援を行う装置がある（特許文献１参照）。アロケート情報とは、データ構造毎にメモリ上の配置領域を決定する規則であり、計算機毎に相違する場合がある。この技術では、データアロケート規則の異なる計算機間でプログラムの移植を実施する際に発生するデータ構造の違いを解析し、データ構造の変更に対する移植を支援している。プログラム上で修正が必要な個所の情報を画面表示で提供し、プログラムの修正箇所を明確にすることで、別システムへの移植支援を行い、プログラムの再利用を可能としている。
【０００４】
【特許文献１】特開平５−２３３２３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
かかる従来の技術には次の様な問題がある。すなわち、メインフレームシステムのプログラムを再利用してオープンシステムを構築する際は、プログラム中に記述されている業務に直結する処理の部分をそのままオープンシステム環境に移行するという方法を採り、データベースにデータ構造の変更がある場合は、その都度対応方法を検討し、プログラムの修正による再利用が可能かどうかの判断を行う。既存のメインフレームで稼動しているデータベースの構造が複雑な場合は、プログラムの再利用は難しくなるため新規に作成する場合もある。
【０００６】
また、データのアロケート規則の変更によるデータ構造の変化に対しては、データ構造に依存するプログラムを検出し、プログラム中のデータ構造の変更が影響する箇所を明確にすることで別システムへの移植支援を行うという方法もある。しかし、この方法はデータベースの構造の変更に対しては対応していない。
【０００７】
この様に、従来の方法ではデータベースの移行パターン毎にプログラムの修正方法を策定するため、手順は一定ではなく、構造が複雑な場合にはプログラムの再利用で対応できないという問題があった。
【０００８】
また、データ構造の変更に伴う影響箇所の検出技術においては、計算機によるアロケート規則の変更に伴う修正支援を行っているが、アロケート規則の変更の他にデータ構造の変更が発生するデータベースの構造変更に関するプログラムの再利用に関しては対応できないという問題があった。
【０００９】
本発明の目的は上記問題を解決し、情報処理装置間での移行を行う際にプログラムの再利用を効率良く行うことが可能な技術を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、情報処理装置間での処理システムの移行の際にプログラムを修正して再利用するプログラム再利用装置において、移行前のプログラム中のデータ及びテーブルの情報を基に移行後のデータベースを設計し、その設計したデータベースのデータ及びテーブルの情報に従ってプログラムを修正するものである。
【００１１】
本発明では、情報処理装置間での処理システムの移行、例えばメインフレームシステムからオープンシステムへのデータベース処理システムの移行において、特にデータベースの構造が変更になった際、変更されるデータ構造に着目するのではなく、データ構造が変更になっても変化しないメインフレームのプログラム上のデータベースに関連するデータ及びテーブルを抽出し、その抽出したデータ及びテーブルの情報で用いられているデータの名称やデータの構造を、対応する日本語表記やテーブル表現に変換して移行前のデータベースのデータ構造を具現化する。
【００１２】
そして、オープンシステムで利用するデータベースの構造を考慮に入れたデータモデルを前記具現化したデータ構造から作成し、その作成したデータモデルの情報から新データベースを設計する。作成したデータモデルと設計したデータベースのデータ、集約したデータ及びテーブルから、オープンシステムへ移行した後のデータベースに対応するデータ及びテーブルを作成すると共に、新旧のデータベースに関係するデータ及びテーブルの対応情報をまとめ、この新旧のデータベースに関係するデータ及びテーブルの対応情報を用いてプログラムを修正して、プログラムの再利用を実現する。
【発明の効果】
【００１３】
本発明によれば、情報処理装置間での移行を行う際にプログラムの再利用を効率良く行うことが可能である。
【発明を実施するための最良の形態】
【００１４】
以下にメインフレームシステムからオープンシステムへの移行の際にプログラムを修正して再利用する一実施形態のプログラム再利用装置について説明する。
【００１５】
図１は本実施形態のプログラム移行処理の処理手順を示すフローチャートである。メインフレームシステムからオープンシステムへのデータベース関係のプログラムの移行処理が発生した場合、図１に示す様に本実施形態では、ＤＢアクセスプログラムを特定してデータやテーブルを抽出した後、そのデータ構造を具現化して移行後のデータベースを設計し、新旧ＤＢ対応情報に従って移行前のプログラムを修正して移行後のプログラムを生成する処理を行う。
【００１６】
図１０は本実施形態のプログラム再利用装置の概略構成を示す図である。図１０に示す様に本実施形態のプログラム再利用装置１０００は、ＤＢアクセスプログラム特定処理部１００１と、データ／テーブル抽出処理部１００２と、データ構造具現化処理部１００３と、ＤＢ設計処理部１００４と、新旧ＤＢ対応情報作成処理部１００５と、プログラム修正処理部１００６とを有し、以下の処理を行う際に、データベースへのアクセスを行う移行前プログラムを磁気ディスク装置から読み出して格納するメモリを備えている。
【００１７】
ＤＢアクセスプログラム特定処理部１００１は、データベースへのアクセスを示すプログラム中の記述をメモリ上で検索してデータベースへのアクセスを行うプログラムを特定し、メモリ上のＤＢアクセス一覧へ格納する処理部である。
【００１８】
データ／テーブル抽出処理部１００２は、前記特定したプログラムでのデータベースへのアクセスで用いられるデータ及びテーブルの情報をメモリ上の当該プログラムから抽出し、メモリ上のＤＢ関連データ／テーブル一覧へ格納する処理部である。
【００１９】
データ構造具現化処理部１００３は、前記抽出したデータ及びテーブルの情報の内で類似するデータ及びデーブルをメモリ上で集約し、その情報で用いられているデータの名称及び構造を日本語等の所定の表記やテーブル形式等の所定のデータ構造表現にメモリ上で変換して移行前のデータベースのデータ構造を具現化する処理部である。
【００２０】
ＤＢ設計処理部１００４は、前記具現化した移行前のデータベースのデータ構造から重複するデータ項目を別ファイルとする移行後のデータベースのデータモデルをメモリ上で作成し、そのデータモデルから移行後のデータベースのデータ構造を作成してメモリ中に格納する処理部である。
【００２１】
新旧ＤＢ対応情報作成処理部１００５は、前記移行前のデータベースのデータ構造と移行後のデータベースのデータ構造とをメモリ上で比較し、それらの対応する情報から新旧ＤＢ対応情報を作成してメモリ中に格納する処理部である。
【００２２】
プログラム修正処理部１００６は、前記プログラム中の移行前のデータベースのデータ及びテーブルの名称を前記作成した新旧ＤＢ対応情報に従って移行後のデータベースのデータ及びテーブルの名称に修正して磁気ディスク装置等の記憶装置中に格納する処理部である。
【００２３】
プログラム再利用装置１０００をＤＢアクセスプログラム特定処理部１００１、データ／テーブル抽出処理部１００２、データ構造具現化処理部１００３、ＤＢ設計処理部１００４、新旧ＤＢ対応情報作成処理部１００５及びプログラム修正処理部１００６として機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
【００２４】
本実施形態のプログラム再利用装置１０００は、データベース関係のプログラムの移行処理が発生した場合にＤＢ関係プログラムの移行作業を開始し、ステップ１０１でＤＢアクセスプログラム特定処理部１００１は、移行作業の行われる全プログラムを対象としてメモリ上に格納し、そのプログラム中にデータベースへのアクセスを行う命令、例えばＤＢ呼出し命令が記述されているかどうかを調べてデータベースへのアクセスを実施しているかを判定し、データベースへのアクセスがある場合に、そのプログラムの名称等の識別情報をＤＢアクセスプログラム一覧へ登録する。
【００２５】
ステップ１０２でデータ／テーブル抽出処理部１００２は、前記ＤＢアクセスプログラム一覧の情報をもとに該当プログラムのメモリ上への読込を行い、そのプログラムの内部を１行毎にメモリ上で検索してデータベースへのアクセスを実行している箇所、例えばＤＢ呼出し命令の箇所であるかを判定して、データベースへのアクセス箇所である場合には、データベースへのアクセス時に使用しているデータ及びテーブルを抜き出してＤＢ関連データ／テーブル一覧に登録する。
【００２６】
次にステップ１０３でデータ構造具現化処理部１００３は、前記ＤＢ関連データ／テーブル一覧の内容を読み出して、前記データベースへのアクセスを行う命令が記述されていると特定したプログラム間で類似する類似データ／テーブル、すなわちテーブル中のデータサイズがそれぞれ等しいテーブルが存在するかどうかを調べ、類似データ／テーブルが存在した場合には、類似データ／テーブルの集約を実施し、ある類似テーブルに類似する他のテーブルをその類似テーブルに集約して表現する。そして、テーブル中のデータ項目のアルファベット表記等を対応する日本語表記等に変換して移行前のデータベースのデータ構造を具現化する。
【００２７】
ステップ１０４でＤＢ設計処理部１００４は、前記具現化したデータ構造からそれぞれのデータを分離して各データを比較し、移行前のデータベースのデータ構造間で重複するデータ項目を抽出して別のファイルを新規に作成してまとめた後、その別ファイルを含む移行後のデータモデルを作成する。そして移行後のデータモデルと移行前のデータ構造の情報から、移行後のデータベースのデータ構造を作成する。例えば移行前の受注ファイルと顧客ファイルとで商品に関するデータ項目が重複していた場合、その商品のデータ項目を商品ファイルとしてまとめた後、受注ファイル、顧客ファイル及び商品ファイルからなる移行後のデータモデルを作成する。そして移行前の受注ファイルと顧客ファイルで重複していたデータ項目から移行後の商品ファイルのデータ構造を作成し、移行前の受注ファイルと顧客ファイルから重複するデータ項目を除いて移行後の受注ファイルと顧客ファイルのデータ構造を作成する。
【００２８】
ステップ１０５で新旧ＤＢ対応情報作成処理部１００５は、移行前のデータベースの受注ファイル等のデータ構造と、移行後のデータベースの受注ファイル、商品ファイル及び顧客ファイル等のデータ構造とをメモリ上で比較し、それらを対応付けた新旧ＤＢ対応情報、例えば旧ＤＢデータ構造の受注ファイルと、新ＤＢデータ構造の受注ファイル、商品ファイル及び顧客ファイルとを対応付けた新旧ＤＢ対応情報を作成する。
【００２９】
ステップ１０６でプログラム修正処理部１００６は、データ／テーブル集約情報の関連データ／テーブル名の情報に登録されているプログラム名から該当するプログラムを開き、関連データ／テーブル名に登録されているデータまたはテーブル名から修正箇所を検索した後、その検索した箇所の変更後のテーブルの内容について、データ／テーブル集約情報の集約後の名称から新旧ＤＢ対応情報の旧ＤＢデータ構造を検索し、更にその検索した旧ＤＢデータ構造に対応する新ＤＢデータ構造を参照して、新ＤＢデータ構造に登録されている新ＤＢデータ構造に対応するデータまたはテーブルを新データ／テーブル構造から検索し、前記修正箇所を前記検索した新データ／テーブル構造に入れ替えて、プログラムの修正処理を行う。
【００３０】
図２は本実施形態のＤＢアクセスプログラム特定処理の処理手順を示すフローチャートである。図２では図１のステップ１０１でデータベースにアクセスしているプログラムを特定する処理の一例を表している。
【００３１】
ステップ１０１でＤＢアクセスプログラム特定処理を開始すると、ステップ２０１でＤＢアクセスプログラム特定処理部１００１は、移行作業の行われる全プログラムを対象として読み込みを開始し、磁気ディスク装置等に格納されているプログラムを読み込んでメモリ上に格納する。
【００３２】
ステップ２０２では、前記メモリ上に格納されたプログラム中にデータベースへのアクセスを行う命令が記述されているかどうかを調べてデータベースへのアクセスを実施しているかを判定し、データベースへのアクセスがある場合（ステップ２０２：ＹＥＳ）にはステップ２０３へ進み、ステップ２０３では、プログラムの名称等、当該プログラムを識別する為の情報をＤＢアクセスプログラム一覧へ登録する処理を行う。
【００３３】
ステップ２０２で判定した結果、そのプログラム中にデータベースへのアクセスが無い場合（ステップ２０２：ＮＯ）には何も処理を行わずにステップ２０４へ進み、ステップ２０３でのＤＢアクセスプログラム一覧への登録が終了した場合もステップ２０４に進む。
【００３４】
ステップ２０４では、まだ読み込みを行ってないプログラムが残っているかどうかを判定し、読み込みを行ってないプログラムが残っている場合（ステップ２０４：ＮＯ）にはステップ２０１のプログラム読込へと戻る。読み込みを行ってないプログラムが残っていない場合（ステップ２０４：ＹＥＳ）にはステップ２０５へ進み、ＤＢアクセスプログラム一覧を磁気ディスク装置等のファイルに出力し、ＤＢアクセスプログラム特定処理を終了する。
【００３５】
図３は本実施形態のプログラム単位のデータ／テーブル抽出処理の処理手順を示すフローチャートである。図３では図１のステップ１０２でデータベースに関係しているデータ及びテーブルを抽出する処理手順の一例を表している。
【００３６】
ステップ１０２でプログラム単位のデータ／テーブル抽出処理が開始されると、ステップ３０１でデータ／テーブル抽出処理部１００２は、ステップ１０１のＤＢアクセスプログラム特定処理のステップ２０５で作成したＤＢアクセスプログラム一覧の情報をもとに該当プログラムのメモリ上への読込を開始する。
【００３７】
ステップ３０２では、前記読み込んだプログラムの内部を１行毎にメモリ上で検索してデータベースへのアクセスを実行している箇所であるかを判定する。データベースへのアクセス箇所である場合（ステップ３０２：ＹＥＳ）にはステップ３０３へ進み、データベースへのアクセス時に使用しているデータ及びテーブルを抜き出してＤＢ関連データ／テーブル一覧に登録する。
【００３８】
ステップ３０２で判定した結果、データベースへのアクセスが無い場合（ステップ３０２：ＮＯ）には、何も処理をせずにステップ３０４へ進み、ステップ３０３でのＤＢ関連データ／テーブル一覧へ登録が終了した場合もステップ３０４に進む。
【００３９】
ステップ３０４では、ステップ３０２で検索した行がそのプログラムの最終行であるかどうかを判定し、最終行ではない場合（ステップ３０４：ＮＯ）にはステップ３０２のＤＢアクセス実行箇所の検索処理へと戻り、プログラムが最終行であった場合（ステップ３０４：ＹＥＳ）には、ステップ３０５へ進む。
【００４０】
ステップ３０５では、ＤＢアクセスプログラム一覧に登録されたプログラムのデータ及びテーブル抽出処理が全て終了したかを判定する。該当プログラムが残っている場合（ステップ３０５：ＮＯ）には、ステップ３０１の該当プログラム読込処理へと戻り、該当プログラムが残っていない場合（ステップ３０５：ＹＥＳ）には、ステップ３０６でＤＢ関連データ／テーブル一覧をファイルに出力し、プログラム単位のデータ／テーブル抽出処理を終了する。
【００４１】
図４は本実施形態のＤＢアクセス箇所の判定とＤＢ関連データ／テーブル一覧への登録の具体例を示す図である。図４では図３のステップ３０２におけるＤＢアクセス箇所の判定方法とステップ３０３のＤＢ関連データ／テーブル一覧への登録方法の一例を表している。
【００４２】
本実施形態のデータ／テーブル抽出処理部１００２は、プログラム例４００を読み込み、ステップ３０２のＤＢアクセス箇所判定処理を行うと、データベースへのアクセスを行う命令、例えばＤＢアクセス実行箇所４０１のＤＢ呼出し命令を検索してＤＢアクセス箇所であると判定する。
【００４３】
次にステップ３０３のＤＢ関連データ／テーブル一覧への登録処理では、データベースへのアクセスを実施しているＤＢアクセス実行箇所４０１のＤＢ呼出し命令からＤＢアクセステーブル４０２として「JYUTYU-FILE」を抜き出し、ＤＢアクセステーブル４０２「JYUTYU-FILE」の定義部からＤＢアクセス関連テーブル４０３を抽出して、ＤＢ関連データ／テーブル一覧へプログラム名４０４と共に登録する。
【００４４】
図５は本実施形態のデータ構造具現化での類似データ及びテーブルの集約化の具体例を示す図である。図５では、図１のステップ１０３のデータ構造具現化処理で実施する類似データ及びテーブルを集約化する処理の一例を表している。
【００４５】
ステップ１０３でデータ構造具現化処理部１００３は、ステップ３０６で出力したＤＢ関連データ／テーブル一覧の内容をファイルから読み出して類似データ／テーブル、すなわちテーブル中のデータサイズがそれぞれ等しいテーブルが存在するかどうかを調べる。図５の例では、類似テーブルＡ５０１のデータ項目、J-CODE、J-SYOHIN-CODE、J-SYOHINMEI、J-KAKAKU…が、PIC X(4)、PIC X(4)、PIC X(40)、PIC X(9)…と定義され、類似テーブルＢ５０２のデータ項目、J-CODE、J-SCODE、J-NAMAEI、J-KINGAKU…が、PIC X(4)、PIC X(4)、PIC X(40)、PIC X(9)…と定義されており、括弧内のデータサイズが等しいことからこれらが類似データ／テーブルであることが判る。
【００４６】
類似テーブルＡ５０１と類似テーブルＢ５０２の様に類似データ／テーブルが存在した場合には、類似データ／テーブルの集約５０７の処理を実施し、類似テーブルＡ５０１に類似する他のテーブルを類似テーブルＡ５０１に集約して表現して、データ／テーブル集約情報５０８とデータ／テーブル集約結果５１１を作成する。
【００４７】
データ／テーブル集約情報５０８は、集約後の名称５０９と関連データ／テーブル名５１０の情報を登録できる様にしており、集約後の名称５０９にはデータ／テーブル集約結果５１１の集約テーブル５１３で定義している集約テーブル名５１２を登録し、関連データ／テーブル名５１０には集約テーブル名５１２に関連しているプログラム名Ａ５０３とデータ／テーブル名Ａ５０５、集約された類似テーブルＢ５０２のプログラム名Ｂ５０４とデータ／テーブル名Ｂ５０６等をそれぞれ登録する。
【００４８】
図６は本実施形態のデータ構造具現化における具現化の具体例を示す図である。図６では、図１のステップ１０３のデータ構造具現化処理における移行前のデータベースのデータ構造の具現化の一例を表している。
【００４９】
ステップ１０３でデータ構造具現化処理部１００３は、データ／テーブル集約結果５１１のテーブル情報Ａ６０１から、テーブルの構造をそのまま具体的な名称に置き換えてデータの構造を可視化したデータ構造Ａ６０３を作成する。テーブル情報Ｂ６０２についても同様に具体的な名称に置き換えてデータ構造を可視化したデータ構造Ｂを作成する。この様な手順でデータ／テーブル集約結果５１１のデータ及びテーブルを全て具体的な名称に置き換えデータ構造を可視化する。
【００５０】
図６の例では、テーブル情報Ａ６０１のデータ項目、J-CODE、J-SYOHIN-CODE、J-SYOHINMEI、J-KAKAKU…を、対応する日本語表記である受注コード、商品コード、商品名、価格…の様に変換してテーブル表現のデータ構造Ａ６０３を作成する。その際、J-SURYOU、JS-JYUTYU、JS-ZAIKOの様に、データ項目J-SURYOUの下位にJS-JYUTYU及びJS-ZAIKOが定義されている場合には、数量の下位に受注及び在庫数を配置したテーブル表現を用いてそのデータ構造を示すものとする。なお各データ項目に対応する日本語表記はそのプログラム作成時に予め定義されているものとする。
【００５１】
図７は本実施形態のＤＢ設計処理の具体例を示す図である。図７では、図１のステップ１０４のＤＢ設計処理におけるデータベースの設計を実施する処理の一例を表している。
【００５２】
ステップ１０４でＤＢ設計処理部１００４は、ステップ１０３のデータ構造具現化で可視化したデータ構造からそれぞれのデータを分離して関連を示す既存データ構造７０１を作成する。具体例として示した受注ファイル７０２と顧客ファイル７０３の各データを比較すると、受注ファイル７０２の顧客コード７０４と顧客ファイル７０３の顧客コード７０５とが同じで、受注ファイル７０２の商品コード７０６、商品名７０７及び価格７０８と、顧客ファイル７０３の注文商品７２６の下にある商品コード７１０、商品名７１１及び価格７１２とがそれぞれ同じ内容であり、情報として重複している。
【００５３】
ＤＢ設計処理部１００４は、前記具現化した移行前のデータベースのデータ構造から得られる既存データ構造７０１のデータ項目をメモリ上で比較し、重複するデータ項目を抽出する。その際、下位のデータを持つ項目については、下位のデータも含めて重複するかどうかを判定するものとし、例えば受注ファイル７０２の数量７２２と顧客ファイルの数量７３０は項目名が同じであるが、数量７２２は下位に受注７２３と在庫数７２０を持つので、数量７２２と数量７３０は重複していないものと判定する。
【００５４】
更にＤＢ設計処理部１００４は、そのデータ項目の示す内容が同じであるかどうかを判定する様にしても良い。例えば受注ファイル７０２の数量７２２の下には受注７２３があり、これは顧客ファイル７０３の注文商品７２６の数量７３０と同様の意味を持つことが判る。このことから、受注ファイル７０２には顧客ファイル７０３の顧客コード７０５と顧客ファイル７０３の注文商品７２６の情報が必要なことが判る。ここで、本願発明では、データ項目の示す内容が同じであるかどうかを判定する為のテーブルが予め用意されており、そのテーブルの情報に従って前記判定を行うものとする。
【００５５】
前記の様にして抽出した重複している商品の情報を、別のファイルである商品ファイル７１５を新規に作成してまとめると、受注ファイル７０２と顧客ファイル７０３と商品ファイル７１５の関係はデータモデル７１４の様に示すことができる。この様な流れでＤＢ設計処理部１００４は、データモデル７１４と既存データ構造７０１の情報から、新ＤＢ構造７１６を設計する。新ＤＢ構造７１６については顧客ファイル７１７と商品ファイル７１８と受注ファイル７１９で構成することができ、これはそれぞれデータモデル７１４の、顧客ファイル７０３、商品ファイル７１５、受注ファイル７０２を元に作成する。
【００５６】
すなわちＤＢ設計処理部１００４は、顧客ファイル７１７について、既存データ構造７０１の受注ファイル７０２の顧客コード７０４を集約した顧客コード（主キー）７３１、既存データ構造７０１にある顧客ファイル７０３の顧客名７２４、既存データ構造７０１にある顧客ファイル７０３の顧客情報７２５の住所７２７、電話番号７２８、ＦＡＸ番号７２９で構成する。
【００５７】
ここで、新ＤＢ構造７１６のデータ項目を決定する際には、既存データ構造７０１にあるファイルへのアクセスを行うプログラム中の処理内容を検索し、そのプログラム中で用いられないデータ項目を省く様にしても良い。例えば、顧客ファイル７１７には注文商品７２６に該当するデータ項目が含まれていないが、これは既存データ構造７０１にある顧客ファイル７０３へのアクセスを行うプログラム中に、注文商品７２６のデータを用いた処理部分が無い場合の例を示している為であり、注文商品７２６のデータを用いた処理部分が当該プログラム中に存在する場合には、受注コードを外部キーとして顧客ファイル７１７に含めるものとする。
【００５８】
また商品ファイル７１８については、既存データ構造７０１にある受注ファイル７０２の商品コード７０６と顧客ファイル７０３の注文商品７２６の商品コード７１０を集約した商品コード（主キー）７３２、受注ファイル７０２の商品名７０７と顧客ファイル７０３の注文商品７２６の商品名７１１を集約した商品名７３３、受注ファイル７０２の価格７０８と顧客ファイル７０３の注文商品７２６の価格７１２を集約した価格７３４、商品のみに該当する情報である在庫数７２０で構成する。
【００５９】
受注ファイル７１９については、既存データ構造７０１の受注ファイル７０２の受注コード７２１をそのまま主キーとし、受注ファイル７０２の商品コード７０６、商品名７０７、価格７０８については、商品ファイル７１８の商品コード（主キー）７３２を商品コード（外部キー）７３５として指定することで商品ファイルの情報をいつでも引き出せる様に設定、受注ファイル７０２の顧客コード７０４については、顧客ファイル７１７の顧客コード（主キー）７３１を顧客コード（外部キー）７３６として指定することで商品ファイルの情報をいつでも引き出せる様に設定、受注ファイル７０２の数量７２２の受注７２３と顧客ファイル７０３の注文商品７２６の数量７３０を集約した数量７３７、受注ファイル７０２の納期７０９を示す納期７３８で構成する。
【００６０】
ここで、新ＤＢ構造７１６のデータ項目を決定する際に、ユーザからの指示を受け付けて内容を変更する様にしても良い。例えば、受注ファイル７０２の在庫数７２０は受注ファイル７１９ではなく商品ファイル７１８に入れてあるが、在庫数については受注時以外の商品情報の照会等の際にも用いられる情報であり、ユーザからの指示により在庫数７２０を商品ファイル７１８に含める様に変更した例を示している為である。
【００６１】
図８は本実施形態の新旧ＤＢ対応情報作成処理の具体例を示す図である。図８では、図１のステップ１０５の新旧ＤＢ対応情報作成処理における新旧のデータベースの対応情報を作成する処理の一例を表している。
【００６２】
図１のステップ１０４のＤＢ設計処理で新データベースの構造設計を行ったので、データ構造Ａ６０３は図７の新ＤＢ構造７１６の情報を元にして新データ構造を検討すると新データ構造Ａ８０１（受注ファイル）、新データ構造Ｂ８０２（商品ファイル）、新データ構造Ｃ８０３（顧客ファイル）の３つのデータ構造から成り立つことになる。
【００６３】
ステップ１０５で新旧ＤＢ対応情報作成処理部１００５は、移行前のデータベースのデータ構造であるデータ構造Ａ６０３と、移行後のデータベースのデータ構造である新データ構造Ａ８０１、新データ構造Ｂ８０２、新データ構造Ｃ８０３とをメモリ上で比較し、新旧ＤＢ対応情報８０４として、旧ＤＢデータ構造８０５と新ＤＢデータ構造８０６を持たせ、新旧のデータベースに対応する情報をメモリ上に格納して管理する。具体的な登録情報としては、旧ＤＢデータ構造８０５にデータ構造Ａ６０３（受注ファイル）の情報を登録し、新ＤＢデータ構造８０６に、データ構造Ａ６０３に対応する新データ構造Ａ８０１（受注ファイル）、新データ構造Ｂ８０２（商品ファイル）、新データ構造Ｃ８０３（顧客ファイル）の情報を登録して、一つの対応情報８０７とする。
【００６４】
図９は本実施形態のプログラム修正処理の具体例を示す図である。図９では、図１のステップ１０６のプログラム修正処理におけるプログラムの修正処理の一例を表している。
【００６５】
ステップ１０６でプログラム修正処理部１００６は、プログラム例４００を修正後プログラム例９０７に修正する為に、プログラム修正情報９０１を用いる。プログラム修正情報９０１は、プログラムを修正する為に必要な情報で、図１のステップ１０３のデータ構造具現化の作業で作成したデータ／テーブル集約情報５０８、図１のステップ１０５の新旧ＤＢ対応情報作成処理の作業で作成した新旧ＤＢ対応情報８０４、図８の新データ構造Ａ８０１（受注ファイル）、新データ構造Ｂ８０２（商品ファイル）、新データ構造Ｃ８０３（顧客ファイル）の情報をもとに作成した新データ／テーブル構造９０２を用いる。
【００６６】
具体的な修正作業では、まずデータ／テーブル集約情報５０８の関連データ／テーブル名５１０の情報に登録されているプログラム名から該当するプログラム（プログラム例４００）を開き、関連データ／テーブル名５１０に登録されているデータまたはテーブル名から、修正箇所９０３を検索する。
【００６７】
検索した箇所の変更後のテーブルの内容については、データ／テーブル集約情報５０８の集約後の名称５０９から新旧ＤＢ対応情報８０４の旧ＤＢデータ構造８０５を検索し（９０４）、更にその検索した旧ＤＢデータ構造８０５に対応する新ＤＢデータ構造８０６を参照して、新ＤＢデータ構造８０６に登録されている新ＤＢデータ構造に対応するデータまたはテーブルを新データ／テーブル構造９０２から検索する（９０５）。修正箇所９０３を前記検索した新データ／テーブル構造９０２に入れ替え、またデータベースの呼び出し箇所の修正については入れ替えたテーブル数に合わせて実施する（９０６）。またプログラム中の処理部分で、データベースの呼び出し箇所以外で使われている各データ項目及びテーブルについても、前記の様にして変更したデータ項目及びテーブルの名称に全て変換してプログラムの修正作業を実施し、磁気ディスク装置等の記憶装置中に格納する。
【００６８】
前記の様に本実施形態によれば、メインフレームシステムのプログラム再利用によるオープンシステム移行においてデータベースの構造が変わったとしても、プログラム中で使用するデータ項目は変わらないことに着目し、データベースに関係するデータ項目及びデータを抽出してその情報から新しいデータベースの設計を行うので、移行後のシステムで使用するデータ及びテーブルが既存のシステムのデータとテーブル情報と近い状態にすることができ、プログラムの再利用を効率良く実現することができる。また、移行後のプログラムで使用するデータ及びテーブルを、移行前のプログラムのデータ及びテーブル形式に近い形で作成することができ、ＤＢアクセス実行箇所４０１やＤＢアクセス関連テーブル４０３の検索時に修正箇所を把握しておくことにより、修正作業を新旧のデータベースに関係するデータ及びテーブルの対応情報から自動的に行うことができるため、データ構造の変更が発生した場合でもプログラムの再利用を効率良く実現することができる。
【００６９】
なお本実施形態では、図１に示したＤＢ関係プログラムの移行作業の手順として、まずステップ１０１のＤＢアクセスプログラム特定処理を実施し、次にステップ１０２のプログラム単位のデータ／テーブル抽出処理を実施する方法を示したが、データベースにアクセスしているプログラムの特定を行った際に、そのプログラムでデータベースにアクセスしているデータ及びテーブルを抽出しても良い。この方法では、プログラムを調査するのは１回で済むため、プログラムの検索処理を減少させて効率を向上させることができる。
【００７０】
また本実施形態のプログラムの修正では、新データ／テーブル構造９０２のデータ名及びテーブル名をそのまま使う例を挙げたが、接頭語及び接尾語の情報を作成しておき、該当するデータ及びテーブルを修正する際に、前記作成した接頭語または接尾語を付ける指定を行うことも可能である。
【００７１】
以上説明した様に本実施形態のプログラム再利用装置によれば、移行前のプログラム中のデータ及びテーブルの情報を基に移行後のデータベースを設計し、その設計したデータベースのデータ及びテーブルの情報に従ってプログラムを修正するので、情報処理装置間での移行を行う際にプログラムの再利用を効率良く行うことが可能である。
【図面の簡単な説明】
【００７２】
【図１】本実施形態のプログラム移行処理の処理手順を示すフローチャートである。
【図２】本実施形態のＤＢアクセスプログラム特定処理の処理手順を示すフローチャートである。
【図３】本実施形態のプログラム単位のデータ／テーブル抽出処理の処理手順を示すフローチャートである。
【図４】本実施形態のＤＢアクセス箇所の判定とＤＢ関連データ／テーブル一覧への登録の具体例を示す図である。
【図５】本実施形態のデータ構造具現化での類似データ及びテーブルの集約化の具体例を示す図である。
【図６】本実施形態のデータ構造具現化における具現化の具体例を示す図である。
【図７】本実施形態のＤＢ設計処理の具体例を示す図である。
【図８】本実施形態の新旧ＤＢ対応情報作成処理の具体例を示す図である。
【図９】本実施形態のプログラム修正処理の具体例を示す図である。
【図１０】本実施形態のプログラム再利用装置の概略構成を示す図である。
【符号の説明】
【００７３】
４００…プログラム例、４０１…ＤＢアクセス実行箇所、４０２…ＤＢアクセステーブル、４０３…ＤＢアクセス関連テーブル、４０４…プログラム名、５０１…類似テーブルＡ、５０２…類似テーブルＢ、５０３…プログラム名Ａ、５０４…プログラム名Ｂ、５０５…データ／テーブル名Ａ、５０６…データ／テーブル名Ｂ、５０７…類似データ／テーブルの集約、５０８…データ／テーブル集約情報、５０９…集約後の名称、５１０…関連データ／テーブル名、５１１…データ／テーブル集約結果、５１２…集約テーブル名、５１３…集約テーブル、６０１…テーブル情報Ａ、６０２…テーブル情報Ｂ、６０３…データ構造Ａ、７０１…既存データ構造、７０２…受注ファイル、７０３…顧客ファイル、７０４…顧客コード、７０５…顧客コード、７０６…商品コード、７０７…商品名、７０８…価格、７０９…納期、７１０…商品コード、７１１…商品名、７１２…価格、７１４…データモデル、７１５…商品ファイル、７１６…新ＤＢ構造、７１７…顧客ファイル、７１８…商品ファイル、７１９…受注ファイル、７２０…在庫数、７２１…受注コード、７２２…数量、７２３…受注、７２４…顧客名、７２５…顧客情報、７２６…注文商品、７２７…住所、７２８…電話番号、７２９…ＦＡＸ番号、７３０…数量、７３１…顧客コード（主キー）、７３２…商品コード（主キー）、７３３…商品名、７３４…価格、７３５…商品コード（外部キー）、７３６…顧客コード（外部キー）、７３７…数量、７３８…納期、８０１…新データ構造Ａ、８０２…新データ構造Ｂ、８０３…新データ構造Ｃ、８０４…新旧ＤＢ対応情報、８０５…旧ＤＢデータ構造、８０６…新ＤＢデータ構造、８０７…対応情報、９０１…プログラム修正情報、９０２…新データ／テーブル構造、９０３…修正箇所、９０４…新ＤＢデータ構造の検索、９０５…新データ／テーブル構造の検索、９０６…データベース呼び出し箇所の修正、９０７…修正後プログラム例、１０００…プログラム再利用装置、１００１…ＤＢアクセスプログラム特定処理部、１００２…データ／テーブル抽出処理部、１００３…データ構造具現化処理部、１００４…ＤＢ設計処理部、１００５…新旧ＤＢ対応情報作成処理部、１００６…プログラム修正処理部。
【図１】
2006004099.tif 000003
【図２】
2006004099.tif 000004
【図３】
2006004099.tif 000005
【図４】
2006004099.tif 000006
【図５】
2006004099.tif 000007
【図６】
2006004099.tif 000008
【図７】
2006004099.tif 000009
【図８】
2006004099.tif 000010
【図９】
2006004099.tif 000011
【図１０】
2006004099.tif 000012