(57)【特許請求の範囲】
【請求項１】
機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を、コンピュータによってネットワーク経由で支援するための整合性検査支援方法において、
第１のコンピュータにおいて、
取得手段が、前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたオブジェクトファイルが生成されると、前記ソースファイルのファイル名、前記ソースファイルが格納されたディレクトリのパス、更新日時、およびファイルサイズを含むソース属性情報を、前記第１のコンピュータのファイルアクセスを制御するファイルシステムを介して記憶装置から取得すると共に、前記ソース属性情報内のパスとファイル名とを、前記第１のコンピュータを前記ネットワーク上で一意に識別するためのノード名、前記ソースファイルのパスおよび前記ソースファイルのファイル名で構成される所在情報に置き換え、前記オブジェクトファイルと他のオブジェクトファイルとが結合され、実行形式ファイルが生成されると、結合された各オブジェクトファイルのファイル名、前記オブジェクトファイルが格納されたディレクトリのパス、更新日時、およびファイルサイズを含むオブジェクト属性情報を、前記ファイルシステムを介して前記記憶装置から取得すると共に、前記オブジェクト属性情報内のパスとファイル名とを、前記コンピュータのノード名、前記オブジェクトファイルのパスおよび前記オブジェクトファイルのファイル名で構成される所在情報に置き換え、
付加手段が、翻訳によって生成された前記オブジェクトファイルに前記ソース属性情報を挿入し、前記ソース属性情報が挿入された前記オブジェクトファイルを前記ファイルシステムを介して前記記憶装置に格納し、結合によって生成された前記実行形式ファイルに前記オブジェクト属性情報を挿入し、前記オブジェクト属性情報が挿入された前記実行形式ファイルを前記ファイルシステムを介して前記記憶装置に格納し、
第２のコンピュータにおいて、
整合性検査手段が、翻訳によって生成された前記オブジェクトファイルを指定した整合性検査要求を受け取ると、当該オブジェクトファイルに含まれるソース属性情報を取得し、
前記整合性検査手段が、取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている生成元現状ソースファイルの属性情報を、前記第１のコンピュータから前記ネットワークを介して取得し、
前記整合性検査手段が、前記生成元現状ソースファイルの属性情報と前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記ファイルの生成元となった前記ソースファイルとの整合性を判断し、
さらに、前記整合性検査手段が、結合によって生成された前記実行形式ファイルを指定した整合性検査要求を受け取ると、当該実行形式ファイルに含まれるオブジェクト属性情報に基づいて所在情報を取得し、
前記整合性検査手段が、取得した前記オブジェクト属性情報に含まれる所在情報で示された位置に格納されている生成元現状オブジェクトファイルの属性情報を、前記第１のコンピュータから前記ネットワークを介して取得し、
前記整合性検査手段が、前記生成元現状オブジェクトファイルの属性情報と、前記オブジェクト属性情報とを比較し、当該生成元現状オブジェクトファイルと前記実行形式ファイルの生成元となった前記オブジェクトファイルとの整合性を判断し、
前記整合性検査手段が、前記生成元現状オブジェクトファイルに含まれる前記ソース属性情報を取得し、
前記整合性検査手段が、取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている前記生成元現状ソースファイルの属性情報を、前記第１のコンピュータから前記ネットワークを介して取得し、
前記整合性検査手段が、前記生成元情報ソースファイルの属性情報と、前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記生成元現状オブジェクトファイルの生成元となった前記ソースファイルとの整合性を判断する、
ことを特徴とする整合性検査支援方法。
【請求項２】
機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査をネットワーク経由で支援するための整合性検査支援システムにおいて、
前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたオブジェクトファイルが生成されると、前記ソースファイルのファイル名、前記ソースファイルが格納されたディレクトリのパス、更新日時、およびファイルサイズを含むソース属性情報を、ファイルアクセスを制御するファイルシステムを介して記憶装置から取得すると共に、前記ソース属性情報内のパスとファイル名とを、第１のコンピュータを前記ネットワーク上で一意に識別するためのノード名、前記ソースファイルのパスおよび前記ソースファイルのファイル名で構成される所在情報に置き換え、前記オブジェクトファイルと他のオブジェクトファイルとが結合され、実行形式ファイルが生成されると、結合された各オブジェクトファイルのファイル名、前記オブジェクトファイルが格納されたディレクトリのパス、更新日時、およびファイルサイズを含むオブジェクト属性情報を、前記ファイルシステムを介して前記記憶装置から取得すると共に、前記オブジェクト属性情報内のパスとファイル名とを、前記コンピュータのノード名、前記オブジェクトファイルのパスおよび前記オブジェクトファイルのファイル名で構成される所在情報に置き換える取得手段と、
翻訳によって生成された前記オブジェクトファイルに前記ソース属性情報を挿入し、前記ソース属性情報が挿入された前記オブジェクトファイルを前記ファイルシステムを介して前記記憶装置に格納し、結合によって生成された前記実行形式ファイルに前記オブジェクト属性情報を挿入し、前記オブジェクト属性情報が挿入された前記実行形式ファイルを前記ファイルシステムを介して前記記憶装置に格納する付加手段と、
を具備する前記第１のコンピュータと、
前記翻訳によって生成された前記オブジェクトファイルを指定した整合性検査要求を受け取ると、当該オブジェクトファイルに含まれるソース属性情報を取得し、取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている生成元現状ソースファイルの属性情報を、前記第１のコンピュータから前記ネットワークを介して取得し、前記生成元現状ソースファイルの属性情報と前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記ファイルの生成元となった前記ソースファイルとの整合性を判断し、さらに、結合によって生成された前記実行形式ファイルを指定した整合性検査要求を受け取ると、当該実行形式ファイルに含まれるオブジェクト属性情報に基づいて所在情報を取得し、取得した前記オブジェクト属性情報に含まれる所在情報で示された位置に格納されている生成元現状オブジェクトファイルの属性情報を、前記第１のコンピュータから前記ネットワークを介して取得し、前記生成元現状オブジェクトファイルの属性情報と、前記オブジェクト属性情報とを比較し、当該生成元現状オブジェクトファイルと前記実行形式ファイルの生成元となった前記オブジェクトファイルとの整合性を判断し、さらに、前記生成元現状オブジェクトファイルに含まれる前記ソース属性情報を取得し、取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている前記生成元現状ソースファイルの属性情報を、前記第１のコンピュータから前記ネットワークを介して取得し、前記生成元情報ソースファイルの属性情報と、前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記生成元現状オブジェクトファイルの生成元となった前記ソースファイルとの整合性を判断する整合性検査手段を具備する第２のコンピュータと、
を有することを特徴とする整合性検査支援システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は機械語に翻訳されたファイルの生成元のソースファイルとそのソースファイルの現在の状態との整合性検査を支援するための整合性検査支援方法および整合性検査支援システムに関し、特にライブラリ資産として用意されたファイルの整合性検査に有用な整合性検査支援方法および整合性検査支援システムに関する。
【０００２】
【従来の技術】
現在のソフトウェアは、様々なライブラリ資産を利用して開発されるのが一般的である。ライブラリは、汎用的な処理を記述したプログラムである。ライブラリ資産を利用することで、汎用的な処理に関してはライブラリを呼び出すだけで実行できる。これにより、ソフトウェア開発効率が向上する。
【０００３】
ライブラリ作成時には、まず、ソースコード（処理ロジックをプログラム言語で記述したもの）が記述されたソースファイルが作成される。次に、ソースファイルからオブジェクトファイルへの翻訳処理（コンパイル）、複数のオブジェクトファイルの結合編集処理（リンク）を経て、実行形式ファイルが作成される。以下、ソースファイル、オブジェクトファイル、および実行形式ファイルを含めてライブラリ資産と呼ぶこととする。
【０００４】
ここで、ソースファイルは、ソフトウェア開発者が作成したソースコードを格納するファイルである。オブジェクトファイルは、ソースコードをコンピュータで実行可能な機械語に変換（翻訳）することで得られたオブジェクトコード（計算機で実行可能な機械語コード）を格納するファイルである。一般的には、オブジェクトファイルとソースファイルとは、１対１の関係で作成される。実行形式ファイルは、複数のオブジェクトファイルを結合／編集することで得られたロードモジュール（計算機で実行可能な機械語コード）を格納するファイルである。
【０００５】
汎用的に利用されるコンピュータには、大量の実行形式ファイルがライブラリ資産として用意されている。アプリケーションソフトウェアは、実行形式ファイルを指定して、ライブラリ資産で提供された処理機能を利用することができる。
【０００６】
【発明が解決しようとする課題】
ところで、ライブラリ資産は、様々な理由で修正される。たとえば、バグ（設計通りに動作しない部分）が発見された場合や、機能向上の要求が発生した場合などにライブラリ資産の修正作業が適宜行われる。ライブラリ資産の修正は、最初にソースファイルに対して行われる。その後、修正されたソースファイルからオブジェクトファイルが生成される。そして、新たに生成されたオブジェクトファイルによって、修正内容を反映した実行形式ファイルが生成される。
【０００７】
ソースファイルの内容が修正された場合、修正結果がユーザの使用環境に置かれた実行形式ファイルに反映されたか否かを明確にする必要がある。そこで、一般には、実行形式ファイルの作成に利用されたソースファイルを台帳によって管理していた。台帳は、実行形式ファイルの版数とソースファイルの版数との対応関係が設定された文書であり、実行形式ファイルの作成作業を行った作業者などが作成する。
【０００８】
しかし、ライブラリの修正内容の反映状況を台帳によって管理するには、人手がかかる。しかも、人手に頼っていると、台帳の記入間違いや、記入漏れなどが発生する。そのため、正確性を確保するのが困難である。そこで、ライブラリ資産の修正内容の反映の有無を、人手を介さずに検査できることが望まれている。
【０００９】
本発明はこのような点に鑑みてなされたものであり、機械語に翻訳されたファイルに対するソースファイルの修正内容の反映の有無を容易に検査できるようにした整合性検査支援方法および整合性検査支援システムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明の第１の態様では、上記課題を解決するために、図１に示すような整合性検査支援プログラムが提供される。本発明に係る整合性検査支援プログラムは、機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するためのものである。この整合性検査支援プログラムをコンピュータに実行させることで、コンピュータによって以下の処理が行われる。
【００１１】
ソースファイル１内のソースコードが機械語コード３ａに翻訳され（ステップＳ１）、機械語コード３ａが記述されたファイル３が生成されると、ソースファイル１の所在情報２ａと、ソースファイル１の改編に応じて変更されるデータとを含むソース属性情報２を取得し（ステップＳ２）、翻訳によって生成されたファイル３に、ソース属性情報３ｂを付加する（ステップＳ３）。
【００１２】
このような整合性検査支援プログラムをコンピュータで実行させれば、ソースファイル１内のソースコードが機械語コード３ａに翻訳されたとき、機械語コード３ａと、ソースファイル１の所在情報２ａを含むソース属性情報３ｂとからなるファイル３が生成される。以後、ファイル３に含まれるソース属性情報３ｂを参照して、ソースファイル１の所在を認識できる。その所在に現在格納されている生成元現状ファイル４のソース属性情報５とファイル３内のソース属性情報３ｂとの比較により、ソースファイル１と生成元現状ファイル４との整合性を検査できる。これにより、ファイル３生成後のソースファイル１の修正の有無を容易に判断することができる。
【００１３】
また、本発明の第２の態様では、上記課題を解決するために、機械語に翻訳されたファイル３の生成元のファイルと当該ファイルの最新版との整合性検査を支援するための整合性検査支援方法において、ソースファイル１内のソースコードが機械語コード３ａに翻訳され（ステップＳ１）、当該機械語コード３ａが記述されたファイル３が生成されると、ソースファイル１の所在情報２ａと、ソースファイル１の改編に応じて変更されるデータとを含むソース属性情報２を取得し（ステップＳ２）、翻訳によって生成されたファイル３に、ソース属性情報３ｂを付加する（ステップＳ３）、ことを特徴とする整合性検査支援方法が提供される。
【００１４】
このような整合性検査支援方法によれば、ソースファイル１内のソースコードが機械語コード３ａに翻訳されたとき、機械語コード３ａと、ソースファイル１の所在情報２ａを含むソース属性情報３ｂとからなるファイル３が生成される。以後、上記整合性検査支援プログラムに係る発明と同様に、ファイル３生成後のソースファイル１の修正の有無を容易に判断することができる。
【００１５】
また、本発明の第３の態様では、上記課題を解決するために、機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援装置において、前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得する取得手段と、翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する付加手段と、を有することを特徴とする整合性検査支援装置が提供される。
【００１６】
このような整合性検査支援装置によれば、ソースファイル内のソースコードが機械語コードに翻訳され、機械語コードが記述されたファイルが生成されると、取得手段により、ソースファイルの所在情報と、ソースファイルの改編に応じて変更されるデータとを含むソース属性情報が取得される。そして、付加手段により、翻訳によって生成されたファイルに、ソース属性情報が付加される。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、本発明の実施の形態に適用される発明の概要について説明し、その後、本発明の実施の形態の具体的な内容を説明する。
【００１８】
図１は、本発明の実施の形態に適用される発明の概念図である。図１には、本発明に係る整合性検査支援プログラムに従って動作するコンピュータが実行する処理が示されている。
【００１９】
コンピュータは、ソースファイル１内のソースコードを機械語コード３ａに翻訳し（ステップＳ１）、機械語コード３ａが記述されたファイル３を生成する。そのとき、コンピュータは、ソースファイル１の所在情報２ａと、ソースファイル１の改編に応じて変更されるデータとを含むソース属性情報２を取得する（ステップＳ２）。ソースファイル１の改編に応じて変更されるデータは、たとえば、更新日時やファイルサイズである。次に、コンピュータは、翻訳によって生成されたファイル３に、ソース属性情報３ｂを付加する（ステップＳ２）。
【００２０】
その後、コンピュータは、翻訳によって生成されたファイル３を指定した整合性検査要求を受け取ると、ファイル３に含まれるソース属性情報３ｂを取得する（ステップＳ４）。次に、コンピュータは、取得したソース属性情報３ｂに含まれる所在情報で示された位置に格納されている生成元現状ファイル４の属性情報５を取得する（ステップＳ５）。なお、すでに生成元現状ファイル４の所在は分かっているため、属性情報５としては、生成元現状ファイル４の改編に応じて変更されるデータ（たとえば、更新日時やファイルサイズ）が取得される。
【００２１】
そして、コンピュータは、生成元現状ファイル４の属性情報５と、ファイル３内のソース属性情報３ｂとを比較し、生成元現状ファイル４とファイル３の生成元となったソースファイル１との整合性を判断する（ステップＳ６）。
【００２２】
整合性判断では、たとえば、更新日時とファイルサイズとが一致した場合に、ソースファイル１と生成元現状ファイル４とが同じであると判断する。更新日時とファイルサイズとの何れか一方でも違う値であれば、ソースファイル１と生成元現状ファイル４とが一致しないと判断する。ソースファイル１と同じ所在の生成元現状ファイル４がソースファイル１と一致しないということは、ソースファイル１の内容が変更された（生成元のソースファイル１が最新版ではない）ことを意味する。すなわち、ソースファイル１と生成元現状ファイル４とが一致しない場合、ソースファイル１への変更内容が、ファイル３に反映されていないことを示す。逆に、ソースファイル１と生成元現状ファイル４とが一致した場合、最新のソースファイル１に基づいて、ファイル３が生成されていることが保証される。
【００２３】
このように、翻訳によって生成されるファイル３にソースファイル１のソース属性情報２を付加することによって、ソースファイル１に対する変更内容が、ファイル３に反映されているかどうかを容易に判断することができる。
【００２４】
以上のような本発明を用いれば、大量の実行形式ファイルの整合性検査を、正確に行うことができる。たとえば、ライブラリ資産の整合性検査に有効に利用できる。
【００２５】
なお、実行形式ファイルは、ソースファイルから直接作成される場合もあるが、多くの場合、オブジェクトファイルを経由して作成される。その場合、実行形式ファイルとオブジェクトファイルとの間の整合性検査と、オブジェクトファイルとソースファイルとの間の整合性検査とが必要となる。
【００２６】
以下、オブジェクトファイルを経由して実行形式ファイルを生成することで構築されたライブラリ資産について整合性検査を行うシステムの例を、本発明の実施の形態として具体的に説明する。
【００２７】
図２は、本実施の形態のシステム構成例を示す図である。図２に示すように、本実施の形態では、ネットワーク１０を介して、複数のコンピュータ１００，２００，３００，４００が接続されている。各コンピュータ１００，２００，３００，４００に、ライブラリ整合性検査支援プログラムが実装されている。
【００２８】
図３は、本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ１００は、ＣＰＵ(Central Processing Unit)１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ(Random Access Memory)１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００２９】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムに加え、ライブラリ資産が格納される。
【００３０】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００３１】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３２】
以上のようなハードウェア構成でライブラリ整合性検査支援プログラムを実行することによって、本実施の形態の処理機能を実現することができる。以下、ライブラリ整合性検査支援プログラムに基づいて実行される機能をライブラリ整合性検査部と呼ぶこととする。なお、図３には、コンピュータ１００のハードウェア構成例を示したが、他のコンピュータ２００，３００，４００も同様のハードウェア構成で実現することができる。
【００３３】
図４は、本実施の形態に係るコンピュータの処理機能を示す機能ブロック図である。コンピュータ１００は、複数のソースファイル１１１，１１２，１１３，・・・、複数のオブジェクトファイル１２１，１２２，１２３，・・・、複数の実行形式ファイル１３１，１３２，１３３，・・・、エディタ１４１、翻訳処理部１４２、結合編集部１４３、ライブラリ整合性検査部１５０、通信処理部１６０、ファイルシステム１７０、およびファイル管理情報１８０を有している。
【００３４】
ソースファイル１１１，１１２，１１３，・・・は、所定のプログラミング言語に従った命令文（ソースコード）で処理手順が記述されており、ＨＤＤ１０３に格納されている。
【００３５】
複数のオブジェクトファイル１２１，１２２，１２３，・・・は、コンピュータ１００のＣＰＵ１０１で実行可能な機械語コードで処理手順が記述されており、ＨＤＤ１０３に格納されている。
【００３６】
複数の実行形式ファイル１３１，１３２，１３３，・・・は、複数のオブジェクトを結合、編集したものである。複数の実行形式ファイル１３１，１３２，１３３，・・・は、コンピュータ１００のＣＰＵ１０１で実行可能な機械語コード（ロードモジュール）で処理手順が記述されており、ＨＤＤ１０３に格納されている。
【００３７】
エディタ１４１は、所定のプログラム言語に従って命令を記述する文字列（ソースコード）の編集、作成機能である。たとえば、ユーザの操作入力に応答して、エディタ１４１がソースコードを作成する。そして、エディタ１４１は、作成したソースコードの保存命令を受け取ると、そのソースコードを含むソースファイルをＨＤＤ１０３に格納する。
【００３８】
翻訳処理部１４２は、操作入力等によって指定されたソースファイルをＨＤＤ１０３から読み込む。そして、翻訳処理部１４２は、読み込んだソースファイル内に記述されているソースコードを解釈し、コンピュータ１００で読み取り可能な機械語コードに翻訳（コンパイル）する。すなわち、翻訳処理部１４２は、コンパイラとしての機能を有している。その後、翻訳処理部１４２は、翻訳後の機械語コードをオブジェクトコードとして、オブジェクトファイルを作成し、オブジェクトファイルをＨＤＤ１０３に格納する。
【００３９】
結合編集部１４３は、操作入力等によって指定された複数のオブジェクトファイルをＨＤＤ１０３から読み込む。そして、結合編集部１４３は、読み込んだ各オブジェクトファイルを結合すると共に、一連の処理記述となるように編集し、ロードモジュールを生成する。すなわち、結合編集部１４３は、リンカとしての機能を有している。その後、結合編集部１４３は、ロードモジュールを有する実行形式ファイルをＨＤＤ１０３に格納する。
【００４０】
ライブラリ整合性検査部１５０は、ライブラリ資産（ソースファイル、オブジェクトファイル、実行形式ファイル）の整合性の検査を行う。整合性の検査とは、実行形式ファイルやオブジェクト生成時の生成元のファイルと、生成元のファイルの最新版とが一致するか否かを判断することである。
【００４１】
具体的には、ライブラリ整合性検査部１５０は、ライブラリ生成時に整合性検査に必要な情報を、オブジェクトファイル１２１，１２２，１２３，・・・や実行形式ファイル１３１，１３２，１３３，・・・に挿入する。本実施の形態では、整合性に必要な情報は、オブジェクトファイル１２１，１２２，１２３，・・・や実行形式ファイル１３１，１３２，１３３，・・・の生成元となったファイル（ソースファイル１１１，１１２，１１３，・・・やオブジェクトファイル１２１，１２２，１２３，・・・）の所在（ファイル名やパスを含む）、更新日時、ファイルサイズなどを含む属性情報である。そして、ライブラリ整合性検査部１５０は、オブジェクトファイル１２１，１２２，１２３，・・・や実行形式ファイル１３１，１３２，１３３，・・・の整合性検査要求に応答して、検査対象のファイルに含まれている生成元のファイルの属性情報を用いて、検査対象のファイルの整合性を検査する。
【００４２】
ライブラリ整合性検査部１５０は、ライブラリ資産の整合性の検査を行うために、属性情報挿入部１５１、属性情報抽出部１５２、および整合性検査部１５３を有している。
【００４３】
属性情報挿入部１５１は、オブジェクトファイル１２１，１２２，１２３，・・・や実行形式ファイル１３１，１３２，１３３，・・・が生成される際に、それらのファイルに対し、生成元となったソースファイル１１１，１１２，１１３，・・・やオブジェクトファイル１２１，１２２，１２３，・・・の属性情報を付加する。
【００４４】
具体的には、属性情報挿入部１５１は、翻訳処理部１４２による翻訳処理が行われた場合、生成元であるソースファイルの属性情報をファイル管理情報１８０から取得する。そして、属性情報挿入部１５１は、翻訳によって生成されたオブジェクトファイル内のオブジェクトコードの後ろに、ソースファイルの属性情報を挿入する。さらに、属性情報挿入部１５１は、ソースファイルの属性情報を挿入したオブジェクトファイルをＨＤＤ１０３に格納する。
【００４５】
また、属性情報挿入部１５１は、結合編集部１４３による結合編集処理が行われた場合、生成元であるオブジェクトファイルの属性情報をファイル管理情報１８０から取得する。そして、属性情報挿入部１５１は、結合編集によって生成された実行形式ファイル内のロードモジュールの後ろに、オブジェクトファイルの属性情報を挿入する。さらに、属性情報挿入部１５１は、オブジェクトファイルの属性情報を挿入した実行形式ファイルをＨＤＤ１０３に格納する。
【００４６】
なお、属性情報挿入部１５１は、ファイル管理情報１８０から取り出した属性情報のパスとファイル名との情報については、コンピュータ１００のノード名を含む所在情報（ロケーション）に置き換えて、オブジェクトファイルや実行形式ファイルに挿入する。ここでノード名とは、ネットワーク１０上でコンピュータ１００を一意に識別するための名称である。
【００４７】
属性情報抽出部１５２は、コンピュータ１００内の整合性検査部１５３あるいは他のコンピュータ内の整合性検査部からの属性情報取得要求に応答して、属性情報取得要求で指定されたファイルから属性情報を抽出する。具体的には、属性情報抽出部１５２は、属性情報取得要求を受け取ると、属性情報取得要求で指定されたオブジェクトファイルまたは実行形式ファイルをＨＤＤ１０３から読み込む。そして、属性情報抽出部１５２は、実行形式ファイルを読み込んだ場合、実行形式ファイルに含まれているオブジェクトファイルの属性情報を取得する。また、属性情報抽出部１５２は、オブジェクトファイルを読み込んだ場合、そのオブジェクトファイルに含まれているソースファイルの属性情報を取得する。属性情報抽出部１５２は、取得した属性情報を、属性情報取得要求の送信元である整合性検査部１５３または他のコンピュータの整合性検査部に渡す。
【００４８】
整合性検査部１５３は、操作入力等によって整合性検査要求を受け取ると、整合性検査要求で指定されている１以上の整合性検査対象ファイルに関する属性情報取得要求を、そのファイルを保持しているコンピュータの属性情報抽出部に対して送信する。次に、整合性検査部１５３は、属性情報抽出部から送られてきた属性情報を受け取り、属性情報に含まれるファイルの所在情報を抽出する。そして、整合性検査部１５３は、所在情報で示される場所に格納されたファイルの属性情報を取得し、その属性情報と整合性検査対象ファイルに含まれていた属性情報との整合性を比較する。整合性検査部１５３は、比較結果を、サマリ情報、アラーム情報として出力する。サマリ情報には、整合性検査の対象となったファイルのリストが格納される。アラーム情報には、整合性検査の結果、不整合と判断されたファイルの情報が格納される。
【００４９】
通信処理部１６０は、ネットワーク１０を介して、他のコンピュータ２００，３００，４００との間の通信を行う。たとえば、ＨＴＴＰ(HyperText Transfer Protocol)によって通信が行われる。具体的には、通信処理部１６０は、他の何れかのコンピュータから送られてきた属性情報抽出要求を、属性情報抽出部１５２に渡す。その後、通信処理部１６０は、属性情報抽出部１５２から属性情報を受け取ると、属性情報抽出要求を出力したコンピュータに向けて受け取った属性情報を送信する。
【００５０】
また、通信処理部１６０は、整合性検査部１５３から他の何れかのコンピュータ宛の属性情報取得要求を受け取ると、その属性情報取得要求を、宛先として指定されたコンピュータに対して送信する。その後、通信処理部１６０は、他のコンピュータから属性情報が送られてくると、その属性情報を整合性検査部１５３に渡す。
【００５１】
さらに、通信処理部１６０は、他のコンピュータからＨＤＤ１０３内に格納されているファイルの属性情報取得要求を受け取ると、ファイルシステム１７０にその属性情報取得要求を渡す。そして、通信処理部１６０は、ファイルシステム１７０から返された属性情報を、属性情報取得要求の発信元のコンピュータに対して送信する。
【００５２】
ファイルシステム１７０は、ＨＤＤ１０３に格納されたファイルの所在を管理している。ファイルの所在に関する情報は、ファイル管理情報１８０として、ＨＤＤ１０３に格納されている。ファイルシステム１７０は、エディタ１４１やライブラリ整合性検査部１５０からのファイルアクセスを制御している。すなわち、上記の説明におけるエディタ１４１やライブラリ整合性検査部１５０が、ソースファイル１１１，１１２，１１３，・・・、オブジェクトファイル１２１，１２２，１２３，・・・、実行形式ファイル１３１，１３２，１３３，・・・を取得する処理は、ファイルシステム１７０を介して行われる。
【００５３】
また、ファイルシステム１７０は、翻訳処理部１４２、結合編集部１４３、または通信処理部１６０からの属性情報取得要求に応じて、その要求で指定されたファイルの属性情報を翻訳処理部１４２、結合編集部１４３または通信処理部１６０に渡す。
【００５４】
ファイル管理情報１８０は、ＨＤＤ１０３内のファイルの所在などを管理するための情報が記録されたＨＤＤ１０３内の記録領域である。ファイル管理情報１８０には、ＨＤＤ１０３内のファイル毎の属性情報１８１，１８２，１８３，・・・が格納されている。
【００５５】
次に、コンピュータ１００で保持される各データのデータ構造について説明する。
ソースファイル１１１，１１２，１１３，・・・は、プログラミング言語（たとえば、Ｃ言語）により処理内容が記述されたキャラクタコードからなるテキストファイルである。オブジェクトファイル１２１，１２２，１２３，・・・や実行形式ファイル１３１，１３２，１３３，・・・のデータ構造としては、各種ＯＳで標準的に採用されているＥＬＦ(Executable and Linkable Format)を用いることができる。
【００５６】
図５は、オブジェクトファイルのデータ構造例を示す図である。オブジェクトファイル１２１は、ヘッダ部１２１ａ、セクション部１２１ｂ、およびソースファイル属性情報部１２１ｃで構成されている。ヘッダ部１２１ａは、オブジェクトファイル１２１の管理情報（ヘッダ情報）を格納した領域である。セクション部１２１ｂは、翻訳処理後のシンボル情報やプログラム命令等を格納した領域である。ソースファイル属性情報部１２１ｃは、ソースファイル属性情報を格納した領域である。
【００５７】
図６は、実行形式ファイルのデータ構造例を示す図である。実行形式ファイル１３１は、ヘッダ部１３１ａ、セクション部１３１ｂ、およびオブジェクトファイル属性情報部１３１ｃで構成されている。ヘッダ部１３１ａは、実行形式ファイル１３１の管理情報（ヘッダ情報）を格納した領域である。セクション部１３１ｂは、翻訳処理後のシンボル情報やプログラム命令等を格納した領域である。オブジェクトファイル属性情報部１３１ｃは、オブジェクトファイル属性情報を格納した領域である。
【００５８】
なお、属性情報を付加する場合、属性情報を規格化された構造化文書に構造化することができる。たとえば、ＸＭＬ(eXtensible Markup Language)によって属性情報を構造化できる。ＸＭＬで属性情報を付加する場合、属性情報挿入部１５１が、属性情報１８１，１８２，１８３，・・・内の各データに対して、そのデータのＸＭＬ要素種別を示すタグを付加する。
【００５９】
図７は、属性情報に関するＸＭＬへの構造化規則を示す図である。図７には、ＸＭＬ要素の内容の説明と、その要素の設定値のデータ形式とが示されている。ＸＭＬ要素「ｘｍｌ」は、ＸＭＬデータを記述した要素である。すなわち、ＸＭＬ要素「ｘｍｌ」のタグで囲まれた範囲が、ＸＭＬ形式で構造化されたデータであることを示している。ＸＭＬ要素「ｘｍｌ」は、ＸＭＬ要素「source」とＸＭＬ要素「object」とで構成される。
【００６０】
ＸＭＬ要素「source」は、ソースファイルの属性情報を記述した要素である。すなわち、ＸＭＬ要素「source」のタグで囲まれた範囲が、ソースファイル属性情報の表記部分であることを示している。ＸＭＬ要素「source」は、ＸＭＬ要素「url」、ＸＭＬ要素「timestamp」、およびＸＭＬ要素「size」で構成される。
【００６１】
ＸＭＬ要素「object」は、オブジェクトファイルの属性情報を記述した要素である。すなわち、ＸＭＬ要素「object」のタグで囲まれた範囲が、オブジェクトファイル属性情報の表記部分であることを示している。ＸＭＬ要素「object」は、ＸＭＬ要素「url」、ＸＭＬ要素「timestamp」、およびＸＭＬ要素「size」で構成される。
【００６２】
ＸＭＬ要素「url」は、ソースファイルまたはオブジェクトファイルの所在を記述した要素である。本実施の形態では、ライブラリ資産を構成する各ファイルの所在がＵＲＬ(Uniform Resource Locator)で指定される。すなわち、ＸＭＬ要素「url」のタグで囲まれた範囲が、ＵＲＬ表記部分であることを示している。ＸＭＬ要素「url」は、ＵＲＬ書式で記述される。
【００６３】
ＸＭＬ要素「timestamp」は、ソースファイルまたはオブジェクトファイルの更新日時を記述した要素である。すなわち、ＸＭＬ要素「timestamp」のタグで囲まれた範囲が、更新日時の表記部分であることを示している。ＸＭＬ要素「timestamp」は、「YYYY/MM/DD hh:mm:ss」という書式で記述する。ここで「YYYY」は西暦による年号を示している。「MM」は月を示している。「DD」は日を示している。「hh」は時を示している。「mm」は分を示している。「ss」は秒を示している。
【００６４】
ＸＭＬ要素「size」は、ソースファイルまたはオブジェクトファイルのファイルサイズを記述した要素である。すなわち、ＸＭＬ要素「size」のタグで囲まれた範囲が、ファイルサイズの表記部分であることを示している。ＸＭＬ要素「size」は、数字（10進数）で記述される。また、ＸＭＬ要素「size」の単位はバイト(byte)である。
【００６５】
図７に示したような構造化規則に従って、属性情報挿入部１５１が、ＸＭＬ形式の属性情報を生成する。また、図７に示したような構造化規則に従って、整合性検査部１５３が、各属性情報の種別（所在、更新日時、ファイルサイズなどの区別）を判断する。
【００６６】
図８は、ファイル管理情報１８０内のデータ構造例を示す図である。ファイル管理情報１８０内には、ファイル毎の属性情報１８１，１８２，１８３，・・・が格納されている。属性情報１８１，１８２，１８３，・・・には、ＨＤＤ１０３に格納されたファイルのファイル名、パス、更新日時などが含まれる。
【００６７】
ファイル名は、対応するファイルが格納されたディレクトリ内で識別可能なファイルの名称である。パスは、対応するファイルが格納されたディレクトリのディレクトリ構造上の位置を示す情報である。更新日時は、対応するファイルが更新された最新の日時である。ファイルサイズは、対応するファイルのデータ容量である。格納ブロックは、対応するファイルを構成するデータが格納されたＨＤＤ１０３内の場所を示す情報である。
【００６８】
なお、図８では、本実施の形態を理解しやすくするために、ファイル管理情報１８０の構成を単純化して示している。実際のファイルシステムでは、パスが直接定義さてれおらず、ディレクトリ構造上の親子関係が定義されている場合もある。この場合、ディレクトリ構造上の親子関係を辿ることでパスが特定できる。また、ファイル名は、ファイルに対応する属性情報内に設定されずに、親ディレクトリの属性情報内に設定される場合もある。そのとき、各ファイルの識別番号（たとえば、ＵＮＩＸ（商標）におけるｉノード番号）を介して、ファイル名と、そのファイル名に対応するファイルの属性情報（更新日時やファイルサイズが含まれる）とが関連づけられる。
【００６９】
以上のような構成のコンピュータ１００においてライブラリ資産を管理することで、他のファイルから生成されるライブラリ資産に関して、最新のファイルから生成されているか否かを容易に判断することができる。以下、図４に示した構成のコンピュータにおける、ライブラリ資産管理に関する処理内容について具体的に説明する。
【００７０】
図９は、実行形式ファイル生成時の処理の流れを示す概念図である。まず、ユーザがエディタ１４１を起動し、プログラミング作業を行う（ステップＳ１１）。これにより、エディタ１４１によって、ソースファイル３０が生成される。ソースファイル３０には、ソースコード３１が含まれている。また、ファイルシステム１７０によって、ソースファイル３０に対応する属性情報（ソースファイル属性情報）３２がファイル管理情報１８０に格納される。
【００７１】
次に、ユーザがソースファイル３０の翻訳を指示する操作入力を行うと、翻訳処理部１４２によってソースファイル３０がコンピュータ１００で実行可能な命令（オブジェクトコード４１）に翻訳され、オブジェクトファイル４０が生成される（ステップＳ１２）。この際、属性情報挿入部１５１によって、ソースファイル３０に対応するソースファイル属性情報３２がファイル管理情報１８０より抽出され、ソースファイル属性情報３２がオブジェクトファイル４０に挿入される（ステップＳ１３）。その結果、オブジェクトコード４１とソースファイル属性情報３２とを有するオブジェクトファイル４０が、ＨＤＤ１０３に格納される。この際、ファイルシステム１７０によって、オブジェクトファイル４０に対応する属性情報（オブジェクトファイル属性情報）４２がファイル管理情報１８０に格納される。
【００７２】
さらに、ユーザがオブジェクトファイル４０と他のオブジェクトファイル５０との結合要求を指示する操作入力を行うと、結合編集部１４３によって、オブジェクトファイル４０とオブジェクトファイル５０とが結合され、ロードモジュール６１が作成される。そして、そのロードモジュール６１を有する実行形式ファイル６０が作成される（ステップＳ１４）。このとき、属性情報挿入部１５１によって、オブジェクトファイル４０に対応するオブジェクトファイル属性情報４２と、オブジェクトファイル５０に対応するオブジェクトファイル属性情報５２とがファイル管理情報１８０より抽出され、それらのオブジェクトファイル属性情報４２，５２が実行形式ファイル６０に挿入される（ステップＳ１５）。その結果、ロードモジュール６１と複数のオブジェクトファイル属性情報４２，５２とを有する実行形式ファイル６０が、ＨＤＤ１０３に格納される。
【００７３】
このようにして、生成元のファイルの属性情報を付加したオブジェクトファイル４０や実行形式ファイル６０が生成される。
図１０は、ソースファイル属性情報の挿入例を示す図である。ソースファイル属性情報３２には、ソースファイル３０の所在を示すロケーション、更新日時、およびファイルサイズが含まれている。図１０の例では、ロケーションは「http://sv1/mast/src/pg.c」である。ロケーションはＵＲＬで示されている。図１０に示すロケーションは、スキーム名「http」、サーバ名（ノード名）「sv1」、パス「mast/src」、ファイル名「pg.c」である。更新日時は「2001/07/30 09:00:00」（２００１年７月３０日９時）である。ファイルサイズは「4690（バイト）」である。
【００７４】
このようなソースファイル属性情報３２がＸＭＬ形式のデータに変換され、オブジェクトファイル４０内のオブジェクトコード（バイナリデータ）の後にテキストデータで挿入される。図１０の例では、ソースファイル属性情報３２全体が<source>タグで囲まれている。ロケーションには<URL>タグが付けられ、更新日時には<timestamp>タグが付けられ、ファイルサイズには<size>タグが付けられている。
【００７５】
図１１は、オブジェクトファイル属性情報の挿入例を示す図である。オブジェクトファイル属性情報４２には、オブジェクトファイル４０の所在を示すロケーション、更新日時、およびファイルサイズが含まれている。図１１の例では、ロケーションは「http://sv1/mast/lod/obj/pg.o」である。更新日時は「2001/07/30 12:00:00」（２００１年７月３０日１２時）である。ファイルサイズは「17360（バイト）」である。同様に、オブジェクトファイル属性情報５２には、オブジェクトファイル５０の所在を示すロケーション、更新日時、およびファイルサイズが含まれている。図１１の例では、ロケーションは「http://sv1/mast/lod/lib/libxx.so」である。更新日時は「2001/07/20 10:00:00」（２００１年７月２０日１０時）である。ファイルサイズは「57900（バイト）」である。
【００７６】
このようなオブジェクトファイル属性情報４２，５２がＸＭＬ形式のデータに変換され、実行形式ファイル６０内のロードモジュール（バイナリデータ）の後にテキストデータで挿入される。図１１の例では、オブジェクトファイル属性情報４２とオブジェクトファイル属性情報５２とが、それぞれ<object>タグで囲まれている。ロケーションには<URL>タグが付けられ、更新日時には<timestamp>タグが付けられ、ファイルサイズには<size>タグが付けられている。
【００７７】
このように、属性情報をＸＭＬ形式に構造化することで、データの種別（ロケーション、更新日時、ファイルサイズ）を示す情報と関連づけて、各データを挿入することができる。なお、図１０、図１１に示した例では、見た目に理解しやすいようにＸＭＬ要素単位で改行されているが、実際のデータには改行コードは含まれない。
【００７８】
次に、図９に示した処理に関して、オブジェクトファイル生成時と実行形式ファイル生成時とに分けて、処理の詳細を説明する。
図１２は、オブジェクトファイル生成時の処理手順を示すフローチャートである。この処理は、コンピュータ１００のユーザの操作入力等によって、任意のソースファイルが指定され、そのソースファイルの翻訳要求（たとえば、コンパイルコマンド）が入力された場合に実行される。翻訳要求では、実行形式ファイルを直接生成するのではなく、オブジェクトファイルの生成が指定されているものとする。以下、図１２に示す処理をステップ番号に沿って説明する。
【００７９】
［ステップＳ１１１］翻訳処理部１４２は、指定されたソースファイル内のソースコードを、コンピュータ１００で理解可能な命令に翻訳する。これにより、オブジェクトコードを含むオブジェクトファイルが生成される。
【００８０】
［ステップＳ１１２］翻訳処理部１４２は、翻訳結果が正常か否かを判断する。なお、リンクエラー（結合すべきオブジェクトファイルが指定されていないこと）に関しては、正常な処理とみなす。翻訳処理が正常に行われたら、処理がステップＳ１１３に進められる。翻訳処理が正常に終了しなかったら、処理が終了する。
【００８１】
［ステップＳ１１３］属性情報挿入部１５１は、翻訳対象のソースファイルに対応する属性情報を参照し、ソースファイルが格納されているディレクトリのパスを取得する。属性情報挿入部１５１は、取得したパスに、スキーム名（たとえば「http」）、サーバ名、ファイル名を付加することで、ソースファイルの所在を示すＵＲＬを生成する。
【００８２】
［ステップＳ１１４］属性情報挿入部１５１は、翻訳対象のソースファイルに対応する属性情報を参照し、ソースファイルの更新日時を取得する。
［ステップＳ１１５］属性情報挿入部１５１は、翻訳対象のソースファイルに対応する属性情報を参照し、ソースファイルのファイルサイズを取得する。
【００８３】
［ステップＳ１１６］属性情報挿入部１５１は、ステップＳ１１３〜Ｓ１１５で取得した、ＵＲＬ、更新日時、ファイルサイズに所定のタグを付けるなどの編集を行いＸＭＬデータを生成する。
【００８４】
［ステップＳ１１７］属性情報挿入部１５１は、ステップＳ１１６で生成したＸＭＬデータを、ステップＳ１１１で生成されたオブジェクトファイル内のオブジェクトコードの後ろに挿入する。
【００８５】
このようにして、オブジェクトファイルが生成される。
図１３は、実行形式ファイル生成時の処理手順を示すフローチャートである。この処理は、コンピュータ１００のユーザの操作入力等によって、複数のオブジェクトファイルが指定され、それらのオブジェクトファイルの結合要求（たとえば、リンクコマンド）が入力された場合に実行される。以下、図１３に示す処理をステップ番号に沿って説明する。
【００８６】
［ステップＳ１２１］結合編集部１４３は、指定されたオブジェクトファイル内のオブジェクトコードを結合、編集し、ロードモジュールを生成する。そして、結合編集部１４３は、ロードモジュールを有する実行形式ファイルを生成する。
【００８７】
［ステップＳ１２２］結合編集部１４３は、結合編集結果が正常か否かを判断する。結合編集処理が正常に行われたら、処理がステップＳ１２３に進められる。結合編集処理が正常に終了しなかったら、処理が終了する。
【００８８】
［ステップＳ１２３］属性情報挿入部１５１は、属性情報を抽出および挿入処理をまだ行っていない結合対象のオブジェクトファイルがあるか否かを判断する。未処理のオブジェクトファイルがあれば、処理がステップＳ１２４に進められる。結合対象の全てのオブジェクトファイルに関して処理が行われていれば、実行形式ファイルの生成処理が終了する。
【００８９】
［ステップＳ１２４］属性情報挿入部１５１は、結合対象のオブジェクトファイルであり、ステップＳ１２４〜Ｓ１２８の処理がまだ行われていないオブジェクトファイルを１つ選択する。そして、属性情報挿入部１５１は、選択したオブジェクトファイルに対応する属性情報を参照し、オブジェクトファイルが格納されているディレクトリのパスを取得する。属性情報挿入部１５１は、取得したパスに、スキーム名（たとえば「http」）、サーバ名、ファイル名を付加することで、オブジェクトファイルの所在を示すＵＲＬを生成する。
【００９０】
［ステップＳ１２５］属性情報挿入部１５１は、結合対象のオブジェクトファイルに対応する属性情報を参照し、オブジェクトファイルの更新日時を取得する。
【００９１】
［ステップＳ１２６］属性情報挿入部１５１は、結合対象のオブジェクトファイルに対応する属性情報を参照し、オブジェクトファイルのファイルサイズを取得する。
【００９２】
［ステップＳ１２７］属性情報挿入部１５１は、ステップＳ１２４〜Ｓ１２６で取得した、ＵＲＬ、更新日時、ファイルサイズに所定のタグを付けるなどの編集を行いＸＭＬデータを生成する。
【００９３】
［ステップＳ１２８］属性情報挿入部１５１は、ステップＳ１２７で生成したＸＭＬデータを、ステップＳ１２１で生成された実行形式ファイル内のロードモジュールの後ろに挿入する。その後、処理がステップＳ１２３に進められる。
【００９４】
このようにして、オブジェクトファイルの属性情報を有する実行形式ファイルが生成される。
次に、他のファイルから生成されたライブラリ資産の整合性を検査する処理について説明する。なお、整合検査処理は、実行形式ファイルに関する整合性検査と、オブジェクトファイルに対する整合性検査とがある。
【００９５】
まず、実行形式ファイルに関する整合性検査処理について説明する。
図１４は、実行形式ファイル整合性検査処理の概念図である。図１４の例では、コンピュータ２００に格納された実行形式ファイル７０の整合性検査を、コンピュータ１００において実行する場合の例である。なお、実行形式ファイル７０は、コンピュータ３００に格納されたオブジェクトファイル８０（または、同じ所在の旧版のオブジェクトファイル）に基づいて生成されている。すなわち、オブジェクトファイル８０は、実行形式ファイル７０に対する生成元現状オブジェクトファイルに相当する。
【００９６】
また、オブジェクトファイル８０は、コンピュータ４００に格納されたソースファイル９０（または、同じ所在の旧版のソースファイル）に基づいて生成されている。すなわち、ソースファイル９０は、オブジェクトファイル８０に対する生成元現状オブジェクトファイルに相当する。
【００９７】
整合性検査の際には、まず、コンピュータ２００内の属性情報抽出部により、実行形式ファイル７０からオブジェクトファイル属性情報７１が抽出される（ステップＳ２１）。このオブジェクトファイル属性情報７１は、ＸＭＬ形式のデータである。抽出されたオブジェクトファイル属性情報７１は、ＨＴＴＰでコンピュータ１００の整合性検査部１５３に送信される。
【００９８】
また、コンピュータ３００内のファイルシステムにより、オブジェクトファイル８０の属性情報８１（更新時刻とファイルサイズ）が、ＨＴＴＰでコンピュータ１００に送信される。また、コンピュータ３００内の属性情報抽出部により、オブジェクトファイル８０からソースファイル属性情報８２が抽出される（ステップＳ２２）。抽出されたソースファイル属性情報８２は、ＨＴＴＰでコンピュータ１００の整合性検査部１５３に送信される。
【００９９】
さらに、コンピュータ４００内のファイルシステムにより、ソースファイル９０の属性情報９１（更新時刻とファイルサイズ）が、ＨＴＴＰでコンピュータ１００に送信される。
【０１００】
コンピュータ１００の整合性検査部１５３は、各コンピュータ２００，３００，４００から送られた情報に基づいて、整合性の検査を行う。具体的には、オブジェクトファイル属性情報７１とオブジェクトファイル属性情報８１との内容（更新時刻とファイルサイズ）を比較する。さらに、ソースファイル属性情報８２とソースファイル属性情報９１との内容（更新時刻とファイルサイズ）を比較する。各比較結果が完全に一致すれば、実行形式ファイル７０と、その実行形式ファイル７０の生成元となるファイルとの整合性（最新のファイルに基づいて作成されていること）が確認される。
【０１０１】
整合性検査部１５３は、整合性検査履歴をサマリ情報５１０として出力する。また、整合性検査部１５３は、不整合（不一致の属性情報）が発見された場合、不一致の内容を示すアラーム情報５２０を出力する。
【０１０２】
以下、実行形式ファイルの整合性検査におけるコンピュータ１００での処理内容を詳細に説明する。
図１５は、実行形式ファイルの整合性検査処理の手順を示すフローチャートの前半である。この処理は、ユーザの操作入力等により、任意の実行形式ファイルが指定され、整合性検査要求が入力されたときに実行される処理である。なお、以下の説明では、コンピュータ１００に対して整合性検査要求が入力されたものとして、図１５に示す処理をステップ番号に沿って説明する。
【０１０３】
［ステップＳ１３１］整合性検査部１５３は、整合性検査要求で指定された実行形式ファイルを格納しているコンピュータ２００に対して、オブジェクトファイル属性情報抽出要求を出す。すると、相手のコンピュータ２００内の属性情報抽出部によって、実行形式ファイルからオブジェクトファイル属性情報が抽出される。抽出されたオブジェクトファイル属性情報は、コンピュータ２００からコンピュータ１００に送り返される。コンピュータ１００の整合性検査部１５３は、コンピュータ２００から送られたオブジェクトファイル属性情報を受け取る。
【０１０４】
［ステップＳ１３２］整合性検査部１５３は、オブジェクトファイル属性情報が正常に抽出されたか否かを判断する。正常に抽出された場合には、処理がステップＳ１３３に進められる。正常に抽出されなかった場合には、処理が終了する。
【０１０５】
［ステップＳ１３３］整合性検査部１５３は、オブジェクトファイル属性情報を構成しているＸＭＬデータを解析し、サマリ情報を出力する。
［ステップＳ１３４］整合性検査部１５３は、オブジェクトファイル属性情報からオブジェクトファイルの所在を抽出する。所在は、<url>タグで囲まれた領域に記載されたＵＲＬである。
【０１０６】
［ステップＳ１３５］整合性検査部１５３は、ステップＳ１３４で取得したオブジェクトファイルの所在に基づいて、オブジェクトファイルを格納しているコンピュータ３００にオブジェクトファイルの属性情報（更新日時とファイルサイズ）の取得要求を出力する。すると、コンピュータ３００のファイルシステムからコンピュータ１００へオブジェクトファイルの更新日時とファイルサイズとが送られる。整合性検査部１５３は、コンピュータ３００から送られた更新日時とファイルサイズとを取得する。たとえば、ＨＴＴＰのＨＥＡＤコマンドを使用して、ファイルシステムから任意のオブジェクトファイルの更新日時とファイルサイズとを取得することができる。
【０１０７】
［ステップＳ１３６］整合性検査部１５３は、ステップＳ１３３で解析したオブジェクトファイル属性情報から更新日時を抽出する。更新日時は、<timestamp>タグで囲まれた領域にYYYY/MM/DD hh:mm:ssの形式で記載されている。そして、整合性検査部１５３は、抽出した更新日時と、ステップＳ１３５で取得したオブジェクトファイルの更新日時とを比較して、一致するか否かを判断する。更新日時が一致した場合には、処理がステップＳ１３８に進められる。更新日時が一致しない場合には、処理がステップＳ１３７に進められる。
【０１０８】
［ステップＳ１３７］整合性検査部１５３は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
［ステップＳ１３８］整合性検査部１５３は、ステップＳ１３３で解析したオブジェクトファイル属性情報からファイルサイズを抽出する。ファイルサイズは、<size>タグで囲まれた領域に１０進数の数字により、バイト単位の値で記載されている。そして、整合性検査部１５３は、抽出したファイルサイズと、ステップＳ１３５で取得したオブジェクトファイルのファイルサイズとを比較して、一致するか否かを判断する。ファイルサイズが一致した場合には、処理が図１６のステップＳ１４１に進められる。ファイルサイズが一致しない場合には、処理がステップＳ１３９に進められる。
【０１０９】
［ステップＳ１３９］整合性検査部１５３は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
図１６は、実行形式ファイルの整合性検査処理の手順を示すフローチャートの後半である。以下、図１６に示す処理をステップ番号に沿って説明する。
【０１１０】
［ステップＳ１４１］整合性検査部１５３は、ステップＳ１３４で抽出したオブジェクトファイルの所在に基づいて、オブジェクトファイルを格納しているコンピュータ３００に対して、ソースファイル属性情報抽出要求を出す。すると、相手のコンピュータ３００内の属性情報抽出部によって、オブジェクトファイルからソースファイル属性情報が抽出される。抽出されたソースファイル属性情報は、コンピュータ３００からコンピュータ１００に送り返される。コンピュータ１００の整合性検査部１５３は、コンピュータ３００から送られたソースファイル属性情報を受け取る。
【０１１１】
［ステップＳ１４２］整合性検査部１５３は、ソースファイル属性情報が正常に抽出されたか否かを判断する。正常に抽出された場合には、処理がステップＳ１４３に進められる。正常に抽出されなかった場合には、処理が終了する。
【０１１２】
［ステップＳ１４３］整合性検査部１５３は、ソースファイル属性情報を構成しているＸＭＬデータを解析し、サマリ情報を出力する。
［ステップＳ１４４］整合性検査部１５３は、ソースファイル属性情報からソースファイルの所在を抽出する。所在は、<url>タグで囲まれた領域に記載されたＵＲＬである。
【０１１３】
［ステップＳ１４５］整合性検査部１５３は、ステップＳ１４４で取得したソースファイルの所在に基づいて、ソースファイルを格納しているコンピュータ４００にソースファイルの属性情報（更新日時とファイルサイズ）の取得要求を出力する。すると、コンピュータ４００のファイルシステムからコンピュータ１００へソースファイルの更新日時とファイルサイズとが送られる。整合性検査部１５３は、コンピュータ４００から送られた更新日時とファイルサイズとを取得する。たとえば、ソースファイルの先頭にヘッダ部が設けられ更新日時とファイルサイズとが記載さている場合、ＨＴＴＰのＨＥＡＤコマンドを使用して、ファイルシステムから任意のソースファイルの更新日時とファイルサイズとを取得することができる。
【０１１４】
［ステップＳ１４６］整合性検査部１５３は、ステップＳ１４３で解析したソースファイル属性情報から更新日時を抽出する。更新日時は、<timestamp>タグで囲まれた領域にYYYY/MM/DD hh:mm:ssの形式で記載されている。そして、整合性検査部１５３は、抽出した更新日時と、ステップＳ１４５で取得したソースファイルの更新日時とを比較して、一致するか否かを判断する。更新日時が一致した場合には、処理がステップＳ１４８に進められる。更新日時が一致しない場合には、処理がステップＳ１４７に進められる。
【０１１５】
［ステップＳ１４７］整合性検査部１５３は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
［ステップＳ１４８］整合性検査部１５３は、ステップＳ１４３で解析したソースファイル属性情報からファイルサイズを抽出する。ファイルサイズは、<size>タグで囲まれた領域に１０進数の数字により、バイト単位の値で記載されている。そして、整合性検査部１５３は、抽出したファイルサイズと、ステップＳ１４５で取得したソースファイルのファイルサイズとを比較して、一致するか否かを判断する。ファイルサイズが一致した場合には、処理が終了する。ファイルサイズが一致しない場合には、処理がステップＳ１４９に進められる。
【０１１６】
［ステップＳ１４９］整合性検査部１５３は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
次に、オブジェクトファイルに関する整合性検査処理について説明する。
【０１１７】
図１７は、オブジェクトファイル整合性検査処理の概念図である。図１７の例では、コンピュータ３００に格納されたオブジェクトファイル８０の整合性検査を、コンピュータ１００において実行する場合の例である。なお、オブジェクトファイル８０は、コンピュータ４００に格納されたソースファイル９０（または、同じ所在の旧版のソースファイル）に基づいて生成されている。すなわち、ソースファイル９０は、オブジェクトファイル８０に対する生成元現状オブジェクトファイルに相当する。
【０１１８】
整合性検査の際には、まず、コンピュータ３００内の属性情報抽出部により、オブジェクトファイル８０からソースファイル属性情報８２が抽出される（ステップＳ３１）。抽出されたソースファイル属性情報８２は、ＨＴＴＰでコンピュータ１００の整合性検査部１５３に送信される。
【０１１９】
さらに、コンピュータ４００内のファイルシステムにより、ソースファイル９０の属性情報９１（更新時刻とファイルサイズ）が、ＨＴＴＰでコンピュータ１００に送信される。
【０１２０】
コンピュータ１００の整合性検査部１５３は、各３００，４００から送られた情報に基づいて、整合性の検査を行う。具体的には、ソースファイル属性情報８２とソースファイル属性情報９１との内容（更新時刻とファイルサイズ）を比較する。各比較結果が完全に一致すれば、オブジェクトファイル８０と、そのオブジェクトファイル８０の生成元となるファイルとの整合性（最新のファイルに基づいて作成されていること）が確認される。
【０１２１】
整合性検査部１５３は、整合性検査履歴をサマリ情報５１０として出力する。また、整合性検査部１５３は、不整合（不一致の属性情報）が発見された場合、不一致の内容を示すアラーム情報５２０を出力する。
【０１２２】
以下、オブジェクトファイルの整合性検査におけるコンピュータ１００での処理内容を詳細に説明する。
図１８は、オブジェクトファイルの整合性検査処理の手順を示すフローチャートである。この処理は、ユーザの操作入力等により、任意のオブジェクトファイルが指定され、整合性検査要求が入力されたときに実行される処理である。なお、以下の説明では、コンピュータ１００に対して整合性検査要求が入力されたものとして、図１８に示す処理をステップ番号に沿って説明する。
【０１２３】
［ステップＳ１５１］整合性検査部１５３は、整合性検査要求で指定されたオブジェクトファイルを格納しているコンピュータ３００に対して、ソースファイル属性情報抽出要求を出す。すると、相手のコンピュータ３００内の属性情報抽出部によって、オブジェクトファイルからソースファイル属性情報が抽出される。抽出されたソースファイル属性情報は、コンピュータ３００からコンピュータ１００に送り返される。コンピュータ１００の整合性検査部１５３は、コンピュータ３００から送られたソースファイル属性情報を受け取る。
【０１２４】
［ステップＳ１５２］整合性検査部１５３は、ソースファイル属性情報が正常に抽出されたか否かを判断する。正常に抽出された場合には、処理がステップＳ１５３に進められる。正常に抽出されなかった場合には、処理が終了する。
【０１２５】
［ステップＳ１５３］整合性検査部１５３は、ソースファイル属性情報を構成しているＸＭＬデータを解析し、サマリ情報を出力する。
［ステップＳ１５４］整合性検査部１５３は、ソースファイル属性情報からソースファイルの所在を抽出する。所在は、<url>タグで囲まれた領域に記載されたＵＲＬである。
【０１２６】
［ステップＳ１５５］整合性検査部１５３は、ステップＳ１５４で取得したソースファイルの所在に基づいて、ソースファイルを格納しているコンピュータ４００にソースファイルの属性情報（更新日時とファイルサイズ）の取得要求を出力する。すると、コンピュータ４００のファイルシステムからコンピュータ１００へソースファイルの更新日時とファイルサイズとが送られる。整合性検査部１５３は、コンピュータ４００から送られた更新日時とファイルサイズとを取得する。たとえば、ソースファイルの先頭にヘッダ部が設けられ更新日時とファイルサイズとが記載さている場合、ＨＴＴＰのＨＥＡＤコマンドを使用して、ファイルシステムから任意のソースファイルの更新日時とファイルサイズとを取得することができる。
【０１２７】
［ステップＳ１５６］整合性検査部１５３は、ステップＳ１５３で解析したソースファイル属性情報から更新日時を抽出する。更新日時は、<timestamp>タグで囲まれた領域にYYYY/MM/DD hh:mm:ssの形式で記載されている。そして、整合性検査部１５３は、抽出した更新日時と、ステップＳ１５５で取得したソースファイルの更新日時とを比較して、一致するか否かを判断する。更新日時が一致した場合には、処理がステップＳ１５８に進められる。更新日時が一致しない場合には、処理がステップＳ１５７に進められる。
【０１２８】
［ステップＳ１５７］整合性検査部１５３は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
［ステップＳ１５８］整合性検査部１５３は、ステップＳ１５３で解析したソースファイル属性情報からファイルサイズを抽出する。ファイルサイズは、<size>タグで囲まれた領域に１０進数の数字により、バイト単位の値で記載されている。そして、整合性検査部１５３は、抽出したファイルサイズと、ステップＳ１５５で取得したソースファイルのファイルサイズとを比較して、一致するか否かを判断する。ファイルサイズが一致した場合には、処理が終了する。ファイルサイズが一致しない場合には、処理がステップＳ１５９に進められる。
【０１２９】
［ステップＳ１５９］整合性検査部１５３は、アラーム処理を行い、アラーム情報を出力する。その後、処理が終了する。
以上のようにして、整合性検査を行い、検査結果をサマリ情報やアラーム情報として保存することができる。サマリ情報やアラーム情報は、たとえば、ＸＭＬデータで保存される。ＸＭＬデータで保存することで、画面や帳票への出力時のレイアウトを、利用者が任意に定義することができる。
【０１３０】
図１９は、ＸＭＬで出力されたサマリ情報の一例を示す図である。このサマリ情報５１０には、実行形式ファイルの整合性検査結果が記録されている。なお、整合性検査要求では、複数の実行形式ファイルを指定することができる。そこで、整合性検査対象となった実行形式ファイルに対して識別番号が振られる。実行形式ファイルの識別番号は、<program>タグ５１１内に設定されている。なお、<program>タグ５１１に囲まれた範囲（<program>〜</program>）が、１つの実行形式ファイルに対応する整合性検査結果を表している。
【０１３１】
整合性検査結果として、<name>タグ５１２によって、検査対象となった実行形式ファイルのファイル名が示される。また、<date>タグ５１３によって、整合性検査の実施日が示される。
【０１３２】
<object>タグ５１４に囲まれた範囲（<object>〜</object>）が、オブジェクトファイルに関する整合性検査結果を表している。オブジェクトファイルの整合性検索結果として、<url>タグ５１５によって、検査されたオブジェクトファイルの所在が示されている。<current>タグに囲まれた範囲（<current>〜</current>）が、整合性検査対象の実行形式ファイル内に記録されていた属性情報５１６を表している。<original>タグに囲まれた範囲（<original>〜</original>）が、所在で示された場所に格納されていたオブジェクトファイルの属性情報５１７を表している。
【０１３３】
また、<source>タグ５１８に囲まれた範囲（<source>〜</source>）が、ソースファイルに関する整合性検査結果を表している。ソースファイルに関する整合性検査結果の内容のデータ構造は、オブジェクトファイルの整合性検索結果と同様である。
【０１３４】
以降、実行形式ファイルの生成元となったオブジェクトファイルやソースファイルの属性情報（生成されたファイルに記録された属性情報と、所在で示された場所に格納されているファイルの属性情報の組）が、順番に記録されている。
【０１３５】
１つの実行形式ファイルに関する整合性検査結果の後に、<program>タグ５１９によって、別の実行形式ファイルに関する整合性検査結果５１０ａが記録される。
【０１３６】
図２０は、ＸＭＬで出力されたアラーム情報の一例を示す図である。アラーム情報５２０には、整合性検査対象となった実行形式ファイルの識別番号が<program>タグ５２１内に設定されている。なお、<program>タグ５２１に囲まれた範囲（<program>〜</program>）が、１つの実行形式ファイルに対応する不整合ファイルの情報を表している。
【０１３７】
<name>タグ５２２には、検査対象となった実行形式ファイルのファイル名が示される。また、<date>タグ５２３によって、整合性検査の実施日が示される。
<object>タグや<source>タグに囲まれた範囲５２４に、整合性検査の結果不整合と判断されたファイル（オブジェクトファイルやソースファイル）の属性情報（ＸＭＬ形式）が示されている。
【０１３８】
また、<msg>タグ５２５によって、整合性検査により不整合なファイルが見つかったことを示すメッセージが記録される。図２０の例では、「実行形式ファイルが構成するオブジェクトファイルが更新されています。」や「オブジェクトファイルのソースファイルが更新されています。」といったメッセージが記録されている。これらのメッセージは、検出順に並べられる。
【０１３９】
以上のように本実施の形態によれば、オブジェクトファイルの生成元であるソースファイルの更新日時、ファイルサイズをオブジェクトファイル内に記録することによって、オブジェクトファイルとソースファイルの整合性検査が正確に行うことができる。
【０１４０】
更新日時は、ファイルの内容が改編される毎に変更される。そのため、オブジェクトファイル生成後にソースファイルが改編された場合、更新日時に関する整合性検査で不一致となる。これにより、現在のオブジェクトファイルが旧版のソースファイルから作成されたものであることがわかる。
【０１４１】
また、ファイルサイズは、ファイルの内容が改編される毎に改編後の値に変更される。ソースコードの変更があれば、ほとんどの場合、変更前と変更後とではファイルサイズが異なる値となる。そのため、オブジェクトファイル生成後にソースファイルが改編された場合、ファイルサイズに関する整合性検査で不一致となる。これにより、現在のオブジェクトファイルが旧版のソースファイルから作成されたものであることがわかる。
【０１４２】
なお、更新日時とファイルサイズとの両方の一致不一致を検査することで、より正確に整合性を検査できる。たとえば、ソースファイルの細部の修正の場合、ファイルサイズが変更されない場合もあり得る。この場合、更新日時の比較によって、整合性不一致の検査結果を得ることができる。
【０１４３】
同様に、実行形式ファイルの生成元であるオブジェクトファイルの更新日時、ファイルサイズを実行形式ファイル内に記録することによって、実行形式ファイルの生成元のオブジェクトファイルと、同じ所在のオブジェクトファイルとの整合性検査が正確に行うことができる。
【０１４４】
なお、本実施の形態では、属性情報（更新日時、ファイルサイズ、ファイル所在）をＸＭＬデータ形式で付加しているため、Windows（商標）、Unix（商標）等のアーキテクチャの異なるプラットフォーム間やインターネット等の広域ネットワークを介した環境でも正確な情報交換を行うことができる。
【０１４５】
さらに、本実施の形態では、属性情報の一つであるファイルの所在情報をＵＲＬ形式で記録している。そのため、ソースファイル、オブジェクトファイル、実行形式ファイルが分散されたコンピュータ環境に配置されてもインターネット等の既存のネットワークを介してファイル間の整合性検査を容易に行うことができる。
【０１４６】
図２１は、本実施の形態を用いたライブラリ資産管理の運用例を示す概念図である。図２１の例では、資産管理計算機６１０、試験計算機６２０、本番計算機６３０、および資産管理計算機６４０が設けられている。
【０１４７】
資産管理計算機６１０は、実行形式ファイル６１１、オブジェクトファイル６１２、ソースファイル６１３などのライブラリ資産を管理するコンピュータである。資産管理計算機６１０は、Unix（商標）で動作制御されている。試験計算機６２０は、資産管理計算機６１０から配付された実行形式ファイル６２１、オブジェクトファイル６２２などのライブラリ資産の動作を試験するためのコンピュータである。試験計算機６２０は、Unix（商標）で動作制御されている。本番計算機６３０は、資産管理計算機６１０から配付された実行形式ファイル６３１、オブジェクトファイル６３２などのライブラリ資産を利用して業務を遂行するコンピュータである。本番計算機６３０は、Unix（商標）で動作制御されている。資産管理計算機６４０は、資産管理計算機６１０で保持されているライブラリ資産からソースファイル属性情報６４１やオブジェクトファイル属性情報６４２をネットワーク経由で抽出し、ライブラリ資産を遠隔管理するコンピュータである。資産管理計算機６４０は、Windows（商標）で動作制御されている。
【０１４８】
このようなシステムにおいて、資産管理計算機６１０を用いて、ソースファイル６１３が作成される。ソースファイル６１３内のソースコードは、資産管理計算機６１０で翻訳され、オブジェクトファイル６１２が生成される。資産管理計算機６１０により、オブジェクトファイル６１２が他のオブジェクトファイルと結合され、実行形式ファイル６１１が生成される。これにより、ライブラリ資産が資産管理計算機６１０に構築される。
【０１４９】
ライブラリ資産の動作試験を行う場合には、資産管理計算機６１０から試験計算機６２０に実行形式ファイル６１１やオブジェクトファイル６１２が配付される。配付された実行形式ファイル６２１やオブジェクトファイル６２２は、試験計算機６２０に保持される。そして、試験計算機６２０によって、実行形式ファイル６２１やオブジェクトファイル６２２の動作の試験が行われる。
【０１５０】
試験の結果、仕様通りの動作が確認されれば、資産管理計算機６１０から本番計算機６３０に実行形式ファイル６１１やオブジェクトファイル６１２が配付される。配付された実行形式ファイル６３１やオブジェクトファイル６３２は、本番計算機６３０に保持される。そして、本番計算機６３０によって、実行形式ファイル６３１やオブジェクトファイル６３２を用いた運用が行われる。
【０１５１】
ここで、資産管理計算機６１０内の実行形式ファイル６１１に含まれているオブジェクトファイル属性情報の所在情報によって、実行形式ファイル６１１とオブジェクトファイル６１２とが関連づけられている。資産管理計算機６１０に保持されているオブジェクトファイル６１２に含まれているソースファイル属性情報の所在情報によって、オブジェクトファイル６１２とソースファイル６１３とが関連づけられている。
【０１５２】
また、試験計算機６２０に保持されている実行形式ファイル６２１に含まれているオブジェクトファイル属性情報の所在情報によって、実行形式ファイル６２１とオブジェクトファイル６１２とが関連づけられている。試験計算機６２０に保持されているオブジェクトファイル６２２に含まれているソースファイル属性情報の所在情報によって、オブジェクトファイル６２２とソースファイル６１３とが関連づけられている。
【０１５３】
さらに、本番計算機６３０に保持されている実行形式ファイル６３１に含まれているオブジェクトファイル属性情報の所在情報によって、実行形式ファイル６３１とオブジェクトファイル６１２とが関連づけられている。本番計算機６３０に保持されているオブジェクトファイル６３２に含まれているソースファイル属性情報の所在情報によって、オブジェクトファイル６３２とソースファイル６１３とが関連づけられている。
【０１５４】
このシステムにおいて、次のような整合性検査が可能である。
まず、資産管理計算機６１０内のライブラリ資産同士で整合性検査を行うことができる。具体的には、資産管理計算機６１０で実行形式ファイル６１１内のオブジェクト属性情報とオブジェクトファイル６１２の属性情報とを比較して、整合性検査を行うことができる。また、資産管理計算機６１０でオブジェクトファイル６１２内のソースファイル属性情報とソースファイル６１３の属性情報とを比較して、整合性検査を行うことができる。
【０１５５】
また、試験計算機６２０に保持されたライブラリ資産と資産管理計算機６１０内のライブラリ資産との間で整合性検査を行うことができる。すなわち、試験計算機６２０内の実行形式ファイル６２１内のオブジェクトファイル属性情報によってオブジェクトファイル６１２の所在を特定し、整合性検査が可能となる。同様に、試験計算機６２０内のオブジェクトファイル６２２内のソースファイル属性情報によってソースファイル６１３の所在を特定し、整合性検査が可能となる。
【０１５６】
また、本番計算機６３０に保持されたライブラリ資産と資産管理計算機６１０内のライブラリ資産との間で整合性検査を行うことができる。すなわち、本番計算機６３０内の実行形式ファイル６３１内のオブジェクトファイル属性情報によってオブジェクトファイル６１２の所在を特定し、整合性検査が可能となる。同様に、本番計算機６３０内のオブジェクトファイル６３２内のソースファイル属性情報によってソースファイル６１３の所在を特定し、整合性検査が可能となる。
【０１５７】
さらに、資産管理計算機６１０、試験計算機６２０、および本番計算機６３０とは異なるアーキテクチャのＯＳで動作管理されている資産管理計算機６４０を用いて、遠隔操作による整合性検査が可能である。すなわち、資産管理計算機６４０は、資産管理計算機６１０、試験計算機６２０、および本番計算機６３０内の所定のライブラリ資産からソースファイル属性情報６４１やオブジェクトファイル属性情報６４２を抽出する。すると、ソースファイル属性情報６４１やオブジェクトファイル属性情報６４２は、ＸＭＬで記述されているため、ＯＳのアーキテクチャの違いに関係なく、取得したライブラリ資産の生成元のファイルの所在が分かる。そこで、資産管理計算機６４０が、ソースファイル属性情報６４１やオブジェクトファイル属性情報６４２と、生成元のファイルの属性情報とを比較することで、整合性検査が可能となる。
【０１５８】
なお、上記の説明ではソースファイルの属性情報をオブジェクトファイルに挿入し、オブジェクトファイルの属性情報を実行形式ファイルに挿入するようにしたが、オブジェクトファイルに挿入されているソースファイルの属性情報も併せて実行形式ファイルに挿入するようにしてもよい。これにより、実行形式ファイルから直接（オブジェクトファイルの属性情報を参照せずに）ソースファイルの所在を確認し、実行形式ファイルの生成元のソースファイルと、そのソースファイルのあった場所に現在格納されているソースファイルとの整合性検査が可能となる。
【０１５９】
また、上記の実施の形態では、コンピュータ１００内に属性情報挿入部１５１、属性情報抽出部１５２、および整合性検査部１５３が設けられているが、ライブラリの整合性検査に関わる全てのコンピュータがライブラリ整合性検査部１５０内の全ての要素を備えている必要はない。たとえば、図２１に示した資産管理計算機６４０のように、ライブラリ資産を保持しない場合には、整合性検査部１５３が有ればよい。また、オブジェクトファイルや実行形式ファイルの生成のみを行い、生成されたライブラリ資産を別のコンピュータに管理させる場合には、属性情報挿入部１５１が有ればよい。さらに、ライブラリ資産を保持しているが、整合性検査は他のコンピュータからの遠隔処理で行われる場合には、属性情報抽出部１５２を保持していればよい。
【０１６０】
ところで、上記の処理機能をコンピュータによって実現するためには、ライブラリ整合性検査に必要な処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disc)などがある。
【０１６１】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６２】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６３】
（付記１）  機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援プログラムにおいて、
コンピュータに、
前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得し、
翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する、
処理を実行させることを特徴とする整合性検査支援プログラム。
【０１６４】
（付記２）  前記ソース属性情報には、前記ソースファイルの更新日時と、前記ソースファイルのファイルサイズとの少なくともいずれか一方を含むことを特徴とする付記１記載の整合性検査支援プログラム。
【０１６５】
（付記３）  さらに、前記翻訳によって生成された前記ファイルを指定した整合性検査要求を受け取ると、当該ファイルに含まれるソース属性情報を取得し、
取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている生成元現状ファイルの属性情報を取得し、
前記生成元現状ファイルの属性情報と前記ソース属性情報とを比較し、当該生成元現状ファイルと前記ファイルの生成元となった前記ソースファイルとの整合性を判断する、
処理を実行させることを特徴とする付記１記載の整合性検査支援プログラム。
【０１６６】
（付記４）  翻訳によって生成された前記ファイルは、他のファイルと結合されるオブジェクトファイルであることを特徴とする付記１記載の整合性検査支援プログラム。
【０１６７】
（付記５）  さらに、前記オブジェクトファイルと他のオブジェクトファイルとが結合され、実行形式ファイルが生成されると、結合された各オブジェクトファイルの所在情報と、前記結合された各オブジェクトファイルの改編に応じて変更されるデータとを含むオブジェクト属性情報を取得し、
結合によって生成された前記実行形式ファイルに、前記オブジェクト属性情報を付加する、
処理を実行させることを特徴とする付記４記載の整合性検査支援プログラム。
【０１６８】
（付記６）  前記オブジェクト属性情報には、前記結合された各オブジェクトファイルの更新日時と、前記結合された各オブジェクトファイルのファイルサイズとの少なくともいずれか一方を含むことを特徴とする付記５記載の整合性検査支援プログラム。
【０１６９】
（付記７）  さらに、結合によって生成された前記実行形式ファイルを指定した整合性検査要求を受け取ると、当該実行形式ファイルに含まれるオブジェクト属性情報に基づいて所在情報を取得し、
取得した前記オブジェクト属性情報に含まれる所在情報で示された位置に格納されている生成元現状オブジェクトファイルの属性情報を取得し、
前記生成元現状オブジェクトファイルの属性情報と、前記オブジェクト属性情報とを比較し、当該生成元現状オブジェクトファイルと前記実行形式ファイルの生成元となった前記オブジェクトファイルとの整合性を判断する、
処理を実行させることを特徴とする付記５記載の整合性検査支援プログラム。
【０１７０】
（付記８）  さらに、前記生成元現状オブジェクトファイルに含まれるソース属性情報を取得し、
取得した前記ソース属性情報に含まれる所在情報で示された位置に格納されている生成元現状ソースファイルの属性情報を取得し、
前記生成元現状ソースファイルの属性情報と、前記ソース属性情報とを比較し、当該生成元現状ソースファイルと前記生成元現状オブジェクトファイルの生成元となった前記ソースファイルとの整合性を判断する、
処理を実行させることを特徴とする付記７記載の整合性検査支援プログラム。
【０１７１】
（付記９）  結合時のオブジェクトファイルと当該オブジェクトファイルの現在の状態との整合性検査を支援するための整合性検査支援プログラムにおいて、
コンピュータに、
複数のオブジェクトファイルが結合され、実行形式ファイルが生成されると、結合された各オブジェクトファイルの所在情報と、前記結合された各オブジェクトファイルの改編に応じて変更されるデータとを含むオブジェクト属性情報を取得し、
結合によって生成された前記実行形式ファイルに、前記オブジェクト属性情報を付加する、
処理を実行させることを特徴とする整合性検査支援プログラム。
【０１７２】
（付記１０）  機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援方法において、
前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得し、
翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する、
ことを特徴とする整合性検査支援方法。
【０１７３】
（付記１１）  機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援装置において、
前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得する取得手段と、
翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する付加手段と、
を有することを特徴とする整合性検査支援装置。
【０１７４】
（付記１２）  機械語に翻訳されたファイルの生成時のソースファイルと当該ソースファイルの現在の状態との整合性検査を支援するための整合性検査支援プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記ソースファイル内のソースコードが機械語コードに翻訳され、当該機械語コードが記述されたファイルが生成されると、前記ソースファイルの所在情報と、前記ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を取得し、
翻訳によって生成された前記ファイルに、前記ソース属性情報を付加する、
処理を実行させることを特徴とする整合性検査支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１７５】
【発明の効果】
以上説明したように本発明では、ソースファイルの所在情報と、ソースファイルの改編に応じて変更されるデータとを含むソース属性情報を、翻訳によって生成されたファイルに付加するようにしたため、ソース属性情報を参照することで、翻訳によって生成されたファイルの生成元のソースファイルがネットワーク経由の他のコンピュータに格納されていたとしてもその所在を知ることができる。所在で示された場所のファイルの属性情報とソース属性情報とを比較することで、所在で示された場所のファイルと、翻訳によって生成されたファイルの生成元のソースファイルとの整合性を容易に検査することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に適用される発明の概念図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
【図４】本実施の形態に係るコンピュータの処理機能を示す機能ブロック図である。
【図５】オブジェクトファイルのデータ構造例を示す図である。
【図６】実行形式ファイルのデータ構造例を示す図である。
【図７】属性情報に関するＸＭＬへの構造化規則を示す図である。
【図８】  ファイル管理情報内のデータ構造例を示す図である。
【図９】実行形式ファイル生成時の処理の流れを示す概念図である。
【図１０】ソースファイル属性情報の挿入例を示す図である。
【図１１】オブジェクトファイル属性情報の挿入例を示す図である。
【図１２】オブジェクトファイル生成時の処理手順を示すフローチャートである。
【図１３】実行形式ファイル生成時の処理手順を示すフローチャートである。
【図１４】実行形式ファイル整合性検査処理の概念図である。
【図１５】実行形式ファイルの整合性検査処理の手順を示すフローチャートの前半である。
【図１６】実行形式ファイルの整合性検査処理の手順を示すフローチャートの後半である。
【図１７】オブジェクトファイル整合性検査処理の概念図である。
【図１８】オブジェクトファイルの整合性検査処理の手順を示すフローチャートである。
【図１９】ＸＭＬで出力されたサマリ情報の一例を示す図である。
【図２０】ＸＭＬで出力されたアラーム情報の一例を示す図である。
【図２１】本実施の形態を用いたライブラリ資産管理の運用例を示す概念図である。
【符号の説明】
１  ソースファイル
２  ソース属性情報
２ａ  所在情報
２ｂ  更新日時
２ｃ  ファイルサイズ
３  ファイル
３ａ  機械語コード
３ｂ  ソース属性情報
４  生成元現状ファイル
５  属性情報
１０  ネットワーク
１００，２００，３００，４００  コンピュータ
１１１，１１２，１１３，・・・  ソースファイル
１２１，１２２，１２３，・・・  オブジェクトファイル
１３１，１３２，１３３，・・・  実行形式ファイル
１４１  エディタ
１４２  翻訳処理部
１４３  結合編集部
１５０  ライブラリ整合性検査部
１５１  属性情報挿入部
１５２  属性情報抽出部
１５３  整合性検査部
１６０  通信処理部
１７０  ファイルシステム
１８０  ファイル管理情報
【図１】
0003946057.tif 000002
【図２】
0003946057.tif 000003
【図３】
0003946057.tif 000004
【図４】
0003946057.tif 000005
【図５】
0003946057.tif 000006
【図６】
0003946057.tif 000007
【図７】
0003946057.tif 000008
【図８】
0003946057.tif 000009
【図９】
0003946057.tif 000010
【図１０】
0003946057.tif 000011
【図１１】
0003946057.tif 000012
【図１２】
0003946057.tif 000013
【図１３】
0003946057.tif 000014
【図１４】
0003946057.tif 000015
【図１５】
0003946057.tif 000016
【図１６】
0003946057.tif 000017
【図１７】
0003946057.tif 000018
【図１８】
0003946057.tif 000019
【図１９】
0003946057.tif 000020
【図２０】
0003946057.tif 000021
【図２１】
0003946057.tif 000022