(57)【要約】【課題】  ＣＡＳＥツールによりプログラム生成に使用されるプログラムの定義情報のように、識別情報によってのみ論理的且つネットワーク状に関連付けられたデータがフラットな構造でデータベースに格納されているデータ格納環境であっても、指定されるデータに関連するデータのみを、ネットワーク状の論理的関連付けを含めて抜き出し、他のバージョンとの差分を対比すること。【解決手段】  自動生成ツールＰＣのＣＰＵは、識別情報によってのみ論理的に関連付けられた複数のデータを前記関連付けを考慮しない構造で格納するサーバ１０１のリポジトリから、取得対象として指定されるデータ及び該データに直接又は間接的に関連付けられたデータ群を取得して自動生成ツールＰＣの外部メモリに記憶しておき、異なる時点で取得された各データ群について、その内容を比較し差分情報を抽出する構成を特徴とする。【選択図】  図１
2008009946.tif 000002
【特許請求の範囲】
【請求項１】
識別情報によって論理的に関連付けられた複数のデータを前記関連付けを考慮しない構造で格納するデータベースから、取得対象として指定されるデータ及び該データに直接又は間接的に関連付けられたデータ群を取得する取得ステップと、
前記取得ステップにより異なる時点で取得された各データ群について、その内容を比較し差分情報を抽出する差分抽出ステップと、
を有することを特徴とするデータ管理方法。
【請求項２】
前記取得ステップにより取得されたデータ群を版情報として記憶手段に記憶させる版情報生成ステップを有し、
前記差分抽出ステップは、前記記憶手段により版情報として記憶されているデータ群を取得し、また前記取得ステップにより前記データベースから取得データ群を取得させ、各データ群の差分情報を抽出することを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
前記差分抽出ステップにより抽出された差分情報を出力する差分出力ステップを有することを特徴とする請求項１又は２記載のデータ管理方法。
【請求項４】
前記差分出力ステップは、前記差分抽出ステップにより抽出された差分情報を、前記各データ群を対比した形式で出力することを特徴とする請求項３に記載のデータ管理方法。
【請求項５】
前記差分抽出ステップは、差分抽出対象として指定されるデータに直接又は間接的に関連するデータ群に対する差分情報を抽出するものであり、前記取得ステップにより異なる時点で取得された各データ群内に、前記差分抽出対象のデータ群以外のデータが含まれている場合には、該前差分抽出対象のデータ群以外のデータを分離し、前記差分抽出対象のデータ群のみの差分情報を抽出することを特徴とする請求項１乃至４のいずれか１項に記載のデータ管理方法。
【請求項６】
前記データベースは、プログラムを構成するプログラム定義情報を格納したリポジトリであり、
前記取得ステップは、前記リポジトリから、取得対象として指定されるプログラムに関連するデータ群を取得するものであり、
前記差分抽出ステップは、前記取得ステップにより異なる時点で取得されたプログラムに関連する各データ群について、その内容を比較し差分情報を抽出することを特徴とする請求項１乃至５のいずれか１項に記載のデータ管理方法。
【請求項７】
前記データベースに格納されるデータは、識別情報によってのみ論理的且つネットワーク状に関連付けられたデータであることを特徴とする請求項１乃至６のいずれか１項に記載のデータ管理方法。
【請求項８】
前記データベースに格納されるデータは、ケースツールによりプログラムコードを生成するためのプログラム定義情報であることを特徴とする請求項１乃至７のいずれか１項に記載のデータ管理方法。
【請求項９】
識別情報によって論理的に関連付けられた複数のデータを前記関連付けを考慮しない構造で格納するデータベースから、取得対象として指定されるデータ及び該データに直接又は間接的に関連付けられたデータ群を取得する取得手段と、
前記取得手段により異なる時点で取得された各データ群について、その内容を比較し差分情報を抽出する差分抽出手段と、
を有することを特徴とするデータ管理装置。
【請求項１０】
請求項１乃至８に記載されたデータ管理方法をコンピュータに実行させるためのプログラム。
【請求項１１】
請求項１乃至８に記載されたデータ管理方法をコンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、識別情報によって論理的（且つネットワーク状）に関連付けられた複数のデータを前記関連付けを考慮しない構造でデータベースに格納されるデータのデータ管理方法およびデータ管理装置およびプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
システム開発の結果、多量の成果物が作成される。それらの成果物は、その後のリソース管理やトレーサビリティの確保を目的として、通常、バージョン管理が為される。特に、開発物がソフトウェア製品の場合には、製品の改善、進化に伴い、成果物は、時系列及びリソース種別体系に沿って、リビジョン又はバージョンに関する管理は必須のものとなる。
【０００３】
これらの管理をデータベースで行う場合に、データベース編成モデルは、階層、ネットワーク、リレーショナルなど多様な構造をとることができ、有用である。
【０００４】
しかし、通常のＤＢＭＳ（DataBase Management System）は、格納したデータの追加・削除・更新・移動等の変化に対するバージョン管理機能を所持していない。即ち、通常のＤＢＭＳでは、時系列上の管理は行っていないので、例えばあるリソースの過去、現在の状態を同時に表すことはできない。また、通常のＤＢＭＳは、複数のユーザやシステム／プログラムがデータを共有する利用環境においては、データの意味上の一貫性を損なわず、データを更新できる手段を提供しているわけではない。
【０００５】
この解決を目的として、特許文献１（特開平６−１６１８５３号公報）では、データベースに格納された各種の情報に対して複数のバージョンを維持できるシステムを提案している。このバージョンの概念は、環境、モデル、リリース、有効時間、又はユーザ（開発者を含む）に及び、情報が改訂されるごとに、その情報の変化順序付きセット（バリアントと言う）を定義していく手法を取り入れることにより、バリアント間の関係の表現や、バリアントの分類（バリアント定義域と言う）からバリアントの階層化又は体系化を実現している。
【０００６】
データベース機能にバリアントの概念を導入すると、時系列に変化する情報や情報間の定義群などを管理することに対して様々な操作機能の提供が可能になる。特に、複雑にデータが関連しあう開発プロジェクトやソフトウェア製品に対するバージョン管理に有効である。また、前記のバリアント操作機能により、バージョン間の差異の把握にも威力を発揮する。
【特許文献１】特開平６−１６１８５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に記載の発明は、開発者、業務、成果物履歴等の相違を一覧化して同時に見せることを目的としており、ある時点の成果物の構成、関連構造、開発者の役割に応じた関連情報表示などには有効であるが、ＣＡＳＥツールのようなプログラム自動生成の成果物差分管理には必ずしも有効とは言えない。
【０００８】
その理由を以下に示す。
【０００９】
まず、予めプログラム自動生成のための定義情報を開発成果物としてリポジトリに格納して、該格納される定義情報を指定されたプログラムの雛形に埋め込んでプログラムを生成するようなＣＡＳＥツールにおいては、ある定義情報が活性（生成に使用）か不活性（生成に未使用）かに拘わらず、開発成果物には定義情報として残っている可能性があるからである。
【００１０】
従って、大量の未使用定義情報やデータがあれば、利用に供された開発成果物のみの差分を把握することが困難となる。
【００１１】
また、開発成果物自体がフラットな構造でリポジトリに格納され、それぞれは開発成果物内の属性等（例えば、構成情報や関連情報が名称で識別する方法）によってのみ論理的かつネットワーク状に関連付けられているようなプログラム生成環境がある。このようなプログラム生成環境の場合は、開発成果物が一覧化されても、そのつながりを見るためには、開発者が名称を頼りに定義情報を辿っていくことになり、何ら使用されていない不要な情報も対比対象となり、開発者に不要な労力を負わせることになる。
【００１２】
ここで、「ネットワーク状に関連付ける」とは、情報間の依存関係が、ｎ対ｍであり、上下関係を作らない関連付けを言う。通常、ネットワーク構造は、複数の論理関係を内包している場合に使用する。
【００１３】
本発明では、ネットワーク型の関連付けがされた定義情報間の関係を確定するため、例えば、アプリケーション名を指定することにより、依存関係を特定し、１対ｎのディレクトリ型の関連付けにすることが可能になる。
【００１４】
このように、プログラムやデータとして実行プログラムで使用されるものを対象に、ある時点のアプリケーション定義情報（版）と現在の同じアプリケーション定義情報とを対比する差分管理においては、当該アプリケーション定義情報の活きた情報のみを抽出し、定義体（例えば、ある画面を定義した画面定義テーブル等を指す）の中から、使用していない、不要な項目や定義を削除する手段が望まれている。
【００１５】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、識別情報によってのみ論理的（且つネットワーク状）に関連付けられたデータがフラットな構造でデータベースに格納されているデータ格納環境であっても、指定されるデータに関連するデータのみを、ネットワーク状の論理的関連付けを含めて抜き出し、他のバージョンとの差分を対比することができる仕組を提供するものである。
【課題を解決するための手段】
【００１６】
本発明によれば、識別情報によって論理的に関連付けられた複数のデータを前記関連付けを考慮しない構造で格納するデータベースから、取得対象として指定されるデータ及び該データに直接又は間接的に関連付けられたデータ群を取得する取得ステップと、前記取得ステップにより異なる時点で取得された各データ群について、その内容を比較し差分情報を抽出する差分抽出ステップと、を有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、識別情報によってのみ論理的（且つネットワーク状に）関連付けられたデータがフラットな構造でデータベースに格納されているデータ格納環境であっても、指定されるデータに関連するデータのみを、（ネットワーク状の）論理的関連付けを含めて抜き出し、他のバージョンとの差分を対比することができる。
【００１８】
従って、従来のように、ツリー構造をたどって定義情報の構成が把握できないネットワーク型の定義関係にあり、且つ、論理的な関連データ構造を有するプログラムの定義情報、例えばＣＡＳＥツールによりプログラム生成に使用されるプログラムの定義情報ついて、指定されるプログラムに関連する定義情報のみを異なる時点で比較し、バージョンとの差分を容易に管理することができる等の効果を奏する。
【発明を実施するための最良の形態】
【００１９】
〔第１実施形態〕
以下、図面を参照して、本発明の詳細を説明する。
【００２０】
図１は、本発明の情報処理装置を適用可能なプログラム自動生成システムの構成を示すブロック図である。
【００２１】
図１に示すように、１０４はネットワークであり、サーバ１０１，自動生成ツールＰＣ１０２，１０３が接続され、それぞれ通信可能である。なお、このネットワーク１０４上に接続される各種装置の構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。もちろん、サーバ１０１と自動生成ツールＰＣを１台の装置で実現する構成であってもよい。
【００２２】
サーバ１０１は、プログラムの自動生成を行うための定義情報を格納するデータベースとしての機能を有する。以下、このサーバ１０１のデータベースをリポジトリともいう。このリポジトリには、最新の定義情報が格納されている。即ち、前のバージョンのアプリケーションプログラムを作成するための定義情報は、リポジトリには格納されていないものとする。
【００２３】
自動生成ツールＰＣ１０２，１０３は、パーソナルコンピュータ等で構成され、プログラム自動生成ツールを動作させて、サーバ１０１のリポジトリに格納される定義情報に基づきアプリケーションプログラムを生成することができる。また、自動生成ツールＰＣ１０２，１０３は、リポジトリに格納される定義情報の版ファイルを出力することができる。さらに、自動生成ツールＰＣ１０２，１０３は、リポジトリに格納される定義情報と版ファイルの差分の表示を行うことができる。
【００２４】
図２は、図１に示したサーバ１０１，自動生成ツールＰＣ１０２，１０３に適用可能なハードウェア構成を示すブロック図である。
【００２５】
図２において、ＣＰＵ２０１は、システムバス２０４に接続される各デバイスを統括的に制御する。また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるオペレーティングシステム（ＯＳ）や、各サーバあるいは各クライアントの後述する各種機能を実現するためのプログラムが記憶されている。
【００２６】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア、一時待避領域等として機能する。即ち、ＣＰＵ２０１は、ＲＯＭ２０３あるいは外部メモリ２１１に格納されるプログラムをＲＡＭ２０２上等で実行して装置全体を制御する。
【００２７】
入力コントローラ２０５は、入力部２０９からの入力を制御する。この入力部２０９としては、特に、サーバやクライアント等の端末では、キーボード、マウス等のポインティングデバイスが挙げられる。
【００２８】
出力コントローラ２０６は、出力部２１０の表示を制御する。この出力部２１０としては、例えば、ＣＲＴや液晶モニタ等が挙げられる。
【００２９】
外部メモリコントローラ（ＭＣ）２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ２１１へのアクセスを制御する。なお、外部メモリ２１１には、上記各プログラム，データに加えて、サーバあるいはクライアントの各種機能を実現するための各種テーブル、パラメータ等が記憶されている。この外部メモリ２１１としては、ハードディスク（ＨＤ）やフロッピー（登録商標）ディスク（ＦＤ）、ＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）、スマートメディア等が挙げられる。
【００３０】
通信Ｉ／Ｆコントローラ２０８は、ネットワーク１０４を介して外部機器との通信制御処理を実行する。
【００３１】
なお、自動生成ツールＰＣ１０２，１０３の場合、外部メモリ２１１に本発明を実現するためのプログラム２１２が記憶されている。このプログラム２１２は、ＣＰＵ２０１により必要に応じてＲＡＭ２０２にロードされて実行される。また、外部メモリ２１１には、このプログラム２１２が用いる版ファイル２１３が格納される。これらについての詳細な説明は後述する。
【００３２】
また、サーバ１０１の場合、図２には示していないが外部メモリ２１１内に、リポジトリが構築され定義情報が格納される。
【００３３】
図３は、図１に示したサーバ１０１に格納されている定義情報の関連の一例について示す概念図である。ここでは、一例として、申請アプリケーション及び承認アプリケーションについての定義情報がサーバ１０１に格納されているものとする。
【００３４】
図３において、申請アプリケーション３０１は、自動生成ツールで生成される申請アプリケーションの定義情報である。また、承認アプリケーション３０２は、自動生成ツールで生成される承認アプリケーションの定義情報である。
【００３５】
ログイン画面３０３は、ログイン画面の項目の内容や配置などの定義情報である。申請画面３０４は、申請画面の項目の内容や配置などの定義情報である。申請一覧画面３０５は、申請一覧画面の項目の内容や配置などの定義情報である。承認画面３０６は、承認画面の項目の内容や配置などの定義情報である。
【００３６】
申請データ３０７は、申請アプリケーション内で使用されるデータ構造の定義である。承認データ３０８は、承認アプリケーション内で使用されるデータ構造の定義である。
【００３７】
申請ロジック３１０は、画面からの操作に基づいてデータ構造を制御する方法についての定義情報である。承認ロジック３１１は、画面からの操作に基づいてデータ構造を制御する方法についての定義情報である。
【００３８】
ログインメッセージ３１２は、画面に処理結果などとして表示されるメッセージの文面の定義情報である。エラーメッセージ３１３は、画面に処理結果などとして表示されるメッセージの文面の定義情報である。
【００３９】
また、図３に示すように、申請アプリケーション３０１は、ログイン画面３０３および申請画面３０４を使用したアプリケーションであり、その結果としてデータ構造としては、申請データ３０７を利用し、制御ロジックとしては、ログインロジック３０９および申請ロジック３１０を利用し、また、申請ロジック３１０は申請データ３０７を対象としており、メッセージとしては、ログインメッセージ３１２およびエラーメッセージ３１３を利用することを示している。
【００４０】
また、承認アプリケーション３０２は、ログイン画面３０３および申請一覧画面３０５および承認画面３０６を使用したアプリケーションであり、その結果としてデータ構造としては、申請データ３０７および承認データ３０８を利用し、承認データ３０８は申請データ３０７に依存しており、制御ロジックとしては、ログインロジック３０９および承認ロジック３１１を利用し、承認ロジック３１１は申請データ３０７および承認データ３０８を対象としており、メッセージとしては、ログインメッセージ３１２およびエラーメッセージ３１３を利用することを示している。
【００４１】
なお、サーバ１０１のデータベースは、後述する図４Ａ，図４Ｂに示すように、識別情報（名称等）によってのみ論理的且つネットワーク状に関連付けられた複数の定義情報をフラットな構造（前記関連付けを考慮しない構造）で格納するものであり、図３のようなネットワーク構造は管理していない。
【００４２】
図４Ａ，図４Ｂは、図１に示したサーバ１０１のデータベースに格納される定義情報の概略を示す図である。なお、各定義情報が他のどの定義情報に関連しているかについてはデータベースの定義情報レコードの中に格納されている。
【００４３】
図４に示すように、アプリケーション所属画面定義テーブル４０１は、各種アプリケーションに所属する画面の情報をリポジトリに格納したものである。なお、ここでは示していないが、各アプリケーションの初期画面を示す情報を含めるように構成してもよい。
【００４４】
画面所属データ構造定義テーブル４０２は、画面で使用されているデータ構造の情報をリポジトリに格納したものである。なお、ここでは示していないが、各画面に属する入出力項目の情報を含め、各画面内の各入出項目とデータ構造内の各データ項目との関係を示す情報を含めるように構成してもよい。
【００４５】
画面所属制御ロジック定義テーブル４０３は、画面で使用されている制御ロジックの情報をリポジトリに格納したものである。なお、ここでは示していないが、各画面に属するボタンの情報を含め、各画面内の各ボタンと制御ロジックとの対応を示す情報を含めるように構成してもよい。
【００４６】
画面所属メッセージ構造定義テーブル４０４は、画面で使用されているメッセージの情報をリポジトリに格納したものである。なお、ここでは示していないが、各メッセージを出力するための条件等を示す情報を含めるように構成してもよい。
【００４７】
制御ロジック所属データ構造テーブル４０５は、制御ロジックで使用されているデータ構造の情報をリポジトリに格納したものである。なお、ここでは示していないが、各制御ロジックに属する個々のロジックの情報を含め、各制御ロジック内の各ロジックとデータ構造内の各データ項目との関係を示す情報を含めるように構成してもよい。
【００４８】
また、図３には示していないが、データ構造定義テーブル４０６，メッセージ構造定義テーブル４０７がある。
【００４９】
データ構造定義テーブル４０６は、データ構造内の各データ項目の情報をリポジトリに格納したものである。なお、ここでは示していないが、各データ構造内の各データ項目のデータ型，データ長，参照関係等を示す情報を含めるように構成してもよい。
【００５０】
メッセージ構造定義テーブル４０７は、メッセージの文面の情報をリポジトリに格納したものである。
【００５１】
以上示したように、サーバ１０１のデータベースは、識別情報（名称等）によってのみ論理的且つネットワーク状に関連付けられた複数の定義情報をフラットな構造（前記関連付けを考慮しない構造）で格納するものであり、図３に示したようなネットワーク構造は管理していない。
【００５２】
図５Ａ，図５Ｂ，図５Ｃは、本発明における版ファイルの出力および差分管理を開始するための画面の一例を示す模式図であり、図１に示した自動生成ツールＰＣ１０２，１０３のモニタに表示される。
【００５３】
図５Ａにおいて、５０１は「リポジトリのエクスポート」ボタンであり、このボタンが指示されると、自動生成ツールＰＣのＣＰＵは、後述する図６に示すフローチャートの処理を開始して、リポジトリ全体の版ファイルをエクスポートする。
【００５４】
５０２は「アプリのエクスポート」ボタンであり、このボタンが指示されると、自動生成ツールＰＣのＣＰＵは、図５Ｂに示す画面をモニタ上に表示する。この画面の５０６でアプリケーションが選択され、エクスポートボタン５０７が指示されると、自動生成ツールＰＣのＣＰＵは、後述する図６に示すフローチャートの処理を開始して、上記選択されたアプリケーションに対応する版ファイルをエクスポートする。
【００５５】
５０３は「リポジトリのインポート」ボタンであり、このボタンが指示されると、自動生成ツールＰＣのＣＰＵは、後述する図８に示すフローチャートの処理を開始して、リポジトリに対応する版ファイルの選択画面が表示され、該選択画面で選択された版ファイルとリポジトリ内の定義情報との比較を行ってモニタ上に表示する。
【００５６】
５０４は「アプリのインポート」ボタンであり、このボタンが指示されると、自動生成ツールＰＣのＣＰＵは、図５Ｃに示す画面をモニタ上に表示する。この画面の５０８でアプリケーションが選択され、表示ボタン５０９が指示されると、自動生成ツールＰＣのＣＰＵは、後述する図８に示すフローチャートの処理を開始して、上記選択されたアプリケーションに対応する版ファイルとリポジトリ内の定義情報との比較を行ってモニタ上に表示する。
【００５７】
５０５は「個別のインポート」ボタンであり、このボタンが指示されると、自動生成ツールＰＣのＣＰＵは、図示しない画面をモニタ上に表示する。この画面上で画面，制御ロジック，データ，メッセージ等の個別の定義項目が選択され、比較表示が指示されると、自動生成ツールＰＣのＣＰＵは、図示しない比較処理を開始して、上記選択された個別の定義項目に対応する版ファイルとリポジトリ内の定義情報との比較を行ってモニタ上に表示する。
【００５８】
以下、図６，図７を参照して、サーバ１０１のリポジトリ内に格納される定義情報から版ファイルを生成して自動生成ツールＰＣの外部メモリに格納する自動生成ツールＰＣの処理について説明する。
【００５９】
図６Ａ，図６Ｂは、本発明における第１の制御処理手順の一例を示すフローチャートである。なお、このフローチャートの処理は、自動生成ツールＰＣのＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上で実行することにより実現される。また、図６中、Ｓ６０１〜Ｓ６２１は各ステップを示す。
【００６０】
まず、図５Ａに示した「リポジトリのエクスポート」ボタン５０１が指示されると、又は「アプリのエクスポート」ボタン５０２及び図５Ｂに示した「エクスポート」ボタン５０７が指示されると、自動生成ツールＰＣのＣＰＵは、図６のフローチャートの処理を開始する。
【００６１】
まず、ステップＳ６０１において、自動生成ツールＰＣのＣＰＵは、サーバ１０１のリポジトリからアプリケーション定義情報レコードを１レコード読み込み、自動生成ツールＰＣのＲＡＭに一時的に保存する。なお、上記アプリケーション定義情報レコードには、図４に示したアプリケーション所属画面定義テーブル４０１の情報が含まれる。
【００６２】
次に、ステップＳ６０２において、自動生成ツールＰＣのＣＰＵは、ステップＳ６０１で読み込んだアプリケーション定義情報レコードが、指定されたアプリケーション（出力対象アプリケーション）のものか否かを判定する。なお、この判定は、アプリケーションの名称で行うものとする。
【００６３】
そして、ステップＳ６０２で、読み込んだアプリケーション定義情報レコードが指定されたアプリケーション（出力対象アプリケーション）のものであると判定した場合には、自動生成ツールＰＣのＣＰＵは、ステップＳ６０３において、該アプリケーション定義情報レコードを自動生成ツールＰＣの外部メモリに対して版ファイルとして出力する。例えば、図７Ａの７０１のような形式で出力する。そして、ステップＳ６０４に処理を進める。
【００６４】
一方、ステップＳ６０２で、読み込んだアプリケーション定義情報レコードが指定されたアプリケーション（出力対象アプリケーション）のものでないと判定した場合には、自動生成ツールＰＣのＣＰＵは、図示しないステップにおいて、上記ＲＡＭ２０２に保存していたアプリケーション定義レコードを破棄し、ステップＳ６０４に処理を進める。
【００６５】
次に、ステップＳ６０４では、自動生成ツールＰＣのＣＰＵは、まだ読み込んでいないアプリケーション定義情報レコードがあるか判定し、あると判定した場合には、ステップＳ６０１に処理を戻す。一方、ステップＳ６０４で、自動生成ツールＰＣのＣＰＵが、もう読み込んでいないアプリケーション定義情報レコードがないと判定した場合には、ステップＳ６０５に処理を進める。
【００６６】
即ち、アプリケーション定義情報レコードが存在する限りＳ６０１〜Ｓ６０４を繰り返す。
【００６７】
次に、ステップＳ６０５では、自動生成ツールＰＣのＣＰＵは、サーバ１０１のリポジトリから画面定義情報レコードを１レコード読み込み、自動生成ツールＰＣのＲＡＭに一時的に保存する。なお、上記画面定義情報レコードには、図４に示した画面所属データ構造定義テーブル４０２および画面所属制御ロジック定義テーブル４０３および画面所属メッセージ構造定義テーブル４０４の情報が含まれる。
【００６８】
次に、ステップＳ６０６において、自動生成ツールＰＣのＣＰＵは、ステップＳ６０５で読み込んだ画面定義情報レコードが、ＲＡＭ２０２に保存されているアプリケーション定義に所属している画面定義か否かを判定する。なお、この判定は、画面の名称で行うものとする。
【００６９】
そして、ステップＳ６０６で、読み込んだ画面定義情報レコードがＲＡＭ２０２に保存されているアプリケーション定義に所属している画面定義であると判定した場合には、自動生成ツールＰＣのＣＰＵは、ステップＳ６０７において、画面定義情報レコードを自動生成ツールＰＣの外部メモリに対して版ファイルとして出力する。例えば、図７Ａの７０２のような形式で出力する。そして、ステップＳ６０８に処理を進める。
【００７０】
一方、ステップＳ６０６で、読み込んだ画面定義情報レコードがＲＡＭ２０２に保存されているアプリケーション定義に所属している画面定義でないと判定した場合には、自動生成ツールＰＣのＣＰＵは、図示しないステップにおいて、上記ＲＡＭ２０２に保存していた画面定義情報レコードを破棄し、ステップＳ６０８に処理を進める。
【００７１】
次に、ステップＳ６０８では、自動生成ツールＰＣのＣＰＵは、まだ読み込んでいない画面定義情報レコードがあるか判定し、あると判定した場合には、ステップＳ６０５に処理を戻す。一方、ステップＳ６０８で、自動生成ツールＰＣのＣＰＵが、もう読み込んでいない画面定義情報レコードがないと判定した場合には、ステップＳ６０９に処理を進める。
【００７２】
即ち、画面定義情報レコードが存在する限りＳ６０５〜Ｓ６０８を繰り返す。
【００７３】
次に、ステップＳ６０９では、自動生成ツールＰＣのＣＰＵは、サーバ１０１のリポジトリから制御ロジック定義情報レコードを１レコード読み込み、自動生成ツールＰＣのＲＡＭに一時的に保存する。なお、上記制御ロジック定義情報レコードには、図４に示した制御ロジック所属データ構造テーブル４０５の情報が含まれる。
【００７４】
次に、ステップＳ６１０において、自動生成ツールＰＣのＣＰＵは、ステップＳ６０９で読み込んだ制御ロジック定義情報レコードが、ＲＡＭ２０２に保存されている画面定義に所属している制御ロジック定義か否かを判定する。なお、この判定は、制御ロジックの名称で行うものとする。
【００７５】
そして、ステップＳ６０６で、読み込んだ制御ロジック定義情報レコードがＲＡＭ２０２に保存されている画面定義に所属している制御ロジック定義であると判定した場合には、自動生成ツールＰＣのＣＰＵは、ステップＳ６１１において、制御ロジック定義情報レコードを自動生成ツールＰＣの外部メモリに対して版ファイルとして出力する。例えば、図７Ｂの７０３のような形式で出力する。そして、ステップＳ６１２に処理を進める。
【００７６】
一方、ステップＳ６０６で、読み込んだ制御ロジック定義情報レコードがＲＡＭ２０２に保存されている画面定義に所属している制御ロジック定義でないと判定した場合には、自動生成ツールＰＣのＣＰＵは、図示しないステップにおいて、上記ＲＡＭ２０２に保存していた制御ロジック定義情報レコードを破棄し、ステップＳ６１２に処理を進める。
【００７７】
次に、ステップＳ６１２では、自動生成ツールＰＣのＣＰＵは、まだ読み込んでいない制御ロジック定義情報レコードがあるか判定し、あると判定した場合には、ステップＳ６０９に処理を戻す。一方、ステップＳ６１２で、自動生成ツールＰＣのＣＰＵが、もう読み込んでいない制御ロジック定義情報レコードがないと判定した場合には、ステップＳ６１３に処理を進める。
【００７８】
即ち、制御ロジック定義情報レコードが存在する限りＳ６０９〜Ｓ６１２を繰り返す。
【００７９】
次に、ステップＳ６１３では、自動生成ツールＰＣのＣＰＵは、サーバ１０１のリポジトリからデータ構造定義情報レコードを１レコード読み込み、自動生成ツールＰＣのＲＡＭに一時的に保存する。なお、上記制御ロジック定義情報レコードには、図４に示したデータ構造定義テーブル４０６の情報が含まれる。
【００８０】
次に、ステップＳ６１４において、自動生成ツールＰＣのＣＰＵは、ステップＳ６１３で読み込んだデータ構造定義情報レコードが、ＲＡＭ２０２に保存されている画面定義に所属しているデータ構造か否かを判定する。なお、この判定は、データ構造の名称で行うものとする。
【００８１】
そして、ステップＳ６１４で、読み込んだデータ構造定義情報レコードがＲＡＭ２０２に保存されている画面定義に所属しているデータ構造定義であると判定した場合には、自動生成ツールＰＣのＣＰＵは、ステップＳ６１６に処理を進める。
【００８２】
一方、ステップＳ６１４で、読み込んだデータ構造定義情報レコードがＲＡＭ２０２に保存されている画面定義に所属しているデータ構造定義でないと判定した場合には、ステップＳ６１５に処理を進める。
【００８３】
次に、ステップＳ６１５では、自動生成ツールＰＣのＣＰＵは、ステップＳ６１３で読み込んだデータ構造定義情報レコードが、ＲＡＭ２０２に保存されている制御ロジック定義に所属しているデータ構造か否かを判定する。なお、この判定は、データ構造の名称で行うものとする。
【００８４】
そして、ステップＳ６１５で、読み込んだデータ構造定義情報レコードがＲＡＭ２０２に保存されている制御ロジック定義に所属しているデータ構造定義であると判定した場合には、自動生成ツールＰＣのＣＰＵは、ステップＳ６１６に処理を進める。
【００８５】
そして、ステップＳ６１６では、自動生成ツールＰＣのＣＰＵは、データ構造定義情報レコードを自動生成ツールＰＣの外部メモリに対して版ファイルとして出力する。例えば、図７Ｂの７０４のような形式で出力する。そして、ステップＳ６１７に処理を進める。
【００８６】
一方、ステップＳ６１５で、読み込んだデータ構造定義情報レコードがＲＡＭ２０２に保存されている制御ロジック定義に所属しているデータ構造定義でないと判定した場合には、自動生成ツールＰＣのＣＰＵは、図示しないステップにおいて、上記ＲＡＭ２０２に保存していたデータ構造定義情報レコードを破棄し、ステップＳ６１７に処理を進める。
【００８７】
次に、ステップＳ６１７では、自動生成ツールＰＣのＣＰＵは、まだ読み込んでいないデータ構造定義情報レコードがあるか判定し、あると判定した場合には、ステップＳ６１３に処理を戻す。一方、ステップＳ６１７で、自動生成ツールＰＣのＣＰＵが、もう読み込んでいないデータ構造定義情報レコードがないと判定した場合には、ステップＳ６１８に処理を進める。
【００８８】
即ち、データ構造定義情報レコードが存在する限りＳ６１３〜Ｓ６１７を繰り返す。
【００８９】
次に、ステップＳ６１８では、自動生成ツールＰＣのＣＰＵは、サーバ１０１のリポジトリからメッセージ定義情報レコードを１レコード読み込み、自動生成ツールＰＣのＲＡＭに一時的に保存する。なお、上記メッセージ定義情報レコードには、図４に示したメッセージ構造定義テーブル４０７の情報が含まれる。
【００９０】
次に、ステップＳ６１９において、自動生成ツールＰＣのＣＰＵは、ステップＳ６１３で読み込んだメッセージ定義情報レコードが、ＲＡＭ２０２に保存されている画面定義に所属しているメッセージか否かを判定する。なお、この判定は、メッセージの名称で行うものとする。
【００９１】
そして、ステップＳ６１９で、読み込んだメッセージ定義情報レコードがＲＡＭ２０２に保存されている画面定義に所属しているメッセージであると判定した場合には、自動生成ツールＰＣのＣＰＵは、ステップＳ６２０において、メッセージ定義情報レコードを自動生成ツールＰＣの外部メモリに対して版ファイルとして出力する。例えば、図７Ｄの７０５のような形式で出力する。そして、ステップＳ６２１に処理を進める。
【００９２】
一方、ステップＳ６１９で、読み込んだメッセージ定義情報レコードがＲＡＭ２０２に保存されている画面定義に所属しているメッセージでないと判定した場合には、自動生成ツールＰＣのＣＰＵは、図示しないステップにおいて、上記ＲＡＭ２０２に保存していたメッセージ定義情報レコードを破棄し、ステップＳ６２１に処理を進める。
【００９３】
次に、ステップＳ６２１では、自動生成ツールＰＣのＣＰＵは、まだ読み込んでいないメッセージ定義情報レコードがあるか判定し、あると判定した場合には、ステップＳ６１８に処理を戻す。一方、ステップＳ６２１で、自動生成ツールＰＣのＣＰＵが、もう読み込んでいないメッセージ定義情報レコードがないと判定した場合には、処理を終了する。
【００９４】
即ち、メッセージ定義情報レコードが存在する限りＳ６１８〜Ｓ６２１を繰り返す。
【００９５】
以上示したような方法により、複数アプリケーションを含む定義情報リポジトリの場合、すべてのアプリケーションを出力することが可能であるとともに、特定のアプリケーションのみを出力することも可能である。
【００９６】
なお、画面情報等の定義情報は、複数のアプリケーションに所属していたとしても1度しか出力されることはない。
【００９７】
以上示したように、識別情報（名称等）によってのみ論理的且つネットワーク状に関連付けられた複数の定義情報を前記関連付けを考慮しない構造で格納するサーバ１０１のリポジトリから、取得対象として指定される定義情報及び該定義情報に直接又は間接的に関連付けられた定義情報群を取得して版ファイルとして自動生成ツールＰＣ内の外部メモリに格納することができる。
【００９８】
図７Ａ，図７Ｂ，図７Ｃ，図７Ｄは、本発明における版ファイルの一例を示す模式図である。なお、ここではＸＭＬ形式の例を示したが、ファイルフォーマットはこれに限られるものではない。
【００９９】
図７において、７０１はアプリケーション定義レコードを版ファイル２１３に変換して出力した版ファイルの例であり、図４に示したアプリケーション所属画面定義テーブル４０１で定義されているアプリケーション定義と画面定義との関連を示す情報が出力されている。
【０１００】
具体的には、版ファイル７０１には、図５Ｂの５０６で選択された「申請アプリケーション」と、それに所属する「ログイン画面」及び「申請画面」とを示す情報が登録されており、図３に示した定義情報（申請アプリケーション）３０１と定義情報（ログイン画面）３０３及び定義情報（申請画面）３０４とが関係付られていることを示している。
【０１０１】
７０２は画面定義レコードの版ファイルの出力例であり、図４に示した画面所属データ構造定義テーブル４０２および画面所属制御ロジック定義テーブル４０３および画面所属メッセージ構造定義テーブル４０４で定義されている画面定義とデータ構造定義または制御ロジック定義またはメッセージ定義との関連を示す情報が出力されている。
【０１０２】
７０３は制御ロジック定義情報レコードの版ファイルへの出力例であり、図４に示した制御ロジック所属データ構造テーブル４０５で定義されている制御ロジックとデータ構造定義との関連を示す情報が出力されている。
【０１０３】
７０４はデータ構造定義レコードの版ファイルへの出力例であり、図４に示したデータ構造定義テーブル４０６で定義されているデータ構造を構成するデータ項目を示す情報が出力されている。
【０１０４】
７０５はメッセージ構造定義レコードの版ファイルへの出力例であり、図４に示したメッセージ構造定義テーブル４０７で定義されているメッセージの文面を示す情報が出力されている。
【０１０５】
なお、版ファイル７０１〜７０５を１つの版ファイルとして出力してもよいし、複数のファイルとして出力し、ファイル名等で紐付けて自動生成ツールＰＣの外部メモリに記憶するようにしてもよい。
【０１０６】
以下、図８〜図１３を参照して、図６に示した処理で出力された以前の定義情報（版ファイル２１３）とサーバ１０１のリポジトリに格納されている新しい定義情報とを比較して差分を出力する処理について説明する。
【０１０７】
図８は、本発明における第２の制御処理手順の一例を示すフローチャートである。なお、このフローチャートの処理は、自動生成ツールＰＣのＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上で実行することにより実現される。また、図８中、Ｓ８０１〜Ｓ８１２は各ステップを示す。
【０１０８】
まず、図５Ａに示した「リポジトリのインポート」ボタン５０３が指示されると、「アプリのインポート」ボタン５０２及び図５Ｃに示した「表示」ボタン５０９が指示されると、又は、「個別のインポート」ボタン５０５及び図示しない個別のインポートに表示ボタンが指示されると、自動生成ツールＰＣのＣＰＵは、図８のフローチャートの処理を開始する。
【０１０９】
まず、ステップＳ８０１において、自動生成ツールＰＣのＣＰＵは、自動生成ツールＰＣの外部メモリから対象の版ファイルの読込を行う。
【０１１０】
次に、ステップＳ８０２において、自動生成ツールＰＣのＣＰＵは、ステップＳ８０１で読み込んだ版ファイルを後述する図９に示すような論理データ構造に変換し、自動生成ツールＰＣのＲＡＭ２０２上に記憶させる。
【０１１１】
図９は、図７に示した版ファイルを論理データ構造に変換した模式図である。
【０１１２】
例えば、図７の版ファイル７０１では、申請アプリケーションは、ログイン画面及び申請画面が所属していることを示しているので、図９に示すように申請アプリケーションと、ログイン画面３０３及び申請画面３０４とを論理的に関連付けることができる。なお、自動生成ツールＰＣのＲＡＭ中では、図９に示すように、関連付けられている定義情報のポインタを保持させることにより、各定義情報を関連付けている。このように、物理的なポインタで紐付けられた構造は、例えば定義情報の構造がネットワーク型であれば、その同じネットワーク型の関連構造に再構成されることになる。よって、同じ関連構造であれば、バージョン間の対比が可能になる。
【０１１３】
次に、ステップＳ８０３において、自動生成ツールＰＣのＣＰＵは、サーバ１０１のデータベース（リポジトリ）から図４に示した定義情報の読込を行う。
【０１１４】
次に、ステップＳ８０４において、自動生成ツールＰＣのＣＰＵは、ステップＳ８０３で読み込んだ定義情報を図９に示すような論理データ構造に変換し、自動生成ツールＰＣのＲＡＭ２０２上に記憶させる。
【０１１５】
例えば、図４に示した各テーブルから関連付けを行い、論理データ構造に変換する。以下、詳細に説明する。「申請アプリケーション」の場合、図４に示したアプリケーション所属画面定義テーブル４０１の「申請アプリケーション」を選択する。そして、申請アプリケーションに所属している定義情報が「ログイン画面」と「申請画面」であることを判定する。そして、「ログイン画面」と「申請画面」と同じ名称があるか、他のテーブルを検索する。
【０１１６】
そして、画面所属データ構造定義テーブル４０２に「申請画面」があることを判定することができる。そして、「申請画面」には、「申請データ」が所属していることを判定する。このように、同一名称に基づいて、関連付けを行うことによって、図９に示すような論理データ構造に変換する。
【０１１７】
次に、ステップＳ８０５において、自動生成ツールＰＣのＣＰＵは、特定のアプリケーションについてのみ差分情報を生成するか否かを判定する。この判定は、図５Ａの「リポジトリのインポート」ボタン５０３が指示されて本処理が開始された場合、特定アプリケーションの差分情報を生成しないと判定し、自動生成ツールＰＣのＣＰＵは、そのままステップＳ８０８に処理を進める。
【０１１８】
一方、図５Ａで「アプリのインポート」ボタン５０２が指示され且つ図５Ｃで「表示」ボタン５０９が指示されて本処理が開始された場合、又は、「個別のインポート」ボタン５０５及び図示しない個別のインポートに表示ボタンが指示されて本処理が開始された場合、自動生成ツールＰＣのＣＰＵは、ステップＳ８０５で、特定アプリケーションの差分情報を生成すると判定し、ステップＳ８０６に処理を進める。
【０１１９】
ステップＳ８０６では、自動生成ツールＰＣのＣＰＵは、ステップＳ８０２で作成した論理データ構造から、対象アプリケーションに所属しない定義情報を、図６に示した差分ファイル生成処理時と同様の手法で排除する。即ち、指定されたアプリケーションと関連している定義情報以外のデータを削除する。
【０１２０】
具体的には、指定されたアプリケーションと関連している、即ちポインタが付加されている定義情報を判定し、指定されたアプリケーションと関連している定義情報以外のデータを削除する。
【０１２１】
次に、ステップＳ８０７では、自動生成ツールＰＣのＣＰＵは、ステップＳ８０４で作成した論理データ構造から、対象アプリケーションに所属しない定義情報を、図６に示した差分ファイル生成処理時と同様の手法で排除する。即ち、ステップＳ８０６，Ｓ８０７により、抽出した個々の定義ブロックからアプリケーション生成に関与しなかった定義情報部分を削除したクリーンな情報を残すことができる。そして、ステップＳ８０８に処理を進める。
【０１２２】
なお、本実施形態では、「申請アプリケーション」を対象として本処理が実行されたものとする。例えば、ステップＳ８０６の処理では図１０に示すような論理データ構造が得られたものとする。また、ステップＳ８０７の処理では図１１に示すような論理データ構造が得られたものとする。
【０１２３】
図１０，図１１は、図８のステップＳ８０６，Ｓ８０７の処理で得られる論理データ構造の概略の一例を示す模式図である。なお、ここでは、各定義情報を論理的に対応つけるポインタの記載等は省略している。
【０１２４】
図１０，図１１に示すように、版ファイルが作成された時点から、リポジトリ内の定義情報に変更が加えられている。
【０１２５】
例えば、図１１に示すように、ログイン画面の定義情報，申請ロジックの定義情報が変更されている。また、エラーメッセージの定義情報が削除されている。
【０１２６】
以下、図８のフローチャートの説明に戻る。
【０１２７】
ステップＳ８０８では、自動生成ツールＰＣのＣＰＵは、自動生成ツールＰＣのＲＡＭ２０２上に記憶される全ての定義情報についてステップＳ８０９〜Ｓ８１２の処理を繰り返すように制御する。
【０１２８】
ステップＳ８０９では、自動生成ツールＰＣのＣＰＵは、自動生成ツールＰＣのＲＡＭ２０２上に記憶される、論理データ構造（版ファイル）と論理データ構造（リポジトリ）内の１つの定義情報について比較を行う。なお、この処理の詳細は、後述する図１３に示す。
【０１２９】
次に、ステップＳ８１０において、自動生成ツールＰＣのＣＰＵは、ステップＳ８０９で比較した論理データ構造（版ファイル）と論理データ構造（リポジトリ）の定義情報に差があるか否かを判定し、差があると判定した場合には、ステップＳ８１１に処理を進め、差分情報を図１２の９０１〜９０４に示すように自動生成ツールＰＣの出力部に表示する。
【０１３０】
一方、ステップＳ８１０で、ステップＳ８０９で比較した論理データ構造（版ファイル）と論理データ構造（リポジトリ）の定義情報に差が無いと判定した場合には、自動生成ツールＰＣのＣＰＵは、ステップＳ８１２に処理を進め、差異が無い旨の情報（例えば"差異なし"）を図１２に示すように自動生成ツールＰＣの出力部に表示する。
【０１３１】
図１２は、図８に示した差分情報生成処理結果の表示画面の一例を示す模式図であり、自動生成ツールＰＣの制御により自動生成ツールＰＣの出力部に表示される。
【０１３２】
図１２では、エクスポートされた版ファイル内の定義情報の論理データ構造とサーバ１０１のリポジトリ内の定義情報の論理データ構造とに差異が無い場合、差異"なし"と自動生成ツールＰＣの出力部に表示している。なお、差異が無い場合は、表示しないように構成してもよい。
【０１３３】
一方、エクスポートされた版ファイル内の定義情報の論理データ構造とサーバ１０１のリポジトリ内の定義情報の論理データ構造とに差異が有る場合、９０１〜９０４のように、差異"あり"と表示している。なお、図１２に示した例では、定義情報の差分の有無のみを表示し、詳細な差異情報については表示していない。しかし、詳細な差分情報を具体的に表示するように構成してもよい。例えば、ログイン画面の定義情報について、例えば「"ログイン画面"内の入力項目名が"ユーザＩＤ"から"ユーザ名"に変更された」等の情報を表示するようにしてもよい。また、申請ロジックについて、例えば「"申請ロジック"が、申請時に「申請番号」が自動的に付されるように変更された」等の情報を表示するようにしてもよい。また、「"エラーメッセージ"の定義情報が削除された」等の情報を表示するようにしてもよい。さらに、申請画面について、「"申請画面"に関係するメッセージから"エラーメッセージ"が削除された」等の情報を表示するようにしてもよい。また、自動生成ツールＰＣのＣＰＵが、差分情報を差分情報ファイル化して外部メモリ２１１に出力して記憶させるように構成してもよい。
【０１３４】
以下、図８のフローチャートの説明に戻る。
【０１３５】
ステップＳ８１１又はＳ８１２の処理が終了すると、自動生成ツールＰＣのＣＰＵは、自動生成ツールＰＣのＲＡＭ２０２上に記憶される全ての定義情報についてステップＳ８０９〜Ｓ８１２の処理を、繰返し実行する。
【０１３６】
そして、自動生成ツールＰＣのＣＰＵが、自動生成ツールＰＣのＲＡＭ２０２上に記憶される全ての定義情報についてステップＳ８０９〜Ｓ８１２の処理を実行したと判定した場合には、自動生成ツールＰＣのＣＰＵは、本フローチャートの処理を終了させる。
【０１３７】
なお、図８には示していないが、自動生成ツールＰＣのＣＰＵは、ステップＳ８０８〜Ｓ８１１の処理を実行した結果、ステップＳ８０６（ステップＳ８０６を実行していない場合はステップＳ８０２）で得られた論理データ構造に含まれる定義情報が全て特定対象から除外され、ステップＳ８０７（ステップＳ８０７を実行していない場合はステップＳ８０４）で得られた論理データ構造に含まれる定義情報が特定対象として残った場合、残った特定対象の定義情報を差異情報として自動生成ツールＰＣのＲＡＭ２０２上に記憶し、自動生成ツールＰＣの出力部に表示するものとする。例えば、「○○画面の定義情報が追加された」等の情報を表示する。
【０１３８】
図１３は、本発明における第３の制御処理手順の一例を示すフローチャートであり、図８のステップＳ８０９に示した論理データ構造（版ファイル）と論理データ構造（リポジトリ）内の定義情報の比較処理に対応する。なお、このフローチャートの処理は、自動生成ツールＰＣのＣＰＵが外部メモリに格納されたプログラムをＲＡＭ上で実行することにより実現される。また、図１３中、Ｓ１６０１〜Ｓ１６０６は各ステップを示す。
【０１３９】
まず、ステップＳ１６０１において、自動生成ツールＰＣのＣＰＵは、図８のステップＳ８０６（ステップＳ８０６を実行していない場合はステップＳ８０２）で得られ自動生成ツールＰＣのＲＡＭ内に記憶されている論理データ構造の定義情報の中から、何れかの定義情報を特定する。例えば、図１０に示した論理データ構造の定義情報の中から申請アプリケーション３０１（定義情報）を特定する。なお、特定する定義情報は、図８のステップＳ８０６（又はステップＳ８０２）で得られ自動生成ツールＰＣのＲＡＭ内に記憶されている論理データ構造の定義情報であれば、何であっても構わない。
【０１４０】
次に、ステップＳ１６０２において、自動生成ツールＰＣのＣＰＵは、図８のステップＳ８０７（ステップＳ８０７を実行していない場合はステップＳ８０４）で得られ自動生成ツールＰＣのＲＡＭ内に記憶されている論理データ構造の定義情報の中から、ステップＳ１６０１で特定した定義情報に対応する定義情報を特定する。ここで、「ステップ１６０１で特定された定義情報に対応する定義情報」とは、例えば、同一名称の定義情報や対応した識別情報を含んだ定義情報のことを指す。図１０及び図１１の例で示すと、図１０の「ログイン画面」３０３がステップＳ１６０１で特定されれば、図１１の「ログイン画面」３０３'がステップＳ１６０２で対応する定義情報として特定される（同一名称であるため）。なお、図１０の「ログイン画面」３０３と図１１の「ログイン画面」３０３'の定義情報に同一の識別情報が含まれている場合であれば、同一名称でなくても、該識別情報によって、対応した定義情報を特定するようにしてもよい。
【０１４１】
次に、ステップＳ１６０３において、自動生成ツールＰＣのＣＰＵは、ステップＳ１６０２で対応した定義情報を特定できたか否かを判定し、対応する定義情報を特定することができなかったと判定した場合には、そのままステップＳ１６０５に処理を進める。
【０１４２】
ここで、ステップＳ１６０５の処理を実行する場合、自動生成ツールＰＣのＣＰＵは、ステップＳ１６０１で特定された定義情報に対応する定義情報は、ステップＳ８０７（又はＳ１８０４）で得られた論理データ構造に含んでいないので、その旨を差異情報として自動生成ツールＰＣのＲＡＭに記憶する。
【０１４３】
一方、ステップＳ１６０３で、自動生成ツールＰＣのＣＰＵが、ステップＳ１６０２で対応した定義情報を特定できたと判定した場合には、ステップＳ１６０４に処理を進める。
【０１４４】
ステップＳ１６０４では、自動生成ツールＰＣのＣＰＵは、ステップＳ１６０１及びステップＳ１６０２で特定された定義情報を比較し、差異があるか否かを判定する。なお、この際、定義情報に付されたポインタによる他の定義情報との関連の差異も含めるものとする。
【０１４５】
そして、ステップＳ１６０４で比較した結果、差異があると判定した場合には、ステップＳ１６０５において、自動生成ツールＰＣのＣＰＵは、その差異情報を自動生成ツールＰＣのＲＡＭに記憶し、ステップＳ１６０６に処理を進める。
【０１４６】
一方、ステップＳ１６０４で、ステップＳ１６０１及びステップＳ１６０２で特定された定義情報に差異が無いと判定した場合には、ステップＳ１６０６に処理を進める。
【０１４７】
そして、ステップＳ１６０６では、自動生成ツールＰＣのＣＰＵは、ステップ１６０１及びステップ１６０２で特定した定義情報を、再度、特定しないために、特定する対象から除外する処理を行う。例えば、自動生成ツールＰＣのＲＡＭから削除する処理を行う。そして、図８のフローチャートに処理を戻す。
【０１４８】
上記図１２に差分情報の表示画面を示したが、ここでは、差分があれば、「差異」の項目に「あり」と表示される。
【０１４９】
さらに、この差異がある定義情報に関連した定義情報又はアプリケーションを特定したい場合、具体的には、この差異によりバグ等の欠陥が生じ、それによって、他のアプリケーションにも影響がある場合、その定義情報等を特定したい旨を設定すると、自動生成ツールＰＣのＣＰＵが、図８のステップ８０４で得られた論理データ構造（ここでは図３を例にして説明する）を解析し、差異がある定義情報と関連した定義情報又はアプリケーションを特定する処理を実行するように構成してもよい。
【０１５０】
具体的には、図３の申請データ３０７に差異があった場合、その定義情報の差異の影響が及ぶ定義情報をポインタ（図３では矢印で示す）に基づいて関係を判定し、関連している定義情報又はアプリケーションを全て特定する。
【０１５１】
申請データ３０７を示すポインタは、申請画面３０４、申請ロジック３１０、承認ロジック３１１、承認データ３０８、申請一覧画面３０５にあり、自動生成ツールＰＣのＣＰＵは、それを検知して関係がある定義情報を見つける。
【０１５２】
そして、さらに、自動生成ツールＰＣのＣＰＵは、申請データ８０７と関連付いている定義情報に関連付いている定義情報を同様の操作を経て特定する。自動生成ツールＰＣのＣＰＵは、このように、ポインタによる関連付けを辿っていき、アプリケーションまで関連付けられれば、その操作を終了する。これにより、自動生成ツールＰＣのＣＰＵは、申請データ３０７と関連した定義情報とアプリケーションを全て見つけることができる。
【０１５３】
そして、自動生成ツールＰＣのＣＰＵは、図３に示したように論理データ構造を自動生成ツールＰＣの出力部に表示し、さらに、差異のある定義情報に関連付いている定義情報及びアプリケーションを表示する色等を変化させて表示する（表示形態を変えて表示する）ように制御する。このような表示により、設計者は、一目でどの定義情報及びアプリケーションが変更した定義情報のあった定義情報に関連しているのかを把握することができ、変更した定義情報で影響を及ぼすものを容易に把握することができる。なお、自動生成ツールＰＣのＣＰＵは、このような表示情報を版ファイルと関連付けて自動生成ツールＰＣの外部メモリに記憶させたり、図示しないプリンタに印刷出力することも可能である。
【０１５４】
以上示したように、異なる時点でサーバ１０１のリポジトリより取得された各定義情報群（版ファイルから取得された過去の定義情報群，リポジトリから取得した現在の定義情報群）について、その内容を比較し差分情報を抽出し、該抽出された差分情報を前記各定義情報群を対比した形式で出力することができる。これにより、ユーザは、バージョンの違いによる定義情報の差異を明確に認識することができる。また、この際、指定したアプリケーションプログラムの定義情報以外の情報は差分情報に含まれないため、指定したアプリケーションプログラムに影響のある部分のみの差分を容易に認識することができる。
【０１５５】
従って、プログラムやデータとして実行プログラムで使用されるものを対象に、ある時点のアプリケーション定義情報（版）と現在の同じアプリケーション定義情報とを対比する差分管理において、識別情報によってのみ論理的且つネットワーク状に関連付けられた識別情報がフラットな構造でリポジトリに格納されている定義情報格納環境であっても、指定される当該アプリケーション定義情報の活きた情報のみをネットワーク状の論理的関連付けを含めて抽出し、定義体（例えば、ある画面を定義した画面定義テーブル等を指す）の中から、使用していない、不要な項目や定義を排除して比較した結果を出力することができ、ユーザは容易にバージョン毎の差分を管理することができる。
【０１５６】
よって、ツリー構造をたどって定義情報の構成が把握できないネットワーク型の定義関係にあり、且つ、論理的な関連データ構造を有するプログラムの定義情報、例えばＣＡＳＥツールによりプログラム生成するための定義情報（成果物）ついて、異なる時点の成果物の差分（ある時点の当該プログラムと現時点の当該プログラムの成果物の差分）を容易に対比することができる。
【０１５７】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１５８】
また、上記図６，図８，図１３に示す処理は、自動生成ツールＰＣを含むコンピュータのＷＥＢブラウザ等からサーバ１０１に指示して、サーバ１０１で実行されるように構成してもよい。
【０１５９】
さらに、本発明は、ＣＡＳＥツールによりプログラム生成するための定義情報のデータ管理のみでなく、識別情報によってのみ論理的（且つネットワーク状）に関連付けられた複数のデータを前記関連付けを考慮しない構造で格納するデータベースのデータ管理であればどのようなデータのデータ管理であっても適用可能である。
【０１６０】
即ち、論理的な関連データ構造を有する情報に対して、論理的関連を辿って、これをＲＡＭ内の記憶域にコピーし、ポインタを張ることにより物理的な関連データ構造を得ることができる。この手段を応用すれば、論理的な関連付けでは、様々なバリエーションがあるデータ構造でも、一度、物理的な構造に置き換えることにより、汎用的に処理が可能になる。
【０１６１】
以下は、その詳細を説明したものである。
【０１６２】
例えば、プログラム自動生成環境においては、リソース間の論理的な関連が、予め定義されており、それらの個々のリソース定義体の内容は、想定される情報のすべてを網羅していることが多い。即ち、既に全体の関連が定義されている。また、個々のリソース定義体には、複数のプログラムが使用できる情報が混在している。このような場合に、ある特定のグループのみに使用されている定義情報を抽出するのは容易ではない。
【０１６３】
しかし、本発明を適用することにより、ある特定のグループのトップにある定義情報からスタートし、そのグループのみに使用されている定義情報の論理的な関連を辿り、新たに物理的な関連付け（例えば、ポインタでの紐付け）をすると、新たに関連付け（ポインタでリンク）し、再構成された情報は、前記特定のグループにのみ関連する定義情報から構成される構造体を抽出できる。
【０１６４】
即ち、定義情報の依存関係がツリー構造でなく、ネットワーク構造になっている定義情報リポジトリによるデータ管理において、成果物のバージョン間の差分を把握することが求められた場合には未使用な定義情報を削除し、クリーンな定義情報又はリソース構造を得ることができる。
【０１６５】
なお、プログラム自動生成ツールには、定義情報の関連付けを定義名称の同一性を利用するものがある。このようなデータ構造に対しては、従来のデータ管理方法は無力であったが、本発明のデータ管理方法では、意味論的な論理関連から、記憶域には、物理的に関連付けた定義情報構造に蓄えることができるので、この物理定義情報構造を基に、従来技術の利用が可能になる。
【０１６６】
また、本発明のデータ管理方法では、アプリケーション間の差分管理を行う際に、複数の定義情報を、定義情報間を関連付けた情報（版ファイル）に変換して、ＰＣに格納するので、新たに版管理用のデータベースを設ける必要がないため、コスト削減することができる。
【０１６７】
そして、差のある定義情報を特定し、該特定された定義情報に関連する定義情報又はアプリケーションプログラムを検出し、表示するので、ユーザはバグ等の欠陥により影響を与えるものを容易に特定することができる。
【０１６８】
従って、ディレクトリ構造では管理できないネットワーク構造のデータ（定義情報リポジトリ）の版管理を可能とする等の効果を奏する。
【０１６９】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１７０】
以下、図１４に示すメモリマップを参照して本発明に係る情報処理装置（自動生成ツールＰＣ）で読み取り可能なデータ処理プログラムの構成について説明する。
【０１７１】
図１４は、本発明に係る情報処理装置（自動生成ツールＰＣ）で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１７２】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１７３】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１７４】
本実施形態における図６，図８，図１３に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１７５】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１７６】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１７７】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１７８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１７９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１８０】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１８１】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１８２】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０１８３】
【図１】本発明の情報処理装置を適用可能なプログラム自動生成システムの構成を示すブロック図である。
【図２】図１に示したサーバ，自動生成ツールＰＣに適用可能なハードウェア構成を示すブロック図である。
【図３】図１に示したサーバに格納されている定義情報の関連の一例について示す概念図である。
【図４Ａ】図１に示したサーバのデータベースに格納される定義情報の概略を示す図である。
【図４Ｂ】図１に示したサーバのデータベースに格納される定義情報の概略を示す図である。
【図５Ａ】本発明における版ファイルの出力および差分管理を開始するための画面の一例を示す模式図である。
【図５Ｂ】本発明における版ファイルの出力および差分管理を開始するための画面の一例を示す模式図である。
【図５Ｃ】本発明における版ファイルの出力および差分管理を開始するための画面の一例を示す模式図である。
【図６Ａ】本発明における第１の制御処理手順の一例を示すフローチャートである。
【図６Ｂ】本発明における第１の制御処理手順の一例を示すフローチャートである。
【図７Ａ】本発明における版ファイルの一例を示す模式図である。
【図７Ｂ】本発明における版ファイルの一例を示す模式図である。
【図７Ｃ】本発明における版ファイルの一例を示す模式図である。
【図７Ｄ】本発明における版ファイルの一例を示す模式図である。
【図８】本発明における第２の制御処理手順の一例を示すフローチャートである。
【図９】図７に示した版ファイルを論理データ構造に変換した模式図である。
【図１０】図８のステップＳ８０６の処理で得られる論理データ構造の概略の一例を示す模式図である。
【図１１】図８のステップＳ８０７の処理で得られる論理データ構造の概略の一例を示す模式図である。
【図１２】図８に示した差分情報生成処理結果の表示画面の一例を示す模式図である。
【図１３】本発明における制御処理手順の一例を示すフローチャートである。
【図１４】本発明に係る情報処理装置（自動生成ツールＰＣ）で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１８４】
１０１  サーバ
１０２、１０３  自動生成ツールＰＣ
１０４  ネットワーク
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２１０  出力部
２１１  外部メモリ
２１２  プログラム
２１３  版ファイル
【図１】
2008009946.tif 000003
【図２】
2008009946.tif 000004
【図３】
2008009946.tif 000005
【図４Ａ】
2008009946.tif 000006
【図４Ｂ】
2008009946.tif 000007
【図５Ａ】
2008009946.tif 000008
【図５Ｂ】
2008009946.tif 000009
【図５Ｃ】
2008009946.tif 000010
【図６Ａ】
2008009946.tif 000011
【図６Ｂ】
2008009946.tif 000012
【図７Ａ】
2008009946.tif 000013
【図７Ｂ】
2008009946.tif 000014
【図７Ｃ】
2008009946.tif 000015
【図７Ｄ】
2008009946.tif 000016
【図８】
2008009946.tif 000017
【図９】
2008009946.tif 000018
【図１０】
2008009946.tif 000019
【図１１】
2008009946.tif 000020
【図１２】
2008009946.tif 000021
【図１３】
2008009946.tif 000022
【図１４】
2008009946.tif 000023