(57)【要約】【課題】  プログラムが、与えられた属性値を含むデータに対する変更を行い得たプログラムであるか否かを判定する分析装置を提供する。【解決手段】  本発明の分析装置は、データベース中の、属性の識別子に関連付けられた前記属性の値である属性値を含むデータに対して、変更を行うプログラムを記憶するプログラム記憶手段と、属性の識別子と、当該識別子に関連付けられた属性値の組み合わせを、取得する特定データ取得手段と、前記プログラムによって行われる処理の解析を行うプログラム解析手段と、前記解析の結果に基づき、前記組み合わせに識別子が含まれる属性の属性値として、前記組み合わせに含まれる前記属性値を含む前記データベース中のデータである特定データに対して、前記プログラムによって変更が行われ得たか否かを判定し、判定結果を求める関連判定手段とを含む。【選択図】      図１６
2014241071.tif 000002
【特許請求の範囲】
【請求項１】
データベース中の、属性の識別子に関連付けられた前記属性の値である属性値を含むデータに対して、変更を行うプログラムを記憶するプログラム記憶手段と、
属性の識別子と、当該識別子に関連付けられた属性値の組み合わせを、取得する特定データ取得手段と、
前記プログラムによって行われる処理の解析を行うプログラム解析手段と、
前記解析の結果に基づき、前記組み合わせに識別子が含まれる属性の属性値として、前記組み合わせに含まれる前記属性値を含む前記データベース中のデータである特定データに対して、前記プログラムによって変更が行われ得たか否かを判定し、判定結果を求める関連判定手段と
を含む分析装置。
【請求項２】
前記関連判定手段は、前記組み合わせに含まれる前記属性値が、当該属性値に識別子が関連付けられている前記属性の属性値として指定される属性値確定場所と、前記組み合わせに識別子が含まれる前記属性の属性値として、前記識別子に関連付けられている前記属性値が指定された、前記データに対して変更を行う変更命令の場所とを、前記プログラム中で特定し、
前記関連判定手段は、前記属性値確定場所と、前記変更命令の場所とを出力する出力手段を含む
請求項１に記載の分析装置。
【請求項３】
前記特定データ取得手段は、前記組を１個以上と、前記組の各々に関連付けられた特徴量を取得し、
前記分析装置は、さらに、前記特徴量に基づいて、前記組の順位を決定する順位付け手段を含み、
前記関連判定手段は、決定された前記順位に従った順番で、前記組の各々に対して、前記関連判定を行う
請求項１又は２に記載の分析装置。
【請求項４】
前記データベースを記憶するデータベース装置と、前記データベース装置と通信可能である請求項１乃至３のいずれかに記載の分析装置とを含み、
前記特定データ取得手段は、前記データベース装置から、所定の条件に合致する、前記属性の識別子と前記属性の属性値との組み合わせを取得する
情報処理システム。
【請求項５】
データベース中の、属性の識別子に関連付けられた前記属性の値である属性値を含むデータに対して、変更を行うプログラムをプログラム記憶手段に記憶し、
属性の識別子と、当該識別子に関連付けられた属性値の組み合わせを、取得し、
前記プログラムによって行われる処理の解析を行い、
前記解析の結果に基づき、前記組み合わせに識別子が含まれる属性の属性値として、前記組み合わせに含まれる前記属性値を含む前記データベース中のデータである特定データに対して、前記プログラムによって変更が行われ得たか否かを判定し、判定結果を求める
分析方法。
【請求項６】
前記組み合わせに含まれる前記属性値が、当該属性値に識別子が関連付けられている前記属性の属性値として指定される属性値確定場所と、前記組み合わせに識別子が含まれる前記属性の属性値として、前記識別子に関連付けられている前記属性値が指定された、前記データに対して変更を行う変更命令の場所とを、前記プログラム中で特定し、
前記属性値確定場所と、前記変更命令の場所とを出力する
請求項５に記載の分析方法。
【請求項７】
前記組を１個以上と、前記組の各々に関連付けられた特徴量を取得し、
前記特徴量に基づいて、前記組の順位を決定し、
決定された前記順位に従った順番で、前記組の各々に対して、前記関連判定を行う
請求項５又は６に記載の分析方法。
【請求項８】
コンピュータを、
データベース中の、属性の識別子に関連付けられた前記属性の値である属性値を含むデータに対して、変更を行うプログラムを記憶するプログラム記憶手段と、
属性の識別子と、当該識別子に関連付けられた属性値の組み合わせを、取得する特定データ取得手段と、
前記プログラムによって行われる処理の解析を行うプログラム解析手段と、
前記解析の結果に基づき、前記組み合わせに識別子が含まれる属性の属性値として、前記組み合わせに含まれる前記属性値を含む前記データベース中のデータである特定データに対して、前記プログラムによって変更が行われ得たか否かを判定し、判定結果を求める関連判定手段と
して動作させる分析プログラム。
【請求項９】
コンピュータを、
前記組み合わせに含まれる前記属性値が、当該属性値に識別子が関連付けられている前記属性の属性値として指定される属性値確定場所と、前記組み合わせに識別子が含まれる前記属性の属性値として、前記識別子に関連付けられている前記属性値が指定された、前記データに対して変更を行う変更命令の場所とを、前記プログラム中で特定する前記関連判定手段と、
前記属性値確定場所と、前記変更命令の場所とを出力する出力手段を含む前記関連判定手段と、
して動作させる請求項８に記載の分析プログラム。
【請求項１０】
コンピュータを、
前記組を１個以上と、前記組の各々に関連付けられた特徴量を取得する前記特定データ取得手段と、
前記特徴量に基づいて、前記組の順位を決定する順位付け手段と、
決定された前記順位に従った順番で、前記組の各々に対して、前記関連判定を行う前記関連判定手段と、
して動作させる請求項８又は９に記載の分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの分析を行う技術分野に関する。
【背景技術】
【０００２】
プログラムコードから、データベースにアクセスするアクセス命令を抽出する情報処理装置の一例が、特許文献１に記載されている。
【０００３】
特許文献１の情報処理システムは、アプリケーションのプログラムコードに含まれるアプリケーションクラスから、データアクセスクラスを抽出する。そして、この情報処理システムは、抽出されたデータアクセスクラスから、所定の言語により記述された、データベースにアクセスするアクセス命令を抽出する。
【０００４】
特許文献２には、仕様変更に伴い修正が必要とされるプログラムを特定する仕様変更保守作業支援システムが記載されている。この仕様変更保守作業支援システムでは、仕様変更を表すキーワードと、その仕様変更に伴う保守の対象となるプログラムのプログラム名が、関連付けられてデータベース化される。この仕様変更保守作業支援システムは、入力された、仕様変更を表すキーワードによって、データベースを検索する。そして、この仕様変更保守作業支援システムは、仕様変更を表すキーワードに関連付けられているプログラムの識別子を出力する。
【０００５】
特許文献３には、プログラムが処理を行う、ファイル名とそのファイル中の項目名を検索キーとして、プログラム名を検索する管理装置が記載されている。この管理装置は、プログラム名と、プログラムが処理を行うファイル名と、ファイル中の、プログラムが処理を行う項目名との関連を表す、あらかじめ記憶されている情報から、プログラム名を検索する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２４８６３１号公報
【特許文献２】特開平１１−１２６１６０号公報
【特許文献３】特開２００１−０７５７９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般に、関係モデルに基づくデータベースにおける属性は、その属性の名称を表す属性名と、その属性の定義域の名称によって表される。定義域は、その属性が取り得る値の集合である。属性の値は、属性値と表記される。データベース中の個々のデータは、それぞれ属性名に関連付けられた、１個以上の属性値の集合で表される。
【０００８】
データベース中の個々のデータを、挿入、更新、および削除する操作は、いずれか１個以上の属性の属性値を指定して行われる。
【０００９】
以下、後述する各実施形態を例に説明する本願において、データの「挿入」は、データベース中に、１個以上の属性の属性値を含む、新しいデータを生成することを表す。データを挿入する操作は、例えば、１個以上の属性の属性値を含む新しいデータを、データベース中に生成する命令を、データベースを管理するデータベース装置に送信することにより行われる。
【００１０】
また、データの「更新」は、データが含む属性の属性値のうち少なくとも一部の属性値を、新しい属性値にすることを表す。属性値の更新は、その属性値を新しい属性値にすることを表す。データベース中のデータを更新する操作は、例えば、更新の対象であるデータと、更新する属性及びその属性の更新後の属性値とが指定された更新命令を、データベースを管理するデータベース装置に送信することにより行われる。更新の対象であるデータの指定は、例えば、更新の対象であるデータが含む１個以上の属性の属性値を指定することによって行われる。
【００１１】
データベース中のデータを削除する操作は、例えば、削除の対象であるデータが指定された削除命令を、データベースを管理するデータベース装置に送信することにより行われる。削除の対象であるデータの指定は、例えば、削除の対象であるデータが含む１個以上の属性の属性値を指定することによって行われる。データベース装置は、データベース中からのデータの削除を、例えば、削除の対象であるデータが含む、削除済みであるか否かを表す属性の属性値を、削除済みであることを表す属性値に変更することによって行ってもよい。以上の挿入、更新、および削除は、以下では、まとめて「変更」と表記する。データベース中のデータに対する変更は、挿入、更新、および削除だけでなく、データベース中のデータに変化が生じさせる操作を含んでいてもよい。
【００１２】
以上のように、データベース中のデータに対する変更は、属性値を指定することによって行われる。上述したデータの挿入の例では、指定される属性値は、例えば、新たに生成されるデータが含む属性の属性値である。また、データの削除の例では、指定される属性値は、例えば、削除の対象であるデータを特定する属性の属性値である。さらに、データの更新の例では、指定される属性値は、例えば、更新の対象であるデータを特定する属性の属性値と、更新される属性の属性値である。
【００１３】
特許文献１の情報処理装置は、所定の言語によって記述された、データベースにアクセスするアクセス命令を抽出する。しかし、特許文献１の情報処理装置は、プログラムが、データベース中のデータに対して、与えられた属性値が指定された変更を行うか否かを判定することはできない。
【００１４】
特許文献２の仕様変更保守作業支援システムは、仕様変更を表すキーワードに関連付けられている、その仕様変更による保守の対象となるプログラムのプログラム名を出力する。しかし、特許文献２の仕様変更保守作業支援システムは、プログラムが、データベース中のデータに対して、与えられた属性値が指定された変更を行うか否かを判定することはできない。
【００１５】
特許文献３の管理装置は、ファイル名とそのファイル中の項目名に基づき、そのファイル中のその項目名の項目にアクセスするプログラム名を検索する。しかし、特許文献３の管理装置は、例えば、所定の値である項目を含むファイルに対して、プログラムが更新を行うか否かを判定することはできない。すなわち、特許文献３の管理装置は、プログラムが、データベース中のデータに対して、与えられた属性値が指定された変更を行うか否かを判定することはできない。
【００１６】
本発明の目的の一つは、プログラムが、与えられた属性値を含むデータに対する変更を行い得たプログラムであるか否かを判定する分析装置を提供することにある。
【課題を解決するための手段】
【００１７】
本発明の分析装置は、データベース中の、属性の識別子に関連付けられた前記属性の値である属性値を含むデータに対して、変更を行うプログラムを記憶するプログラム記憶手段と、属性の識別子と、当該識別子に関連付けられた属性値の組み合わせを、取得する特定データ取得手段と、前記プログラムによって行われる処理の解析を行うプログラム解析手段と、前記解析の結果に基づき、前記組み合わせに識別子が含まれる属性の属性値として、前記組み合わせに含まれる前記属性値を含む前記データベース中のデータである特定データに対して、前記プログラムによって変更が行われ得たか否かを判定し、判定結果を求める関連判定手段とを含む。
【００１８】
本発明の分析方法は、データベース中の、属性の識別子に関連付けられた前記属性の値である属性値を含むデータに対して、変更を行うプログラムをプログラム記憶手段に記憶し、属性の識別子と、当該識別子に関連付けられた属性値の組み合わせを、取得し、前記プログラムによって行われる処理の解析を行い、前記解析の結果に基づき、前記組み合わせに識別子が含まれる属性の属性値として、前記組み合わせに含まれる前記属性値を含む前記データベース中のデータである特定データに対して、前記プログラムによって変更が行われ得たか否かを判定し、判定結果を求める。
【００１９】
本発明の分析プログラムは、コンピュータを、データベース中の、属性の識別子に関連付けられた前記属性の値である属性値を含むデータに対して、変更を行うプログラムを記憶するプログラム記憶手段と、属性の識別子と、当該識別子に関連付けられた属性値の組み合わせを、取得する特定データ取得手段と、前記プログラムによって行われる処理の解析を行うプログラム解析手段と、前記解析の結果に基づき、前記組み合わせに識別子が含まれる属性の属性値として、前記組み合わせに含まれる前記属性値を含む前記データベース中のデータである特定データに対して、前記プログラムによって変更が行われ得たか否かを判定し、判定結果を求める関連判定手段として動作させる。
【発明の効果】
【００２０】
本発明には、プログラムが、与えられた属性値を含むデータに対する変更を行い得たプログラムであるか否かを判定できるという効果がある。
【図面の簡単な説明】
【００２１】
【図１】図１は、第１、第２、第３、及び第４の実施形態の情報処理システム１００の構成の一例を表すブロック図である。
【図２】図２は、第１、第２、第３、及び第４の実施形態の分析装置１の全体の動作の一例を表すフローチャートである。
【図３】図３は、データベース２０１中のデータの一例を表す図である。
【図４】図４は、特定データ取得部１１が取得したデータに対して、ユーザが指定した属性を表す図である。
【図５】図５は、第１、及び第５の実施形態の関連判定部１２の、ステップＳ１０４における判定処理の詳細を例示するフローチャートである。
【図６】図６は、第２、第３、第４、及び第５の実施形態の関連判定部１２の、ステップＳ１０４における判定処理の詳細を例示するフローチャートである。
【図７】図７は、第５の実施形態の情報処理システム１００の構成を表すブロック図である。
【図８】図８は、第５の実施形態の分析装置１の全体の動作の一例を表すフローチャートである。
【図９】図９は、特定データ取得部１１が取得する、データとデータに関連付けられた特徴量の一例を表す図である。
【図１０】図１０は、プログラム記憶部１０が記憶するプログラムの、関連箇所の例を表す図である。
【図１１】図１１は、プログラム記憶部１０が記憶するプログラムの、関連箇所の例を表す図である。
【図１２】図１２は、プログラム記憶部１０が記憶するプログラムの、関連箇所の例を表す図である。
【図１３】図１３は、プログラム記憶部１０が記憶するプログラムの、関連箇所の例を表す図である。
【図１４】図１４は、プログラム記憶部１０が記憶するプログラムの、関連箇所の例を表す図である。
【図１５】図１５は、構成例の関連箇所判定部１２の動作の例を表すフローチャートである。
【図１６】図１６は、第６の実施形態の分析装置１の構成の例を表すブロック図である。
【図１７】図１７は、分析装置１を実現するために使用される、コンピュータ１０００の構成の一例を表す図である。
【発明を実施するための形態】
【００２２】
（第１の実施形態）
次に、本発明の第１の実施形態について、図面を参照して詳細に説明する。
【００２３】
図１は、第１の実施形態の情報処理システム１００の構成の一例を表す図である。
【００２４】
図１を参照すると、情報処理システム１００は、分析装置１と、データベース装置２と、入力装置４と、出力装置５を含む。情報処理システム１００は、アクセス装置３を含んでいてもよい。分析装置１とデータベース装置２は、互いに通信することができる。データベース装置２とアクセス装置３は、互いに通信することができる。データベース装置２は、分析装置１を含んでいてもよい。また、データベース装置２は、アクセス装置３を含んでいてもよい。データベース装置２は、分析装置１とアクセス装置３を含んでいてもよい。
【００２５】
データベース装置２は、データベース記憶部２０と、アクセス処理部２１を含む。
【００２６】
データベース記憶部２０は、データベース２０１を記憶する。データベース２０１は、例えば、前述のような、関係モデルに基づくデータベースである。データベース２０１は、必ずしも関係モデルに基づくデータベースでなくてもよい。データベース２０１は、１個以上の属性の属性値を含むデータを含んでいればよい。そして、データベース２０１にアクセスするプログラムが、データベース２０１が含むデータに対して、属性値を指定してデータを変更することが可能であればよい。
【００２７】
アクセス処理部２１は、データベース２０１に対するアクセスの要求を受信する。そして、アクセス処理部２１は、アクセスの要求に応じた、データベース２０１に対する処理を行う。さらに、アクセス処理部２１は、必要に応じて、アクセスの要求に対する結果を返信する。データベース２０１に対するアクセスの要求は、データベース２０１からのデータの検索、データベース２０１が含むデータに対する更新及び削除、データベース２０１へのデータの挿入の要求を含む。
【００２８】
アクセス装置３は、ＣＰＵ３０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、コンピュータプログラムであるプログラム３１１がロードされたメモリ３１を含む。プログラム３１１は、データベース２０１のデータに対して変更を行うプログラムである。ＣＰＵ３０がプログラム３１１を実行することにより、アクセス装置３は、データベース２０１のデータの変更を含むアクセスの要求を、データベース装置２に対して送信する。ＣＰＵ３０は、メモリ３１にロードされた、複数の種類のプログラム３１１を実行してもよい。複数のアクセス装置３が、異なる種類のプログラム３１１を実行してもよい。
【００２９】
アクセス装置３は、例えば、図示されない端末からの指示に基づき、データベース２０１へのアクセス要求を行ってもよい。アクセス装置３は、例えば、あらかじめ与えられた手順に従って、あらかじめ与えられたパラメータを使用してプログラム３１１を実行することにより、データベース２０１へのアクセスを行ってもよい。
【００３０】
分析装置１は、プログラム記憶部１０と、特定データ取得部１１と、関連判定部１２と、出力部１３と、プログラム解析部１５とを含む。
【００３１】
プログラム記憶部１０は、データベース２０１に含まれるデータに対して変更を行うプログラム３１１を記憶する。
【００３２】
特定データ取得部１１は、属性の識別子と、その識別子に関連付けられた属性との組み合わせを、１個以上取得する。属性の識別子は、その属性の属性名やその他の、属性を特定できるデータである。特定データ取得部１１により取得された組み合わせに識別子が含まれる属性の属性値として、その組み合わせに含まれる属性値を含むデータは、本実施の説明では、「特定データ」と表記される。後述される他の実施形態の説明においても同様である。
【００３３】
関連判定部１２は、後述されるプログラム解析部１５によって読み出され、解析されたプログラム３１１が、データベース２０１中の特定データに対して、アクセスを行い得たか否かを、解析の結果に基づき判定する。
【００３４】
関連判定部１２は、さらに、プログラム記憶部１０が記憶するプログラム３１１のコードにおいて、特定データ取得部１１により取得された属性値が指定される場所を特定してもよい。また、関連判定部１２は、特定データ取得部１１により取得された属性値が指定された変更が、データベース２０１中のデータに対して行われる場所を特定してもよい。それぞれの属性値が指定される場所と、データベース２０１中のデータに対する、属性値が指定された変更が行われる場所は、まとめて、データベース２０１に対する変更を行うコードの場所とも表記される。関連判定部１２は、例えば後述されるプログラム解析部１５による、プログラム３１１の解析の結果を使用して、その場所の特定を行えばよい。
【００３５】
出力部１３は、関連判定部１２による判定の結果を出力する。また、関連判定部１２がプログラム３１１中でデータベース２０１に対する変更を行うコードの場所を特定する場合、出力部１３は、関連判定部１２により特定された場所を出力する。
【００３６】
プログラム解析部１５は、プログラム記憶部１０に格納されているプログラム３１１の解析を行う。プログラム解析部１５は、特に、プログラム記憶部１０に格納されているプログラム３１１によって行われる、データベース２０１中のデータを変更する処理の解析を、プログラム３１１を解析することによって行う。
【００３７】
入力装置４は、ユーザが分析装置１に対して入力を行う装置である。入力装置４は、キーボード、マウス、あるいは他の入力装置である。
【００３８】
出力装置５は、分析装置１がユーザに対して出力を行う装置である。出力装置５は、例えばディスプレイ装置である。
【００３９】
次に、本実施形態の動作について、図面を参照して詳細に説明する。
【００４０】
図２は、本実施形態の分析装置１の動作の一例を表すフローチャートである。
【００４１】
図２に示す動作の開始時に、プログラム記憶部１０は、データベース２０１に含まれるデータに対して変更を行うプログラム３１１を記憶している。
【００４２】
プログラム記憶部１０が記憶するプログラム３１１は、例えば、アクセス装置３が実行するプログラム３１１のソースコードである。プログラム記憶部１０が記憶するプログラム３１１は、関連判定部１２やプログラム解析部１５が構造の解析を行える形式で格納されていればよい。例えば、プログラム記憶部１０が記憶するプログラム３１１は、ソースコードに関連付けられた、コンパイル後の実行可能コードであってもよい。以下では、主に、プログラム記憶部１０に格納されているプログラム３１１が、アクセス装置３が実行するプログラム３１１のソースコードである場合の説明を行う。なお、アクセス装置３が、コンパイル後のコードではなく、ソースコードの形式のプログラム３１１をメモリにロードして実行するよう構成されている場合、プログラム３１１のソースコードは、実行可能コードと見なすことができる。プログラム記憶部１０が記憶するプログラム３１１が、アクセス装置３のＣＰＵ３０が実行可能な形式である場合、アクセス装置３のＣＰＵ３０は、プログラム記憶部１０から読み出したプログラム３１１を、メモリ３１にロードして実行してもよい。また、プログラム３１１は複数のファイルで構成されていてもよい。
【００４３】
アクセス装置３が、与えられたパラメータを使用してプログラム３１１を実行する場合、プログラム記憶部１０は、過去にアクセス装置３によってプログラム３１１が実行された時のパラメータを、プログラム３１１に関連付けて記憶していてもよい。アクセス装置３が、一度に複数のパラメータを使用してプログラム３１１を実行する場合、プログラム記憶部１０は、一度に使用されるパラメータの組み合わせを、プログラム３１１に関連付けて記憶する。アクセス装置３が、異なるパラメータを使用して、同じプログラム３１１を複数回実行した場合、プログラム記憶部１０は、同じプログラム３１１にパラメータの組み合わせを２つ以上関連付けて記憶する。分析装置１は、そのようなパラメータを、アクセス装置３から取得し、プログラム記憶部１０に格納すればよい。また、アクセス装置３は、パラメータを表すデータとプログラム３１１の識別子を、例えばプログラム３１１の実行時に、分析装置１に送信するよう構成されていればよい。
【００４４】
プログラム記憶部１０は、複数のプログラム３１１を記憶していてもよい。それぞれのプログラム３１１が１個以上のファイルで構成される場合、プログラム記憶部１０は、それぞれのファイルを、そのファイルが属するプログラム３１１の識別子に関連付けて記憶する。
【００４５】
図２に示す動作の例では、まず、プログラム解析部１５が、プログラム記憶部１０から、プログラム３１１を読み出す（ステップＳ１０１）。
【００４６】
プログラム３１１が複数のファイルによって構成されている場合、プログラム解析部１５は、プログラム３１１を構成する複数のファイルをまとめて読み出せばよい。プログラム記憶部１０に複数のプログラム３１１が格納されている場合、プログラム解析部１５は、それらの複数のプログラム３１１を読み出す。そして、分析装置１は、読み出された複数のプログラム３１１からプログラム３１１を順次選択しながら、ステップＳ１０２以下の動作を繰り返せばよい。プログラム３１１に関連付けられたパラメータが存在する場合は、プログラム解析部１５は、さらに、そのパラメータを読み出す。
【００４７】
次に、プログラム解析部１５が、読み出されたプログラム３１１を解析する（ステップＳ１０２）。
【００４８】
ステップＳ１０２で、プログラム解析部１５は、プログラム３１１の解析を行う。プログラム解析部１５は、プログラム記憶部１０が記憶するプログラム３１１に使用されている言語に応じた、既存の解析技術を使用して、プログラム３１１の解析を行えばよい。プログラム解析部１５における解析技術として、例えば、プログラム３１１のデバッガに使用される解析技術が使用可能である。
【００４９】
プログラム３１１の構造の解析では、プログラム解析部１５は、プログラム３１１の制御構造を解析する。また、プログラム解析部１５は、データベース２０１のデータに対して、挿入を行う命令、更新を行う命令、及び削除を行う命令を抽出する。本発明の実施形態の説明では、データベース２０１のデータに対する、挿入、更新、及び削除は、変更と表記される。さらに、これらの挿入を行う命令、更新を行う命令、及び削除を行う命令は変更命令と表記される。変更は、データベース２０１中のデータに変化を生じさせる他の処理を含んでいてもよい。変更命令は、命令を実行することによりデータベース２０１中のデータに変化が生じる他の命令を含んでいてもよい。命令は、コンピュータに行わせる処理を表すプログラム３１１の一部分である。
【００５０】
さらに、プログラム解析部１５は、データベース２０１のデータに対する変更命令において、指定される属性とその属性値や、指定される属性値を表す変数を抽出する。そして、プログラム解析部１５は、指定される属性値を表す変数に、具体的な値を設定する命令を抽出する。プログラム解析部１５は、プログラム３１１の制御構造の中で、変数に設定された値が有効な範囲を抽出する。変数に設定された値が有効な範囲は、変数に値が代入される場所から、その変数に他の値が代入される場所までの範囲を意味する。
【００５１】
プログラム解析部１５が出力する解析の結果は、例えば、抽出された、変更命令、属性値を設定する命令、変数に属性値を設定する命令と、それらがプログラム３１１中で記述されている場所を含む。プログラム３１１中で記述されている場所は、例えば、ファイルの識別子と、そのファイル内の記述の位置である。記述の位置は、例えば、その記述の行の番号、あるいは、ファイルの先頭からのバイト数等で表される。解析の結果は、それぞれの命令において指定されている属性と属性値の情報を含む。属性値が代入された変数が属性値として命令に与えられている場合、属性値の情報は、その変数を特定する情報である。値が属性値として命令に与えられている場合、属性値の情報は、その値である。また、解析の結果は、変数と、その変数に代入される値と、変数に値が代入される場所を含む。変数への値の代入は、引数として関数に与えられる値が、関数内の引数を表す変数に代入されることも含む。そして、解析の結果は、変数に設定された値が有効な範囲を含む。解析の結果は、以上の例に限られない。
【００５２】
プログラム３１１に関連付けられているパラメータが存在する場合、プログラム解析部１５は、そのパラメータを使用して、プログラム３１１の解析を行うこともできる。プログラム３１１に関連付けられているパラメータの組み合わせが複数存在する場合、プログラム解析部１５は、パラメータの組み合わせ毎に、組み合わせに含まれるパラメータを使用してプログラム３１１の解析を行うことができる。
【００５３】
そして、プログラム解析部１５は、解析の結果を、関連判定部１２に送信する。あるいは、プログラム解析部１５は、解析の結果を、プログラム記憶部１０に格納してもよい。プログラム記憶部１０に複数のプログラム３１１が格納されている場合、プログラム解析部１５は、解析の結果を、例えばプログラム３１１の識別子に関連付けて、プログラム記憶部１０に格納してもよい。そして、関連判定部１２が、プログラム記憶部１０から、解析の結果を読み出してもよい。
【００５４】
次に、特定データ取得部１１が、属性の識別子と、その識別子に関連付けられた属性値との組み合わせを、１個以上取得する（ステップＳ１０３）。
【００５５】
特定データ取得部１１は、例えば、入力装置４を介してユーザが入力した、属性の識別子と属性値の組み合わせを取得する。
【００５６】
特定データ取得部１１は、入力装置４を介してユーザが指定した、データベース２０１が含むデータを、データベース装置２から取得してもよい。そして特定データ取得部１１は、取得したデータに含まれる属性の、識別子と属性値の組み合わせを取得してもよい。特定データ取得部１１は、取得したデータが含む全ての属性の、識別子と属性値の組み合わせではなく、取得したデータが含む属性のうち、属性入力装置４を介してユーザが指定した属性の、識別子と属性値の組み合わせを取得してもよい。特定データ取得部１１は、ユーザが入力した条件によってデータベース２０１から検索されたデータを取得してもよい。特定データ取得部１１は、あらかじめ決められている条件によってデータベース２０１から検索されたデータを取得してもよい。例えば、特定データ取得部１１は、挿入された時期が最も新しいデータを取得してもよい。あるいは、特定データ取得部１１は、特定データ取得部１１は、データベース２０１中に最も多く存在するデータを取得してもよい。上述のように、特定データ取得部１１が取得する全ての組み合わせに含まれる属性値を、その属性値と同じ組み合わせに識別子が含まれる属性の属性値として含むデータは、特定データと表記される。ステップＳ１０３で特定データ取得部１１がデータを取得し、取得したデータに含まれるいずれか１個以上の属性の、識別子と属性値の組み合わせを取得する場合、その取得されるデータは特定データである。
【００５７】
図３は、データベース２０１中のデータの一例を表す図である。図３に示す例では、データは、属性名すなわち属性の識別子がＡである属性の識別子及び属性値の組み合わせと、属性名がＢである属性の識別子及び属性値の組み合わせを含む。図３に示すデータでは、属性Ａの属性値は１００である。また、属性Ｂの属性値は２００である。
【００５８】
図４は、特定データ取得部１１が取得したデータに対して、ユーザが指定した属性を表す図である。図４に示す例では、データが含む属性は、属性Ａ、属性Ｂ、及び属性Ｃである。また、ユーザが指定した属性は、属性Ａである。
【００５９】
次に、関連判定部１２は、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性があるか否かを判定する（ステップＳ１０４）。言い換えると、関連判定部１２は、取得された組み合わせに識別子が含まれる属性の属性値として、組み合わせに含まれる属性値が指定される変更が、プログラム３１１によってデータベース２０１中のデータに対して行われ得たか否かを判定する。
【００６０】
関連判定部１２は、例えば、プログラム解析部１５がプログラム３１１を解析した結果に基づき、プログラム３１１から、以下で説明される、データベース２０１中の特定データに対する変更命令を検出することによって、ステップＳ１０４における判定を行えばよい。データベース２０１中の特定データに対して変更を行う変更命令を、以下では、特定データ変更命令とも表記する。特定データ変更命令は、取得された組み合わせに識別子が含まれるいずれか１個以上の属性の属性値として、その組み合わせに含まれ、その識別子に関連付けられている属性値が、変更命令の実行時に指定され得る変更命令である。ただし、特定データ変更命令には、取得されたいずれか組み合わせに対して、組み合わせに識別子が含まれる属性の属性値として、その組み合わせに含まれる属性値とは異なる属性値が、変更命令の実行時に指定される変更命令は含まれない。
【００６１】
例えば、１個の組み合わせが取得される場合、関連判定部１２は、その組み合わせに識別子が含まれる属性の属性値として、その組み合わせに含まれる属性値が指定される変更命令を検出する。２個以上の組み合わせが取得される場合、関連判定部１２は、少なくともいずれか１個の組み合わせに対して、その組み合わせに識別子が含まれる属性の属性値として、その組み合わせに含まれる属性値が指定される変更命令を検出する。ただし、関連判定部１２は、取得された他の組み合わせに対して、その組み合わせに識別子が含まれる属性の属性値として、その組み合わせに含まれる属性値以外の属性値が指定される変更命令を検出しない。
【００６２】
関連判定部１２は、プログラム３１１から特定データ変更命令が検出された場合、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性があると判断する。関連判定部１２は、プログラム３１１から特定データ変更命令が検出されない場合、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性がないと判断する。
【００６３】
関連判定部１２は、具体的には、例えば次のように、ステップＳ１０４における判定を行う。
【００６４】
図５は、関連判定部１２の、ステップＳ１０４における判定処理の詳細を例示する府フローチャートである。
【００６５】
図５によると、関連判定部１２は、まず、プログラム解析部１５から、プログラム３１１の解析結果を取得する（ステップＳ１１１）。前述のように、プログラム３１１の解析結果は、プログラム３１１中の制御構造、変更命令、変更命令で指定される属性値や変数、変数に代入される値、変数に代入された値が有効な範囲、及び、それらがプログラム３１１中で記述されている場所を含む。上述のように、本発明の実施形態の説明では、挿入を行う命令、更新を行う命令、削除を行う命令は、まとめて、変更命令とも表記される。また、上述のように、変更命令は、命令を実行することによりデータベース２０１中のデータに変化が生じる、他の命令を含んでいてもよい。
【００６６】
解析結果に未選択の変更命令が存在する場合（ステップＳ１１２でＹｅｓ）、関連判定部１２は、未選択の変更命令からいずれか一つの変更命令を選択する（ステップＳ１１３）。
【００６７】
そして、関連判定部１２は、プログラム３１１の解析結果に基づき、選択された変更命令の実行時に、指定されている属性を特定する（ステップＳ１１４）。すなわち、関連判定部１２は、変更命令の対象であるデータを選択するための条件としてプログラム３１１中で指定される、属性を特定する。さらに、関連判定部１２は、変更命令の対象であるデータの、変更命令による変更後の属性値としてプログラム３１１中で指定される、属性を特定する。
【００６８】
次に、関連判定部１２は、選択された変更命令が特定データ変更命令であるか否かを判定する（ステップＳ１１５）。
【００６９】
ステップＳ１１５で、まず、関連判定部１２は、選択された変更命令において、ステップＳ１０３で取得された組み合わせに識別子が含まれる属性が指定されているか否かを判定する。選択された変更命令において、ステップＳ１０３で取得された組み合わせに識別子が含まれる属性が指定されていない場合、関連判定部１２は、選択された変更命令が特定データ変更命令ではないと判定する。
【００７０】
選択された変更命令において、ステップＳ１０３で取得された組み合わせに識別子が含まれる属性が指定されている場合、関連判定部１２は、変更命令に対して指定されている各属性の属性値を特定する。
【００７１】
具体的には、まず、関連判定部１２は、選択された属性の属性値が設定されている、プログラム３１１中の場所を特定する。例えば、属性値が直接変更命令に渡されている場合、すなわち、プログラム３１１中の変更命令の場所に属性値の値そのものが記述されている場合、プログラム３１１中で属性値が設定されている場所は、変更命令の場所である。また、属性値が格納されている変数が変更命令に渡されている場合、プログラム３１１中で属性値が設定されている場所は、その属性値が変数に代入されている場所ある。
【００７２】
以下の説明において、プログラム３１１中の、属性値が設定されている場所を、属性値確定箇所と表記する。また、プログラム３１１中の、変更命令が記述されている場所と、その変更命令で指定される属性値が設定されている場所を、関連歌書と表記する。
【００７３】
関連判定部１２は、特定された場所で設定されている属性値を特定する。特定された場所で、２個以上の値が属性値として設定されうる場合、関連判定部１２は、設定される得る属性値の集合や、設定される得る属性値の範囲を特定する。その範囲は、有限でなくてもよい。例えば、プログラム３１１を実行する際のパラメータとして属性値が与えられる場合や、プログラム３１１の実行中のユーザによる入力により属性値が与えられる場合、属性値はプログラム３１１を実行するまで定まらない。属性値が定まらない場合、関連判定部１２は、変更命令の実行時に、その属性値が取りうる全ての値が設定されうると判定する。プログラム記憶部１０に、プログラム３１１に関連付けられている、そのプログラム３１１が過去に実行された際与えられたパラメータが格納されている場合、関連判定部１２は、そのパラメータを使用して、属性値を特定してもよい。
【００７４】
データを選択するための条件として属性値が指定されている属性が、変更後の属性値が指定されている属性に含まれる、関連判定部１２は、変更後の属性値として指定されている属性値を、指定されている属性値として選択する。
【００７５】
そして、関連判定部１２は、例えば、未選択の属性が無くなるまで、以下の動作を繰り返す。
【００７６】
関連判定部１２は、変更命令に指定されている属性とその属性値から、未選択の属性とその属性値を一つ選択する。この選択された属性値を、第１の属性値と表記する。
【００７７】
関連判定部１２は、選択された属性の識別子に関連付けられている属性値を、ステップＳ１０３で取得された組み合わせから抽出する。この抽出された属性値を、第２の属性値と表記する。関連判定部１２は、第１の属性値と第２の属性値を比較し、それらが整合するか否かを判定する。第１の属性値と第２の属性値が一致する場合、関連判定部１２は、第１の属性値と第２の属性値が整合すると判定する。ステップＳ１１５で特定された第１の属性値が、属性値の集合または属性値の範囲である場合、第２の属性値がその属性値の集合又は属性値の範囲に含まれれば、関連判定部１２は、第１の属性値と第２の属性値が整合すると判定する。例えば、第１の属性値が、実行時にプログラム３１１に与えられるパラメータによって定まる場合、第１の属性値は、プログラム３１１の実行時まで定まらない。第１の属性値が、プログラム３１１の実行時まで定まらない場合、関連判定部１２は、第１の属性値と第２の属性値が整合すると判定する。
【００７８】
第１の属性値が一つの値であり、第１の属性値と第２の属性値が一致しない場合、関連判定部１２は、第１の属性値と第２の属性値が整合しないと判定する。第１の属性値が、属性値の集合または属性値の範囲であり、第２の属性値がその属性値の集合又は属性値の範囲に含まれない場合、関連判定部１２は、第１の属性値と第２の属性値が整合しないと判定する。
【００７９】
ステップＳ１０３で取得された組み合わせに、選択された属性の属性値が含まれていない場合、関連判定部１２は、第１の属性値と第２の属性値の比較を行わない。
【００８０】
第１の属性値と第２の属性値が整合しない属性が存在しない場合、関連判定部１２は、選択された変更命令が特定データ変更命令であると判定する。少なくともいずれか一つの属性の、第１の属性値と第２の属性値が整合しない場合、関連判定部１２は、選択された変更命令が特定データ変更命令ではないと判定する。
【００８１】
選択された変更命令が特定データ変更命令であると判定された場合（ステップＳ１１６でＹｅｓ）、すなわち、プログラム３１１から特定データ変更命令が検出された場合、プログラム３１１を実行することにより、特定データが変更される可能性がある。したがって、この場合、関連判定部１２は、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性があると判断する（ステップＳ１１７）。そして、関連判定部１２は、図５に示す動作を終了する。
【００８２】
選択された変更命令が特定データ変更命令ではないと判定された場合（ステップＳ１１６でＮｏ）、関連判定部１２の動作は、ステップＳ１１２に戻る。
【００８３】
プログラム３１１の解析結果に、変更命令が含まれない場合、未選択の変更命令は存在しない。また、プログラム３１１の解析結果に含まれる全ての変更命令が、特定データ変更命令でない場合、最終的に未選択の変更命令は存在しなくなる。
【００８４】
未選択の変更命令が存在しない場合（ステップＳ１１２でＮｏ）、関連判定部１２は、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性がないと判断する（ステップＳ１１８）。そして、関連判定部１２は、図５に示す動作は終了する。
【００８５】
ステップＳ１０４の動作の終了後、出力部１３は、ステップＳ１０４の結果を出力する（ステップＳ１０５）。出力部１３は、ステップＳ１０４の結果を、プログラム３１１の識別子に関連付けて出力してもよい。
【００８６】
データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性がある場合、出力部１３は、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性があることを表す文字列、記号、あるいは図形等を出力する。データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性がある場合、出力部１３は、ステップＳ１０４の結果として、プログラム３１１中の変更命令の場所や、変更命令の実行時に指定される属性値が設定される場所を表示してもよい。
【００８７】
データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性が無い場合、出力部１３は、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性が無いことを表す文字列、記号、あるいは図形等を出力する。データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性が無い場合、出力部１３は、出力を行わなくてもよい。
【００８８】
次に、本実施形態の効果について説明する。
【００８９】
本実施形態には、プログラム３１１が、与えられた属性値を含むデータに対する変更を行い得たプログラム３１１であるか否かを判定できるという効果がある。
【００９０】
その理由は、関連判定部１２が、特定データ取得部１１が取得した属性値が指定されている、データを変更する変更命令を、プログラム３１１から検出するからである。
【００９１】
また、本実施形態には、ユーザが個々の属性値を入力する必要がなくなるという他の効果がある。
【００９２】
その理由は、特定データ取得部１１が、ユーザにより指定されたデータから、属性値を取得するからである。
【００９３】
（第２の実施形態）
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【００９４】
本実施形態の情報処理システム１００の構成は、図１に示す、第１の実施形態の情報処理システム１００の構成と同じである。
【００９５】
本実施形態の関連判定部１２は、さらに、プログラム３１１に含まれる、それぞれの特定データ変更命令の場所を特定する。また、本実施形態の関連判定部１２は、それぞれの特定データ変更命令の実行時に指定される全ての属性値に対して、属性値が設定される場所を特定する。すなわち、本実施形態の関連判定部１２は、抽出された全ての特定データ変更命令に対して、関連箇所を特定する。
【００９６】
本実施形態の出力部１３は、特定された、特定データ変更命令の場所と、属性値が設定される場所を出力する。すなわち、本実施形態の出力部１３は、抽出された全ての特定データ変更命令に対して、関連箇所を出力する。
【００９７】
本実施形態の情報処理システム１００の他の構成要素は、同じ番号が付与された、第１の実施形態の構成要素と同じである。従って、詳細な説明を省略する。
【００９８】
次に、本実施形態の分析装置１の動作について、図面を参照して詳細に説明する。
【００９９】
図２は、本実施形態の分析装置１の全体の動作を表す図である。
【０１００】
本実施形態の分析装置１の、ステップＳ１０１からステップＳ１０３までの動作は、第１の実施形態の分析装置１の、ステップＳ１０１からステップＳ１０３までの動作と同じである。
【０１０１】
関連判定部１２は、ステップＳ１０４において、プログラム３１１中の、特定データ変更命令の場所及びその特定データ変更命令で指定される属性値が設定される場所を特定する。
【０１０２】
図６は、特定データ変更命令の場所を全て特定する場合の、関連判定部１２の、ステップＳ１０４における判定処理の詳細を例示するフローチャートである。
【０１０３】
本実施形態の分析装置１の、ステップＳ１１１からステップＳ１１６までの動作は、第１の実施形態の分析装置１の、同じ番号が付与されたステップの動作と同じである。
【０１０４】
ステップＳ１１５で特定された属性の、識別子と属性値の組み合わせの全てが、取得された組み合わせに含まれる場合（ステップＳ１１６でＹｅｓ）、関連判定部１２は、ステップＳ２０１の動作を行う。
【０１０５】
ステップＳ２０１で、関連判定部１２は、選択された変更命令の場所と、その変更命令に対して指定されている属性値が設定されている場所を、検出結果に追加する。関連判定部１２は、例えば、プログラム３１１中における、選択された変更命令の記述及びその場所と、その変更命令に対して指定されている属性値を設定する記述及びその場所を、検出結果に追加してもよい。
【０１０６】
ステップＳ１１５で特定された属性の、識別子と属性値の組み合わせの全てが、取得された組み合わせに含まれない場合（ステップＳ１１６でＹｅｓ）、関連判定部１２の動作は、ステップＳ１１２に戻る。
【０１０７】
ステップＳ１１２で、未選択の変更命令が存在しない場合（ステップＳ１１２でＮｏ）、関連判定部１２は、図６に示す動作を終了する。
【０１０８】
プログラム３１１が上述した特定データ変更命令を含んでいる場合、図６に示す動作の終了時に、検出結果には、特定データ変更命令の場所及びその特定データ変更命令で指定される属性値の設定場所が含まれる。検出結果が、特定データ変更命令を含む場合、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性がある。プログラム３１１が特定データ変更命令を含まない場合、検出結果は特定データ変更命令の場所を含まれない。検出結果が特定データ変更命令を含まない場合、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性はない。従って、本実施形態の関連判定部１２も、プログラム３１１中の特定データ変更命令を抽出することにより、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性の有無を判定していることになる。検出結果を、データベース２０１中の特定データに対して、プログラム３１１が変更を行った可能性の有無の判断結果と見なすことができる。
【０１０９】
ステップＳ１０５で、出力部１３は、上述した検出結果を出力する。すなわち、プログラム３１１が上述した特定データ変更命令を含む場合、出力部１３は、選択された変更命令の場所と、その変更命令に対して指定されている属性値が設定されている場所を出力する。この場合、出力部１３は、例えば、プログラム３１１中における、選択された変更命令の記述及びその場所と、その変更命令に対して指定されている属性値を設定する記述及びその場所を、検出結果に追加してもよい。プログラム３１１が上述した特定データ変更命令を含まない場合、出力部１３は、例えば、プログラム３１１がデータベース２０１中の上述した特定データを変更する変更命令を含まないことを出力する。あるいは、この場合、出力部１３は、何も出力しなくてもよい。
【０１１０】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態における理由と同じである。
【０１１１】
本実施形態には、さらに、与えられた属性値を含むデータに対する変更を行い得たプログラム３１１の、その変更の処理に関係する箇所を表示できるという効果がある。また、本実施形態には、データベース装置２が、データベース２０１のデータを変更するアクセスを記録する必要がなくなるという効果がある。
【０１１２】
その理由は、関連判定部１２が、プログラム３１１が含む各特定データ変更命令と、その関連箇所を抽出するからである。前述のように、特定データは、特定データ取得部１１が取得した識別子により特定される属性の属性値と指定、その識別子に関連付けられている、特定データ取得部１１が取得した属性値を含むデータである。特定データ変更命令は、特定データに対して変更を行い得た命令である。関連箇所は、プログラム３１１中の特定データ変更命令と、その特定データ変更命令で指定される属性値が記載されている場所である。
【０１１３】
（第３の実施形態）
次に、本発明の第３の実施形態について、図面を参照して詳細に説明する。
【０１１４】
本実施形態の情報処理システム１００の構成は、図１に示す、第１の実施形態の情報処理システム１００の構成と同じである。
【０１１５】
本実施形態の情報処理システム１００の構成要素は、以下で説明される事項を除き、同じ番号が付与された、第２の実施形態の構成要素と同じである。
【０１１６】
本実施形態では、特定データ変更命令は、特定データ取得部１１が取得した、属性の識別子と属性値の全ての組み合わせに対して、組み合わせに識別子が含まれる属性の属性値として、組み合わせに含まれる属性値が指定される変更命令である。
【０１１７】
本実施形態の関連判定部１２は、上述した特定データ変更命令の場所と、その特定データ変更命令で指定される属性値が設定される場所を、プログラム３１１中で特定する。
【０１１８】
次に、本実施形態の分析装置１の動作について、図面を参照して詳細に説明する。
【０１１９】
図２は、本実施形態の分析装置１の全体の動作の一例を表す図である。本実施形態の分析装置１の全体の動作は、ステップＳ１０４の動作を除き、第２の実施形態の分析装置１の全体の動作と同じである。
【０１２０】
図６は、本実施形態の分析装置１の、ステップＳ１０４の動作の一例を表す図である。
【０１２１】
本実施形態の分析装置１のステップＳ１０４の動作は、図６に示すステップＳ１１５の動作が、第２の実施形態の分析装置１のステップＳ１０４の動作と異なる。本実施形態の分析装置１は、ステップＳ１０４において、ステップＳ１１５の動作を除き、第２の実施形態の分析装置１と同じ動作を行う。
【０１２２】
ステップＳ１１５において、関連判定部１２は、さらに、ステップＳ１０３で取得された組み合わせに、選択された変更命令において属性値が指定されない属性の識別子が含まれるか否かを判定する。関連判定部１２は、この判定を、例えば、ステップＳ１０３で取得された組み合わせに識別子が含まれる属性が、選択された変更命令において指定されているか否かを判定した後に、行えばよい。そして、関連判定部１２は、ステップＳ１０３で取得された組み合わせに、選択された変更命令において属性値が指定されない属性の識別子が含まれる場合、選択された変更命令は特定データ変更命令でないと判定する。
【０１２３】
本実施形態の関連判定部１２は、ステップＳ１１５において、以上の動作を除き、第２の実施形態の関連判定部１２と同じ動作を行う。
【０１２４】
以上で説明した本実施形態には、第１及び第２の実施形態と同じ効果がある。その理由は、第１及び第２の実施形態における理由と同じである。
【０１２５】
本実施形態には、さらに、与えられた属性値の一部を含まないデータに対する変更の処理に関連する箇所を、表示から除外することができるという効果がある。
【０１２６】
その理由は、関連判定部１２が、与えられた全ての属性値が指定された変更命令を、プログラム３１１から抽出するからである。
【０１２７】
（第４の実施形態）
次に、本発明の第４の実施形態について、図面を参照して詳細に説明する。
【０１２８】
本実施形態の情報処理システム１００の構成は、図１に示す、第１の実施形態の情報処理システム１００の構成と同じである。
【０１２９】
本実施形態の情報処理システム１００の構成要素は、以下で説明される事項を除き、同じ番号が付与された、第３の実施形態の構成要素と同じである。
【０１３０】
本実施形態の特定データ取得部１１は、属性の識別子と属性値の組み合わせに加えて、属性値が関連付けられていない属性の識別子を取得する。以下の説明では、特定データ取得部１１が取得する識別子に、属性値が関連付けられていない属性は、任意値属性と表記される。
【０１３１】
本実施形態では、特定データ変更命令は、前述の組み合わせに識別子が含まれる属性の属性値として、その組み合わせに含まれる属性値が指定され、任意値属性にいずれかの属性値が指定される変更命令である。また、本実施形態では、プログラム３１１中で、特定データ取得部１１が取得した組み合わせに識別子が含まれる属性の属性値が設定される場所が、属性値確定箇所である。属性値確定箇所は、任意値属性に属性値が設定される場所は含まれない。また、プログラム３１１中の、特定データ変更命令が記述されている場所と、属性値確定箇所が、関連箇所である。
【０１３２】
本実施形態の関連判定部１２は、本実施形態の特定データ変更命令の場所と、その特定データ変更命令で指定される、任意値属性以外の属性の属性値が設定される場所を、プログラム３１１中で特定する。関連判定部１２は、任意値属性に属性値が設定される場所の抽出を行わない。
【０１３３】
本実施形態の出力部１３は、抽出された特定データ変更命令の関連箇所を出力する。
【０１３４】
次に、本実施形態の分析装置１の動作について、図面を参照して詳細に説明する。
【０１３５】
図２は、本実施形態の分析装置１の全体の動作の一例を表す図である。本実施形態の分析装置１の全体の動作は、ステップＳ１０４の動作を除き、第３の実施形態の分析装置１の全体の動作と同じである。
【０１３６】
図６は、本実施形態の分析装置１の、ステップＳ１０４の動作の一例を表す図である。
【０１３７】
本実施形態の分析装置１のステップＳ１０４の動作は、図６に示すステップＳ１１５の動作が、第３の実施形態の分析装置１のステップＳ１０４の動作と異なる。本実施形態の分析装置１は、ステップＳ１０４において、ステップＳ１１５の動作を除き、第３の実施形態の分析装置１と同じ動作を行う。
【０１３８】
ステップＳ１１５において、関連判定部１２は、さらに、選択された変更命令において、それぞれの任意値属性に属性値が指定されているか否かを判定する。関連判定部１２は、この判定を、例えば、ステップＳ１０３で取得された組み合わせに、選択された変更命令において属性値が指定されない属性の識別子が含まれるか否かを判定した後に、行えばよい。そして、関連判定部１２は、選択された変更命令において、いずれかの任意値属性に属性値が指定されない場合、選択された変更命令は特定データ変更命令でないと判定する。すなわち、関連判定部１２は、選択された変更命令において属性値が指定される属性に、いずれかの任意値属性が含まれない場合、選択された変更命令は特定データ変更命令でないと判定する。
【０１３９】
本実施形態の関連判定部１２は、ステップＳ１１５において、以上の動作を除き、第３の実施形態の関連判定部１２と同じ動作を行う。
【０１４０】
以上で説明した本実施形態には、第１、第２、及び第３の実施形態と同じ効果がある。その理由は、第１、第２、及び第３の実施形態における理由と同じである。
【０１４１】
本実施形態には、さらに、抽出する変更命令が変更を行うデータの柔軟な指定が可能になるという効果がある。
【０１４２】
その理由は、関連判定部１２が、特定データ取得部１１が識別子だけを取得した属性に対して、その属性の属性値が指定されている変更命令を、指定されている値によらず、抽出するからである。
【０１４３】
（第５の実施形態）
次に、本発明の第５の実施形態について、図面を参照して詳細に説明する。
【０１４４】
図７は、本実施形態の情報処理システム１００Ａの構成を表すブロック図である。図１に示される第１の実施形態の情報処理システム１００と比較すると、本実施形態の情報処理システム１００Ａは、分析装置１の代わりに分析装置１Ａを含む。
【０１４５】
本実施形態の分析装置１Ａは、第１の実施形態の分析装置１の各構成要素に加えて、データ順序付け部１４を含む。
【０１４６】
本実施形態の特定データ取得部１１は、属性の識別子と属性値の組み合わせを１個以上含む組と、その組に関連付けられた特徴量を取得する。
【０１４７】
本実施形態の順位付け部１４は、取得された特徴量に基づき、組の順位を決定する。
【０１４８】
本実施形態の関連判定部１２は、決定された順位に従って順次組を選択する。そして、本実施形態の関連判定部１２は、選択された組に含まれる組み合わせの各々に対して、第１の実施形態の関連判定部１２と同様の動作を行う。本実施形態の関連判定部１２は、選択された組に含まれる組み合わせの各々に対して、第２の実施形態の関連判定部１２と同様の動作を行ってもよい。本実施形態の関連判定部１２は、選択された組に含まれる組み合わせの各々に対して、第３の実施形態の関連判定部１２と同様の動作を行ってもよい。本実施形態の特定データ取得部１１は、第４の実施形態の特定データ取得部１１と同様の動作を行ってもよい。そして、本実施形態の関連判定部１２は、選択された組に含まれる組み合わせの各々に対して、第４の実施形態の関連判定部１２と同様の動作を行ってもよい。
【０１４９】
図８は、本実施形態の分析装置１Ａの全体の動作の一例を表す図である。
【０１５０】
図８に示す、分析装置１ＡのステップＳ１０１とステップＳ１０２の動作は、第１の実施形態の分析装置１のステップＳ１０１とステップＳ１０２の動作と同じである。
【０１５１】
次に、特定データ取得部１１は、それぞれ、属性の識別子とその識別子に関連付けられた属性値の組み合わせを１個以上含む、複数の組を取得する（ステップＳ３００）。また、特定データ取得部１１は、それぞれの組に関連付けられた特徴量を取得する（ステップＳ３０１）。
【０１５２】
特定データ取得部１１は、例えば、ユーザが入力装置４を使用して指定した、複数の上述した組を取得する。
【０１５３】
特定データ取得部１１は、属性の識別子とその識別子に関連付けられた属性値の組み合わせを１個以上含む、複数のデータを、上述した組として取得してもよい。特定データ取得部１１は、例えば、ユーザが入力装置４を使用して指定した、複数のデータを、データベース装置２のデータベース２０１から取得する。特定データ取得部１１は、例えば、ユーザが入力装置４を使用して指定した条件や、あらかじめ指定された条件に合致するデータを、データベース２０１中のデータから検索してもよい。そして、特定データ取得部１１は、検索された複数のデータをデータベース装置２から取得してもよい。
【０１５４】
特定データ取得部１１は、例えばデータベース装置２から、取得された組あるいはデータに関連付けられた特徴量を取得する。特徴量は、例えば、データベース２０１中の同一データが出現する頻度、すなわち、データベース２０１中に存在する、特徴量が関連付けられるデータと同一のデータの個数である。特徴量は、他の値であってもよい。一つのデータに対して、複数のデータが関連付けられていてもよい。特定データ取得部１１は、複数のデータと、それぞれのデータに関連付けられた複数の特徴量を取得してもよい。特徴量は、あらかじめ抽出され、データに関連付けられてデータベース装置２に格納されていてもよい。また、特定データ取得部１１が、それぞれのデータの特徴量を抽出してもよい。その場合、特定データ取得部１１は、例えば、入力装置４を介してユーザによって指示された特徴量を、それぞれのデータに対して抽出すればよい。
【０１５５】
図９は、特定データ取得部１１が取得する、データとデータに関連付けられた特徴量の一例を表す図である。
【０１５６】
図９に示す例では、それぞれのデータに、二つの特徴量が関連付けられている。また、データは、属性の識別子と属性値の組み合わせを一つ含む。さらに、データは、属性値が関連付けられていない属性の識別子を２つ含む。
【０１５７】
次に、順位付け部１４が、それぞれの組に関連付けられた特徴量に基づき、各組の順位を決定する（ステップＳ３０２）。
【０１５８】
例えば、特徴量が、データベース２０１中の同一データが出現する頻度である場合、例えば、順位付け部１４は、頻度が多い順になるよう、組であるデータの順位を決定する。順位の決定方法は、既存の任意の方法でよい。順位付け部１４は、複数の種類の特徴量を使用して、順位を決定してもよい。
【０１５９】
次に、特定データ取得部１１は、決定された順位に従って、順次一つの組を選択する（ステップＳ３０３）。
【０１６０】
そして、特定データ取得部１１は、選択された組に含まれる、属性の識別子と、その識別子に関連付けられている属性値の組み合わせを取得する（ステップＳ３０４）。
【０１６１】
次に、関連判定部１２が、ステップＳ１０４の動作を行う。さらに、出力部１３が、ステップＳ１０５の動作を行う。
【０１６２】
ステップＳ１０４において、関連判定部１２は、第１の実施形態の関連判定部１２が行うステップＳ１０４の動作と同じ動作を行ってもよい。さらに、ステップＳ１０５において、出力部１３は、第１の実施形態の出力部１３が行うステップＳ１０５の動作と同じ動作を行ってもよい。
【０１６３】
ステップＳ１０４において、関連判定部１２は、第２の実施形態の関連判定部１２が行うステップＳ１０４の動作と同じ動作を行ってもよい。さらに、ステップＳ１０５において、出力部１３は、第１の実施形態の出力部１３が行うステップＳ１０５の動作と同じ動作を行ってもよい。
【０１６４】
ステップＳ１０４において、関連判定部１２は、第３の実施形態の関連判定部１２が行うステップＳ１０４の動作と同じ動作を行ってもよい。さらに、ステップＳ１０５において、出力部１３は、第１の実施形態の出力部１３が行うステップＳ１０５の動作と同じ動作を行ってもよい。
【０１６５】
ステップＳ１０４において、関連判定部１２は、第４の実施形態の関連判定部１２が行うステップＳ１０４の動作と同じ動作を行ってもよい。さらに、ステップＳ１０５において、出力部１３は、第１の実施形態の出力部１３が行うステップＳ１０５の動作と同じ動作を行ってもよい。
【０１６６】
ステップＳ１０５の動作が終了した後、未選択の組あるいはデータが存在する場合（ステップＳ３０５でＹｅｓ）、分析装置１Ａの動作は、ステップＳ３０２に戻る。
【０１６７】
ステップＳ１０５の動作が終了した後、未選択の組あるいはデータが存在しない場合（ステップＳ３０５でＮｏ）、分析装置１Ａは動作を終了する。
【０１６８】
以上で説明した本実施形態には、さらに、分析装置１Ａが複数の特定データをに対して処理を行う場合に、処理の順序を制御できるという効果がある。
【０１６９】
その理由は、順位付け部１４が、複数の特定データのそれぞれに関連付けられた特徴量に基づき、処理の順序を決定するからである。
【０１７０】
（第６の実施形態）
次に、本発明の第６の実施形態について、図面を参照して詳細に説明する。
【０１７１】
図１６は、本実施形態の分析装置１の構成の例を表すブロック図である。
【０１７２】
図１６を参照すると、本実施形態の分析装置１は、データベース中の、属性の識別子に関連付けられた前記属性の値である属性値を含むデータに対して、変更を行うプログラムを記憶するプログラム記憶部１０と、属性の識別子と、当該識別子に関連付けられた属性値の組み合わせを、取得する特定データ取得部１１と、前記プログラムによって行われる処理の解析を行うプログラム解析部１５と、前記解析の結果に基づき、前記組み合わせに識別子が含まれる属性の属性値として、前記組み合わせに含まれる前記属性値を含む前記データベース中のデータである特定データに対して、前記プログラムによって変更が行われ得たか否かを判定し、判定結果を求める関連判定部１２とを含む
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。
【０１７３】
その理由は、第１の実施形態の効果の理由を同じである。
【０１７４】
（構成例）
次に、第１の実施形態に基づく本発明の情報処理システム１００における、分析装置１の構成例について、図面を参照して詳細に説明する。
【０１７５】
本構成例の分析装置１の構成は、図１に示される第１の実施形態の分析装置１の構成と同じである。
【０１７６】
また、図１０から図１４までの図は、プログラム記憶部１０が記憶するプログラム３１１が含む、変更命令とその関連箇所の例を、概念的に表す図である。これらの例では、属性名である、Ａ及びＢが、属性の識別子である。
【０１７７】
プログラム記憶部１０が記憶するプログラム３１１の記述に使用される言語は、特定のデータベース操作言語に限定されない。プログラム３１１の記述に使用される言語は、データベース２０１のどの属性をどのように変更するのかを、明示的に表せる言語であればよい。図１０から図１４までの例は、属性値を更新する更新命令の例である。プログラム３１１中の変更命令の種別は、これらの図の例に限定されない。プログラム３１１中の変更命令は、挿入、削除、あるいは、その他の命令であってもよい。
【０１７８】
図１０は、属性Ｂの属性値が１００であるデータの、属性Ａの属性を１００に更新する更新命令の例である。図１０の例では、Ｕｐｄａｔｔｅが更新命令である。図１０の例では、更新命令の場所で、属性値が指定されている。従って、更新命令の場所が、属性値確定箇所である。そして、更新命令の場所が、関連箇所である。図１０から図１４の例では、関連箇所以外の部分は省略されている。
【０１７９】
図１１は、図１０と同様に、属性Ｂの属性値が１００であるデータの、属性Ａの属性を１００に更新する命令の例である。ただし、図１１の例では、属性値を格納するための変数が使用される。図１１の例で、属性値を格納するための変数は、ｖａとｖｂである。図１１の例では、まず、ｖａに１００という値が格納される。また、ｖｂに１００という値が格納される。これらの変数に格納された値は、更新命令まで、そのまま保たれる。そして、変更命令によって、属性Ａの属性値が更新される。図１１の例では、二つの変数に属性値が格納される場所が、属性値確定箇所である。また、２つの変数に属性値が格納される場所と、変更命令の場所が、関連箇所である。
【０１８０】
図１２は、図１０及び図１１と同様に、属性Ｂの属性値が１００であるデータの、属性Ａの属性を１００に更新する命令の例である。図１１の例では、行１は、関数ｓｉｍｐｌｅが呼び出される場所を表す。また、行２以降の行が、関数ｓｉｍｐｌｅで行われる処理を表す。行３は、関数ｓｉｍｐｌｅの中で、更新命令が呼び出される場所を表す。行１において、関数ｓｉｍｐｌｅの引数として、属性値が定まる。行１の記述により関数ｓｉｍｐｌｅが呼び出されることで、行２に記載される変数ｖａ及び変数ｖｂに値が格納される。そして、行３の変更命令によって、属性Ａの属性値が更新される。図１２の例では、行１が属性値確定箇所である。そして、行１、行２、行３が関連箇所である。プログラム解析部１５は、図１２のような関数呼び出しの構造を解析する。
【０１８１】
図１３は、属性値Ｂが入力された値であるデータの属性値Ａを、同様に入力された値に更新する命令の例である。図１３の１行目は、変数ｖａ及び変数ｖｂに、外部から入力された値が格納される。図１３の１行目に含まれるＳＴＤＩＮは、一般に、標準入力を表すプログラム記述上の慣用的な語である。図１３の例では、例えば、プログラム３１１を起動したとき、あるいは、プログラム３１１が実行されている間に、プログラム３１１に入力される値が、変数ｖａ及び変数ｖｂに格納されることを表す。プログラム３１１に入力される値は、例えば、ユーザが端末から入力する値や、外部のファイルから入力される値である。図１３の例では、変数ｖａ及び変数ｖｂに格納される値は、プログラム３１１が実行されるまでは定まらない。図１３の１行目が、後述される変数代入箇所である。図１３の１行目と変更命令が、関連箇所である。プログラム解析部１５は、図１３の例のように、プログラム３１１が実行されるまで具体的な属性値が定まらない場合でも、プログラム３１１を解析して関連箇所を導出する。
【０１８２】
図１４は、属性Ｂの属性値を変化させながら、繰り返し更新命令が実行される例である。図１４の例では、行４において、属性Ａの属性値が定まる。行４では、属性Ａの属性値として更新命令に与えられる変数ｖａに値が代入される。行５では、０から１０００までの値が、順次、変数ｖｂに格納される。そして、変数ｖｂに値が格納される度に、行６の更新命令が実行される。すなわち、属性Ｂの属性値が、０から１０００まで順次増加させられながら、行６の更新命令が実行される。プログラム３１１が図１４のような繰り返し構造を含む場合、プログラム解析部１５は、プログラム３１１を解析することにより、更新命令に与えられる属性値が取りうる値の範囲を特定する。図１４の例では、プログラム解析部１５は、更新命令に与えられる属性値が格納される変数ｖｂが取りうる値の範囲が、０から１０００までであることを特定する。図１４の例では、行４が属性値確定箇所である。また、行５が変数代入箇所である。行４、行５、行６が関連箇所である。
【０１８３】
以上のように、プログラム３１１中で注目すべき箇所の一つは、データベース２０１の更新を実行する命令である更新命令である。また、プログラム３１１中で注目すべき箇所の一つは、更新命令で指定される属性値が定まる場所である、属性値確定箇所である。属性値確定箇所には、更新命令に与えられる属性値が格納される変数に、特定データ取得部１１が取得した属性値が代入される場所も含まれる。さらに、プログラム３１１中で注目すべき箇所の一つは、更新命令に与えられる属性値が格納される変数に、特定データ取得部１１が取得した属性値である可能性がある値が代入される場所である、変数代入箇所である。変数代入箇所は、例えば、プログラム３１１が起動されたとき、あるいは、プログラム３１１が実行されている間に、プログラム３１１に与えられる値が、更新命令に与えられる属性値が格納される変数に代入される場所である。変数代入箇所は、例えば、変数が属性値として与えられる変更命令が繰り返し実行されるプログラム３１１中のループにおいて、特定データ取得部１１が取得した属性値を含む範囲に含まれる値が、順次、更新命令に与えられる変数に代入される場所である。変数代入箇所は、以上の例に限られない。
【０１８４】
次に、本構成例の関連判定部１２による、関連箇所を特定する動作について、図面を参照して詳細に説明する。
【０１８５】
図１５は、本構成例の関連判定部１２の、関連箇所を特定する動作の例を表すフローチャートである。図１５の動作は、図５や図６に示すステップＳ１１４からステップＳ１１６までのステップにおいて行われる動作におおむね相当する。
【０１８６】
また、本構成例の出力部１３は、判定の結果として、関連箇所を出力する。
【０１８７】
プログラム３１１が特定データに対する変更を行い得ると判定された場合、出力部１３は、関連箇所を出力することによって、判定の結果を出力する。また、プログラム３１１が特定データに対する変更を行い得ると判定された場合、出力部１３は、関連箇所が検出されなかったことを出力することによって、判定の結果を出力する。
【０１８８】
本構成例の分析装置１の他の動作は、図２及び図５に示される、第１の実施形態の分析装置１の動作と同じである。従って、その説明を省略する。
【０１８９】
まず、関連判定部１２は、特定データ取得部１１が取得した組み合わせに識別子が含まれる属性に対して、属性値が指定される変更命令を、プログラム３１１中で検出する（ステップＳ４０１）。関連判定部１２がステップＳ４０１で検出する変更命令では、それぞれの属性に対して指定される属性値は、いずれの値であってもよい。
【０１９０】
ステップＳ４０１で変更命令が検出されない場合（ステップＳ４０２でＮｏ）、関連判定部１２は、関連箇所に、特定データ変更命令が存在しないことを表す情報を設定してもよい（ステップＳ４０３）。そして、関連判定部１２は、図１５の動作を終了する。
【０１９１】
次に、関連判定部１２は、プログラム３１１中に記載されている場所が全ての属性の属性値確定箇所でもある、特定データ変更命令を検出する（ステップＳ４０４）。前述のように、特定データ変更命令は、特定データ取得部１１が取得した組み合わせに識別子が含まれる属性の属性値として、その組み合わせに含まれる属性値が指定される変更命令である。プログラム３１１中に記載されている場所が全ての属性の属性値確定箇所でもある特定データ変更命令は、例えば、属性値の具体的な値が変更命令の場所に記述されている変更命令である。
【０１９２】
プログラム３１１中に記載されている場所が全ての属性の属性値確定箇所でもある、特定データ変更命令が検出された場合（ステップＳ４０５でＹｅｓ）、関連判定部１２は、検出された特定データ変更命令を、関連箇所にする（ステップＳ４０６）。そして、関連判定部１２は、図１５の動作を終了する。
【０１９３】
プログラム３１１中で記載されている場所が全ての属性の属性値確定箇所でもある、特定データ変更命令が検出されない場合（ステップＳ４０５でＮｏ）、関連判定部１２の動作は、ステップＳ４０７に進む。前述のように、プログラム３１１中で記載されている場所が属性値確定箇所でない属性は、例えば、変更命令に対して指定される属性値が変数として記述されている変更命令である。
【０１９４】
次に、関連判定部１２は、特定データ変更命令の場所が属性値確定箇所でない属性の属性値が、特定データ取得部１１が取得した属性値であることが確定する、属性値確定箇所を検出する（ステップＳ４０７）。属性値確定箇所は、例えば、属性値が格納される変数に、具体的な値が代入される場所である。属性値確定箇所は、変更命令に対して指定される属性値の具体的な値が記述されている、他の種類の場所であってもよい。
【０１９５】
属性値確定箇所が検出された場合（ステップＳ４０８でＹｅｓ）、関連判定部１２は、検出された、変更命令と属性値確定箇所を、関連箇所にする（ステップＳ４０９）。そして、関連判定部１２は、図１５の動作を終了する。
【０１９６】
属性値確定箇所が検出されない場合（ステップＳ４０８でＮｏ）、関連判定部１２は、変数代入箇所を検出する（ステップＳ４１０）。すなわち、関連判定部１２は、ステップＳ４０４において検出された更新命令に与えられる属性値が格納される変数に、何らかの値が代入される場所を検出する。関連判定部１２は、さらに、その変数に代入される値が、特定データ取得部１１が取得した、その変数が属性値として指定される属性の識別子と同じ組み合わせに含まれる属性値である可能性があるか否かを判定する。例えばプログラム３１１が実行されている間に入力される値が、変数に代入される場合、その値は、特定データ取得部１１が取得した属性値である可能性がある。また、特定データ取得部１１が取得した属性値を含む範囲に含まれる値が変数に代入される場合、特定データ取得部１１が取得した属性値が、変数に代入される可能性がある。
【０１９７】
変数代入箇所が検出された場合（ステップＳ４１１でＹｅｓ）、関連判定部１２は、検出された、変更命令と変数代入箇所を、関連箇所にする（ステップＳ４１２）。そして、関連判定部１２は、図１５の動作を終了する。
【０１９８】
変数代入箇所が検出されない場合（ステップＳ４１１でＮｏ）、関連判定部１２は、関連箇所に、特定データ変更命令が存在しないことを表す情報を設定してもよい（ステップＳ４１３）。関連判定部１２は、関連箇所に、ステップＳ４０１で検出された変更命令と、特定データ変更命令が存在しないことを表す情報を設定してもよい。そして、関連判定部１２は、図１５の動作を終了する。
【０１９９】
なお、関連判定部１２は、プログラム３１１に含まれる全ての変更命令に対して、図１５に示される動作を繰り返してもよい。
【０２００】
以上で説明した各実施形態の、分析装置１、データベース装置２、アクセス装置３、入力装置４、出力装置５は、それぞれ、コンピュータ及びそのコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びそのコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【０２０１】
図１７は、分析装置１を実現するために使用される、コンピュータ１０００の構成の一例を表す図である。図１７を参照すると、コンピュータ１０００は、プロセッサ１００１と、メモリ１００２と、記憶装置１００３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース１００４とを含む。また、コンピュータ１０００は、記録媒体１００５にアクセスすることができる。メモリ１００２と記憶装置１００３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクなどの記憶装置である。記録媒体１００５は、例えば、ＲＡＭ、ハードディスクなどの記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、可搬記録媒体である。記憶装置１００３が記録媒体１００５であってもよい。プロセッサ１００１は、メモリ１００２と、記憶装置１００３に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ１００１は、Ｉ／Ｏインタフェース１００４を介して、例えば、データベース装置２が記憶するデータベース２０１にアクセスすることができる。プロセッサ１００１は、記録媒体１００５にアクセスすることができる。記録媒体１００５には、コンピュータ１０００を分析装置１として動作させるプログラムが格納されている。
【０２０２】
プロセッサ１００１は、記録媒体１００５に格納されている、コンピュータ１０００を分析装置１として動作させるプログラムを、メモリ１００２にロードする。そして、プロセッサ１００１が、メモリ１００２にロードされたプログラムを実行することにより、コンピュータ１０００は分析装置１として動作する。
【０２０３】
特定データ取得部１１、関連判定部１２、出力部１３、順位付け部１４、プログラム解析部１５、アクセス処理部２１は、例えば、プログラムを記憶する記録媒体１００５からメモリに読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサ１００１により実現することができる。また、プログラム記憶部１０、データベース記憶部２０は、コンピュータ１０００が含むメモリ１００２やハードディスク装置等の記憶装置１００３により実現することができる。あるいは、プログラム記憶部１０、特定データ取得部１１、関連判定部１２、出力部１３、順位付け部１４、プログラム解析部１５、データベース記憶部２０、アクセス処理部２１の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【０２０４】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０２０５】
１、１Ａ    分析装置
２    データベース装置
３    アクセス装置
４    入力装置
５    出力装置
１０    プログラム記憶部
１１    特定データ取得部
１２    関連判定部
１３    出力部
１４    順位付け部
１５    プログラム解析部
２０    データベース記憶部
２１    アクセス処理部
３０    ＣＰＵ
３１    メモリ
１００、１００Ａ    情報処理システム
２０１    データベース
３１１    プログラム
１０００    コンピュータ
１００１    プロセッサ
１００２    メモリ
１００３    記憶装置
１００４    Ｉ／Ｏインタフェース
１００５    記録媒体
【図１】
2014241071.tif 000003
【図２】
2014241071.tif 000004
【図３】
2014241071.tif 000005
【図４】
2014241071.tif 000006
【図５】
2014241071.tif 000007
【図６】
2014241071.tif 000008
【図７】
2014241071.tif 000009
【図８】
2014241071.tif 000010
【図９】
2014241071.tif 000011
【図１０】
2014241071.tif 000012
【図１１】
2014241071.tif 000013
【図１２】
2014241071.tif 000014
【図１３】
2014241071.tif 000015
【図１４】
2014241071.tif 000016
【図１５】
2014241071.tif 000017
【図１６】
2014241071.tif 000018
【図１７】
2014241071.tif 000019