(57)【要約】【課題】ユーザ要求に沿って手順の流れの機能を検索単位として検索を行い、処理からの入力・出力の共有利用度合いを有効活用することにより、検索精度を向上させる。【解決手段】ソフトウェアコンポーネント情報検索システム１００は、ユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としてメタデータをＤＢ（データベース）に格納するメタデータ格納手段２００と、その機能の検索を実行するメタデータ検索手段３００とを有する。具体的な動作形態では、入力装置４００，出力装置５００，ＤＢＭＳ（データベース管理システム）６００，およびＤＢ７００を備える。【選択図】      図１  
2005071221.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としてメタデータを格納するメタデータ格納手段と、その機能の検索を実行するメタデータ検索手段とを有することを特徴とするソフトウェアコンポーネント情報検索システム。
【請求項２】
前記メタデータ格納手段は、入力されたメタデータの構文解析を行うメタデータ構文解析手段と、前記メタデータの解析結果からユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としたデータ構造を作り出すデータ構造生成手段と、前記データ構造をＤＢに格納するための問合せを生成する格納命令生成手段と、前記問合せを実行する格納操作実行手段と、各入力・出力の共有度を計算する共有度測定・登録手段と、機能単位の検索を実現するための検索インデックスを作成する検索インデックス作成・登録手段とを具備することを特徴とする請求項１記載のソフトウェアコンポーネント情報検索システム。
【請求項３】
前記メタデータ検索手段は、検索式に対して構文解析を行う検索式解析手段と、前記検索式の解析結果から問合せを生成する問合せ生成手段と、検索インデックスおよびＤＢに対して前記問合せを実行し，キーワード検索結果の類似度および各入力・出力の共有度を利用して問合せ結果を生成する問合せ実行手段と、前記問合せ結果を表示出力として生成する検索結果生成手段とを具備することを特徴とする請求項１または２記載のソフトウェアコンポーネント情報検索システム。
【請求項４】
ユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としてメタデータを格納し、その機能の検索を実行することを特徴とするソフトウェアコンポーネント情報検索方法。
【請求項５】
前記メタデータを格納する際に、入力されたメタデータの構文解析を行い、前記メタデータの解析結果からユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としたデータ構造を作り出し、前記データ構造をＤＢに格納するための問合せを生成し、前記問合せを実行し、各入力・出力の共有度を計算し、機能単位の検索を実現するための検索インデックスを作成することを特徴とする請求項４記載のソフトウェアコンポーネント情報検索方法。
【請求項６】
前記検索を実行する際に、検索式に対して構文解析を行い、前記検索式の解析結果から問合せを生成し、検索インデックスおよびＤＢに対して前記問合せを実行し、キーワード検索結果の類似度および各入力・出力の共有度を利用して問合せ結果を生成し、前記問合せ結果を表示出力として生成することを特徴とする請求項４または５記載のソフトウェアコンポーネント情報検索方法。
【請求項７】
ユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としてメタデータを格納する手順と、その機能の検索を実行する手順とをコンピュータに実行させるためのプログラム。
【請求項８】
前記メタデータを格納する手順は、入力されたメタデータの構文解析を行う手順と、前記メタデータの解析結果からユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としたデータ構造を作り出す手順と、前記データ構造をＤＢに格納するための問合せを生成する手順と、前記問合せを実行する手順と、各入力・出力の共有度を計算する手順と、機能単位の検索を実現するための検索インデックスを作成する手順とをコンピュータに実行させるための請求項７記載のプログラム。
【請求項９】
前記検索を実行する手順は、検索式に対して構文解析を行う手順と、前記検索式の解析結果から問合せを生成する手順と、検索インデックスおよびＤＢに対して前記問合せを実行する手順と、キーワード検索結果の類似度および各入力・出力の共有度を利用して問合せ結果を生成する手順と、前記問合せ結果を表示出力として生成する手順とをコンピュータに実行させるための請求項７または８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアコンポーネント情報検索システム，方法，およびプログラムに関し、特にソフトウェアコンポーネントに付随する構造化文書（ＸＭＬなど）に対する検索の精度を向上させるソフトウェアコンポーネント情報検索システム，方法，およびプログラムに関する。
【背景技術】
【０００２】
コンポーネント指向ソフトウェア開発において、ユーザの要求に合致するソフトウェアコンポーネントを検索する機構は不可欠である（ここでいうソフトウェアコンポーネントとは、Ｊａｖａ（登録商標）のクラス，ＣＯＲＢＡのＩＤＬに対応するオブジェクト，ＷｅｂサービスのＷＳＤＬに対応するサービス，ポータル構築用のポートレット等のような再利用対象を想定している）。
【０００３】
ソフトウェアコンポーネント本体はバイナリデータまたはインスタンスのため、そのまま検索対象とすることが難しいが、ソフトウェアコンポーネントに関するメタデータとしてＸＭＬ等の構造化文書を関連付けておき、そのメタデータを検索することによりソフトウェアコンポーネントの検索を実現するものが存在する。
【０００４】
この中で、キーワード検索手法は、ソフトウェアコンポーネントの名前や解説をキーワード検索の対象とする。たとえば、Ｊａｖａ（登録商標）のＪａｖａ（登録商標）ｄｏｃを検索対象とし、パッケージ・クラス・メソッドを検索単位とする検索手法がある（非特許文献１参照。）。また、他の例として、種々のクラスの検索機能もある（特許文献１参照）。
【０００５】
また、仕様記述手法は、検索条件としてソフトウェアコンポーネントの部分的な仕様を記述し、それを利用する。たとえば、ソフトウェアコンポーネント本体とともに、機能およびインタフェースに関する形式的な仕様をカタログ情報としてリポジトリに保存し、仕様の記述に基づいて検索する（非特許文献２参照）。
【０００６】
また、類似度手法は、ソフトウェアコンポーネント間の類似性を用いて検索する。たとえば、類似性を示す特徴としてオブジェクト指向言語のクラス継承関係を用いる手法がある（非特許文献３参照。）。
【０００７】
さらに、型情報手法は、ソフトウェアコンポーネントの入出力の型情報を基に検索を行う（たとえば、非特許文献４参照。）。
【０００８】
【特許文献１】特開平１０−０６３４８６号公報（第２〜３頁，図１）
【０００９】
【非特許文献１】プロシ−ディングス  オブ  ザ  フォーティーンス  インターナショナル  カンファレンス  オン  ソフトウェア  エンジニアリング  アンド  ナレッジ  エンジニアリング，５７−６４頁，２００２年（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ    ｔｈｅ  １４ｔｈ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｏｆｔｗａｒｅ  ｅｎｇｉｎｅｅｒｉｎｇ  ａｎｄ  ｋｎｏｗｌｅｄｅｇｅ  ｅｎｇｉｎｅｅｒｉｎｇ，ｐｐ５７−６４，２００２）
【非特許文献２】プロシーディングス  ２０００  オーストラリアン  ソフトウェア  エンジニアリング  カンファレンス，１０７−１１７頁，２０００年４月（Ｐｒｏｃｅｅｄｉｎｇｓ  ２０００  Ａｕｓｔｒａｌｉａｎ  Ｓｏｆｔｗａｒｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｎｆｅｒｅｎｃｅ，ｐｐ１０７−１１７，２０００，Ａｐｒｉｌ）
【非特許文献３】プロシーディングス  オブ  ザ  セブンス  インターナショナル  カンファレンス  オン  ソフトウェア  エンジニアリング  アンド  ナレッジ  エンジニアリング，３８７−３９４頁，１９９４年６月（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ７ｔｈ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｏｆｔｗａｒｅ  ｅｎｇｉｎｅｅｒｉｎｇ  ａｎｄ  ｋｎｏｗｌｅｄｇｅ  ｅｎｇｉｎｅｅｒｉｎｎｇ，ｐｐ３８７−３９４，１９９４，ｊｕｎｅ）
【非特許文献４】エーシーエム  トランザクションズ  オン  ソフトウェア  エンジニアリング  アンド  メソドロジー，第４巻，第２号，１４６−１７０頁（ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｓｏｆｔｗａｒｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  ａｎｄ  Ｍｅｔｈｏｄｏｌｏｇｙ（ＴＯＳＥＭ）Ｖｏｌｕｍｅ４，Ｉｓｓｕｅ２，ｐｐ．１４６−１７０，Ａｐｒｉｌ，１９９５）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記のような従来のソフトウェアコンポーネント検索方法は、次の問題を有している。
【００１１】
第一の問題点は、適切な検索単位に対する検索が行えないということである。
【００１２】
その理由は、既存の技術の検索単位（たとえば、Ｊａｖａ（登録商標）のＰａｃｋａｇｅ，Ｃｌａｓｓ，ｍｅｔｈｏｄというように、コンポーネントのメタデータが持つ構造からそのまま切り出すことのできる単位）の粒度と、ユーザが求めている「『入力』を受け取る→『処理』を行う→『出力』する」という流れの『機能』の検索単位（たとえばＪａｖａ（登録商標）を対象に考えると、機能に相当する検索単位は、「メソッドの情報＋引数の情報＋返り値の情報」）の粒度が異なっているからである。
【００１３】
第二の問題点は、適切な検索単位に対して検索を行うにしても、検索単位内の有用な情報を利用していないということである。
【００１４】
その理由の１つとして、処理・入力・出力間の関連を活用していないという点が挙げられる。たとえば、「あるメソッドが用いている引数は、他のメソッドからどの程度利用されているか」といった情報を利用することにより検索精度の向上が見込めるが、そのような情報を利用する枠組みが提供されていない。
【００１５】
本発明の目的は、上記のような問題点を改善するために、ユーザの要求に沿って手順の流れの機能を検索単位として検索を行い、処理からの入力・出力の共有利用度合いを有効活用することにより、検索精度を向上させるソフトウェアコンポーネント情報検索システム，方法，およびプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
本発明のソフトウェアコンポーネント情報検索システムは、ユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としてメタデータを格納するメタデータ格納手段と、その機能の検索を実行するメタデータ検索手段とを有することを特徴とする。
【００１７】
さらに、上記のメタデータ格納手段は、入力されたメタデータの構文解析を行うメタデータ構文解析手段と、前記メタデータの解析結果からユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としたデータ構造を作り出すデータ構造生成手段と、前記データ構造をＤＢ（データベース）に格納するための問合せを生成する格納命令生成手段と、前記問合せを実行する格納操作実行手段と、各入力・出力の共有度を計算する共有度測定・登録手段と、機能単位の検索を実現するための検索インデックスを作成する検索インデックス作成・登録手段とを具備することを特徴とする。
【００１８】
さらに、上記のメタデータ検索手段は、検索式に対して構文解析を行う検索式解析手段と、前記検索式の解析結果から問合せを生成する問合せ生成手段と、検索インデックスおよびＤＢに対して前記問合せを実行し，キーワード検索結果の類似度および各入力・出力の共有度を利用して問合せ結果を生成する問合せ実行手段と、前記問合せ結果を表示出力として生成する検索結果生成手段とを具備することを特徴とする。
【００１９】
また、本発明のソフトウェアコンポーネント情報検索方法は、ユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としてメタデータを格納し、その機能の検索を実行することを特徴とする。
【００２０】
さらに、本発明のソフトウェアコンポーネント情報検索方法は、前記メタデータを格納する際に、入力されたメタデータの構文解析を行い、前記メタデータの解析結果からユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としたデータ構造を作り出し、前記データ構造をＤＢに格納するための問合せを生成し、前記問合せを実行し、各入力・出力の共有度を計算し、機能単位の検索を実現するための検索インデックスを作成することを特徴とする。
【００２１】
さらに、本発明のソフトウェアコンポーネント情報検索方法は、前記検索を実行する際に、検索式に対して構文解析を行い、前記検索式の解析結果から問合せを生成し、検索インデックスおよびＤＢに対して前記問合せを実行し、キーワード検索結果の類似度および各入力・出力の共有度を利用して問合せ結果を生成し、前記問合せ結果を表示出力として生成することを特徴とする。
【００２２】
また、本発明のプログラムは、ユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としてメタデータを格納する手順と、その機能の検索を実行する手順とをコンピュータに実行させることを特徴とする。
【００２３】
さらに、上記のメタデータを格納する手順は、入力されたメタデータの構文解析を行う手順と、前記メタデータの解析結果からユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としたデータ構造を作り出す手順と、前記データ構造をＤＢに格納するための問合せを生成する手順と、前記問合せを実行する手順と、各入力・出力の共有度を計算する手順と、機能単位の検索を実現するための検索インデックスを作成する手順とをコンピュータに実行させるためのプログラムであることを特徴とする。
【００２４】
さらに、上記の検索を実行する手順は、検索式に対して構文解析を行う手順と、前記検索式の解析結果から問合せを生成する手順と、検索インデックスおよびＤＢに対して前記問合せを実行する手順と、キーワード検索結果の類似度および各入力・出力の共有度を利用して問合せ結果を生成する手順と、前記問合せ結果を表示出力として生成する手順とをコンピュータに実行させるためのプログラムであることを特徴とする。
【００２５】
すなわち、本発明では、ソフトウェアコンポーネントに付随する構造化文書（ＸＭＬ等，以下、メタデータ）の構造を解析し、「『入力』を受け取る→『処理』を行う→『出力』する」という『機能』ごとに、たとえば、コンポーネント自体のメタデータ・入力のメタデータ・処理のメタデータ・出力のメタデータという４種の情報（たとえば、Ｊａｖａ（登録商標）を対象に考えると、クラスの情報・引数の情報・メソッドの情報・返り値の情報）を取り出す。この４種のメタデータで構成された機能情報を検索対象とすることによって、検索精度を向上させる。
【００２６】
また、この４種のメタデータそれぞれをノードとし、
・あるコンポーネントとそのコンポーネントに含まれる処理との関連
・ある処理とその処理の入力との関連
・ある処理とその処理の出力との関連
をエッジとして見るとグラフ構造を成している。
【００２７】
このグラフ構造において、処理と入力・出力間の関連の数は、入力・出力のメタデータがどの程度共有利用されているかを示す。この共有利用度合い（以下、共有度）を、キーワード検索後の適合度に掛けることにより、検索精度を向上させる。
【発明の効果】
【００２８】
以上、詳細に説明したように、本発明は次の効果を奏する。
【００２９】
第一の効果は、「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位とした検索を実現することにより、ユーザの意図に沿った検索を実現することができる。
【００３０】
第二の効果は、処理からの入力・出力の共有度を利用することにより、検索精度の向上を実現することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明について図面を参照しながら説明する。
【００３２】
図１は本発明の実施の一形態を示す構成図である。同図において、本発明によるソフトウェアコンポーネント情報検索システム１００は、ユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としてメタデータを格納するメタデータ格納手段２００と、その機能の検索を実行するメタデータ検索手段３００とを有する。
【００３３】
上記のメタデータ格納手段２００は、入力されたメタデータの構文解析を行うメタデータ構文解析手段２０１と、前記メタデータの解析結果からユーザの要求に沿った「入力を受け取る→処理を行う→出力する」という流れの「機能」を検索単位としたデータ構造を作り出すデータ構造生成手段２０２と、前記データ構造をＤＢに格納するための問合せを生成する格納命令生成手段２０３と、前記問合せを実行する格納操作実行手段２０４と、各入力・出力の共有度を計算する共有度測定・登録手段２０５と、機能単位の検索を実現するための検索インデックスを作成する検索インデックス作成・登録手段２０６とを具備する。
【００３４】
また、上記のメタデータ検索手段３００は、検索式に対して構文解析を行う検索式解析手段３０１と、前記検索式の解析結果から問合せを生成する問合せ生成手段３０２と、検索インデックスおよびＤＢに対して前記問合せを実行し，キーワード検索結果の類似度および各入力・出力の共有度を利用して問合せ結果を生成する問合せ実行手段３０３と、前記問合せ結果を表示出力として生成する検索結果生成手段３０４とを具備する。
【００３５】
なお、具体的な動作形態では、入力装置４００，出力装置５００，ＤＢＭＳ（データベース管理システム）６００，およびＤＢ７００を備える。
【００３６】
引き続いて図１を参照すると、メタデータ構文解析手段２０１は、入力装置４００から入力されたメタデータに対する操作を可能にするために、メタデータの構文解析を行い、解析結果をデータ構造生成手段２０２に渡す。
【００３７】
データ構造生成手段２０２は、メタデータの解析結果から、
（１）コンポーネントの名前と解説
（２）各処理の名前と解説
（３）各機能の入力・出力の名前と解説
（４）（１）〜（３）それぞれのリンク
という４種の情報を取り出すことによって、このシステムのデータ構造を生成する。これら４種の情報は、格納命令生成手段２０３に渡される。
【００３８】
格納命令生成手段２０３は、前述の４種の情報をＤＢ７００に格納するための問合せを生成し、格納操作実行手段２０４に渡す。
【００３９】
格納操作実行手段２０４は、問合せを実行し、ＤＢＭＳ６００経由で４種の情報をＤＢ７００に格納する。
【００４０】
共有度測定・登録手段２０５は、ＤＢ７００中のリンク情報より、「どの入力・出力がどれだけの処理から利用されているか」という意味を持つ各入力・出力の共有度を計算し、ＤＢ７００中の入力・出力の情報を更新する。
【００４１】
検索インデックス作成・登録手段２０６は機能を検索単位としたキーワード検索を実現する検索インデックスを作成し、検索インデックス格納部８００に格納する。
【００４２】
検索式解析手段３０１は、入力装置４００から入力されるソフトウェアコンポーネント情報に対する検索式の構文解析を行い、解析結果を問合せ生成手段３０２に渡す。
【００４３】
問合せ生成手段３０２は、検索式解析結果から検索インデックスに対する問合せを生成し、問合せ実行手段３０３に渡す。
【００４４】
問合せ実行手段３０３は、検索インデックス格納部８００より検索インデックスを取り出し、問合せを実行し、機能ＩＤと類似度のリストを受け取る。また、ＤＢ７００に対して機能ＩＤを検索キーとした問合せを出し、結果集合を受け取る。そして、入力された検索式に対する問合せ結果を生成し、検索結果生成手段３０４に渡す。
【００４５】
検索結果生成手段３０４は、問合せ結果より表示用結果を生成し、出力装置５００に渡す。
【００４６】
図２はメタデータ格納手段の処理手順を示す流れ図である。
【００４７】
まず、メタデータ格納手段は、あるソフトウェアコンポーネントのメタデータを入力として受け取り、メタデータ構文解析手段２０１で構文解析を行い、構文解析木を作り出す。これにより、メタデータ中の部分メタデータ（たとえば、処理の名前・解説といったメタデータ）の取り出しといった操作ができるようになる。この構文解析処理には、既存の構文解析技術を利用できる（Ｓ２１）。
【００４８】
次に、データ構造生成手段２０２は、構文解析木より
（１）コンポーネントのメタデータ
（２）各処理のメタデータ
（３）各機能の入力・出力のメタデータ
（４）（１）〜（３）それぞれの間のリンク
という４種の情報を取り出すことによって、このシステムのデータ構造を生成する（Ｓ２２）。
【００４９】
次に、格納命令生成手段２０３は、上記（１）〜（４）の情報をＤＢ７００に格納するための問合せを生成する（Ｓ２３）。
【００５０】
次に、格納操作実行手段２０４は、問合せを実行し、メタデータの格納を行う（Ｓ２４）。
【００５１】
メタデータをＤＢ７００に格納した後、共有度測定・登録手段２０５は、ＤＢ７００中のリンク情報より各入力・出力が処理からどの程度共有されているかをカウントすることにより共有度を測定し、ＤＢ７００中の各入力・出力の共有度の情報を更新する（Ｓ２５）。
【００５２】
次に、検索インデックス作成・登録手段２０６は、機能単位における類似度を用いたキーワード検索を実現するため、各機能単位の名前（コンポーネント名・処理名・入力名・出力名）・解説情報（コンポーネント・処理・入力・出力それぞれの解説）を基に、検索できるインデックスを生成する。この検索インデックスの生成には、既存の検索インデックス生成技術を利用できる（Ｓ２６）。
【００５３】
上記の検索インデックスは、検索インデックス格納部８００に格納される。
【００５４】
図３はメタデータ検索手段の処理手順を示す流れ図である。
【００５５】
まず、メタデータ検索手段は、キーワード検索式（ブール演算子，検索キーワード，ワイルドカード等によって記述されたもの）を入力として受け取り、検索式解析手段３０１を用いて構文解析を行い、構文解析木を作り出す（Ｓ３１）。
【００５６】
次に、問合せ生成手段３０２は、構文解析木より検索条件の適用順序等を決め、検索インデックス用の問合せを生成する（Ｓ３２）。
【００５７】
次に、問合せ実行手段３０３は、検索インデックスに対して問合せを実行し、機能のＩＤと類似度が組となったリストを受け取る。この検索式を解析する部分から検索インデックスを検索する部分までは既存の検索エンジン技術を利用できる。続いて、このリスト中のＩＤを基にＤＢ７００より各機能に関するメタデータを取り出す。このとき、格納時に計算した各入力・出力の共有度と類似度の積を新たな適合度とし、ソートを行う。これにより、共有度を検索結果に反映させることができる（Ｓ３３）。
【００５８】
次に、検索結果生成手段３０４は、メタデータの集合と適合度より、検索結果リストを生成し、出力装置に渡す（Ｓ３４）。
【００５９】
次に、上記のソフトウェアコンポーネント情報検索システム１００の動作について、具体的に説明する。
【００６０】
今、図４に示すコンポーネントのメタデータが格納データとして入力されたとする（ここではメタデータの形式をＸＭＬ文書としたが、意図的に同等のものであれば、他の形式でも良い）。
【００６１】
メタデータ構文解析手段２０１はメタデータの構文解析を行う。この解析手段としては既存のＸＭＬパーサ等を利用できる。
【００６２】
この構文解析結果より、データ構造生成手段２０２は、図６に示すデータ構造を生成する。
【００６３】
このデータ構造は、各コンポーネントのメタデータ（名前・解説等）の集合，処理のメタデータの集合，入出力のメタデータの集合という３種の集合と、
・あるコンポーネントとそのコンポーネントに含まれる処理との関連
・ある処理とその処理の入力・出力との関連
という２種類の関連を示すリンクを持つ。
【００６４】
このとき、図６の点線で囲われた部分グラフのように、処理を中心に”コンポーネント−処理−入力・出力”をつなげたものをこのシステムでは検索単位として利用する。
【００６５】
続いて格納命令生成手段２０３が、図６の情報をＤＢ７００に格納するための問合せを生成し、格納操作実行手段２０４がこの問合せを実行する。
【００６６】
ＤＢ７００内では、図７〜図１０に示すように格納される（ここではＲＤＢのリレーションのように示したが、意図的に同等であれば、他の形式でも良い）。
【００６７】
格納後、共有度測定・登録手段２０５は、ＤＢ７００中のリンク情報（図１０参照）より、各入力・出力が処理からどの程度共有されているかをカウントすることにより共有度を測定する（たとえば、１＋ｌｏｇ〈カウント数〉といった式で共有度を計算する）。
【００６８】
この場合、図５に示すメタデータがすでに格納されているものとする（すなわち、ＤＢ７００中には図４および図５に示すメタデータの内容のみが格納されている）。
【００６９】
たとえば、図６の入出力メタデータ集合中の”Ｆｉｌｅ”メタデータはＤｏｃｕｍｅｎｔＢｕｉｌｄｅｒのｐａｒｓｅとＳＡＸＰａｒｓｅｒのｐａｒｓｅからそれぞれ入力として利用されているので、”１＋ｌｏｇ２”という共有度が計算される。このように共有度を計算し、ＤＢ７００内の各入力・出力の共有度の情報を更新する。
【００７０】
続いて、検索単位ごとのキーワード類似度検索を実現するために検索インデックスを生成する。この生成手法としては、既存の検索インデックス作成手法を利用できる。
【００７１】
このようにして、メタデータは格納される。
【００７２】
次に、検索動作について説明する。
【００７３】
今、ソフトウェアコンポーネント情報に対する問合せとして、”ＸＭＬ”  ＆  ｐａｒｓｅ  ＆  ｆｉｌｅが入力されたとする。
【００７４】
このとき、検索式解析手段３０１，問合せ生成手段３０２，問合せ実行手段３０３の一部では、問合せの構文解析を行い、解析結果より検索条件の適用順序等を決め、検索インデックスに対して問合せを実行する。この部分には既存の検索エンジンを利用できる。
【００７５】
この問合せ結果として、図１１に示すような機能ＩＤと類似度のリストを受け取る。
【００７６】
続いて問合せ実行手段３０３において、このリスト中の機能ＩＤを基にＤＢより各機能に関する各入力・出力の共有度を取り出し、その共有度と類似度との積を問合せに対する適合度としてリストに格納する。適合度でソートしたリストを図１２に示す。
【００７７】
次に、検索結果生成手段３０４は、リストとメタデータをもとに図１３に示す検索結果を生成し、出力装置に渡す。
【００７８】
このようにして、メタデータは検索される。
【産業上の利用可能性】
【００７９】
新規なソフトウェアを開発する際には、既存のソフトウェア部品を利用できるか否かを調査する。従来、このような調査を能率よく効果的に実施することが困難であった。本発明によれば、利用者の視点に基いて精度のよい検索を迅速に実現できるので、特にソフトウェア開発を策定する場合に有効に活用できる。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施の一形態を示す構成図。
【図２】メタデータ格納手段の処理手順を示す流れ図。
【図３】メタデータ検索手段の処理手順を示す流れ図。
【図４】ソフトウェアコンポーネントの例を示す説明図。
【図５】ソフトウェアコンポーネントの他の例を示す説明図。
【図６】データ構造の例を示す説明図。
【図７】コンポーネントメタデータ格納テーブルの例を示す説明図。
【図８】処理メタデータ格納テーブルの例を示す説明図。
【図９】入力・出力メタデータ格納テーブルの例を示す説明図。
【図１０】リンク管理テーブルの例を示す説明図。
【図１１】機能ＩＤと類似度のリストの例を示す説明図。
【図１２】機能ＩＤと適合度のリストの例を示す説明図。
【図１３】検索結果の例を示す説明図。
【符号の説明】
【００８１】
１００    ソフトウェアコンポーネント情報検索システム
２００    メタデータ格納手段
２０１    メタデータ構文解析手段
２０２    データ構造生成手段
２０３    格納命令生成手段
２０５    共有度測定・登録手段
２０６    検索インデックス作成・登録手段
３００    メタデータ検索手段
３０１    検索式解析手段
３０２    問合せ生成手段
３０３    問合せ実行手段
３０４    検索結果生成手段
４００    入力装置
５００    出力装置
６００    ＤＢＭＳ（データベース管理システム）
７００    ＤＢ（データベース）
８００    検索インデックス格納部
【図１】
2005071221.tif 000003
【図２】
2005071221.tif 000004
【図３】
2005071221.tif 000005
【図４】
2005071221.tif 000006
【図５】
2005071221.tif 000007
【図６】
2005071221.tif 000008
【図７】
2005071221.tif 000009
【図８】
2005071221.tif 000010
【図９】
2005071221.tif 000011
【図１０】
2005071221.tif 000012
【図１１】
2005071221.tif 000013
【図１２】
2005071221.tif 000014
【図１３】
2005071221.tif 000015