(57)【要約】【課題】  オブジェクトモジュールのバージョンチェックを自動的に行うことができ、モジュール間の不整合を防止できるとともに、作業担当者の負担を軽減できるオブジェクトバージョンチェックシステムおよびその方法を提供するところにある。【解決手段】  マクロ４やコピー句５等のインクルード情報自体にそれらの生成日を埋め込んでおき、コンパイル時に、コンパイルに用いたマクロ４等の生成日をバージョン管理データベース４０に書き込んでおく。モジュール７のバージョンチェックの際に、そのモジュール７の生成に用いられたマクロ４等の生成日の情報をバージョン管理データベース４０から取得するとともに、対応する最新のマクロ４等からそれらに埋め込まれている生成日の情報を抽出し、これらの生成日同士を比較してそれらが一致しているか否かをチェックする。【選択図】  図１
2005242492.tif 000002
【特許請求の範囲】
【請求項１】
ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェックシステムであって、
前記インクルード情報を生成する際に、このインクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行う生成時点埋込処理手段と、
前記オブジェクトモジュールのバージョン管理情報として、前記オブジェクトモジュールを識別するためのモジュール識別情報とこのオブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報とを対応させて記憶するバージョン管理データベースと、
前記ソースプログラムおよび前記インクルード情報を用いて前記コンパイルを行って前記オブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられる前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出した前記インクルード情報の生成時点を示す情報とこのインクルード情報を用いて生成された前記オブジェクトモジュールの前記モジュール識別情報とを対応させて前記バージョン管理データベースに書き込む処理を行うコンパイル処理手段と、
バージョンチェック対象の前記オブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報を前記モジュール識別情報に基づき前記バージョン管理データベースから取得するとともに、対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うバージョンチェック処理手段と
を備えたことを特徴とするオブジェクトバージョンチェックシステム。
【請求項２】
前記バージョンチェック処理手段は、下位の環境から上位の環境への前記オブジェクトモジュールのリリース時に、前記下位の環境に置かれているリリース対象の前記オブジェクトモジュールを前記バージョンチェック対象とし、このオブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報を前記モジュール識別情報に基づき前記バージョン管理データベースから取得するとともに、先行して前記上位の環境にリリースされている対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行う構成とされていることを特徴とする請求項１に記載のオブジェクトバージョンチェックシステム。
【請求項３】
前記バージョンチェック処理手段は、前記リリース時のバージョンチェック処理に加え、定期的に、リリース後の前記オブジェクトモジュールを前記バージョンチェック対象とし、このオブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報を前記モジュール識別情報に基づき前記バージョン管理データベースから取得するとともに、前記バージョンチェック対象とされた前記オブジェクトモジュールと同一環境にリリースされている対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理も行う構成とされていることを特徴とする請求項２に記載のオブジェクトバージョンチェックシステム。
【請求項４】
前記バージョンチェック処理手段による前記リリース時のバージョンチェック処理で前記インクルード情報の生成時点を示す情報同士を比較してそれらが一致しているというチェック結果が出た前記リリース対象の前記オブジェクトモジュールについて、このオブジェクトモジュールを前記上位の環境のリリース先に移すとともに、前記下位の環境に設けられた前記バージョン管理データベースに記憶されているこのオブジェクトモジュールの前記バージョン管理情報を、前記上位の環境に設けられた前記バージョン管理データベースに書き込む処理を行うリリース実行処理手段を備え、
前記バージョンチェック処理手段は、
前記リリース時のバージョンチェック処理では、前記リリース対象の前記オブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報を、前記下位の環境に設けられた前記バージョン管理データベースから取得し、
前記リリース後に定期的に行うバージョンチェック処理では、前記リリース後の前記オブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報を、前記リリース実行処理手段による書込処理が行われた後の前記上位の環境に設けられた前記バージョン管理データベースから取得する構成とされている
ことを特徴とする請求項３に記載のオブジェクトバージョンチェックシステム。
【請求項５】
前記生成時点埋込処理手段は、前記インクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理に加え、前記ソースプログラム自体にこのソースプログラムの生成時点を示す情報を埋め込む処理も行う構成とされ、
前記バージョン管理データベースは、前記インクルード情報の生成時点を示す情報に加え、前記ソースプログラムの生成時点を示す情報についても、前記モジュール識別情報と対応させて記憶する構成とされ、
前記コンパイル処理手段は、前記オブジェクトモジュールの生成に用いられる前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出する処理に加え、前記オブジェクトモジュールの生成に用いられる前記ソースプログラムからこのソースプログラムの生成時点を示す情報を抽出する処理も行う構成とされ、かつ、抽出した前記インクルード情報の生成時点を示す情報および前記ソースプログラムの生成時点を示す情報とこれらのインクルード情報およびソースプログラムを用いて生成された前記オブジェクトモジュールの前記モジュール識別情報とを対応させて前記バージョン管理データベースに書き込む処理を行う構成とされ、
前記バージョンチェック処理手段は、前記バージョンチェック対象の前記オブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報に加え、このオブジェクトモジュールの生成に用いられた前記ソースプログラムの生成時点を示す情報についても、前記バージョン管理データベースから取得する処理を行うとともに、対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出する処理に加え、対応する最新の前記ソースプログラムからこのソースプログラムの生成時点を示す情報を抽出する処理も行い、前記インクルード情報の生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理に加え、前記ソースプログラムの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理も行う構成とされている
ことを特徴とする請求項１〜４のいずれかに記載のオブジェクトバージョンチェックシステム。
【請求項６】
ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェックシステムであって、
前記インクルード情報を生成する際に、このインクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行う生成時点埋込処理手段と、
前記ソースプログラムおよび前記インクルード情報を用いて前記コンパイルを行って前記オブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられる前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出した前記インクルード情報の生成時点を示す情報を、生成する前記オブジェクトモジュール自体にバージョン管理情報として埋め込む処理を行うコンパイル処理手段と、
バージョンチェック対象の前記オブジェクトモジュールからこのオブジェクトモジュールに埋め込まれている前記インクルード情報の生成時点を示す情報を抽出するとともに、対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うバージョンチェック処理手段と
を備えたことを特徴とするオブジェクトバージョンチェックシステム。
【請求項７】
前記バージョンチェック処理手段は、下位の環境から上位の環境への前記オブジェクトモジュールのリリース時に、前記下位の環境に置かれているリリース対象の前記オブジェクトモジュールを前記バージョンチェック対象とし、このオブジェクトモジュールから前記バージョン管理情報として埋め込まれている前記インクルード情報の生成時点を示す情報を抽出するとともに、先行して前記上位の環境にリリースされている対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行う構成とされていることを特徴とする請求項６に記載のオブジェクトバージョンチェックシステム。
【請求項８】
前記バージョンチェック処理手段は、前記リリース時のバージョンチェック処理に加え、定期的に、リリース後の前記オブジェクトモジュールを前記バージョンチェック対象とし、このオブジェクトモジュールから前記バージョン管理情報として埋め込まれている前記インクルード情報の生成時点を示す情報を抽出するとともに、前記バージョンチェック対象とされた前記オブジェクトモジュールと同一環境にリリースされている対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理も行う構成とされていることを特徴とする請求項７に記載のオブジェクトバージョンチェックシステム。
【請求項９】
前記生成時点埋込処理手段は、前記インクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理に加え、前記ソースプログラム自体にこのソースプログラムの生成時点を示す情報を埋め込む処理も行う構成とされ、
前記コンパイル処理手段は、前記オブジェクトモジュールの生成に用いられる前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出する処理に加え、前記オブジェクトモジュールの生成に用いられる前記ソースプログラムからこのソースプログラムの生成時点を示す情報を抽出する処理も行う構成とされ、かつ、抽出した前記インクルード情報の生成時点を示す情報および前記ソースプログラムの生成時点を示す情報を、生成する前記オブジェクトモジュール自体に前記バージョン管理情報として埋め込む処理を行う構成とされ、
前記バージョンチェック処理手段は、前記バージョンチェック対象の前記オブジェクトモジュールからこのオブジェクトモジュールに埋め込まれている前記インクルード情報の生成時点を示す情報に加え、前記ソースプログラムの生成時点を示す情報についても抽出する処理を行うとともに、対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出する処理に加え、対応する最新の前記ソースプログラムからこのソースプログラムの生成時点を示す情報を抽出する処理も行い、前記インクルード情報の生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理に加え、前記ソースプログラムの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理も行う構成とされている
ことを特徴とする請求項６〜８のいずれかに記載のオブジェクトバージョンチェックシステム。
【請求項１０】
ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェック方法であって、
前記インクルード情報を生成する際に、生成時点埋込処理手段が、前記インクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行い、
コンパイル処理手段が、前記ソースプログラムおよび前記インクルード情報を用いて前記コンパイルを行って前記オブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられる前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出した前記インクルード情報の生成時点を示す情報とこのインクルード情報を用いて生成された前記オブジェクトモジュールを識別するためのモジュール識別情報とを対応させてバージョン管理データベースにバージョン管理情報として書き込む処理を行い、
バージョンチェック処理手段が、バージョンチェック対象の前記オブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報を、前記モジュール識別情報に基づき前記バージョン管理データベースから取得するとともに、対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行う
ことを特徴とするオブジェクトバージョンチェック方法。
【請求項１１】
ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェック方法であって、
前記インクルード情報を生成する際に、生成時点埋込処理手段が、前記インクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行い、
コンパイル処理手段が、前記ソースプログラムおよび前記インクルード情報を用いて前記コンパイルを行って前記オブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられる前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出した前記インクルード情報の生成時点を示す情報を、生成する前記オブジェクトモジュール自体にバージョン管理情報として埋め込む処理を行い、
バージョンチェック処理手段が、バージョンチェック対象の前記オブジェクトモジュールからこのオブジェクトモジュールに埋め込まれている前記インクルード情報の生成時点を示す情報を抽出するとともに、対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行う
ことを特徴とするオブジェクトバージョンチェック方法。
【請求項１２】
ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェックシステムとして、コンピュータを機能させるためのプログラムであって、
前記インクルード情報を生成する際に、このインクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行う生成時点埋込処理手段と、
前記オブジェクトモジュールのバージョン管理情報として、前記オブジェクトモジュールを識別するためのモジュール識別情報とこのオブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報とを対応させて記憶するバージョン管理データベースと、
前記ソースプログラムおよび前記インクルード情報を用いて前記コンパイルを行って前記オブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられる前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出した前記インクルード情報の生成時点を示す情報とこのインクルード情報を用いて生成された前記オブジェクトモジュールの前記モジュール識別情報とを対応させて前記バージョン管理データベースに書き込む処理を行うコンパイル処理手段と、
バージョンチェック対象の前記オブジェクトモジュールの生成に用いられた前記インクルード情報の生成時点を示す情報を前記モジュール識別情報に基づき前記バージョン管理データベースから取得するとともに、対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うバージョンチェック処理手段と
を備えたことを特徴とするオブジェクトバージョンチェックシステムとして、コンピュータを機能させるためのプログラム。
【請求項１３】
ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェックシステムとして、コンピュータを機能させるためのプログラムであって、
前記インクルード情報を生成する際に、このインクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行う生成時点埋込処理手段と、
前記ソースプログラムおよび前記インクルード情報を用いて前記コンパイルを行って前記オブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられる前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出した前記インクルード情報の生成時点を示す情報を、生成する前記オブジェクトモジュール自体にバージョン管理情報として埋め込む処理を行うコンパイル処理手段と、
バージョンチェック対象の前記オブジェクトモジュールからこのオブジェクトモジュールに埋め込まれている前記インクルード情報の生成時点を示す情報を抽出するとともに、対応する最新の前記インクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うバージョンチェック処理手段と
を備えたことを特徴とするオブジェクトバージョンチェックシステムとして、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェックシステムおよびその方法、並びにプログラムに係り、例えば、ＣＯＢＯＬ言語で記述されたソースプログラムおよびマクロやコピー句を用いてコンパイルを行って生成されるプログラムのバージョンチェックを行う場合等に利用できる。
【背景技術】
【０００２】
一般に、システムを構成する各種のプログラムの開発は、複数の開発担当者により作業分担して行われる。また、各開発担当者により作成されたプログラム（オブジェクトモジュール）は、リリースという行為を経て、他の開発担当者に公開されて幾つかの環境下でのテストに使用され、最終的にシステムを運用するユーザに提供される。
【０００３】
この際、各開発担当者により作成されるプログラムには、記述する言語の種類によって、ソースプログラムと、いわゆるインクルードファイルに格納されたインクルード情報（ソースプログラムの一部を外出ししたもの）とを用い、コンパイルを行ってオブジェクトモジュールを生成するものがある。例えば、ＣＯＢＯＬ言語を用いる場合には、ＣＯＢＯＬ言語で記述されたソースプログラムと、ＣＯＢＯＬ言語で記述されたマクロやコピー句とを用い、コンパイルを行ってオブジェクトモジュールを生成する。そして、このようなプログラムの開発においては、ソースプログラムの作成担当者（オブジェクトモジュールの管理担当者）と、インクルードファイルの管理担当者とが、異なっている場合が多い。
【０００４】
従って、インクルードファイルの内容（インクルード情報）を更新した場合には、各担当者間でのその更新内容についての連絡、およびその更新内容の反映作業が重要となる。すなわち、インクルード情報が更新されたにもかかわらず、更新前のインクルード情報を用いてコンパイルされたオブジェクトモジュールがリリースされてしまったり、あるいは更新前のインクルード情報を用いてコンパイルされて既にリリースされているオブジェクトモジュールがある場合に、このオブジェクトモジュールがコンパイルし直されることなくそのままの状態で残っていたりすると、他のオブジェクトモジュールとの間で不整合を生じる。このため、インクルードファイルの管理担当者は、インクルード情報を更新した旨を、各ソースプログラムの作成担当者（各オブジェクトモジュールの管理担当者）に漏れなく通知することが必要であり、また、各オブジェクトモジュールの管理担当者は、オブジェクトモジュールをリリースする際には、そのオブジェクトモジュールが最新のインクルード情報を用いてコンパイルされたものであるか否かを確認する必要があり、リリース後のオブジェクトモジュールについても、各オブジェクトモジュールの管理担当者は、そのオブジェクトモジュールが最新のインクルード情報を用いてコンパイルされた状態を保っているか否かを監視する必要がある。そして、従来は、このような確認作業や監視作業は、各担当者がインクルード情報の更新日を目視で確認、監視することにより行っていた。
【０００５】
また、プログラムのリリース管理を行うシステムとして、次のようなシステムが提案されている（特許文献１参照）。複数のモジュール（ここでいうモジュールは、幾つかのロードモジュールが含まれるダイナミックリンクライブラリである。）からなるプログラム製品について複数の更新作業（例えば、修正Ｎｏ．０００１を付された１まとまりの更新作業と、修正Ｎｏ．００３１を付された別の１まとまりの更新作業とがあるものとする。）が並行して行われる状況において、修正Ｎｏ．０００１の更新作業の対象となっている幾つかのモジュールがリリース予定（今回のリリース対象）のモジュールであり、一方、修正Ｎｏ．００３１の更新作業の対象となっている幾つかのモジュールがリリース予定外（今回のリリース対象ではなく、後からリリースされる対象）のモジュールであるとする。このとき、先にリリースされる修正Ｎｏ．０００１の更新作業の対象のモジュール群と、後からリリースされる修正Ｎｏ．００３１の更新作業の対象のモジュール群との中に、同じ名称のモジュール（例えば、Ａ．ｄｌｌ、Ｂ．ｄｌｌとする。）があった場合に、それらのモジュールの更新時点を比較し、リリース予定の修正Ｎｏ．０００１のモジュールＡ．ｄｌｌの更新時点が、そのモジュールに対応するリリース予定外の修正Ｎｏ．００３１のモジュールＡ．ｄｌｌの更新時点よりも新しいときに、不具合が検出される。つまり、このような状況では、先にコンパイルされて更新されたものの、テストが未完了で、まだリリースされる状態にない修正Ｎｏ．００３１の改造（ロードモジュールの修正）を経たモジュールＡ．ｄｌｌがあるのに対し、後からコンパイルされて更新されたにもかかわらず、テストが先に完了し、先にリリースされる状態になった修正Ｎｏ．０００１の改造を経たモジュールＡ．ｄｌｌがある状態なので、修正Ｎｏ．０００１のリリース時に、モジュールＡ．ｄｌｌには、未テストの改造（テスト未完了の修正ロードモジュール）が含まれる可能性がある。逆に、リリース予定の修正Ｎｏ．０００１のモジュールＢ．ｄｌｌの更新時点が、そのモジュールに対応するリリース予定外の修正Ｎｏ．００３１のモジュールＢ．ｄｌｌの更新時点よりも古いときには、先にコンパイルされて更新されたモジュールが、先にテストを完了し、先にリリースされることになるので、不具合は検出されない。また、このシステムでは、リリース予定のモジュール管理テーブル（リリース予定のモジュール群についてモジュール名と更新時点とを対応させて記憶するテーブル）と、リリース予定外のモジュール管理テーブル（リリース予定外のモジュール群についてモジュール名と更新時点とを対応させて記憶するテーブル）とを比較することにより、不具合の検出を行っている。
【０００６】
さらに、プログラムのリリース管理を行う別のシステムとして、次のようなシステムも提案されている（特許文献２参照）。このシステムは、ロードモジュールの開発およびリリースの管理、すなわちソースユニット（ＳＬ）をコンパイルしてコンパイルユニット（ＣＵ）を生成し、さらにコンパイルユニット（ＣＵ）をリンクしてロードモジュール（ＬＭ）を生成する場合の情報管理を行うシステムであり、リリースされたロードモジュールおよびロードモジュールの構成に関するＳＬ・ＣＵ情報（ソースユニット情報とコンパイルユニット情報とを関連付けて作成された情報）を、ロードモジュール単位にリリース情報管理ファイルに格納し、格納の際に格納領域が不足した場合には、格納されている最も古いリリース情報を削除し、削除したリリース情報を構成するコンパイルユニット（ＣＵ）およびロードモジュール（ＬＭ）を、それぞれコンパイルユニットファイル（コンパイルユニット（ＣＵ）を格納するファイル）およびロードモジュールファイル（ロードモジュール（ＬＭ）を格納するファイル）から削除するというリリース情報の管理を行う。
【０００７】
また、プログラムバージョンの不整合を検出するシステムとして、次のようなシステムが提案されている（特許文献３参照）。このシステムでは、コンパイルを行って実行プログラムを生成する際に、バージョン情報（バージョン番号、日付等）をコンパイラに取り込み、実行プログラムに自動的にバージョン情報を反映させる（含めさせる）とともに、同じバージョン情報を反映させたバージョンチェックプログラムを生成した後、これらの実行プログラムおよびバージョンチェックプログラムを、システム稼働環境に移す処理を行う。そして、システム稼働環境下で、実行プログラムが起動されると、実行プログラムからバージョンチェックプログラムが呼び出されて起動され、起動されたバージョンチェックプログラムにより、起動元の実行プログラムのバージョン情報と、バージョンチェックプログラム自身が持つバージョン情報との比較処理が行われる。ここで、比較したバージョン情報が一致している場合には、バージョンチェックプログラムの処理は終了し、実行プログラムの処理が続行され、一方、一致していない場合には、システム運用者に対し、処理を続行するか否かの選択を促すメッセージがシステム端末に出力される。
【０００８】
【特許文献１】特開２００３−２９６１０８号公報（段落［００２７］〜［００３１］、［００３７］〜［００４９］、図２、要約）
【特許文献２】特開平５−２３３２３３号公報（段落［０００５］、［０００７］、［０００８］、［００１２］、図１、要約）
【特許文献３】特開平９−２６５３８５号公報（段落［０００４］〜［０００６］、図２、要約）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
前述したソースプログラムとインクルード情報（例えば、ＣＯＢＯＬ言語の場合には、マクロやコピー句）とを用い、コンパイルを行ってオブジェクトモジュールを生成する場合において、従来のように、各オブジェクトモジュール間での不整合を防止するために、各ソースプログラムの作成担当者（各オブジェクトモジュールの管理担当者）が、インクルード情報の更新日を目視で確認、監視する作業を行うと、作業に時間がかかるうえ、手間がかかって担当者の作業負担が大きい。このため、インクルード情報の更新に伴って生じる各オブジェクトモジュール間の不整合（インクルード情報の更新が反映されるべき各オブジェクトモジュールについて、それが反映されていないことによる不整合）を防止するとともに、各担当者の作業負担を軽減するため、オブジェクトモジュールのバージョンチェックを自動的に行うことができるシステムが望まれる。
【００１０】
なお、前述した特許文献１に記載されたシステムでは、モジュール（ダイナミックリンクライブラリ）に含まれるロードモジュールの更新時点を比較するのではなく、更新されたロードモジュールを含むモジュール（ダイナミックリンクライブラリ）全体の更新時点を比較する点で、本発明とは異なる処理を行っている。また、本発明の如く、インクルード情報自体にその生成時点を示す情報を埋め込む処理を行うのではなく、比較されるいずれの情報についても、テーブルによる情報管理が行われる点で、本発明とは異なる処理を行っている。
【００１１】
また、前述した特許文献２に記載されたシステムでは、リリースされるロードモジュールの生成に用いられたソースユニット（ＳＬ）やコンパイルユニット（ＣＵ）の情報を、ロードモジュール単位にリリース情報として管理するだけであり、ロードモジュール単体での各種の不整合は解消できるかもしれないが、そのロードモジュールを用いてさらにモジュール（ダイナミックリンクライブラリ）を生成し、リリースする場合の不具合を解消するものではない。
【００１２】
さらに、前述した特許文献３に記載されたシステムでは、各実行プログラムに対し、バージョンチェック専用のバージョンチェックプログラムをそれぞれ生成しなければならず、また、実行プログラムを起動しなければ、バージョンチェックを行うことができないという点で、本発明とは異なる処理を行っている。
【００１３】
本発明の目的は、オブジェクトモジュールのバージョンチェックを自動的に行うことができ、オブジェクトモジュール間の不整合を防止できるとともに、作業担当者の負担を軽減できるオブジェクトバージョンチェックシステムおよびその方法、並びにプログラムを提供するところにある。なお、本発明において、バージョンチェックを自動的に行うというときは、チェック処理自体が自動化されていることを意味し、チェック処理を行うタイミングについては、作業担当者が与える場合と、タイミング付与も含めて自動化する場合とが含まれる。
【課題を解決するための手段】
【００１４】
本発明は、ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェックシステムであって、インクルード情報を生成する際に、このインクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行う生成時点埋込処理手段と、オブジェクトモジュールのバージョン管理情報として、オブジェクトモジュールを識別するためのモジュール識別情報とこのオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報とを対応させて記憶するバージョン管理データベースと、ソースプログラムおよびインクルード情報を用いてコンパイルを行ってオブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられるインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出したインクルード情報の生成時点を示す情報とこのインクルード情報を用いて生成されたオブジェクトモジュールのモジュール識別情報とを対応させてバージョン管理データベースに書き込む処理を行うコンパイル処理手段と、バージョンチェック対象のオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報をモジュール識別情報に基づきバージョン管理データベースから取得するとともに、対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うバージョンチェック処理手段とを備えたことを特徴とするものである。
【００１５】
ここで、「バージョンチェック」の対象となる「オブジェクトモジュール」は、ソースプログラムおよびインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールであれば、例えば、ＣＯＢＯＬ言語、Ｃ言語、アセンブリ言語等、いずれの言語で記述されたソースプログラムおよびインクルード情報を用いて生成されたものでもよい。なお、本発明における「コンパイル」には、アセンブルも含まれる。
【００１６】
また、「インクルード情報」とは、ソースプログラムから外出しされていわゆるインクルードファイルに格納され、コンパイル時にプログラムの構成要素として組み込まれる情報をいい、例えば、ＣＯＢＯＬ言語の場合には、マクロやコピー句であり、Ｃ言語の場合には、定数の名称や関数のプロトタイプの定義など、複数のプログラムで共通して使用されるコードである。以下の発明においても同様である。なお、本願明細書においては、マクロやコピー句が格納されたファイル（インクルードファイル）を、そのファイルに格納されたマクロやコピー句（インクルード情報）と特に区別することなく、単にマクロやコピー句と記述することがある。
【００１７】
さらに、「生成時点」は、日付（生成日）のみでもよく、日付のみならず時刻を含んでいてもよい。以下の発明においても同様である。
【００１８】
そして、「インクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む」という意味は、インクルード情報が格納されたファイルに、そのファイルの生成時点を示す情報が付されるという意味ではなく、ファイルに格納されるインクルード情報自体、つまり中身に生成時点を示す情報を埋め込むという意味である。同様に、「インクルード情報からこのインクルード情報の生成時点を示す情報を抽出」するという意味は、インクルード情報が格納されたファイルの生成時点を示す情報を読み取るという意味ではなく、ファイルに格納されたインクルード情報自体（中身）から生成時点を示す情報を抽出するという意味である。以下の発明においても同様である。なお、後述するソースプログラムへの埋込みやソースプログラムからの抽出も同様な意味である。
【００１９】
また、「モジュール識別情報」とは、例えば、モジュールＩＤ、モジュール名等である。以下の発明においても同様である。
【００２０】
さらに、「対応する最新のインクルード情報」における「対応する」インクルード情報とは、内容が更新されても同じ識別情報（例えば、同じ名称や同じＩＤ等）で管理され、取り扱われるインクルード情報がある場合において、バージョンチェック対象のオブジェクトモジュールの生成に用いられたインクルード情報の識別情報（名称やＩＤ等）と同じ識別情報を付されたインクルード情報を意味する。また、「最新の」インクルード情報とは、同じ識別情報（例えば、同じ名称や同じＩＤ等）で管理され、取り扱われるインクルード情報のうち、最新の生成時点を有するインクルード情報を意味する。以下の発明においても同様である。
【００２１】
このような本発明のオブジェクトバージョンチェックシステムにおいては、生成時点埋込処理手段により、インクルード情報自体にその生成時点を示す情報を埋め込んでおき、コンパイル処理手段により、コンパイル時に、コンパイルに用いたインクルード情報の生成時点を示す情報を、バージョン管理情報としてバージョン管理データベースに書き込んでおく。そして、バージョンチェック処理手段により、コンパイルして生成されたオブジェクトモジュールのバージョンチェックを行う際に、そのオブジェクトモジュールの生成に用いられたインクルード情報（コンパイル時にプログラムの構成要素として組み込まれたインクルード情報）の生成時点を示す情報をバージョン管理データベースから取得するとともに、対応する最新のインクルード情報（ソースプログラムから外出しされた状態で、単体で存在するインクルード情報、つまりインクルードファイルに格納された状態のインクルード情報）からその生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする。ここで、一致している場合には、オブジェクトモジュールは、最新のインクルード情報を用いてコンパイルされたバージョンであり、正常と判断され、一方、一致していない場合には、リリースの不許可や警告出力等の不正常の場合の処理を行うことが可能となる。
【００２２】
このため、インクルード情報の内容の更新に伴って生じる各オブジェクトモジュール間の不整合を防止することが可能となる。例えば、インクルードファイルの管理担当者がインクルード情報を更新したにもかかわらず、ソースプログラムの作成担当者（オブジェクトモジュールの管理担当者）が、更新前のインクルード情報を用いてコンパイルしたままの状態のオブジェクトモジュールを、コンパイルし直さずに、つまりインクルード情報の更新内容を反映させずにリリースしてしまい、他のオブジェクトモジュールとの間で不整合を生じるという事態が回避される。また、オブジェクトモジュールが既にリリースされている状況で、インクルード情報が更新された場合に、オブジェクトモジュールの管理担当者が、インクルード情報が更新されたことに気づかず、更新前のインクルード情報を用いてコンパイルされているオブジェクトモジュールについて再度のコンパイルを行わない結果、他のオブジェクトモジュールとの間で不整合を生じるという事態が回避される。
【００２３】
さらに、オブジェクトモジュールのバージョンチェックは、バージョンチェック処理手段により行われるので、従来のような黙視によるインクルード情報の更新日の確認作業や監視作業を行う場合に比べ、作業時間が短縮されるうえ、オブジェクトモジュールの管理担当者の作業負担が軽減され、これらにより前記目的が達成される。
【００２４】
また、前述したオブジェクトバージョンチェックシステムにおいて、バージョンチェック処理手段は、下位の環境から上位の環境へのオブジェクトモジュールのリリース時に、下位の環境に置かれているリリース対象のオブジェクトモジュールをバージョンチェック対象とし、このオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報をモジュール識別情報に基づきバージョン管理データベースから取得するとともに、先行して上位の環境にリリースされている対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行う構成とされていることが望ましい。
【００２５】
ここで、「先行して上位の環境にリリースされている対応する最新のインクルード情報」における「先行して上位の環境にリリースされている」インクルード情報とは、バージョンチェック対象のオブジェクトモジュールがリリースされる上位の環境に、バージョンチェック対象のオブジェクトモジュールに先行してリリースされているインクルード情報を意味する。また、ここでいう「最新の」インクルード情報とは、更新されたインクルード情報がリリースされると、更新前のインクルード情報が上書き消去される管理を行っている場合には、バージョンチェック対象のオブジェクトモジュールがリリースされる上位の環境にリリースされている唯一のインクルード情報を意味し、一方、更新されたインクルード情報がリリースされても、更新前のインクルード情報が消去されずに残される管理を行っている場合には、バージョンチェック対象のオブジェクトモジュールがリリースされる上位の環境にリリースされているインクルード情報のうち、最新の生成時点を有するインクルード情報を意味する。以下の発明においても同様である。
【００２６】
また、「リリース時」には、オブジェクトモジュールを上位の環境のリリース先に実際に移す時点の他に、例えば、リリース待機場所に移す時点等も含まれる。以下の発明においても同様である。
【００２７】
このようにオブジェクトモジュールのリリース時にバージョンチェックを行う構成とした場合には、更新前のインクルード情報を用いてコンパイルされたオブジェクトモジュールがリリースされるという事態を未然に防止することが可能となる。
【００２８】
さらに、上述したオブジェクトモジュールのリリース時にバージョンチェックを行う構成とした場合において、バージョンチェック処理手段は、リリース時のバージョンチェック処理に加え、定期的に、リリース後のオブジェクトモジュールをバージョンチェック対象とし、このオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報をモジュール識別情報に基づきバージョン管理データベースから取得するとともに、バージョンチェック対象とされたオブジェクトモジュールと同一環境にリリースされている対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理も行う構成とされていることが望ましい。
【００２９】
ここで、「定期的」とは、例えば、毎日の夜間の一定時刻や、毎日の就業時間後の一定時刻、あるいは水曜日と土曜日の夜間の一定時刻等のように、バージョンチェック処理の実行タイミングが、作業担当者の行為（操作）によらずに、予め定められていることを意味する。
【００３０】
このようにオブジェクトモジュールのリリース時に加え、定期的にバージョンチェックを行う構成とした場合には、リリース後のオブジェクトモジュールについても、定期的にバージョンチェックを行うことが可能となり、更新前のインクルード情報を用いてコンパイルされているオブジェクトモジュールが再度のコンパイルを行われることなく放置されるという事態が回避され、また、警告リスト等を出力して再度のコンパイルをオブジェクトモジュールの管理担当者に促したり、他のオブジェクトモジュールの管理担当者や開発システムのテスト実施者に不整合があることを告知したりする等の処理が可能となる。
【００３１】
そして、上述したオブジェクトモジュールのリリース時に加え、定期的にバージョンチェックを行う構成とした場合において、バージョンチェック処理手段によるリリース時のバージョンチェック処理でインクルード情報の生成時点を示す情報同士を比較してそれらが一致しているというチェック結果が出たリリース対象のオブジェクトモジュールについて、このオブジェクトモジュールを上位の環境のリリース先に移すとともに、下位の環境に設けられたバージョン管理データベースに記憶されているこのオブジェクトモジュールのバージョン管理情報を、上位の環境に設けられたバージョン管理データベースに書き込む処理を行うリリース実行処理手段を備え、バージョンチェック処理手段は、リリース時のバージョンチェック処理では、リリース対象のオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報を、下位の環境に設けられたバージョン管理データベースから取得し、リリース後に定期的に行うバージョンチェック処理では、リリース後のオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報を、リリース実行処理手段による書込処理が行われた後の上位の環境に設けられたバージョン管理データベースから取得する構成とされていることが望ましい。
【００３２】
このようにチェック結果が正常であったオブジェクトモジュールのリリース処理およびそのオブジェクトモジュールのバージョン管理情報の上位の環境のバージョン管理データベースへの書込処理を行うリリース実行処理手段を備えた構成とした場合には、バージョンチェック処理手段によるリリース時のバージョンチェック処理と、リリース後の定期的なバージョンチェック処理とが連携され、システム開発に伴う一連の処理が円滑に行われるようになるうえ、作業担当者の負担軽減が図られる。
【００３３】
さらに、以上に述べたオブジェクトバージョンチェックシステムにおいて、生成時点埋込処理手段は、インクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理に加え、ソースプログラム自体にこのソースプログラムの生成時点を示す情報を埋め込む処理も行う構成とされ、バージョン管理データベースは、インクルード情報の生成時点を示す情報に加え、ソースプログラムの生成時点を示す情報についても、モジュール識別情報と対応させて記憶する構成とされ、コンパイル処理手段は、オブジェクトモジュールの生成に用いられるインクルード情報からこのインクルード情報の生成時点を示す情報を抽出する処理に加え、オブジェクトモジュールの生成に用いられるソースプログラムからこのソースプログラムの生成時点を示す情報を抽出する処理も行う構成とされ、かつ、抽出したインクルード情報の生成時点を示す情報およびソースプログラムの生成時点を示す情報とこれらのインクルード情報およびソースプログラムを用いて生成されたオブジェクトモジュールのモジュール識別情報とを対応させてバージョン管理データベースに書き込む処理を行う構成とされ、バージョンチェック処理手段は、バージョンチェック対象のオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報に加え、このオブジェクトモジュールの生成に用いられたソースプログラムの生成時点を示す情報についても、バージョン管理データベースから取得する処理を行うとともに、対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出する処理に加え、対応する最新のソースプログラムからこのソースプログラムの生成時点を示す情報を抽出する処理も行い、インクルード情報の生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理に加え、ソースプログラムの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理も行う構成とされていることが望ましい。
【００３４】
ここで、「対応する最新のソースプログラム」における「対応する」ソースプログラムとは、内容が更新されても同じ識別情報（例えば、同じ名称や同じＩＤ等）で管理され、取り扱われるソースプログラムがある場合において、バージョンチェック対象のオブジェクトモジュールの生成に用いられたソースプログラムの識別情報（名称やＩＤ等）と同じ識別情報を付されたソースプログラムを意味する。また、「最新の」ソースプログラムとは、同じ識別情報（例えば、同じ名称や同じＩＤ等）で管理され、取り扱われるソースプログラムのうち、最新の生成時点を有するソースプログラムを意味する。以下の発明においても同様である。
【００３５】
このようにインクルード情報に加え、ソースプログラムの生成時点を示す情報同士も比較するバージョンチェック処理を行う構成とした場合には、ソースプログラムの内容を更新したにもかかわらず、それがオブジェクトモジュールに反映されないという事態が回避され、また、そのような事態から生じるモジュール間の不整合が防止される。
【００３６】
なお、以上に述べた本発明は、オブジェクトモジュールのバージョン管理情報（オブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報）をバージョン管理データベースに記憶させておく構成であるため、以下、バージョン管理データベース利用型の発明という。これに対し、以下に述べる本発明は、オブジェクトモジュールのバージョン管理情報をバージョン管理データベースに記憶させるのではなく、オブジェクトモジュール自体に埋め込む構成であるため、オブジェクトモジュール埋込型の発明という。
【００３７】
すなわち、本発明は、ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェックシステムであって、インクルード情報を生成する際に、このインクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行う生成時点埋込処理手段と、ソースプログラムおよびインクルード情報を用いてコンパイルを行ってオブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられるインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出したインクルード情報の生成時点を示す情報を、生成するオブジェクトモジュール自体にバージョン管理情報として埋め込む処理を行うコンパイル処理手段と、バージョンチェック対象のオブジェクトモジュールからこのオブジェクトモジュールに埋め込まれているインクルード情報の生成時点を示す情報を抽出するとともに、対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うバージョンチェック処理手段とを備えたことを特徴とするものである。
【００３８】
このような本発明のオブジェクトバージョンチェックシステムにおいては、生成時点埋込処理手段により、インクルード情報自体にその生成時点を示す情報を埋め込んでおき、コンパイル処理手段により、コンパイル時に、コンパイルに用いたインクルード情報の生成時点を示す情報を、オブジェクトモジュール自体に埋め込んでおく。そして、バージョンチェック処理手段により、コンパイルして生成されたオブジェクトモジュールのバージョンチェックを行う際に、そのオブジェクトモジュールの生成に用いられたインクルード情報（コンパイル時にプログラムの構成要素として組み込まれたインクルード情報）の生成時点を示す情報をオブジェクトモジュールから抽出するとともに、対応する最新のインクルード情報（ソースプログラムから外出しされた状態で、単体で存在するインクルード情報、つまりインクルードファイルに格納された状態のインクルード情報）からその生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする。ここで、一致している場合には、オブジェクトモジュールは、最新のインクルード情報を用いてコンパイルされたバージョンであり、正常と判断され、一方、一致していない場合には、リリースの不許可や警告出力等の不正常の場合の処理を行うことが可能となる。
【００３９】
このため、前述したバージョン管理データベース利用型の発明の場合と同様に、インクルード情報の内容の更新に伴って生じる各オブジェクトモジュール間の不整合を防止することが可能となる。
【００４０】
さらに、オブジェクトモジュールのバージョンチェックは、バージョンチェック処理手段により行われるので、従来のような黙視によるインクルード情報の更新日の確認作業や監視作業を行う場合に比べ、作業時間が短縮されるうえ、オブジェクトモジュールの管理担当者の作業負担が軽減され、これらにより前記目的が達成される。
【００４１】
また、前述したオブジェクトバージョンチェックシステムにおいて、バージョンチェック処理手段は、下位の環境から上位の環境へのオブジェクトモジュールのリリース時に、下位の環境に置かれているリリース対象のオブジェクトモジュールをバージョンチェック対象とし、このオブジェクトモジュールからバージョン管理情報として埋め込まれているインクルード情報の生成時点を示す情報を抽出するとともに、先行して上位の環境にリリースされている対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行う構成とされていることが望ましい。
【００４２】
このようにオブジェクトモジュールのリリース時にバージョンチェックを行う構成とした場合には、前述したバージョン管理データベース利用型の発明の場合と同様に、更新前のインクルード情報を用いてコンパイルされたオブジェクトモジュールがリリースされるという事態を未然に防止することが可能となる。
【００４３】
さらに、上述したオブジェクトモジュールのリリース時にバージョンチェックを行う構成とした場合において、バージョンチェック処理手段は、リリース時のバージョンチェック処理に加え、定期的に、リリース後のオブジェクトモジュールをバージョンチェック対象とし、このオブジェクトモジュールからバージョン管理情報として埋め込まれているインクルード情報の生成時点を示す情報を抽出するとともに、バージョンチェック対象とされたオブジェクトモジュールと同一環境にリリースされている対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理も行う構成とされていることが望ましい。
【００４４】
このようにオブジェクトモジュールのリリース時に加え、定期的にバージョンチェックを行う構成とした場合には、前述したバージョン管理データベース利用型の発明の場合と同様に、リリース後のオブジェクトモジュールについても、定期的にバージョンチェックを行うことが可能となり、更新前のインクルード情報を用いてコンパイルされているオブジェクトモジュールが再度のコンパイルを行われことなく放置されるという事態が回避され、また、警告リスト等の出力や関係者への不整合の告知等の処理が可能となる。
【００４５】
そして、上述したオブジェクトモジュールのリリース時に加え、定期的にバージョンチェックを行う構成とした場合において、生成時点埋込処理手段は、インクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理に加え、ソースプログラム自体にこのソースプログラムの生成時点を示す情報を埋め込む処理も行う構成とされ、コンパイル処理手段は、オブジェクトモジュールの生成に用いられるインクルード情報からこのインクルード情報の生成時点を示す情報を抽出する処理に加え、オブジェクトモジュールの生成に用いられるソースプログラムからこのソースプログラムの生成時点を示す情報を抽出する処理も行う構成とされ、かつ、抽出したインクルード情報の生成時点を示す情報およびソースプログラムの生成時点を示す情報を、生成するオブジェクトモジュール自体にバージョン管理情報として埋め込む処理を行う構成とされ、バージョンチェック処理手段は、バージョンチェック対象のオブジェクトモジュールからこのオブジェクトモジュールに埋め込まれているインクルード情報の生成時点を示す情報に加え、ソースプログラムの生成時点を示す情報についても抽出する処理を行うとともに、対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出する処理に加え、対応する最新のソースプログラムからこのソースプログラムの生成時点を示す情報を抽出する処理も行い、インクルード情報の生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理に加え、ソースプログラムの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理も行う構成とされていることが望ましい。
【００４６】
このようにインクルード情報に加え、ソースプログラムの生成時点を示す情報同士も比較するバージョンチェック処理を行う構成とした場合には、前述したバージョン管理データベース利用型の発明の場合と同様に、ソースプログラムの内容を更新したにもかかわらず、それがオブジェクトモジュールに反映されないという事態が回避され、また、そのような事態から生じるモジュール間の不整合が防止される。
【００４７】
また、以上に述べた本発明のオブジェクトバージョンチェックシステム（バージョン管理データベース利用型の発明、およびオブジェクトモジュール埋込型の発明）により実現されるオブジェクトバージョンチェック方法として、以下のような本発明のオブジェクトバージョンチェック方法が挙げられる。
【００４８】
すなわち、本発明は、ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェック方法であって、インクルード情報を生成する際に、生成時点埋込処理手段が、インクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行い、コンパイル処理手段が、ソースプログラムおよびインクルード情報を用いてコンパイルを行ってオブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられるインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出したインクルード情報の生成時点を示す情報とこのインクルード情報を用いて生成されたオブジェクトモジュールを識別するためのモジュール識別情報とを対応させてバージョン管理データベースにバージョン管理情報として書き込む処理を行い、バージョンチェック処理手段が、バージョンチェック対象のオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報を、モジュール識別情報に基づきバージョン管理データベースから取得するとともに、対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うことを特徴とするものである。
【００４９】
また、本発明は、ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェック方法であって、インクルード情報を生成する際に、生成時点埋込処理手段が、インクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行い、コンパイル処理手段が、ソースプログラムおよびインクルード情報を用いてコンパイルを行ってオブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられるインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出したインクルード情報の生成時点を示す情報を、生成するオブジェクトモジュール自体にバージョン管理情報として埋め込む処理を行い、バージョンチェック処理手段が、バージョンチェック対象のオブジェクトモジュールからこのオブジェクトモジュールに埋め込まれているインクルード情報の生成時点を示す情報を抽出するとともに、対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うことを特徴とするものである。
【００５０】
このような本発明のオブジェクトバージョンチェック方法（バージョン管理データベース利用型の発明、およびオブジェクトモジュール埋込型の発明）においては、前述した本発明のオブジェクトバージョンチェックシステムで得られる作用・効果がそのまま得られ、これにより前記目的が達成される。
【００５１】
そして、以上に述べたバージョン管理データベース利用型の発明、およびオブジェクトモジュール埋込型の発明を実現するためのプログラムとして、以下のような本発明のプログラムが挙げられる。
【００５２】
すなわち、本発明は、ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェックシステムとして、コンピュータを機能させるためのプログラムであって、インクルード情報を生成する際に、このインクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行う生成時点埋込処理手段と、オブジェクトモジュールのバージョン管理情報として、オブジェクトモジュールを識別するためのモジュール識別情報とこのオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報とを対応させて記憶するバージョン管理データベースと、ソースプログラムおよびインクルード情報を用いてコンパイルを行ってオブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられるインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出したインクルード情報の生成時点を示す情報とこのインクルード情報を用いて生成されたオブジェクトモジュールのモジュール識別情報とを対応させてバージョン管理データベースに書き込む処理を行うコンパイル処理手段と、バージョンチェック対象のオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報をモジュール識別情報に基づきバージョン管理データベースから取得するとともに、対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うバージョンチェック処理手段とを備えたことを特徴とするオブジェクトバージョンチェックシステムとして、コンピュータを機能させるためのものである。
【００５３】
また、本発明は、ソースプログラムおよびプログラムの構成要素として組み込まれるインクルード情報を用いてコンパイルを行って生成されるオブジェクトモジュールのバージョンチェックを行うオブジェクトバージョンチェックシステムとして、コンピュータを機能させるためのプログラムであって、インクルード情報を生成する際に、このインクルード情報自体にこのインクルード情報の生成時点を示す情報を埋め込む処理を行う生成時点埋込処理手段と、ソースプログラムおよびインクルード情報を用いてコンパイルを行ってオブジェクトモジュールを生成するとともに、このオブジェクトモジュールの生成に用いられるインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、かつ、抽出したインクルード情報の生成時点を示す情報を、生成するオブジェクトモジュール自体にバージョン管理情報として埋め込む処理を行うコンパイル処理手段と、バージョンチェック対象のオブジェクトモジュールからこのオブジェクトモジュールに埋め込まれているインクルード情報の生成時点を示す情報を抽出するとともに、対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックする処理を行うバージョンチェック処理手段とを備えたことを特徴とするオブジェクトバージョンチェックシステムとして、コンピュータを機能させるためのものである。
【００５４】
なお、以上に述べたプログラムまたはその一部は、例えば、光磁気ディスク（ＭＯ）、コンパクトディスク（ＣＤ）を利用した読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）、デジタル・バーサタイル・ディスク（ＤＶＤ）を利用した読出し専用メモリ（ＤＶＤ−ＲＯＭ）、ＤＶＤを利用したランダム・アクセス・メモリ（ＤＶＤ−ＲＡＭ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去および書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等の記録媒体に記録して保存や流通等させることが可能であるとともに、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等の有線ネットワーク、あるいは無線通信ネットワーク、さらにはこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に載せて搬送することも可能である。さらに、以上に述べたプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【発明の効果】
【００５５】
以上に述べたように本発明によれば、バージョンチェック対象のオブジェクトモジュールの生成に用いられたインクルード情報の生成時点を示す情報をバージョン管理データベースから取得するか、あるいはバージョンチェック対象のオブジェクトモジュールからこのオブジェクトモジュールに埋め込まれているインクルード情報の生成時点を示す情報を抽出するとともに、対応する最新のインクルード情報からこのインクルード情報の生成時点を示す情報を抽出し、これらの生成時点を示す情報同士を比較してそれらが一致しているか否かをチェックするバージョンチェック処理を行うので、オブジェクトモジュールのバージョンチェックを自動的に行うことができ、オブジェクトモジュール間の不整合を防止することができるうえ、作業時間の短縮および作業担当者の負担軽減を図ることができるという効果がある。
【発明を実施するための最良の形態】
【００５６】
以下に本発明の一実施形態について図面を参照して説明する。図１には、本実施形態のオブジェクトバージョンチェックシステム１０を用いて行われるプログラム開発時の作業の流れ、およびオブジェクトモジュールのリリース時のバージョンチェック処理を含む各種処理の概要が示され、図２には、システム１０により夜間等に定期的に行われるバージョンチェック処理の概要が示されている。また、図３には、システム１０の全体構成が示され、図４には、システム１０により行われるバージョンチェック処理を含む各種処理の詳細内容が示されている。
【００５７】
オブジェクトバージョンチェックシステム１０は、複数の開発担当者の関与の下に、複数のプログラムからなるシステムを開発するためのシステムであり、バージョン管理データベース利用型の発明を実現するシステムである。このシステム１０の詳細構成を説明する前に、先ず、システム１０により行われる処理の概要について、図１および図２を参照して説明する。
【００５８】
図１において、プログラム開発ツールで作成または準備した日本語マクロ１、レコード情報（コピー句）２、および日本語ＩＰＯ（プログラム）３から、ＣＯＢＯＬ言語で記述されたマクロ４、コピー句５、およびＣＯＢＯＬソース（ソースプログラム）６をそれぞれ生成する際に、マクロ４自体、コピー句５自体、およびＣＯＢＯＬソース６自体に、それぞれの生成時点を示す情報（マクロ生成日、コピー句生成日、およびソース生成日）を埋め込んでおく（ステップＳ１，Ｓ２，Ｓ３）。
【００５９】
そして、マクロ４、コピー句５、およびＣＯＢＯＬソース６を用いてコンパイルを行う際に（ステップＳ４）、マクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれたマクロ生成日、コピー句生成日、およびソース生成日（の情報）をそれぞれ抽出し、抽出したマクロ生成日、コピー句生成日、およびソース生成日、並びにコンパイルして生成されたオブジェクトモジュール（以下、単にモジュールと記載することがある。）７の生成時点を示す情報（モジュール生成日）を、生成されたモジュール７に付与されたモジュールＩＤと対応させてバージョン管理データベース４０に書き込み保存する（ステップＳ５）。なお、後述する如く、各環境にバージョン管理データベース４０Ａ〜４０Ｅが設けられているが、バージョン管理データベース４０は、それらの総称として用いている。
【００６０】
また、モジュール７のリリースに先行させて、マクロ４、コピー句５、およびＣＯＢＯＬソース６をリリースし、オブジェクト格納ライブラリ５０に格納しておく（ステップＳ６，Ｓ７，Ｓ８）。なお、後述する如く、各環境にオブジェクト格納ライブラリ５０Ａ〜５０Ｄが設けられているが、オブジェクト格納ライブラリ５０は、それらの総称として用いている。
【００６１】
続いて、モジュール７をリリースする際に、バージョンチェック処理手段３３により、そのモジュール７の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の生成時点を示す情報（マクロ生成日、コピー句生成日、およびソース生成日）を、モジュールＩＤをキーとしてバージョン管理データベース４０から取得する。また、先行してリリースされてオブジェクト格納ライブラリ５０に格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日（の情報）をそれぞれ抽出する。そして、これらのマクロ生成日同士、コピー句生成日同士、およびソース生成日同士をそれぞれ比較し、それらが一致しているか否かをチェックすることにより、バージョンチェック処理を行う（ステップＳ９）。ここで、各生成日同士が一致し、チェック結果が正常と出た場合には、モジュール７がリリースされ、オブジェクト格納ライブラリ５０に格納される（ステップＳ１０）。
【００６２】
一方、各生成日同士が一致せず、チェック結果がエラーになった場合には、モジュール７はリリースされない。各生成日同士の不一致は、次のような場合に生じる。例えば、マクロ４やコピー句５の管理担当者が、マクロ４やコピー句５を更新したにもかかわらず、モジュール７の管理担当者が、更新前のマクロ４やコピー句５を用いてコンパイルしてしまい、それにより生成されたモジュール７をリリースしようとした場合、あるいはコンパイルしてモジュール７を生成した後、これをリリースする前に、マクロ４やコピー句５が更新され、モジュール７の管理担当者が、更新前のマクロ４やコピー句５を用いてコンパイルしたままの状態のモジュール７を、コンパイルし直さずに、そのままリリースしようとした場合等にエラーが出る。そして、仮に、このようなエラーが出たモジュール７がリリースされたとすると、最新のマクロ４やコピー句５を用いてコンパイルされて生成された他のモジュール７との間で不整合を生じることになる。
【００６３】
図２において、モジュール７のリリース後には、バージョンチェック処理手段３３，６２により、例えば、毎日、夜間の一定時刻に、既にリリースされてオブジェクト格納ライブラリ５０に格納されているバージョンチェック対象のモジュール７の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の生成時点を示す情報（マクロ生成日、コピー句生成日、およびソース生成日）を、モジュールＩＤをキーとしてバージョン管理データベース４０から取得する。また、バージョンチェック対象のモジュール７と同一環境のオブジェクト格納ライブラリ５０に格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出する。そして、これらのマクロ生成日同士、コピー句生成日同士、およびソース生成日同士をそれぞれ比較し、それらが一致しているか否かをチェックすることにより、バージョンチェック処理を行う（ステップＳ２１）。
【００６４】
ここで、各生成日同士が一致せず、チェック結果がエラーになった場合には、その結果は警告リスト３３Ａに出力される（ステップＳ２２）。各生成日同士の不一致は、次のような場合に生じる。例えば、モジュール７が既にリリースされてオブジェクト格納ライブラリ５０に格納されている状況で、マクロ４やコピー句５が更新されたときに、モジュール７の管理担当者が、マクロ４やコピー句５が更新されたことに気づかず、更新前のマクロ４やコピー句５を用いてコンパイルされているモジュール７について再度のコンパイルを行わず、そのまま放置している場合等にエラーが出る。そして、仮に、このようなエラーが出たモジュール７がオブジェクト格納ライブラリ５０に放置されたままになると、最新のマクロ４やコピー句５を用いてコンパイルされて生成された他のモジュール７との間で不整合を生じることになる。
【００６５】
次に、オブジェクトバージョンチェックシステム１０の詳細構成について説明する。このシステム１０によるシステム開発環境は、本実施形態では、一例として、下位環境から順に、ＵＴ環境、ＩＴａ環境、ＩＴｂ環境、およびＳＴ環境があるものとする。ＵＴは、個人の環境で行うユニットテストであり、ＩＴａおよびＩＴｂは、複数の開発担当者で構成されるチームが公開された状態で全体として行う統合テスト（インテグレーションテスト）であり、ＳＴは、実際にシステムを運用するユーザも含めてインターフェース等の確認を行うシステムテストである。そして、これらの各環境でのテストが完了すると、本番環境に移行する。
【００６６】
図３において、オブジェクトバージョンチェックシステム１０は、各開発担当者が各自の担当する作業を行う際にそれぞれ操作する複数の個人用端末装置２０と、この個人用端末装置２０とＬＡＮやイントラネット等のネットワーク１１で接続された開発管理システム３０と、この開発管理システム３０とネットワーク１１で接続された本番システム６０とを備えている。
【００６７】
各個人用端末装置２０は、例えばパーソナルコンピュータ等により構成され、プログラム（本実施形態では、マクロ４、コピー句５、およびＣＯＢＯＬソース６）の開発を支援するプログラム開発ツール２１がそれぞれ搭載されている。プログラム開発ツール２１としては、例えば、ＣＯＢＯＬ言語のプログラム開発の生産性や品質の向上を目的とした開発ツールとして市販されているＨＬＬ／ＷＢ（エイチエルエル・ワークベンチ）等を採用することができる。このＨＬＬ／ＷＢは、マクロ４の管理者がＨＬＬ／ＷＢ用の言語（主に日本語）で日本語マクロ１をコーディングする作業を支援する処理を行うとともに、日本語マクロ１のコーディング完了後に、マクロ４の管理者による「マクロ生成」機能の実行操作に基づき、ＨＬＬ／ＷＢ用の言語で記述された日本語マクロ１のファイルから、ＣＯＢＯＬ言語で記述されたマクロ４のファイルへの変換処理（図１のステップＳ１の処理）を行うものである。この変換処理で生成されるマクロ４のファイルは、いわゆるインクルードファイルに相当し、マクロ４は、コーディングの一部を外出したものであり、本発明におけるインクード情報に相当する。
【００６８】
また、ＨＬＬ／ＷＢは、ＨＬＬ／ＷＢ上へのレコード情報２のファイルの取込完了後に、コピー句５の管理者による「コピー句生成」機能の実行操作に基づき、ＨＬＬ／ＷＢ用の形式で記述されたレコード情報２のファイルから、ＣＯＢＯＬ言語で記述されたコピー句５のファイルを生成する処理（図１のステップＳ２の処理）を行うものである。この生成処理で得られるコピー句５のファイルは、いわゆるインクルードファイルに相当し、コピー句５は、ＣＯＢＯＬプログラムの中で使用されるファイルのフォーマットやＩ／Ｏのエリア等の定義であり、本発明におけるインクード情報に相当する。なお、レコード情報２のファイルは、ＨＬＬ／ＷＢ上に取り込まれたＨＬＬ／ＷＢ用の形式のファイルであり、ＨＬＬ／ＷＢ上でのコーディングは行わず、設計時に作成するコピー句のレイアウトファイルから別のツールを使用して取り込まれるものである。
【００６９】
さらに、ＨＬＬ／ＷＢは、ＣＯＢＯＬソース６の管理者がＨＬＬ／ＷＢ用の言語（主に日本語）で日本語ＩＰＯ３をコーディングする作業を支援する処理を行うとともに、日本語ＩＰＯ３のコーディング完了後に、ＣＯＢＯＬソース６の管理者による「ソース生成」機能の実行操作に基づき、ＨＬＬ／ＷＢ用の言語で記述された日本語ＩＰＯ３のファイルから、ＣＯＢＯＬ言語で記述されたソースプログラムであるＣＯＢＯＬソース６のファイルへの変換処理（図１のステップＳ３の処理）を行うものである。
【００７０】
また、プログラム開発ツール２１には、ソースプログラム自体およびインクルード情報自体にこれらの生成時点を示す情報をそれぞれ埋め込む処理を行う生成時点埋込処理手段２２が設けられている。この生成時点埋込処理手段２２は、本実施形態では、日本語マクロ１、レコード情報２、および日本語ＩＰＯ３から、マクロ４、コピー句５、およびＣＯＢＯＬソース６をそれぞれ生成する処理を行う際に、マクロ４自体、コピー句５自体、およびＣＯＢＯＬソース６自体に、それらの生成時点を示す情報（マクロ生成日、コピー句生成日、およびソース生成日）をそれぞれ埋め込む処理を行う。この生成時点埋込処理手段２２の機能は、例えば、システム１０の管理者が、ＨＬＬ／ＷＢ自体の持つ「マクロ生成」機能、「コピー句生成」機能、および「ソース生成」機能に、各生成日を埋め込む処理をそれぞれ追加するカスタマイズを行って得ることができる。
【００７１】
開発管理システム３０は、例えば、ホストコンピュータおよびこれと連携する一つまたは複数のサーバ等により構成され、開発対象のシステムを構成するプログラムの開発に関する各種の処理を行う処理手段３１と、この処理手段３１に接続された複数のバージョン管理データベース４０（４０Ａ，４０Ｂ，４０Ｃ，４０Ｄ）、共通作業領域４１、個人用作業領域４２、および複数のオブジェクト格納ライブラリ５０（５０Ａ，５０Ｂ，５０Ｃ）とを備えている。
【００７２】
処理手段３１は、コンパイル処理手段３２と、バージョンチェック処理手段３３と、リリース実行処理手段３４とを含んで構成されている。
【００７３】
コンパイル処理手段３２は、マクロ４、コピー句５、およびＣＯＢＯＬソース６を用いてコンパイルを行ってオブジェクトモジュール７を生成する処理を行うものである。また、コンパイル処理手段３２は、コンパイルの際に、モジュール７の生成に用いられるマクロ４、コピー句５、およびＣＯＢＯＬソース６からこれらの生成時点を示す情報（マクロ生成日、コピー句生成日、およびソース生成日）をそれぞれ抽出し、かつ、抽出したマクロ生成日およびそのマクロ４を識別するためのマクロＩＤ、抽出したコピー句生成日およびそのコピー句５を識別するためのコピー句ＩＤ、抽出したソース生成日およびそのＣＯＢＯＬソース６を識別するためのソースＩＤ、並びにモジュール生成日と、生成されたモジュール７のモジュールＩＤとを対応させてバージョン管理データベース４０（４０Ａ）に書き込む処理を行う。
【００７４】
なお、コンパイルの際に、モジュール７が、複数のマクロ４や複数のコピー句５を用いて生成された場合には、複数のマクロ４の全てについてのマクロ生成日およびマクロＩＤや、複数のコピー句５の全てについてのコピー句生成日およびコピー句ＩＤが、生成されたモジュール７のモジュールＩＤと対応させてバージョン管理データベース４０（４０Ａ）に書き込まれる。
【００７５】
このようなコンパイル処理手段３２の機能は、市販されているコンパイラに、生成日の抽出処理やバージョン管理データベース４０（４０Ａ）への書込処理を行う機能を追加するカスタマイズを行って得ることができる。
【００７６】
バージョンチェック処理手段３３は、バージョンチェック対象のオブジェクトモジュール７の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の生成時点を示す情報並びにそれらのＩＤ（マクロ生成日・マクロＩＤ、コピー句生成日・コピー句ＩＤ、およびソース生成日・ソースＩＤ）を、モジュールＩＤをキーとしてバージョン管理データベース４０（４０Ａ，４０Ｂ，４０Ｃ，４０Ｄ）から取得するとともに、オブジェクト格納ライブラリ５０（５０Ａ，５０Ｂ，５０Ｃ）にリリースされて格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６（マクロＩＤが同じマクロ４、コピー句ＩＤが同じコピー句５、およびソースＩＤが同じＣＯＢＯＬソース６であって、各環境において最新の生成日を有するもの）から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出し、これらの生成時点を示す情報同士（マクロ生成日同士、コピー句生成日同士、およびソース生成日同士）を比較してそれらが一致しているか否かをチェックする処理を行うものである。
【００７７】
なお、バージョンチェック対象のモジュール７が、複数のマクロ４や複数のコピー句５を用いて生成されている場合には、複数のマクロ４の全てについてのマクロ生成日同士や、複数のコピー句５の全てについてのコピー句生成日同士の比較処理を行う。
【００７８】
また、バージョンチェック処理手段３３により行われるバージョンチェック処理には、下位の環境から上位の環境へのオブジェクトモジュール７のリリース時に行われる処理と、リリース後のオブジェクトモジュール７について夜間等に定期的に行われる処理とがある。前者のリリース時のチェック結果は、モジュール７の管理担当者によるリリース操作時および／またはリリース申請時に表示画面上にエラーメッセージとして出力され、後者の夜間等に定期的に行われるチェック結果は、警告リスト３３Ａ（図２参照）としてファイル出力されて開発管理システム３０に保存され、それを各担当者が参照しにいく。
【００７９】
前者のリリース時のバージョンチェック処理では、下位の環境に置かれているリリース対象のモジュール７をバージョンチェック対象とし、このモジュール７の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の各生成日並びにそれらの各ＩＤを、モジュールＩＤをキーとしてバージョン管理データベース４０から取得するとともに、上位の環境に設けられたオブジェクト格納ライブラリ５０に先行してリリースされて格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出し、これらの各生成日同士を比較してそれらが一致しているか否かをチェックする処理を行う。
【００８０】
一方、後者のリリース後のバージョンチェック処理では、既にリリースされてオブジェクト格納ライブラリ５０に格納されているモジュール７をバージョンチェック対象とし、このモジュール７の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の各生成日並びにそれらの各ＩＤを、モジュールＩＤをキーとしてバージョン管理データベース４０から取得するとともに、バージョンチェック対象とされたモジュール７と同一環境のオブジェクト格納ライブラリ５０にリリースされて格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出し、これらの各生成日同士を比較してそれらが一致しているか否かをチェックする処理を行う。
【００８１】
リリース実行処理手段３４は、バージョンチェック処理手段３３によるリリース時のバージョンチェック処理でエラーが出なかったリリース対象のオブジェクトモジュール７について、モジュール７の管理担当者のリリース申請に基づき、このモジュール７を上位の環境のオブジェクト格納ライブラリ５０に移す（リリースする）とともに、下位の環境のバージョン管理データベース５０に記憶されているこのモジュール７のバージョン管理情報（各生成日や各ＩＤ）を、上位の環境のバージョン管理データベース５０に書き込む処理を行うものである。また、リリース実行処理手段３４は、各開発担当者のリリース申請に基づき、マクロ４、コピー句５、およびＣＯＢＯＬソース６を、モジュール７に先行させてリリースする処理も行う。
【００８２】
バージョン管理データベース４０は、生成されたオブジェクトモジュール７のバージョン管理情報として、そのモジュール７の生成に用いられたマクロ４のマクロ生成日およびマクロＩＤ、そのモジュール７の生成に用いられたコピー句５のコピー句生成日およびコピー句ＩＤ、そのモジュール７の生成に用いられたＣＯＢＯＬソース６のソース生成日およびソースＩＤ、並びに生成されたモジュール７のモジュール生成日を、そのモジュール７のモジュールＩＤと対応させて記憶するものである。
【００８３】
バージョン管理データベース４０には、コンパイル等のＵＴ環境から上位の環境へのリリース準備作業を行う作業環境、ＩＴａ環境、ＩＴｂ環境、およびＳＴ環境の各開発環境に設けられたバージョン管理データベース４０Ａ，４０Ｂ，４０Ｃ，４０Ｄがある。
【００８４】
共通作業領域４１は、コンパイル時にバインドされる対象となるマクロ４、コピー句５、およびＣＯＢＯＬソース６を格納しておく領域である。
【００８５】
個人用作業領域４２は、各開発担当者が各自の作業を行うための領域であり、リリース対象のマクロ４、コピー句５、ＣＯＢＯＬソース６、およびモジュール７を格納しておく領域である。また、コンパイルして生成されたモジュール７は、この個人用作業領域４２に出力される。
【００８６】
オブジェクト格納ライブラリ５０は、リリースされたマクロ４、コピー句５、ＣＯＢＯＬソース６、およびモジュール７を格納するものである。このオブジェクト格納ライブラリ５０には、ＩＴａ環境、ＩＴｂ環境、およびＳＴ環境の各開発環境に設けられたオブジェクト格納ライブラリ５０Ａ，５０Ｂ，５０Ｃがある。
【００８７】
本番システム６０は、開発されたプログラムを実際に稼働させてユーザ（例えば、各開発担当部署とは異なる運営担当部署等）が運用するシステムであり、例えば、一台または複数台のコンピュータ等により構成され、システム運用に関する各種処理を行う処理手段６１と、この処理手段６１に接続されたバージョン管理データベース４０（４０Ｅ）およびオブジェクト格納ライブラリ５０（５０Ｄ）とを備えている。
【００８８】
処理手段６１は、開発管理システム３０の処理手段３１に設けられたバージョンチェック処理手段３３と同様な処理を行うバージョンチェック処理手段６２を含んで構成されている。但し、バージョンチェック処理手段６２は、夜間等に定期的に行うバージョンチェック処理は行うが、リリース時のバージョンチェック処理は行わない。
【００８９】
バージョン管理データベース４０Ｅは、本番環境に設けられたバージョン管理データベース４０であり、開発管理システム３０の各開発環境に設けられたバージョン管理データベース４０Ａ〜４０Ｄと同様な構成を有するものである。
【００９０】
オブジェクト格納ライブラリ５０Ｄは、本番環境に設けられたオブジェクト格納ライブラリ５０であり、開発管理システム３０の各開発環境に設けられたオブジェクト格納ライブラリ５０Ａ〜５０Ｃと同様な構成を有するものである。なお、本実施形態では、前述した各開発環境（ＩＴａ環境、ＩＴｂ環境、ＳＴ環境）のオブジェクト格納ライブラリ５０Ａ，５０Ｂ，５０Ｃについては、マクロ４、コピー句５、ＣＯＢＯＬソース６、およびモジュール７がそこにリリース（公開）されると、元々そこに格納されていた対応する（同じＩＤを有する）更新前のマクロ４、コピー句５、ＣＯＢＯＬソース６、およびモジュール７は、上書き消去される管理を行っているが、本番環境のオブジェクト格納ライブラリ５０Ｄについては、トラブルの際に緊急に元に戻すこともあるので、１世代だけ古いバージョンのものを管理し、公開している。但し、各開発環境でも、公開はされていないものの、バックアップが日々取られる管理を行っているので、実際には一定期間、古いバージョンのものが保存されていることになる。このような管理方法は、一例であり、これに限定されるものではない。
【００９１】
そして、以上において、個人用端末装置２０のプログラム開発ツール２１に含まれる生成時点埋込処理手段２２、開発管理システム３０の処理手段３１に含まれるコンパイル処理手段３２、バージョンチェック処理手段３３、およびリリース実行処理手段３４、本番システム６０の処理手段６１に含まれるバージョンチェック処理手段６２は、個人用端末装置２０、開発管理システム３０、および本番システム６０を構成する各コンピュータ本体（パーソナル・コンピュータ、ホストコンピュータ、サーバ等）の内部に設けられた中央演算処理装置（ＣＰＵ）、およびこのＣＰＵの動作手順を規定する一つまたは複数のプログラムにより実現される。
【００９２】
また、開発管理システム３０に設けられたバージョン管理データベース４０Ａ，４０Ｂ，４０Ｃ，４０Ｄ、共通作業領域４１、個人用作業領域４２、およびオブジェクト格納ライブラリ５０Ａ，５０Ｂ，５０Ｃ、本番システム６０に設けられたバージョン管理データベース４０Ｅおよびオブジェクト格納ライブラリ５０Ｄは、例えばハードディスク等により好適に実現されるが、記憶容量やアクセス速度等に問題が生じない範囲であれば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、ＲＡＭ、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＦＤ、磁気テープ、あるいはこれらの組合せ等を採用してもよい。
【００９３】
このような本実施形態においては、以下のようにしてオブジェクトバージョンチェックシステム１０を用いて、オブジェクトモジュール７のバージョンチェック処理を行いながら、プログラムの開発が行われる。ここでは、主として図４を参照して処理の詳細内容を説明する。
【００９４】
先ず、図１で概略を説明したように、各開発担当者は、各自の個人用端末装置２０を操作し、プログラム開発ツール２１を使用して日本語マクロ１、レコード情報２、および日本語ＩＰＯ３を作成または準備する。そして、プログラム開発ツール２１を使用して「マクロ生成」、「コピー句生成」、および「ソース生成」の各機能の実行操作を行い、日本語マクロ１、レコード情報２、および日本語ＩＰＯ３から、ＣＯＢＯＬ言語で記述されたマクロ４、コピー句５、およびＣＯＢＯＬソース６をそれぞれ生成する（図１のステップＳ１，Ｓ２，Ｓ３）。このステップＳ１，Ｓ２，Ｓ３の処理の際に、生成時点埋込処理手段２２により、マクロ４自体、コピー句５自体、およびＣＯＢＯＬソース６自体に、それぞれの生成時点を示す情報（マクロ生成日、コピー句生成日、およびソース生成日）を埋め込んでおく。以上の作業は、ＵＴ環境で行われる。
【００９５】
続いて、各開発担当者は、図４に示すように、生成したマクロ４、コピー句５、およびＣＯＢＯＬソース６を、コンパイルに供される対象として共通作業領域４１に移す（コピーする）とともに、リリースに備えて各自の個人用作業領域４２にも移す（コピーする）。
【００９６】
そして、ＣＯＢＯＬソース６の作成担当者（モジュール７の管理担当者）は、自分の作成したＣＯＢＯＬソース６をコンパイルにかける。すると、コンパイル処理手段３２により、必要なマクロ４やコピー句５が組み込まれてオブジェクトモジュール７が生成され、生成されたモジュール７が、その担当者の個人用作業領域４２に出力される（図１および図４のステップＳ４）。この際、コンパイル処理手段３２は、コンパイルに用いられるマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれたマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出し、かつ、抽出したマクロ生成日およびそのマクロ４のマクロＩＤ、抽出したコピー句生成日およびそのコピー句５のコピー句ＩＤ、抽出したソース生成日およびそのＣＯＢＯＬソース６のソースＩＤ、並びにモジュール生成日を、生成されたモジュール７のモジュールＩＤと対応させて作業環境のバージョン管理データベース４０Ａに書き込む（図１および図４のステップＳ５）。
【００９７】
また、各開発担当者は、図４に示すように、各自の担当するマクロ４、コピー句５、およびＣＯＢＯＬソース６について、リリース操作を行ってリリース待機場所（不図示）に移し、リリース申請を行う。すると、例えば、その日の夜間に、リリース実行処理手段３４により、リリース申請のあったマクロ４、コピー句５、およびＣＯＢＯＬソース６がまとめて上位の環境であるＩＴａ環境のオブジェクト格納ライブラリ５０Ａに移されてリリースされる（図４のステップＳ６０１，Ｓ７０１，Ｓ８０１：図１のステップＳ６，Ｓ７，Ｓ８に相当）。これらのマクロ４、コピー句５、およびＣＯＢＯＬソース６のリリース時には、モジュール７のリリース時のようなバージョンチェック処理は行われない。
【００９８】
なお、これらのマクロ４、コピー句５、およびＣＯＢＯＬソース６のリリースは、モジュール７のリリースに先行して行われる。また、これらのマクロ４、コピー句５、およびＣＯＢＯＬソース６は、モジュール７に先行してリリースされればよいので、コンパイル（ステップＳ４）の前にリリースされてもよい。さらに、各開発担当者は、自分の担当するマクロ４、コピー句５、およびＣＯＢＯＬソース６をいずれの環境までリリースさせるかを目的に応じて選択することができる。従って、ＩＴａ環境のオブジェクト格納ライブラリ５０Ａへのリリース（図４のステップＳ６０１，Ｓ７０１，Ｓ８０１）のみならず、ＩＴｂ環境のオブジェクト格納ライブラリ５０Ｂへのリリース（図４のステップＳ６０２，Ｓ７０２，Ｓ８０２）、ＳＴ環境のオブジェクト格納ライブラリ５０Ｃへのリリース（図４のステップＳ６０３，Ｓ７０３，Ｓ８０３）、本番環境のオブジェクト格納ライブラリ５０Ｄへのリリース（図４のステップＳ６０４，Ｓ７０４，Ｓ８０４）を行ってもよい。例えば、マクロ４の内容を更新した場合において、ＳＴ環境では、更新前のマクロ４を用いてコンパイルされたモジュール７を用いて既に全体的なテストが実施されているので、とりあえずその古いモジュール７を用いてテストを進めようというときには、マクロ４の管理担当者は、更新したマクロ４のリリースを、ＳＴ環境の下位のＩＴｂ環境までに留めればよい。このようにした場合には、ＳＴ環境では、更新したマクロ４がリリースされていないので、更新前のマクロ４が、ＳＴ環境における最新のマクロ４となり、バージョンチェック処理手段３３によりＳＴ環境において夜間に定期的に行われるバージョンチェック処理では、更新前のマクロ４を用いてコンパイルされた古いモジュール７と、更新前のマクロ４との間で、マクロ生成日同士の比較が行われることから、チェック結果にエラーは出ない。
【００９９】
その後、モジュール７の管理担当者は、自分の個人用作業領域４２に出力されたモジュール７についてリリース操作を行う。リリース操作が行われると、モジュール７はリリース待機場所（不図示）に移されるが、この際、バージョンチェック処理手段３３によるバージョンチェック処理が自動的に行われる。すなわち、バージョンチェック処理手段３３は、そのモジュール７の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の生成時点を示す情報並びにそれらのＩＤ（マクロ生成日・マクロＩＤ、コピー句生成日・コピー句ＩＤ、およびソース生成日・ソースＩＤ）を、そのモジュール７に付されているモジュールＩＤをキーとして、作業環境のバージョン管理データベース４０Ａから取得する。また、先行してリリースされてＩＴａ環境のオブジェクト格納ライブラリ５０Ａに格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出する。そして、バージョンチェック処理手段３３は、これらのマクロ生成日同士、コピー句生成日同士、およびソース生成日同士をそれぞれ比較し、それらが一致しているか否かをチェックすることにより、バージョンチェック処理を行う（図４のステップＳ９０１：図１のステップＳ９に相当）。
【０１００】
ここで、各生成日同士が一致し、チェック結果にエラーが無かった場合には、モジュール７の管理担当者は、ＩＴａ環境へのリリース申請を行う。なお、エラーが出た場合には、モジュール７がリリース待機場所（不図示）に移されないようにしてもよく、あるいはリリース待機場所に移されるものの、モジュール７の管理担当者がリリース申請を行わないように警告表示を出すか、またはリリース申請を行うことができないようにしてもよい。そして、モジュール７の管理担当者がリリース申請を行うと、例えば、その日の夜間に、リリース実行処理手段３４により、リリース申請のあったモジュール７がまとめてリリース待機場所からＩＴａ環境にリリースされ、ＩＴａ環境のオブジェクト格納ライブラリ５０Ａに格納される（図４のステップＳ１０１：図１のステップＳ１０に相当）。
【０１０１】
また、リリース実行処理手段３４は、モジュール７についてのＩＴａ環境へのリリース処理と併せ、そのモジュール７について作業環境のバージョン管理データベース４０Ａに記憶されているバージョン管理情報（モジュール生成日・モジュールＩＤ、マクロ生成日・マクロＩＤ、コピー句生成日・コピー句ＩＤ、およびソース生成日・ソースＩＤ）を、モジュール７がリリースされた上位の環境であるＩＴａ環境のバージョン管理データベース４０Ｂに書き込む（図４のステップＳ１１）。
【０１０２】
次に、ＩＴａ環境でのテストが完了し、モジュール７を上位の環境であるＩＴｂ環境にリリースさせる場合には、モジュール７の管理担当者は、そのモジュール７についてリリース操作を行い、モジュール７をリリース待機場所（不図示）へ移す。この際、バージョンチェック処理手段３３によるバージョンチェック処理が自動的に行われる。すなわち、バージョンチェック処理手段３３は、そのモジュール７の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の各生成日並びにそれらのＩＤを、モジュールＩＤをキーとしてＩＴａ環境のバージョン管理データベース４０Ｂから取得する。また、先行してリリースされてＩＴｂ環境のオブジェクト格納ライブラリ５０Ｂに格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出する。そして、バージョンチェック処理手段３３は、これらのマクロ生成日同士、コピー句生成日同士、およびソース生成日同士をそれぞれ比較し、それらが一致しているか否かをチェックすることにより、バージョンチェック処理を行う（図４のステップＳ９０２：図１のステップＳ９に相当）。
【０１０３】
ここで、各生成日同士が一致し、チェック結果にエラーが無かった場合には、モジュール７の管理担当者は、ＩＴｂ環境へのリリース申請を行う。すると、例えば、その日の夜間に、リリース実行処理手段３４により、リリース申請のあったモジュール７がまとめてリリース待機場所からＩＴｂ環境にリリースされ、ＩＴｂ環境のオブジェクト格納ライブラリ５０Ｂに格納される（図４のステップＳ１０２：図１のステップＳ１０に相当）。
【０１０４】
また、リリース実行処理手段３４は、モジュール７についてのＩＴｂ環境へのリリース処理と併せ、そのモジュール７についてＩＴａ環境のバージョン管理データベース４０Ｂに記憶されているバージョン管理情報を、モジュール７がリリースされた上位の環境であるＩＴｂ環境のバージョン管理データベース４０Ｃに書き込む（図４のステップＳ１２）。
【０１０５】
同様にして、ＩＴｂ環境でのテストが完了し、モジュール７を上位の環境であるＳＴ環境にリリースさせる場合には、モジュール７の管理担当者は、そのモジュール７についてリリース操作を行い、モジュール７をリリース待機場所（不図示）へ移す。この際、バージョンチェック処理手段３３によるバージョンチェック処理が自動的に行われる。すなわち、バージョンチェック処理手段３３は、そのモジュール７の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の各生成日並びにそれらのＩＤを、モジュールＩＤをキーとしてＩＴｂ環境のバージョン管理データベース４０Ｃから取得する。また、先行してリリースされてＳＴ環境のオブジェクト格納ライブラリ５０Ｃに格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出する。そして、バージョンチェック処理手段３３は、これらのマクロ生成日同士、コピー句生成日同士、およびソース生成日同士をそれぞれ比較し、それらが一致しているか否かをチェックすることにより、バージョンチェック処理を行う（図４のステップＳ９０３：図１のステップＳ９に相当）。
【０１０６】
ここで、各生成日同士が一致し、チェック結果にエラーが無かった場合には、モジュール７の管理担当者は、ＳＴ環境へのリリース申請を行う。すると、例えば、その日の夜間に、リリース実行処理手段３４により、リリース申請のあったモジュール７がまとめてリリース待機場所からＳＴ環境にリリースされ、ＳＴ環境のオブジェクト格納ライブラリ５０Ｃに格納される（図４のステップＳ１０３：図１のステップＳ１０に相当）。
【０１０７】
また、リリース実行処理手段３４は、モジュール７についてのＳＴ環境へのリリース処理と併せ、そのモジュール７についてＩＴｂ環境のバージョン管理データベース４０Ｃに記憶されているバージョン管理情報を、モジュール７がリリースされた上位の環境であるＳＴ環境のバージョン管理データベース４０Ｄに書き込む（図４のステップＳ１３）。
【０１０８】
さらに、ＳＴ環境でのテストが完了し、モジュール７を本番環境にリリースさせる場合には、モジュール７の管理担当者は、そのモジュール７についてリリース操作を行い、モジュール７をリリース待機場所（不図示）へ移す。この際には、開発環境下でのリリースの場合とは異なり、バージョンチェック処理手段３３によるバージョンチェック処理は行われない。
【０１０９】
そして、モジュール７の管理担当者が、本番環境へのリリース申請を行うと、例えば、その日の夜間に、リリース実行処理手段３４により、リリース申請のあったモジュール７がまとめてリリース待機場所から本番環境にリリースされ、本番環境のオブジェクト格納ライブラリ５０Ｄに格納される（図４のステップＳ１０４）。
【０１１０】
また、リリース実行処理手段３４は、モジュール７についての本番環境へのリリース処理と併せ、そのモジュール７についてＳＴ環境のバージョン管理データベース４０Ｄに記憶されているバージョン管理情報を、モジュール７がリリースされた本番環境のバージョン管理データベース４０Ｅに書き込む（図４のステップＳ１４）。
【０１１１】
以上に述べたリリース時のバージョンチェック処理を含む各処理に加え、オブジェクトバージョンチェックシステム１０では、バージョンチェック処理手段３３，６２により、ＩＴａ環境、ＩＴｂ環境、およびＳＴ環境の各開発環境、並びに本番環境において、例えば、毎日、夜間の一定時刻に、前述した図２に記載された同一環境内におけるリリース後のモジュール７についてのバージョンチェック処理を行う。この処理の内容を、図４を参照して説明する。
【０１１２】
ＩＴａ環境においては、バージョンチェック処理手段３３は、既にリリースされてＩＴａ環境のオブジェクト格納ライブラリ５０Ａに格納されているバージョンチェック対象のモジュール７の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の各生成日並びにそれらのＩＤを、モジュールＩＤをキーとしてＩＴａ環境のバージョン管理データベース４０Ｂから取得する。また、バージョンチェック対象のモジュール７がリリースされている環境と同一環境であるＩＴａ環境のオブジェクト格納ライブラリ５０Ａに格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出する。そして、バージョンチェック処理手段３３は、これらのマクロ生成日同士、コピー句生成日同士、およびソース生成日同士をそれぞれ比較し、それらが一致しているか否かをチェックすることにより、バージョンチェック処理を行う（図２のステップＳ２１）。ここで、各生成日同士が一致せず、チェック結果がエラーになった場合には、その結果は警告リスト３３Ａに出力される（図２のステップＳ２２）。
【０１１３】
同様にして、ＩＴｂ環境においては、バージョンチェック処理手段３３により、ＩＴｂ環境のバージョン管理データベース４０Ｃに記憶されたバージョン管理情報（マクロ生成日等）と、ＩＴｂ環境のオブジェクト格納ライブラリ５０Ｂに格納されているマクロ４等とを用いて、マクロ生成日同士の比較処理等が行われ、ＳＴ環境においては、バージョンチェック処理手段３３により、ＳＴ環境のバージョン管理データベース４０Ｄに記憶されたバージョン管理情報（マクロ生成日等）と、ＳＴ環境のオブジェクト格納ライブラリ５０Ｃに格納されているマクロ４等とを用いて、マクロ生成日同士の比較処理等が行われ、本番環境においては、バージョンチェック処理手段６２により、本番環境のバージョン管理データベース４０Ｅに記憶されたバージョン管理情報（マクロ生成日等）と、本番環境のオブジェクト格納ライブラリ５０Ｄに格納されているマクロ４等とを用いて、マクロ生成日同士の比較処理等が行われる。
【０１１４】
また、以下には、オブジェクトモジュール７が、ある環境（例えば、ＩＴａ環境とする。）に既にリリースされている状況で、マクロ４の内容が更新された場合の処理手順の一例について説明する。コピー句５が更新された場合も同様である。
【０１１５】
図４において、マクロ４の管理担当者は、マクロ４の内容を更新すると、その旨およびマクロ４のリリース予定日（例えば、２月１日とする。）を、各モジュール７の管理担当者に通知し、更新したマクロ４を、コンパイルに供するために共通作業領域４１に格納するとともに、リリース準備のため個人用作業領域４２にも格納する。各モジュール７の管理担当者は、マクロ更新の通知を受けると、コンパイル処理手段３２により、更新されたマクロ４を用いてコンパイルを行い、新しいモジュール７を生成し、これを個人用作業領域４２に格納してリリース準備をする。この際、生成された新しいモジュール７のバージョン管理情報として、コンパイルに用いられたマクロ４のマクロ生成日等がバージョン管理データベース４０Ａに書き込まれる。
【０１１６】
続いて、マクロ４の管理担当者が、更新したマクロ４について、リリース操作を行うと、マクロ４は個人用作業領域４２からリリース待機場所（不図示）に移される。そして、マクロ４の管理担当者が、リリース申請を行うと、リリース実行処理手段３４により、その日（２月１日）の夜間にマクロ４がリリース待機場所からＩＴａ環境のオブジェクト格納ライブラリ５０Ａにリリースされる。
【０１１７】
その後、バージョンチェック処理手段３３により、ＩＴａ環境内における夜間（２月１日）のバージョンチェック処理が行われると、この時点では、ＩＴａ環境のオブジェクト格納ライブラリ５０Ａにリリースされているモジュール７は、まだ更新前のマクロ４を用いてコンパイルされた古いものなので、チェック結果として、一旦、エラー（エラーを示すチェック処理結果）が出る。
【０１１８】
それから、例えば翌日（２月２日）に、モジュール７の管理担当者が、更新されたマクロ４を用いてコンパイルし直したモジュール７について、リリース操作を行うと、このモジュール７は個人用作業領域４２からリリース待機場所（不図示）に移されるが、この際、バージョンチェック処理手段３３により、リリース時のバージョンチェック処理が行われる。このバージョンチェック処理では、更新されたマクロ４を用いてコンパイルし直したモジュール７についてのバージョン管理情報としてバージョン管理データベース４０Ａに記憶されているマクロ生成日と、２月１日に先行リリースされてＩＴａ環境のオブジェクト格納ライブラリ５０Ａに格納されているマクロ４のマクロ生成日とが比較されるので、チェック結果でエラー（エラーを示すチェック処理結果）は出ない。
【０１１９】
そして、モジュール７の管理担当者が、リリース申請を行うと、リリース実行処理手段３４により、その日（２月２日）の夜間にモジュール７がリリース待機場所からＩＴａ環境のオブジェクト格納ライブラリ５０Ａにリリースされるとともに、バージョン管理データベース４０Ａに記憶されているバージョン管理情報（マクロ生成日等）が、ＩＴａ環境のバージョン管理データベース４０Ｂに書き込まれる。
【０１２０】
その後、バージョンチェック処理手段３３により、ＩＴａ環境内における夜間（２月２日）のバージョンチェック処理が行われると、この時点では、ＩＴａ環境のオブジェクト格納ライブラリ５０Ａにリリースされているモジュール７は、更新されたマクロ４を用いてコンパイルされた新しいものなので、そのモジュール７については、チェック結果にエラーは出ない。
【０１２１】
このようにして各環境（ここでは、ＩＴａ環境）でのテストに必要な全てのモジュール７について再度のコンパイル処理が行われ、チェック結果にエラーが出なくなると、その環境内でのモジュール７間の不整合は無くなり、その環境内でのテストを正常に行うことができる。
【０１２２】
このような本実施形態によれば、次のような効果がある。すなわち、オブジェクトバージョンチェックシステム１０は、生成時点埋込処理手段２２を備えているので、マクロ４やコピー句５の生成時にそれら自体にそれらの各生成日を埋め込むことができ、また、コンパイル処理手段３２およびバージョン管理データベース４０を備えているので、コンパイル時にモジュール７の生成に用いられたマクロ４やコピー句５の各生成日をバージョン管理データベース４０に書き込んでおくことができる。さらに、システム１０は、バージョンチェック処理手段３３，６２を備えているので、バージョンチェック対象のモジュール７の生成に用いられたマクロ４やコピー句５の各生成日をバージョン管理データベース４０から取得するとともに、対応する最新のマクロ４やコピー句５からそれらに埋め込まれている各生成日を抽出し、これらの各生成日同士を比較してそれらが一致しているか否かをチェックすることができる。このため、マクロ４やコピー句５の内容の更新に伴って生じる各モジュール７間の不整合を防止することができる。
【０１２３】
また、システム１０は、バージョンチェック処理手段３３，６２を備えているので、モジュール７のバージョンチェックを自動的に行うことができる。このため、従来のような黙視によるマクロ４やコピー句５の更新日の確認作業や監視作業を行う場合に比べ、作業時間を短縮できるうえ、モジュール７の管理担当者の作業負担を軽減することができる。
【０１２４】
そして、バージョンチェック処理手段３３は、モジュール７のリリース時にバージョンチェックを行うので、更新前のマクロ４やコピー句５を用いてコンパイルされたモジュール７がリリースされるという事態を未然に防止することができる。
【０１２５】
また、バージョンチェック処理手段３３，６２は、例えば夜間の一定時刻等に、定期的に、リリース後のモジュール７についてバージョンチェックを行うので、更新前のマクロ４やコピー句５を用いてコンパイルされてリリースされているモジュール７が再度のコンパイルを行われことなく放置されるという事態を回避することができ、また、警告リスト３３Ａ等を出力して再度のコンパイルをモジュール７の管理担当者に促したり、他のモジュール７の管理担当者や開発システムのテスト実施者に不整合があることを告知する等の処理を行うことができる。
【０１２６】
さらに、システム１０は、リリース実行処理手段３４を備えているので、チェック処理の結果が正常であったモジュール７のリリース処理およびそのモジュール７のバージョン管理情報（マクロ生成日等）の上位の環境のバージョン管理データベース４０への書込処理を行うことができる。このため、バージョンチェック処理手段３３によるリリース時のバージョンチェック処理と、リリース後の定期的なバージョンチェック処理とを連携させることができ、システム開発に伴う一連の処理を円滑に行うことができるうえ、作業担当者の負担軽減を図ることができる。
【０１２７】
そして、バージョンチェック処理手段３３，６２は、マクロ４やコピー句５に加え、ＣＯＢＯＬソース６の生成日同士も比較するバージョンチェック処理を行うので、ＣＯＢＯＬソース６の内容を更新したにもかかわらず、それがモジュール７に反映されないという事態を回避でき、また、そのような事態から生じる各モジュール７間の不整合を防止することができる。
【０１２８】
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲内での変形等は本発明に含まれるものである。
【０１２９】
すなわち、前記実施形態では、システム１０は、マクロ４、コピー句５、およびＣＯＢＯＬソース６を用いてオブジェクトモジュール７が生成される構成とされていたが、本発明の適用対象言語は、ＣＯＢＯＬ言語に限定されず、例えば、Ｃ言語等であってもよく、要するに、インクルード情報を用いてコンパイルが行われてオブジェクトモジュールが生成されるプログラムの開発に適用することができる。
【０１３０】
また、前記実施形態では、バージョン管理データベース４０にマクロ生成日やコピー句生成日等のバージョン管理情報を書き込む構成（バージョン管理データベース利用型の発明）とされていたが、図５および図６に示すオブジェクトバージョンチェックシステム２００のように、オブジェクトモジュール８自体にバージョン管理情報を埋め込む構成（オブジェクトモジュール埋込型の発明）としてもよい。
【０１３１】
図５には、オブジェクトバージョンチェックシステム２００を用いて行われるプログラム開発時の作業の流れ、およびオブジェクトモジュール８のリリース時のバージョンチェック処理を含む各種処理の概要が示され、図６には、システム２００により夜間等に定期的に行われるバージョンチェック処理の概要が示されている。
【０１３２】
このシステム２００と前記実施形態のシステム１０との相違点は、前記実施形態のシステム１０がバージョン管理データベース４０を備えていたのに対し、システム２００はバージョン管理データベースを備えていない点、前記実施形態のシステム１０でコンパイルして生成されるオブジェクトモジュール７には、そのモジュール７のバージョン管理情報が埋め込まれていなかったのに対し、システム２００でコンパイルして生成されるオブジェクトモジュール８には、バージョン管理情報が埋め込まれている点、および前記実施形態のシステム１０のバージョンチェック処理手段３３，６２は、バージョンチェック対象のモジュール７のバージョン管理情報をバージョン管理データベース４０から取得していたのに対し、システム２００のバージョンチェック処理手段２３３，２６２は、モジュール８自体から取得する点である。以下に、システム２００により行われる処理の概要について、図５および図６を参照して説明する。
【０１３３】
図５において、プログラム開発ツールで作成または準備した日本語マクロ１、レコード情報２、および日本語ＩＰＯ３から、ＣＯＢＯＬ言語で記述されたマクロ４、コピー句５、およびＣＯＢＯＬソース６をそれぞれ生成する際に、マクロ４自体、コピー句５自体、およびＣＯＢＯＬソース６自体に、それぞれの生成時点を示す情報（マクロ生成日、コピー句生成日、およびソース生成日）を埋め込んでおく（ステップＳ２０１，Ｓ２０２，Ｓ２０３）。この処理は、前記実施形態のステップＳ１，Ｓ２，Ｓ３の処理と同様である。
【０１３４】
そして、マクロ４、コピー句５、およびＣＯＢＯＬソース６を用いてコンパイルを行う際に（ステップＳ２０４）、マクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれたマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出し、抽出したマクロ生成日、コピー句生成日、およびソース生成日、並びにコンパイルして生成されたオブジェクトモジュール８の生成時点を示す情報（モジュール生成日）を、生成されたモジュール８自体に、そのモジュール８のバージョン管理情報として埋め込む。従って、前記実施形態のシステム１０のコンパイル処理手段３２は、バージョン管理情報をバージョン管理データベース４０へ書き込む処理を行っていたが（図１のステップＳ５）、システム２００のコンパイル処理手段は、モジュール８自体への埋込処理を行うため、バージョン管理データベース４０への書込処理は行わない。
【０１３５】
また、モジュール８のリリースに先行させて、マクロ４、コピー句５、およびＣＯＢＯＬソース６をリリースし、オブジェクト格納ライブラリ２５０に格納しておく（ステップＳ２０５，Ｓ２０６，Ｓ２０７）。この処理は、前記実施形態のステップＳ６，Ｓ７，Ｓ８の処理と同様である。
【０１３６】
続いて、モジュール８をリリースする際に、開発管理システムに設けられたバージョンチェック処理手段２３３により、そのモジュール８の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の生成時点を示す情報（マクロ生成日、コピー句生成日、およびソース生成日）を、そのモジュール８から抽出する。また、先行してリリースされてオブジェクト格納ライブラリ２５０に格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出する。そして、これらのマクロ生成日同士、コピー句生成日同士、およびソース生成日同士をそれぞれ比較し、それらが一致しているか否かをチェックすることにより、バージョンチェック処理を行う（ステップＳ２０８）。ここで、各生成日同士が一致し、チェック結果が正常と出た場合には、モジュール８がリリースされ、オブジェクト格納ライブラリ２５０に格納される（ステップＳ２０９）。一方、各生成日同士が一致せず、チェック結果がエラーになった場合には、モジュール８はリリースされない。
【０１３７】
図６において、モジュール８のリリース後には、開発管理システムに設けられたバージョンチェック処理手段２３３、および本番システムに設けられたバージョンチェック処理手段２６２により、例えば、毎日、夜間の一定時刻に、既にリリースされてオブジェクト格納ライブラリ２５０に格納されているバージョンチェック対象のモジュール８の生成に用いられたマクロ４、コピー句５、およびＣＯＢＯＬソース６の生成時点を示す情報（マクロ生成日、コピー句生成日、およびソース生成日）を、そのモジュール８から抽出する。また、バージョンチェック対象のモジュール８と同一環境のオブジェクト格納ライブラリ２５０に格納されている対応する最新のマクロ４、コピー句５、およびＣＯＢＯＬソース６から、これらに埋め込まれているマクロ生成日、コピー句生成日、およびソース生成日をそれぞれ抽出する。そして、これらのマクロ生成日同士、コピー句生成日同士、およびソース生成日同士をそれぞれ比較し、それらが一致しているか否かをチェックすることにより、バージョンチェック処理を行う（ステップＳ２２１）。ここで、各生成日同士が一致せず、チェック結果がエラーになった場合には、その結果は警告リスト２３３Ａに出力される（ステップＳ２２２）。
【産業上の利用可能性】
【０１３８】
以上のように、本発明のオブジェクトバージョンチェックシステムおよびその方法、並びにプログラムは、例えば、ＣＯＢＯＬ言語で記述されたソースプログラムおよびマクロやコピー句を用いてコンパイルを行って生成されるプログラムのバージョンチェックを行う場合等に用いるのに適している。
【図面の簡単な説明】
【０１３９】
【図１】本発明の一実施形態のオブジェクトバージョンチェックシステムを用いて行われるプログラム開発時の作業の流れ、およびオブジェクトモジュールのリリース時のバージョンチェック処理を含む各種処理の概要の説明図。
【図２】前記実施形態のシステムにより夜間等に定期的に行われるバージョンチェック処理の概要の説明図。
【図３】前記実施形態のシステムの全体構成図。
【図４】前記実施形態のシステムにより行われるバージョンチェック処理を含む各種処理の詳細内容の説明図。
【図５】本発明の別の形態のオブジェクトバージョンチェックシステムを用いて行われるプログラム開発時の作業の流れ、およびオブジェクトモジュールのリリース時のバージョンチェック処理を含む各種処理の概要の説明図。
【図６】前記別の形態のシステムにより夜間等に定期的に行われるバージョンチェック処理の概要の説明図。
【符号の説明】
【０１４０】
４  インクルード情報であるマクロ
５  インクルード情報であるコピー句
６  ソースプログラムであるＣＯＢＯＬソース
７，８  オブジェクトモジュール
１０，２００  オブジェクトバージョンチェックシステム
２２  生成時点埋込処理手段
３２  コンパイル処理手段
３３，６２，２３３，２６２  バージョンチェック処理手段
３４  リリース実行処理手段
４０（４０Ａ，４０Ｂ，４０Ｃ，４０Ｄ，４０Ｅ）  バージョン管理データベース
【図１】
2005242492.tif 000003
【図２】
2005242492.tif 000004
【図３】
2005242492.tif 000005
【図４】
2005242492.tif 000006
【図５】
2005242492.tif 000007
【図６】
2005242492.tif 000008