(57)【要約】      （修正有）【課題】異種システム間でのシステム再構築を自動的に行う。【解決手段】現行プログラムソース４がプログラムリバース部１に入力され、現行プログラムソース４に記述されているロジックを、各命令単位に分解し、処理部分のみを業務ロジックリポジトリＤＢ６に登録する。また、システムで使用されているＤＢ／ファイルコピー句、コードコピー句についても、ＤＢ６に登録する。プログラム作成部２では、ＤＢ６に登録されているロジック部品とＤＢ／ファイルコピー句、コードコピー句等を使用し、これらを組み合せて処理部品を作成し、新システム用にカスタマイズされた新業務ロジックリポジトリＤＢ８を作成する。プログラム生成部３（３ａ、３ｂ）では、新業務ロジックリポジトリ８を言語・プラットフォームに応じて作成した言語の文型辞書に基づいて読み込むことにより、様々な言語・プラットフォームに対応したプログラムソースを生成する。【選択図】  図２
2005165584.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラム言語により記述され第１のプラットフォームにおいて動作する第１のプログラムを、前記第１のプログラム言語とは異なる第２のプログラム言語により記述されているか又は前記第１のプラットフォームとは異なる第２のプラットフォームにおいて動作する第２のプログラムに変換するプログラム作成システムであって、
前記第１のプログラムと該プログラムにおいて使用するデータ定義とをリバースして業務ロジック部品単位に分解し、処理部分のみを抽出するプログラムリバース部と、
該プログラムリバース部において抽出された前記処理部分を業務ロジック部品として、前記データ定義をテーブル／ファイル定義体として保存する業務ロジックリポジトリデータベースと、
該業務ロジックリポジトリデータベースに保存された前記業務ロジック部品及び前記テーブル／ファイル定義体に基づいて、一般言語により記載された新業務ロジックリポジトリを作成する一般言語プログラム作成部と、
前記新業務ロジックリポジトリを保存する新業務ロジックリポジトリデータベースと、
該新業務ロジックリポジトリデータベースに保存されている前記新業務ロジックリポジトリに対して、前記一般言語と前記第２のプログラム言語とを対照する文型辞書を適用することにより、前記新業務ロジックリポジトリを前記第２のプログラム言語により記載された第２のプログラムに変換するプログラム生成部と
を有するプログラム作成システム。
【請求項２】
さらに、前記一般言語により前記第２のプログラムを記述した設計書を作成する設計書作成部を有することを特徴とする請求項１に記載のプログラム作成システム。
【請求項３】
さらに、前記プログラム生成部は、前記設計書の修正に応じて前記新業務ロジックリポジトリデータベース内の該当する新業務ロジックリポジトリを修正し、該新業務ロジックリポジトリの修正に基づいて前記第２のプログラムを修正する修正手段を有していることを特徴とする請求項１又は２に記載のプログラム作成システム。
【請求項４】
システムのプログラムを他言語または他プラットフォームの新規システムに移行して新たなプログラムを作成する方法において、
複数の対象プログラムとデータ定義とをリバースして、最適単位の業務ロジック部品及びテーブル／ファイル定義体として分解しプログラム言語に依存しない一般言語で記載された業務ロジックリポジトリに保存するステップと、
分解して得られた業務ロジック部品及びテーブル／ファイル定義体に基づいて新規システムのリポジトリを作成するステップと、
前記業務ロジックリポジトリに対して、前記新規システムのプラットフォームにおけるプログラム言語と前記一般言語とを対応させた文型辞書を適用することにより、新規プラットフォームに対応するプログラムソースを生成するステップと
を有することを特徴とする新規システムに移行するプログラム作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異種システムへのシステム再構築技術に関し、より詳細には、言語に依存しないリポジトリの作成とその再利用によるプログラムの変換処理を含むシステム再構築技術に関する。尚、異種システムとは、プラットフォームが異なる場合、プログラム言語が異なる場合を含む。
【背景技術】
【０００２】
従来用いられてきたシステムを異なるシステムに変更する場合に、言語が同じ場合において、既存の言語プログラムから、標準パターン部分と固有の処理を行うプロセス部分とデータファイルに関する部分とを判別してプログラム部品として格納し、プログラムの生成を含む際に利用するプログラム部品の生成処理を含むプログラム部品の自動抽出・再利用する技術が存在する（例えば、特許文献１参照）。
【特許文献１】特開平９−１０１８８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
管理の簡単さ及び費用の安さなどの面から、従来から用いられている既存のホストシステムを、ＵＮＩＸ、Ｗｉｎｄｏｗｓ又はＬｉｎｕｘ（以上、商標名）などのオペレーティングシステムへの移行が進んでいる。また、コーディングに使用される言語も、ＣＯＢＯＬやＰＬ／Ｉなどの言語からＪａｖａなどのオブジェクト指向言語に変化しつつある。さらに、システムの再構築においては、言語そのものに変更は無い場合でも、オペレーティングシステム等のプラットフォームが変更になったことにより、現在稼動しているプログラムをそのまま流用することは難しくなる場合が多い。
【０００４】
コスト削減のためには、できる限り既存のシステムを流用しながら新システムへ移行（移植）する必要がある。しかしながら、異なる機種・システムへ資源を移行し実行するためには、たとえ同一言語間でも新システム側において実行できるようにプログラムのソースベースでコンバート（移植）する必要がある。しかしながら、現実的にはソースベースのコンバート（特に、移植の前後でコーディング言語が異なる場合）は、簡単には行うことができない。すなわち、ソースベースは、稼動する新旧システムのそれぞれのシステムに依存するため、システムの再構築の際に大きな障害となっている。
【０００５】
上記特許文献１等の先行技術文献に記載されている技術のように、現行機能をコンバートする技術は知られているが、移行前と移行後との新旧システム間の言語、プラットフォームが異なる場合には、上記技術ではうまく機能しない場合が多い。また、新システムに移行するだけでは、コンバート作業で作成したリポジトリ（プログラムのロジック、データ定義等を部品に分けて管理するための貯蔵庫）は無駄になってしまう。新システム稼動後も、リポジトリは不具合修正や機能拡張を行う上で非常に有用な資産である。
【０００６】
本発明の目的は、任意の言語、プラットフォーム対応のプログラムを生成する技術と、その過程で生成された言語に依存しないリポジトリを、保守・機能拡張において利用する技術とを提供することである。
【課題を解決するための手段】
【０００７】
本発明の一観点によれば、第１のプログラム言語により記述され第１のプラットフォームにおいて動作する第１のプログラムを、前記第１のプログラム言語とは異なる第２のプログラム言語により記述されているか又は前記第１のプラットフォームとは異なる第２のプラットフォームにおいて動作する第２のプログラムに変換するプログラム作成システムであって、前記第１のプログラムと該プログラムにおいて使用するデータ定義とをリバースして業務ロジック部品単位に分解し、処理部分のみを抽出するプログラムリバース部と、該プログラムリバース部において抽出された前記処理部分を業務ロジック部品として、前記データ定義をテーブル／ファイル定義体として保存する業務ロジックリポジトリデータベースと、該業務ロジックリポジトリデータベースに保存された前記業務ロジック部品及び前記テーブル／ファイル定義体に基づいて、一般言語により記載された新業務ロジックリポジトリを作成する一般言語プログラム作成部と、前記新業務ロジックリポジトリを保存する新業務ロジックリポジトリデータベースと、該新業務ロジックリポジトリデータベースに保存されている前記新業務ロジックリポジトリに対して、前記一般言語と前記第２のプログラム言語とを対照する文型辞書を適用することにより、前記新業務ロジックリポジトリを前記第２のプログラム言語により記載された第２のプログラムに変換するプログラム生成部とを有するプログラム作成システムが提供される。
【０００８】
上記プログラム作成システムによれば、前記プログラムリバース部において抽出された前記処理部分を業務ロジック部品として、前記データ定義をテーブル／ファイル定義体として保存する業務ロジックリポジトリデータベースを有しており、該業務ロジックリポジトリデータベースに保存された前記業務ロジック部品及び前記テーブル／ファイル定義体に基づいて、一般言語により記載された新業務ロジックリポジトリを作成する言語に依存しないリポジトリを作成するため、文型辞書を適用してプログラムを変換する処理が容易になる。
【０００９】
本発明の他の観点によれば、システムのプログラムを他言語または他プラットフォームの新規システムに移行して新たなプログラムを作成する方法において、複数の対象プログラムとデータ定義とをリバースして、最適単位の業務ロジック部品及びテーブル／ファイル定義体として分解しプログラム言語に依存しない一般言語で記載された業務ロジックリポジトリに保存するステップと、分解して得られた業務ロジック部品及びテーブル／ファイル定義体に基づいて新規システムのリポジトリを作成するステップと、前記業務ロジックリポジトリに対して、前記新規システムのプラットフォームにおけるプログラム言語と前記一般言語とを対応させた文型辞書を適用することにより、新規プラットフォームに対応するプログラムソースを生成するステップとを有することを特徴とする新規システムに移行するプログラム作成方法が提供される。
【００１０】
前記業務ロジックリポジトリに対して、前記新規システムのプラットフォームにおけるプログラム言語と前記一般言語とを対応させた文型辞書を適用することにより、新規プラットフォームに対応するプログラムソースを生成することができる。
【発明の効果】
【００１１】
本発明によれば、システムの再構成における作業軽減を図ることが出来る。また言語に依存しないリポジトリを利用することにより、再構成先の環境・言語に関係なくシステムを構築できる。従って、他の様々なシステム再構築作業にも利用することが出来る。また、システム再構築後のメンテナンスにおいても、日本語設計書を自動で出力することが出来るため、該当機能の概要を簡単に捉えることができ、修正の必要に応じて設計書を修正すればよいため、ミスの発生を軽減できる。従って、再構築されたシステムの信頼性、メンテナンスの利便性を向上させることができる。更に、本発明で作成した新業務ロジックリポジトリを全く別のシステムに適用するという再利用も可能となる。
【発明を実施するための最良の形態】
【００１２】
本発明に係る言語に依存しないリポジトリ作成及びそれを利用したプログラムの作成システムは、リポジトリの作成技術とシステムの再構築後におけるシステムの保守や機能拡張を含むリポジトリの活用技術とを考慮したシステムである。作成したリポジトリは、新システム稼動後も不具合修正や機能拡張を行う上で活用することができる。
【００１３】
以下、本発明の一実施の形態による言語に依存しないリポジトリ及びプログラムの作成システムについて、図面を参照しつつ説明を行う。図１は、本実施の形態によるプログラムの再構築システムの基本構成を示すブロック図である。図１に示すように、本実施の形態によるプログラムの再構築システムは、計算機における処理部として、プログラムリバース部１と、一般言語プログラム作成部２と、プログラム生成部３と、を有している。プログラムリバース部１では、現在稼動しているプログラムから部品となりうるロジック部品を抽出しこれを登録する。一般言語プログラム作成部２では、プログラムリバース部１において作成されたロジック部品を組み合せて新規プログラムのロジックを作成していく。プログラム生成部３では、各言語に沿った文型辞書を使用して実際のプログラムを生成する。
【００１４】
図２は、言語に依存しないリポジトリの作成と利用に関するシステムのより詳細な構成例と処理の流れを示すフローチャート図である。図３（Ａ）から（Ｅ）までは、図２に示す各リポジトリと文型辞書と関係を具体的に示すイメージ図である。
【００１５】
図２、図３に示すように、現在稼動している現行プログラムソース４がプログラムリバース部１に入力され、現行プログラムソース４に記述されているロジックを、各命令単位に分解する。図３（Ａ）は、現行プログラムの例であり、例えば、“ＩＦ（Ａ＝Ｅ）  ＴＨＥＮ  ＭＯＶＥ  Ａ  ＴＯ  Ｂ、ＭＯＶＥ  Ｃ  ＴＯ  Ｄ”などと記載されている。これを、プログラムリバース部１において分解する。分解単位を部品と称し、部品のうちリソース部（ＤＢ／ファイル項目など）を削除し、例えば、図３（Ｂ）に示すように、“ＭＯＶＥ  □  ＴＯ  □”と、“ＩＦ（□＝□）  ＴＨＥＮ”、などの処理部分（ロジック部品）のみを業務ロジックリポジトリＤＢ６に登録する（ロジック部品定義部）。また、システムで使用されているＤＢ／ファイルコピー句、コードコピー句等のテーブル／ファイル定義体についても、業務ロジックリポジトリＤＢ６に登録する。ロジック、コピー句ともに、リポジトリＤＢ６上は日本語に変換して登録が行われる（例えば、「□を□にセットする」など）。尚、一般言語は、本実施の形態においては日本語としているが、特定のプログラム言語に依存しない一般言語であれば、英語等の他の言語であってもよい。
【００１６】
一般言語プログラム作成部２では、業務ロジックリポジトリＤＢ６に登録されているロジック部品とＤＢ／ファイルコピー句、コードコピー句等のテーブル／ファイル定義体を使用し、これらを組み合せて処理部品を作成していき、新システム用にカスタマイズされた新業務ロジックリポジトリＤＢ８を作成する。この作業は全て日本語で行うことが出来る。例えば図３（Ｃ）に示すように、「もしＡとＥが等しい場合、ＡをＢにセットする。ＣをＤにセットする。」など図３（Ａ）に対応する日本語の記載が格納される。このようにして作成したプログラムについては、日本語の設計書として書き出すことが可能である。そのため設計書と実際稼動しているプログラムとの乖離を防ぐことが出来る。また、書き出した日本語の設計書と同じフォーマットで書かれた設計書を取り込み、それに合った業務ロジックを生成することができる。
【００１７】
プログラム生成部３（３ａ、３ｂ）では、一般言語プログラム作成部２で作成された新業務ロジックリポジトリ８を読み込み、プログラム言語・プラットフォームに応じて作成した言語の文型辞書に基づいて読み込むことにより、様々な言語・プラットフォームに対応したコンパイル可能な状態のプログラムソースを生成することが出来る。例えば、図３（Ｄ）に示すように、ＣＯＢＯＬ言語（第１言語）の文型辞書１０には、「□を□にセットする」は、“ＭＯＶＥ□ＴＯ□”であり、「もし□と□が等しい場合」は“ＩＦ（□＝□）ＴＨＥＮ”である、と記載されており、新業務ロジックリポジトリと文型辞書（第１言語：Ｃｏｂｏｌ言語）１０とを対応させて読み込めば、第１言語プログラムソース１１が作成できる。
【００１８】
文型辞書（第２言語：Ｃ言語）１２には、図３（Ｅ）に示すように、「□を□にセットする。」は“□＝□”であり、「もし□と□が等しい場合」は、“ＩＦ（□＝□）”であると記載されており、新業務ロジックリポジトリと文型辞書（第２言語：Ｃ言語）１２とを対応させて読み込めば、第２言語プログラムソース１３を作成することができる。この部分におけるプログラム生成処理は自動的に行われ、コーディング時のスペルミスなどのエラーは起こらなくなる。なお、新たに生成されたプログラムソースの言語が現行プログラム４の言語と同じである場合でも、例えばメインフレームＯＳとＵＮＩＸ（商標名）のようにプラットフォームが異なる場合は、現行プログラム４と生成プログラムソースとで相違が生じることがある。
【００１９】
実際にはコンバートするだけではなく、プログラムを新規に作成することも考えられるが、その場合には、プログラムリバース部１における処理を通らずに一般言語プログラム作成部２から作業を開始することもできる。
【００２０】
以上のように、システム再構築時のプログラムの初期生成処理を、上記３つの手順により行うことができる。
【００２１】
実稼動後のプログラムに対して修正・機能追加が発生した場合、ソースを直接修正する必要はなく、一般言語プログラム作成部２で生成済みの日本語設計書を修正し、それを新業務ロジックリポジトリＤＢ８に取り込むことにより、修正された業務ロジックを生成できる。次いで、プログラム生成を行うことで、修正後のプログラムソースが完成する。このような手順を踏むことにより、システムで実稼動しているプログラムとその設計書の内容とが乖離している状態を防ぐことができ、その後のメンテナンス作業の煩雑さを軽減することが可能になる。例えば、新業務ロジックリポジトリＤＢと文型辞書を用いれば、新たな変更の必要が生じた場合にも、これを利用して簡単に修正処理を行うことができる。
【００２２】
尚、文型辞書は、上記の作業に応じて追加・更新を行うことにより、辞書機能を強化することができるようにしても良い。
【００２３】
以上に説明したように、本実施の形態による技術を用いると、システムの再構成における作業軽減を図ることができる。また言語に依存しないリポジトリを利用することにより再構成先の環境・言語に関係なくシステムを構築できるため、他の様々なシステム再構築作業に利用することが簡単にできる。
【００２４】
さらに、システム再構築後のメンテナンスにおいても、日本語設計書を自動で出力することができるため該当機能を捉えることが容易にでき、設計書を修正すればよいためミスの軽減できる。これらのことから再構築システムの信頼性、メンテナンスの利便性を向上させることができるという利点がある。
【００２５】
尚、現行のプログラムソースから新規のプログラムソースへ移行した場合に、新規のプログラムソースから、新業務ロジックリポジトリを利用して現行のプログラムソースに再変換することにより作成されたプログラムソースと現行のプログラムソースを比較することで、移行処理又は文型辞書などに問題があるか否かを判断する目安を得ることもできる。また、問題がある箇所が発見されれば、新規プログラムソースを修正するための手がかりを得ることも可能である。
【００２６】
また、文型辞書はあくまでも日本語をロジックに変換するための道具であるため、一部テーブルやファイル定義の入替は必要となるものの、全く別のシステムへ新業務ロジックリポジトリを適用し構築するという再利用も可能となる。
【産業上の利用可能性】
【００２７】
上記のプログラム変換処理方法又は変換処理をコンピュータに実行させるためのプログラムも本発明の範疇に入る。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施の形態によるシステムの基本構成例を示す図である。
【図２】リポジトリの作成と利用方法における処理を示すフローチャート図である。
【図３】図３（Ａ）から図３（Ｅ）までは、図２の処理に沿って遷移する文型と、文型辞書の具体的な内容例を示す図である。
【符号の説明】
【００２９】
１…プログラムリバース部、２…プログラム作成部、３…プログラム生成部、４…現行で稼動しているプログラムソース、６…業務ロジックリポジトリ、８…新システム用にカスタマイズされた業務ロジックリポジトリ、１０…文型辞書（第１言語）、１１…Ａ言語で作成されたプログラムソース、１２…文型辞書（第２言語：Ｃ言語）、１３…第２言語で作成されたプログラムソース。
【図１】
2005165584.tif 000003
【図２】
2005165584.tif 000004
【図３】
2005165584.tif 000005