(57)【要約】【課題】ソフトウェア部品間の階層構造やバリエーションを考慮した上で、必要なソフトウェア部品を効率よく検索可能な技術を提供する。【解決手段】絞込属性選択部は絞込属性の選択指示を取得する。上位層−下位層部品検索部は、上位層部品一覧ファイルが示す上位層部品について、上位層−下位層関連付情報から当該上位層部品に対応する下位層部品を検索し、検索部品リストに記録する。バリエーション絞込部は選択された絞込属性に適合しない下位層部品を下位層部品リストから削除する。独立下位層部品検索部は下位層部品リストから独立部品を検索し、検索部品リストに追加する。下位層−下位層部品検索部は検索部品リストが示す下位層部品に対応する他の下位層部品の名称を下位層部品リストから検索し、検索部品リストに追加する。出力情報生成部は、検索部品リストに示される下位層部品の情報を下位層部品リストから取得し出力する。【選択図】図５
2008287352.tif 000002
【特許請求の範囲】
【請求項１】
指定された上位層ソフトウェア部品に対応する下位層ソフトウェア部品の情報を検索するソフトウェア部品情報検索システムであって、
上位層ソフトウェア部品の名称と、その上位層ソフトウェア部品に対応する下位層ソフトウェア部品の名称との関連付けを定義する上位層−下位層関連付情報を記憶する上位層−下位層関連付情報記憶手段と、
互いに同一の名称を有する下位層ソフトウェア部品であって、それぞれ異なるバリエーションからなる複数のバリエーション部品が少なくとも含まれる下位層ソフトウェア部品群について、各下位層ソフトウェア部品の名称と、当該下位層ソフトウェア部品のバリエーションに関する属性を示す属性情報と、当該下位層ソフトウェア部品に関する部品情報とを関連付けた項目からなる下位層ソフトウェア部品リストを記憶する下位層ソフトウェア部品リスト記憶手段と、
前記複数のバリエーション部品の中から、検索結果を任意のバリエーションのものに絞り込むための情報であり、かつ前記下位層ソフトウェア部品リストにおける属性情報に対応する情報である絞込属性情報を取得する絞込情報取得手段と、
検索された下位層ソフトウェア部品の名称の一覧である検索部品リストを記憶するための検索部品リスト記憶手段と、
上位層ソフトウェア部品を指定する情報を取得し、この指定されている上位層ソフトウェア部品に関連付けされている下位層ソフトウェア部品の名称を前記上層−下位層関連付情報から検索し、この検索した下位層ソフトウェア部品の名称を前記検索部品リストに加える上位層−下位層検索手段と、
前記下位層ソフトウェア部品リストにおける各下位層ソフトウェア部品の属性情報と、前記絞込情報取得手段によって取得された絞込属性情報とを比較し、前記下位層ソフトウェア部品リストにおいて前記絞込属性情報に適合しない前記属性情報に該当するバリエーション部品の項目を検索対象から除外するバリエーション絞込手段と、
前記バリエーション絞込手段により処理された下位層ソフトウェア部品リストから、前記検索部品リストに含まれる下位層ソフトウェア部品の名称に該当する全ての下位層ソフトウェア部品の項目を検索し、この検索した項目の内容に応じた出力情報を出力する出力手段とを備える
ことを特徴とする部品情報検索システム。
【請求項２】
請求項１に記載の部品情報検索システムにおいて、
前記下位層ソフトウェア部品リストには、各下位層ソフトウェア部品の名称と、この下位層ソフトウェア部品に対応する他の下位層ソフトウェア部品の名称との関連付けを定義する下位層−下位層関連付情報が更に含まれており、
前記下位層ソフトウェア部品リストに基づき、前記検索部品リストに既に名称が記述されている各下位層ソフトウェア部品に関連付されている他の下位層ソフトウェア部品を検索し、この検索した他の下位層ソフトウェア部品の名称を前記検索部品リストに追加する下位層−下位層検索手段を更に備えること
を特徴とする部品情報検索システム。
【請求項３】
請求項２に記載の部品情報検索システムにおいて、
下位層ソフトウェア部品のソースコードを取得し、この取得したソースコードから当該下位層ソフトウェア部品及びこの下位層ソフトウェア部品が参照している他の下位層ソフトウェア部品に関する情報を読み取り、この読み取った情報に基づいて、当該下位層ソフトウェア部品の名称と、この下位層ソフトウェア部品が参照している他の下位層ソフトウェア部品の名称との関連付けを定義する前記下位層−下位層関連付情報を、前記下位層ソフトウェア部品リストに記録する下位層−下位層関連付情報取得手段を更に備えること
を特徴とする部品情報検索システム。
【請求項４】
請求項１に記載の部品情報検索システムにおいて、
前記下位層ソフトウェア部品リストには、何れの上位層ソフトウェア部品にも関連付けされていない独立属性を有する下位層ソフトウェア部品の項目に対して独立属性情報が付されており、
前記下位層ソフトウェア部品リストから、前記独立属性情報が付された項目に該当する下位層ソフトウェア部品を検索し、この検索した下位層ソフトウェア部品の名称を前記検索部品リストに加える独立下位層部品検索手段を更に備えること
を特徴とする部品情報検索システム。
【請求項５】
請求項２又は請求項３に記載の部品情報検索システムにおいて、
前記下位層ソフトウェア部品リストには、何れの上位層ソフトウェア部品にも関連付けされていないしない独立属性を有する下位層ソフトウェア部品の項目に対して独立属性情報が付されており、
前記下位層ソフトウェア部品リストから、前記独立属性情報が付された項目に該当する下位層ソフトウェア部品を検索し、この検索した下位層ソフトウェア部品の名称を前記検索部品リストに加える独立下位層部品検索手段を更に備えること
を特徴とする部品情報検索システム。
【請求項６】
請求項５に記載の部品情報検索システムにおいて、
前記上位層−下位層検索手段、前記バリエーション絞込手段、前記下位層−下位層検索手段、及び前記独立下位層部品検索手段の各手段のうち、処理を実行すべき手段を選択するための動作モード選択手段を更に備え、
下位層ソフトウェア部品に関する情報の検索に際して、前記動作モード選択手段によって選択された各手段のみが所定の処理を実行し、
前記出力手段は、前記選択された各手段が所定の処理を実行した結果に基づき、前記出力情報を出力する
ことを特徴とする部品情報検索システム。
【請求項７】
請求項１ないし請求項６の何れか１項に記載の部品情報検索システムにおいて、
上位層ソフトウェア部品のソースコードを取得し、この取得したソースコードから当該上位層ソフトウェア部品及びこの上位層ソフトウェア部品が参照している下位層ソフトウェア部品に関する情報を読み取り、この読み取った情報に基づいて、当該上位層ソフトウェア部品の名称と、この上位層ソフトウェア部品が参照している下位層ソフトウェア部品の名称との関連付けを定義する情報を前記上位層−下位層関連付情報に記録する上位層−下位層関連付情報取得手段を更に備えること
を特徴とする部品情報検索システム。
【請求項８】
上位層ソフトウェア部品及び下位層ソフトウェア部品からなるソフトウェア部品群をデータベースとして保管し、管理する部品データベース管理システムであって、
請求項１ないし請求項７の何れか１項に記載の部品情報検索システムを備えること
を特徴とする部品データベース管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、既存のソフトウェア部品を再利用してソフトウェアを新規に構築する際に、上位層のソフトウェア部品で利用される下位層のソフトウェア部品を既存のソフトウェア部品の中から検索するための技術に関する。
【背景技術】
【０００２】
従来、ソフトウェアを開発する際、機能や仕様ごとにソフトウェアを部品化しておき、ソフトウェアに要求される機能や仕様応じて必要なソフトウェア部品を組み合わせることでソフトウェアを構築する手法が知られている。このような方法は、例えば自動車用エンジン制御ソフトウェアの開発等に用いられる。
【０００３】
特許文献１では、必要なソフトウェア部品と、このソフトウェア部品と相互関係を有する他のソフトウェア部品とをソフトウェア部品群から検索し、検索されたソフトウェア部品を組み込んでソフトウェアを構築する技術が開示されている。
【特許文献１】特開平６−１１９１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、構成すべきソフトウェアが多層レイヤ構造を有している場合、このソフトウェアを構成するソフトウェア部品群は、例えば、ソフトウェアの制御対象であるシステムの要件に依存する上位層ソフトウェア部品と、この上位層ソフトウェア部品によってサブルーチンとして呼び出されたり外部ファイルとしてインクルードされる下位層ソフトウェアといった階層に分類される。このような場合、ソフトウェア構築の際、上位層ソフトウェア部品が仕様書等によって指定された際には、この上層ソフトウェア部品が必要とする下位層ソフトウェア部品を選択・抽出する必要がある。このとき、この下位層ソフトウェア部品が、当該システムを搭載する製品のハードウェア構成や搭載されるコンピュータ内部のチップセットに依存する場合、必要な下位層ソフトウェア部品を選択する際には、製品ごとのハードウェア構成やチップセット構成に応じて選択しなければならない。
【０００５】
特に、互いに同じ機能あるいは名称を有する下位層ソフトウェアでも、適用するハードウェア等の種類に応じてそれぞれ異なるバリエーションを持つ複数の下位層ソフトウェア部品（以下、これらをバリエーション部品と称する）が存在する場合、ハードウェア構成に関する情報を参照して複数のバリエーション部品の中から適合する下位層ソフトウェア部品を選択する必要がある。
【０００６】
しかしながら、階層やバリエーションを考慮してソフトウェア部品を選択・抽出する作業は、未だに人手に頼るところが大きい。例えば、上位層ソフトウェア部品のプログラムソースを読み、そこから下位層ソフトウェア部品の呼び出しやインクルードに関する情報を参照し、これを基に必要な下位層ソフトウェア部品を選択・抽出するといった作業が人手により行われている。よって、ソフトウェアを構築する際に階層やバリエーションを考慮してソフトウェア部品を選択・抽出するには、大変な手間や時間が必要となる。そこで、これらの作業を効率的に行うための技術が望まれていた。
【０００７】
しかしながら、特許文献１に記載の発明では、ソフトウェア部品間の階層構造やバリエーションといった概念については、全く考慮されていないため、上記問題を解決することはできない。
【０００８】
本発明は、上記問題を解決するためになされており、ソフトウェア部品間の階層構造やバリエーションを考慮した上で、必要なソフトウェア部品を効率よく検索可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するためになされた請求項１に記載の部品情報検索システムは、上位層ソフトウェア部品に対応する下位層ソフトウェア部品の情報を検索するソフトウェア部品情報検索システムであって、互いに同一の名称を有する複数の下位層ソフトウェア部品であるバリエーション部品の中から、検索結果を必要なバリエーションのものに絞り込む機能を有することを特徴とする。
【００１０】
具体的には、請求項１に記載の部品情報検索システムは、上位層−下位層関連付情報記憶手段と、下位層ソフトウェア部品リスト記憶手段と、絞込情報取得手段と、検索部品リスト記憶手段と、上位層−下位層検索手段と、バリエーション絞込手段と、出力手段とを備える。
【００１１】
このうち、上位層−下位層関連付情報記憶手段は、上位層ソフトウェア部品の名称と、その上位層ソフトウェア部品に対応する下位層ソフトウェア部品の名称との関連付けを定義する上位層−下位層関連付情報を記憶する。下位層ソフトウェア部品リスト記憶手段は、複数のバリエーション部品が少なくとも含まれる下位層ソフトウェア部品群について、各下位層ソフトウェア部品の名称と、当該下位層ソフトウェア部品のバリエーションに関する属性を示す属性情報と、当該下位層ソフトウェア部品に関する部品情報とを関連付けた項目からなる下位層ソフトウェア部品リストを記憶する。
【００１２】
絞込情報取得手段は、複数のバリエーション部品の中から、検索結果を任意のバリエーションのものに絞り込むための情報であり、かつ下位層ソフトウェア部品リストにおける属性情報に対応する情報である絞込属性情報を取得する。検索部品リスト記憶手段は、検索された下位層ソフトウェア部品の名称の一覧である検索部品リストを記憶する。上位層−下位層検索手段は、上位層ソフトウェア部品を指定する情報を取得し、この指定されている上位層ソフトウェア部品に関連付けされている下位層ソフトウェア部品の名称を上層−下位層関連付情報から検索し、この検索した下位層ソフトウェア部品の名称を検索部品リストに加える。
【００１３】
バリエーション絞込手段は、下位層ソフトウェア部品リストにおける各下位層ソフトウェア部品の属性情報と、絞込情報取得手段によって取得された絞込属性情報とを比較し、下位層ソフトウェア部品リストにおいて絞込属性情報に適合しない属性情報に該当するバリエーション部品の項目を検索対象から除外する。出力手段は、バリエーション絞込手段により処理された下位層ソフトウェア部品リストから、検索部品リストに含まれる下位層ソフトウェア部品の名称に該当する全ての下位層ソフトウェア部品（全てのバリエーション部品を含む）の項目を検索し、この検索した項目の内容に応じた出力情報を出力する。
【００１４】
このように構成された部品情報検索システムによれば、ユーザは、上位層ソフトウェア部品の名称、及び下位層ソフトウェア部品のバリエーションを絞り込むための絞込属性情報を部品情報検索システムに入力することで、指定した上位層ソフトウェア部品に対応する下位層ソフトウェア部品の情報を簡単に取得することができる。このとき、検索結果として得られる下位層ソフトウェア部品の情報は、複数のバリエーション部品の中から、ユーザの指定した絞込属性情報に適合するものに絞り込まれており、従来人手によって行ってきたバリエーション部品の選択を自動で行うことができる。したがって、複数のバリエーション部品の中から必要な下位層ソフトウェア部品を効率よく検索可能であり、階層やバリエーションを考慮してソフトウェア部品を選択・抽出する手間を大幅に低減することができる。
【００１５】
ところで、上位層ソフトウェア部品が必要とする下位層ソフトウェア部品を検索する際、この下位層ソフトウェア部品がサブルーチンや外部ファイルとしてインクルードしている他の下位層ソフトウェア部品も同時に検索可能にすることで、ソフトウェア開発に必要なソフトウェア部品をより効率よく検索・抽出できると考えられる。
【００１６】
そこで、請求項２に記載のように構成するとよい。つまり、下位層ソフトウェア部品リストには、各下位層ソフトウェア部品の名称と、この下位層ソフトウェア部品に対応する他の下位層ソフトウェア部品の名称との関連付けを定義する下位層−下位層関連付情報が更に含まれている。そして、下位層ソフトウェア部品リスト（及びこれに含まれる下位層−下位層関連付情報）に基づき、検索部品リストに既に名称が記述されている各下位層ソフトウェア部品（すなわち、従前の検索により抽出された下位層ソフトウェア部品を指す）に関連付けされている他の下位層ソフトウェア部品を検索し、この検索した他の下位層ソフトウェア部品の名称を検索部品リストに追加する。
【００１７】
このように構成された部品情報検索システムによれば、指定された上位層ソフトウェア部品に対応する下位層ソフトウェア部品を検索した後、この検索の結果抽出された下位層ソフトウェア部品に対応する他の下位層ソフトウェア部品も検索することができる。したがって、ユーザは、指定した上位層ソフトウェア部品が必要とする下位層ソフトウェア部品に関する情報のみならず、この下位層ソフトウェア部品が必要とする他の下位層ソフトウェア部品に関する情報も簡単に取得することができる。これにより、ソフトウェア開発に必要なソフトウェア部品に関する情報を取得する手間が大幅に軽減される。
【００１８】
ところで、下位層ソフトウェア部品には、何れの上位層ソフトウェア部品にも依存しない独立性を有し、製品のハードウェア構成や搭載されるコンピュータ内部のチップセット等に依存する下位層ソフトウェア部品がある（以下、独立下位層ソフトウェア部品とも称する）。上位層ソフトウェア部品に対応する下位層ソフトウェアを検索する際、この上位層ソフトウェア部品が適用されるハードウェア構成やチップセットの構成において必要な独立下位層ソフトウェア部品があれば、当該上位層ソフトウェア部品に関連付けされていない独立下位層ソフトウェア部品についても検索可能にすることで、ソフトウェア開発に必要なソフトウェア部品をより効率よく検索・抽出できると考えられる。
【００１９】
そこで、請求項４，５に記載のように構成するとよい。つまり、下位層ソフトウェア部品リストには、何れの上位層ソフトウェア部品にも関連付けされていない独立属性を有する下位層ソフトウェア部品の項目に対して独立属性情報が付されている。そして、この下位層ソフトウェア部品リストから、独立属性情報が付された項目に該当する下位層ソフトウェア部品を検索し、この検索した下位層ソフトウェア部品の名称を検索部品リストに加える。
【００２０】
このように構成された部品情報検索システムによれば、指定された上位層ソフトウェア部品に対応する下位層ソフトウェア部品を検索すると共に、何れの上位層ソフトウェア部品にも依存しない独立下位層ソフトウェア部品も検索することがきる。したがって、ユーザは、指定した上位層ソフトウェア部品が必要とする下位層ソフトウェア部品に関する情報のみならず、ハードウェア構成やチップセットの構成に依存する独立下位層ソフトウェア部品に関する情報も簡単に取得することができる。これにより、ソフトウェア開発に必要なソフトウェア部品に関する情報を取得する手間が大幅に軽減される。
【００２１】
つぎに、請求項６に記載の部品情報検索システムは、上位層−下位層検索手段、バリエーション絞込手段、下位層−下位層検索手段、及び独立下位層部品検索手段の各手段のうち、処理を実行すべき手段を選択するための動作モード選択手段を更に備える。そして、下位層ソフトウェア部品に関する情報の検索に際して、動作モード選択手段により選択された各手段のみが所定の処理を実行し、選択された各手段が所定の処理を実行した結果に基づき、出力情報を出力することを特徴とする。
【００２２】
このように構成された部品情報検索システムによれば、ユーザは、上述の上位層−下位層検索、バリエーションの絞り込み、下位層−下位層検索、及び独立下位層部品検索のうち、どの検索方法を利用して部品情報の検索を行うかを任意に選択できる。よって、ユーザの要求度合に応じた態様でソフトウェア部品の検索を行うことができ、ユーザのニーズに適合する検索結果を提供可能である。
【００２３】
ところで、本発明の部品情報検索システムにおいて、ソフトウェア部品に関する情報を検索する上で必要なデータベースとなる上位層−下位層関連付情報や下位層−下位層関連付情報を自動的に作成するように構成すれば、これらの情報を人手で入力するための手間が大幅に低減され、本発明の部品情報検索システムの運用上、大変有利である。
【００２４】
そこで、上位層−下位層関連付情報の自動作成については、請求項７に記載のように構成するとよい。つまり、まず、上位層ソフトウェア部品のソースコードを取得し、この取得したソースコードから当該上位層ソフトウェア部品及びこの上位層ソフトウェア部品が参照している下位層ソフトウェア部品に関する情報を読み取る。そして、この読み取った情報に基づいて、当該上位層ソフトウェア部品の名称と、この上位層ソフトウェア部品が参照している下位層ソフトウェア部品の名称との関連付けを定義する情報を上位層−下位層関連付情報に記録する。
【００２５】
具体的には、上位層ソフトウェア部品のソースコードから、上位層ソフトウェア部品の名称や、この上位層ソフトウェア部品がインクルードしている下位層ソフトウェア部品の名称等の各情報を抽出し、この抽出した情報を基に上位層ソフトウェア部品の名称と、これに対応する下位層ソフトウェア部品の名称との関連付けを定義する情報を作成するといった手法が考えられる。
【００２６】
また、下位層−下位層関連付情報の自動作成については、請求項３に記載のように構成するとよい。つまり、まず、下位層ソフトウェア部品のソースコードを取得し、この取得したソースコードから当該下位層ソフトウェア部品及びこの下位層ソフトウェア部品が参照している他の下位層ソフトウェア部品に関する情報を読み取る。そして、この読み取った情報に基づいて、当該下位層ソフトウェア部品の名称と、この下位層ソフトウェア部品が参照している他の下位層ソフトウェア部品の名称との関連付けを定義する下位層−下位層関連付情報を下位層ソフトウェア部品リストに記録する。
【００２７】
具体的には、下位層ソフトウェア部品のソースコードから、この下位層ソフトウェア部品の名称や、この下位層ソフトウェア部品がインクルードしている他の下位層ソフトウェア部品の名称等の各情報を抽出し、この抽出した情報を基に下位層ソフトウェア部品の名称と、これに対応する他の下位層ソフトウェア部品の名称との関連付けを定義する情報を作成するといった手法が考えられる。
【００２８】
このようの構成された部品情報検索システムによれば、ソフトウェア部品のソースコードを参照することで、ソフトウェア部品に関する情報を検索する上で必要なデータベースとなる上位層−下位層関連付情報や下位層−下位層関連付情報を自動的に作成できる。よって、これらの情報を人手で入力するための手間が大幅に低減され、部品情報検索システムの運用上の利便性が向上する。
【００２９】
ところで、上述した部品情報検索システムは、請求項８に記載のように、上位層ソフトウェア部品及び下位層ソフトウェア部品からなるソフトウェア部品群を部品データベースとして保管し、管理する部品データベース管理システムが備える機能の一部として構成することが考えられる。
【００３０】
このように構成された部品データベース管理システムによれば、例えば、本発明の部品情報検索システムの機能により検索されたソフトウェア部品の情報に基づき、これらのソフトウェア部品を部品データベースから取得するといった運用が可能である。これにより、ソフトウェア開発に必要なソフトウェア部品の検索及び取得等といったソフトウェア開発に係る作業を同一の装置において行うことができ、作業効率が向上する。また、既存の部品データベース管理システムに、本発明の部品情報検索システムの機能を追加することにより、部品データベース管理システムの大幅な機能向上が見込まれる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の一実施形態を図面に基づいて説明する。
［部品データベース管理システム１の構成の説明］
図１は、本発明が適用された部品データベース管理システム１の概略構成を示すブロック図である。本実施形態の部品データベース管理システム１は、図１に示すように、ローカルエリアネットワーク（ＬＡＮ）を介して互いに通信可能に構成された複数の端末装置１０と、ソフトウェア部品を保管・管理する管理サーバ３０とからなる。
【００３２】
端末装置１０は、内部装置を統括制御するＣＰＵ１１と、プログラム等を記憶するＲＯＭ１３と、ＣＰＵ１１によるプログラム実行時に作業用メモリとして使用されるＲＡＭ１５と、各種データ等を記憶するハードディスク装置（ＨＤＤ）１７と、キーボードやポインティングデバイス（例えば、マウス）等からなる入力部１９と、各種情報を表示するための液晶ディスプレイ等からなる表示部２１と、ＬＡＮに接続された通信装置（管理サーバ３０等）とデータ通信可能なＬＡＮインタフェースとしての通信部２３とを備える。
【００３３】
端末装置１０のハードディスク装置１７には、後述する上位部品一覧ファイル（図６参照）を外部から取得あるいは作成・編集するためのプログラムや、通信部２３を介して管理サーバ３０に対して上記上位層部品一覧ファイルを送信し、その応答として管理サーバ３０から受信した後述の出力情報（図８参照）の内容を表示部２１に表示するためのプログラム等が格納されている。ＣＰＵ１１は、入力部１９から入力されるユーザの指示に従って、それらのプログラムを実行する。
【００３４】
一方、管理サーバ３０は、各種演算処理を行うＣＰＵ３１と、プログラム等を記憶するＲＯＭ３３と、ＣＰＵ３１によるプログラム実行時に作業用メモリとして使用されるＲＡＭ３５と、ハードディスク装置（ＨＤＤ）等の記憶装置からなり、ソフトウェア部品を記憶する部品データベース等の各種データを記憶するデータベース３７と、ＬＡＮに接続された通信装置（端末装置１０等）とデータ通信可能なＬＡＮインタフェースとしての通信部３９とを備える。
【００３５】
なお、ここでいうソフトウェア部品とは、プログラムのソースコードや、プログラムが機能する上で必要な情報のソースコード等が示されたソースファイル等といった、ソフトウェアを構成するために必要なデータファイル（文書）のことである。そして、ソフトウェアが発揮すべき機能に応じて、必要な機能を有するソフトウェア部品を複数組み合わせることで、目的のソフトウェアを構築することができるものである。また、ソフトウェアは多層レイヤ構造を有するものであり、このソフトウェアを構成する各ソフトウェア部品は、上位の層（レイヤ）に属する上位層ソフトウェア部品と、下位の層（レイヤ）に属する下位層ソフトウェア部品とに分類されている。
【００３６】
図２は、データベース３７の構成を模式的に示す説明図である。データベース３７には、上位層及び下位層ソフトウェア部品からなるソフトウェア部品群を格納している部品データベースや、後述の上位層−下位層関連付情報（図３参照）及び下位層ソフトウェア部品リスト（図４）を示すデータファイル等が格納されている。
【００３７】
ここで、上述の上位層−下位層関連付情報及び下位層ソフトウェア部品リストの詳細な内容について説明する。
図３は、データベース３７に格納されている上位層−下位層関連付情報の記述様式の一例を示す説明図である。この上位層−下位層関連付情報は、部品データベースに格納されている各上位層ソフトウェア部品の名称と、当該上位層ソフトウェア部品に対応する（インクルードされる）下位層ソフトウェア部品の名称との関連付けを定義する情報である。
【００３８】
この上位層−下位層関連付情報は、「上位層部品名称」、「オブジェクト名」、「適用」、「下位層部品１〜５」の各項目からなり、各上位層ソフトウェア部品ごとにこれらの項目に対応する情報が登録されている。「上位層部品名称」の項目は、上位層ソフトウェア部品の名称（例えば、ファイル名）を示す項目である。「オブジェクト名」の項目は、当該上位層ソフトウェア部品が実現する機能の実態に即した名称を示す項目である。「適用」の項目は、当該上位層ソフトウェア部品のユーザに対する説明情報を示す項目である。「下位層部品１〜５」の各項目は、当該上位層ソフトウェア部品に関連付けられている下位層ソフトウェア部品の名称を示す項目である。なお、「上位層部品名称」、「オブジェクト名」、「適用」の各項目に記述されている内容は、それぞれの上位層ソフトウェア部品のソースコードの先頭に付加されているヘッダにも記述されている。
【００３９】
図４は、データベース３７に格納されている下位層ソフトウェア部品リストの記述様式の一例を示す説明図である。この下位層ソフトウェア部品リストは、部品データベースに格納されている各下位層ソフトウェア部品ごとに、当該下位層ソフトウェア部品に関する各種情報を定義するリストである。
【００４０】
この下位層ソフトウェア部品リストは、「独立属性」、「下位層部品名」、「バリエーション」、「オブジェクト名」、「適用」、「下位層１〜４」、及び「属性情報」の各項目からなり、各下位層ソフトウェア部品ごとにこれらの項目に対応する情報が登録されている。「独立属性」の項目は、当該下位層ソフトウェア部品が、何れの上位層ソフトウェア部品にも依存しない（インクルードされない）独立属性を有するか否かを示す項目である。この「独立属性」項目に「default」と記述されている場合、その下位層ソフトウェア部品が独立属性を有する部品（以下、独立下位層ソフトウェア部品と称する）であることを示す。図４に示す例では、名称「ｄｅｆ０３」及び「ｄｅｆ０９」の各部品が、独立下位層ソフトウェア部品に該当する。
【００４１】
「下位層部品名」の項目は、各下位層ソフトウェア部品の名称（例えば、ファイル名）を示す項目である。なお、「下位層部品名」の項目において、複数の下位層ソフトウェア部品に対して同一の名称が付されている場合、これらは互いにバリエーション（ソフトウェアの版）の異なる部品である。以降、これらをバリエーション部品と称する。図４に示す例では、「ｄｅｆ０１」、「ｄｅｆ０３」、「ｄｅｆ０５」、「ｄｅｆ１０」の名称を有する各部品が、バリエーション部品に該当する。「バリエーション」の項目は、各下位層ソフトウェア部品のバリエーション番号を示す項目である。「オブジェクト名」の項目は、当該下位層ソフトウェア部品が実現する機能の実態に即した名称を示す項目である。「適用」の項目は、当該下位層ソフトウェア部品のユーザに対する説明情報を示す項目である。
【００４２】
なお、「下位層部品名」、「バリエーション」、「オブジェクト名」、「適用」の各項目に記述されている内容は、それぞれの下位層ソフトウェア部品のソースコードの先頭に付加されているヘッダにも記述されている。
【００４３】
「下位層１〜４」の各項目は、下位層ソフトウェア部品の名称と、この下位層ソフトウェア部品に対応する（インクルードされる）他の下位層ソフトウェア部品の名称との関連付けを定義する情報である。この項目には、当該下位層ソフトウェア部品に関連付けられている他の下位層ソフトウェア部品の名称が記述されている。
【００４４】
「属性情報」の項目は、複数のバリエーション部品にそれぞれ与えられている属性を示す項目である。この「属性情報」は、後述の「ソフトウェア部品情報検索処理」において、検索結果として得られる下位層ソフトウェア部品に関する情報をユーザが目的とするバリエーションのものに絞り込むために用いられる。この「属性情報」の項目には、「３気筒」、「Ｄ社／Ｆ社ＥＣＵ」、「ハイブリッド」、「メイン／サブ」、「マイコン」、「拡張ＩＣ」、「噴射方式」といった細目ごとに、各バリエーション部品が有する属性値が記述されている。例えば、「３気筒」の細目において、属性値として「３ＣＹＬ」と記述されているバリエーション部品は３気筒のエンジンの制御システム専用のソフトウェア部品であることを示す。また、同じ「３気筒」の細目において、属性値として「ＯＴＨＥＲ」と記述されているバリエーション部品は、３気筒以外のエンジンの制御システムに適用可能なソフトウェア部品であることを示す。また、何れの属性値も記述されていない場合、３気筒か否かに関わらず適用可能である。なお、「属性情報」の項目における各細目の詳細な内容については、本発明の本質部分ではないため、これ以上の説明は省略するが、他の細目についても上述の「３気筒」の細目に対する説明と同様である。
【００４５】
以上のような構成を有する部品データベース管理システム１は、管理サーバ３０にソフトウェア部品を集めて管理し、端末装置１０から管理サーバ３０へアクセスすることで容易にソフトウェア部品の検索、抽出等の再利用をできるようにしたものである。
【００４６】
このうち、管理サーバ３０はデータベース管理に関する各種処理を実行するが、特に、本発明の特徴的な処理として「ソフトウェア部品情報検索処理」が挙げられる。管理サーバ３０は、検索要求元である端末装置１０を通じてユーザから指定された上位層ソフトウェア部品について、当該上位層ソフトウェア部品が機能するのに必要な下位層ソフトウェアを検索し、この検索により得られた下位層ソフトウェア部品に関する各種情報を当該検索要求元である端末装置１０へ出力する。以下、管理サーバ３０が実行する「ソフトウェア部品情報検索処理」の詳細な内容について、図５〜１７に基づいて説明する。
【００４７】
［ソフトウェア部品情報検索処理の説明］
図５は、管理サーバ３０が実行する「ソフトウェア部品情報検索処理」の機能的構成を示すブロック図である。なお、図５に示す各構成要素は、「ソフトウェア部品情報検索処理」の機能を抽象的に示したものであり、これらの機能は管理サーバ３０が備えるＣＰＵ３１、ＲＯＭ３３、ＲＡＭ３５、データベース３７及び通信部３９等によって実現されるものである。
【００４８】
「ソフトウェア部品情報検索処理」を開始すると、まず、（１）の動作モード選択部が、検索要求元である端末装置１０を通じて、動作モード（検索方式）を選択する指示をユーザから受け付け、ユーザによる選択内容を動作モード記憶部（例えば、ＲＡＭ３５等）に記憶する（「動作モード選択処理」）。
【００４９】
つぎに、（２）の絞込属性選択部は、検索要求元である端末装置１０を通じて、下位層ソフトウェア部品に関する情報の検索結果を所定のバリエーションのものに絞り込むための絞込属性を選択する指示をユーザから受け付け、ユーザからの指示に応じた絞込属性値を絞込属性記憶部（例えば、ＲＡＭ３５等）に記憶する（「絞込属性選択処理」）。
【００５０】
つぎに、（３）の上位層−下位層部品検索部は、検索要求元の端末装置１０から入力される後述の上位層部品一覧ファイル（図６参照）から上位層ソフトウェア部品の名称を読み取り、データベース３７に格納されている上述の上位層−下位層関連付情報（図３参照）から当該上位層ソフトウェア部品に関連付けされている下位層ソフトウェア部品の名称を検索する。そして、この検索された下位層ソフトウェア部品の名称を、後述の検索部品リスト（図７参照）として検索部品リスト記憶部（例えば、ＲＡＭ３５等）に記憶する（「上位層−下位層部品検索処理」）。
【００５１】
ここで、上述の上位層部品一覧ファイル及び検索部品リストの詳細な内容について説明する。
図６は、上位層部品一覧ファイルの記述様式の一例を示す説明図である。この上位層部品一覧ファイルに記載されているリストは、例えばソフトウェアの発注者が製品要件やシステム要件に応じて指定してくる上位層ソフトウェア部品の一覧である。上位層部品一覧ファイルは、端末装置１０において作成あるいは外部から入力され、下位層ソフトウェア部品に関する情報の検索を行う際に端末装置１０から管理サーバ３０へ送信されるものである。
【００５２】
この上位層部品一覧ファイルは、図６に示すように、上位層ソフトウェア部品の名称（例えば、ファイル名）を示す「上位層部品名称」の項目、及び当該上位層ソフトウェア部品が実現する機能の実態に即した名称を示す「オブジェクト名」の項目からなり、各上位層ソフトウェア部品ごとにこれらの項目に対応する情報が登録されている。なお、上位層ソフトウェア部品の名称において、例えば「ａｂｃ０１−ａ００」という名称のうち「−（ハイフン）」以下の記号「ａ００」は、バリエーションを示す情報である。
【００５３】
図７は、検索部品リストの記述様式の一例を示す説明図である。この検索部品リストは、上述の上位層−下位層検索部（図５の（３）参照）や後述の独立下位層部品検索部（図５の（５）参照）及び下位層−下位層部品検索部（図５の（６）参照）の各部により検索された下位層ソフトウェア部品の名称が羅列して記述される。
【００５４】
図５の説明に戻る。つぎに、（４）のバリエーション絞込部は、絞込属性記憶部に記憶されている絞込属性値と、上述の下位層ソフトウェア部品リスト（図４参照）の属性情報とを参照し、絞込属性記憶部に記憶されている絞込属性で示される条件に適合しない下位層ソフトウェア部品の項目（行）を下位層ソフトウェア部品リストから削除することで、リスト上におけるバリエーション部品の絞り込みを行う（「バリエーション絞込処理」）。なお、絞込属性に適合しない下位層ソフトウェア部品の項目（行）を削除する際、データベース３７に格納されているオリジナルの下位層ソフトウェア部品リストから削除するのではなく、データベース３７からＲＡＭ３５等の作業用メモリに当該下位層ソフトウェア部品リストを一旦読み込み、作業用メモリ上のリストから削除する。
【００５５】
つぎに、（５）の独立下位層部品検索部は、作業用メモリ上の下位層ソフトウェア部品リスト（図４参照）から独立下位層ソフトウェア部品を検索し、検索された独立下位層ソフトウェア部品の名称を検索部品リスト（図７参照）に追加する（「独立下位層部品検索処理」）。
【００５６】
つぎに、（６）の下位層−下位層部品検索部は、検索部品リスト（図７参照）に既に記録されている下位層ソフトウェア部品の名称を読み出し、この名称に該当する下位層ソフトウェア部品に関連付けされている他の下位層ソフトウェア部品の名称を、作業用メモリ上の下位層ソフトウェア部品リスト（図４参照）から検索する。そして、この検索された下位層ソフトウェア部品の名称を検索部品リストに追加する（「下位層−下位層部品検索処理」）。
【００５７】
つぎに、（７）の出力情報生成部は、検索部品リスト（図７参照）に既に記録されている下位層ソフトウェア部品の名称を読み出し、これらの名称に該当する全ての下位層ソフトウェア部品に関する各種情報を、作業用メモリ上の下位層ソフトウェア部品リスト（図４参照）から取得する。このとき、（４）のバリエーション絞込部によってバリエーション部品の絞り込みが既に行われていれば、その絞り込みの行われた下位層ソフトウェア部品リストから、検索部品リストに記録されている名称に該当する全ての下位層ソフトウェア部品（バリエーション部品を含む）について情報を取得する。そして、この取得した情報に基づいて出力情報（図８参照）を作成し、これを検索要求元の端末装置１０へ送信する（「出力情報生成処理」）。端末装置１０は、管理サーバ３０から受信した出力情報の内容を、表示部２１に表示する。
【００５８】
ここで、上述の出力情報の詳細な内容について説明する。図８は、出力情報の記述様式の一例を示す説明図である。出力情報は、「下位層部品名」、「バリエーション」、「オブジェクト名」、「適用」の各項目からなり、各下位層ソフトウェア部品ごとにこれらの項目に対応する情報が記録されている。「下位層部品名」の項目は、上述の検索部品リスト（図７参照）に記録されていた下位層ソフトウェア部品の名称を示す項目である。また、「バリエーション」、「オブジェクト名」、「適用」の各項目は、上述の下位層ソフトウェア部品リスト（図４参照）における当該下位層ソフトウェア部品の各項目の内容を読み出した情報を示す項目である。
【００５９】
バリエーション絞込部（図５の（４）参照）によって下位層ソフトウェア部品リストに対するバリエーション部品の絞り込みが行われることで、この出力情報に記載される下位層ソフトウェア部品に関する情報は、ユーザが指定した絞込属性に適合するバリエーション部品のみに限定されている。また、バリエーション絞込部よるバリエーション部品の絞り込みの結果、依然として下位層ソフトウェア部品リストに同一名称のバリエーション部品が複数存在する場合、全てのバリエーション部品に関する情報が出力情報に記載される。図８に示す例では、名称「ｄｅｆ０３」がこれに該当する。
【００６０】
図５の説明に戻る。（８）の上位層−下位層関連付情報登録部は、管理サーバ３０の部品データベース（図２参照）内に新規の上位層ソフトウェア部品が格納される際、この新規の上位層ソフトウェア部品のソースコードから、当該上位層ソフトウェア部品が参照（インクルード）している下位層ソフトウェア部品の名称等を読み取る。そして、この読み取った下位層ソフトウェア部品の名称に基づき、当該上位層ソフトウェア部品の名称と、この上位層ソフトウェア部品に対応する下位層ソフトウェア部品の名称との関連付を定義する情報を、上位層−下位層関連付情報（図３参照）における所定の項目に登録する（「上位層−下位層関連付情報登録処理」）。
【００６１】
（９）の下位層−下位層関連付情報登録部は、管理サーバ３０の部品データベース（図２参照）内に新規の下位層ソフトウェア部品が格納される際、この新規の下位層ソフトウェア部品のソースコードから、当該下位層ソフトウェア部品が参照（インクルード）している他の下位層ソフトウェア部品の名称等を読み取る。そして、この読み取った他の下位層ソフトウェア部品の名称に基づき、当該新規の下位層ソフトウェア部品の名称と、この下位層ソフトウェア部品に対応する他の下位層ソフトウェア部品の名称との関連付を定義する情報を、下位層ソフトウェア部品リスト（図４参照）における所定の項目に登録する（「下位層−下位層関連付情報登録処理」）。
【００６２】
以下、管理サーバ３０が実行する上述の「動作モード選択処理」、「絞込属性選択処理」、「上位層−下位層部品検索処理」、「バリエーション絞込処理」、「独立下位層部品検索処理」、「下位層−下位層部品検索処理」、「出力情報生成処理」、「上位層−下位層関連付情報登録処理」、及び「下位層−下位層関連付情報登録処理」の各処理の詳細な手順について、図９〜１７に示すフローチャートに基づいて説明する。
【００６３】
図９（ａ）は、管理サーバ３０が実行する上述の「動作モード選択処理」の手順を示すフローチャートである。この処理は、端末装置１０を通じて「ソフトウェア部品情報検索処理」の開始を要求する指示がユーザから入力されることで開始される。このとき、処理の開始を要求する指示と併せて、上位層部品一覧ファイル（図６）が検索要求元の端末装置１０から管理サーバ３０へ入力される。
【００６４】
まず、動作モード選択用のＧＵＩ（Graphical User Interface）４１を要求元の端末装置１０に表示させ、ユーザからの入力を受け付ける（Ｓ１１０）。
図９（ｂ）は、要求元の端末装置１０の表示部２１に表示される動作モード選択用のＧＵＩ４１の一例を示す説明図である。図９（ｂ）に示すように、このＧＵＩ４１には、上位層−下位層部品検索（上述の「上位層−下位層部品検索処理」に相当）、独立下位層部品検索（上述の「独立下位層部品検索処理」に相当）、下位層−下位層部品検索（上述の「下位層−下位層部品検索処理」に相当）の各動作モードの項目に対して、オンとオフとを選択するためのチェックボックスがそれぞれ設けられている。ユーザは、端末装置１０の入力部１９（例えばポインティングデバイス等）を操作して希望する動作モードに対応するチェックボックスをオンの状態（レ点が付いた状態）にすることで、当該動作モードを選択することができる。なお、ここでは、複数の動作モードを同時に選択することが可能である。動作モードの選択後、「ＯＫ」ボタン４２を押下する（ポインティングデバイス等によってクリックする操作を指す）ことで選択内容が確定し、ユーザによる選択内容が端末装置１０から管理サーバ３０へ通知される。また、「キャンセル」ボタン４３を押下することで、動作モードの選択を中止し、「ソフトウェア部品情報検索処理」を終了させることができる。
【００６５】
図９（ａ）のフローチャートの説明に戻る。Ｓ１１０でユーザからの動作モードの選択入力を受け付けた後、端末装置１０から通知された選択内容に基づき、上位層−下位層部品検索の実行の要否を動作モード記憶部（図５参照）に記憶する（Ｓ１２０）。つまり、動作モード選択用のＧＵＩ４１において、上位層−下位層部品検索の項目に対応するチェックボックスがオンにされていれば、上位層−下位層部品検索を実行する旨の情報を動作モード記憶部に記憶する。あるいは、このチェックボックスがオフであれば、上位層−下位層部品検索を実行しない旨の情報を動作モード記憶部に記憶する。
【００６６】
つぎに、端末装置１０から通知された選択内容に基づき、独立下位層部品検索の実行の要否を動作モード記憶部（図５参照）に記憶する（Ｓ１３０）。つまり、動作モード選択用のＧＵＩ４１において、独立下位層部品検索の項目に対応するチェックボックスがオンにされていれば、独立下位層部品検索を実行する旨の情報を動作モード記憶部に記憶する。あるいは、このチェックボックスがオフであれば、独立下位層部品検索を実行しない旨の情報を動作モード記憶部に記憶する。
【００６７】
つぎに、端末装置１０から通知された選択内容に基づき、下位層−下位層部品検索の実行の要否を動作モード記憶部（図５参照）に記憶し（Ｓ１３０）、本処理を終了する。つまり、動作モード選択用のＧＵＩ４１において、下位層−下位層部品検索の項目に対応するチェックボックスがオンにされていれば、下位層−下位層部品検索を実行する旨の情報を動作モード記憶部に記憶する。あるいは、このチェックボックスがオフであれば、下位層−下位層部品検索を実行しない旨の情報を動作モード記憶部に記憶する。
【００６８】
図１０（ａ）は、管理サーバ３０が実行する上述の「絞込属性選択処理」の手順を示すフローチャートである。この処理は、上述の「動作モード選択処理」（図５，９参照）実行後に続いて開始される。まず、絞込属性選択用のＧＵＩ５１を要求元の端末装置１０に表示させ、ユーザからの入力を受け付ける（Ｓ２１０）。
【００６９】
図１０（ｂ）は、要求元の端末装置１０の表示部２１に表示される絞込属性選択用のＧＵＩ５１の一例を示す説明図である。図１０（ｂ）に示すように、このＧＵＩ５１には、「３気筒か」、「ＥＣＵはＤ社製／Ｆ社製か」、「ハイブリッドシステムか」、「メイン／サブ選択」、「マイコン選択」、「拡張ＩＣ選択」、「噴射方式」といった絞込属性の選択項目ごとに、それぞれ複数の選択肢が設けられている。また、１つの選択項目内にある複数の選択肢の中からひとつを選択するためのラジオボタンが、各選択肢に対してそれぞれ設けられている。例えば、「３気筒か」という選択項目には、「３気筒」及び「その他」といった複数の選択肢が設けられている。他の選択項目についても同様である。
【００７０】
なお、このＧＵＩ５１における上記各選択項目は、上述の下位層ソフトウェア部品リスト（図４参照）における属性情報の各細目（「３気筒」、「Ｄ社／Ｆ社ＥＣＵ」、「ハイブリッド」、「メイン／サブ」、「マイコン」、「拡張ＩＣ」、「噴射方式」）にそれぞれ対応するものである。また、このＧＵＩ５１における選択項目ごとに設けられた各選択肢の内容は、下位層ソフトウェア部品リストの属性情報における該当の細目に記述される属性値と対応するものである。
【００７１】
ユーザは、端末装置１０の入力部１９（例えばポインティングデバイス等）を操作して、開発する製品の仕様に適合する選択肢に対応するラジオボタンをオンの状態（●点が付いた状態）にすることで、絞込属性の各選択項目から選択肢をそれぞれ１つずつ選択することができる。絞込属性の選択後、「ＯＫ」ボタン５２を押下することで選択内容が確定し、ユーザによる選択内容が端末装置１０から管理サーバ３０へ通知される。また、「スキップ」ボタン５３を押下することで、絞込属性の選択を飛ばして次の処理へ移行させることができる。この場合、絞込属性の選択をスキップした旨の情報が端末装置１０から管理サーバ３０へ通知される。また、「キャンセル」ボタン５４を押下することで、絞込属性の選択を中止し、「ソフトウェア部品情報検索処理」を終了させることができる。
【００７２】
図１０（ａ）のフローチャートの説明に戻る。Ｓ２１０でユーザからの絞込属性の選択入力を受け付けた後、端末装置１０から通知された選択内容に応じた所定の絞込属性値を絞込属性記憶部（図５参照）に記憶し（Ｓ２２０）、本処理を終了する。
【００７３】
具体的には、絞込属性選択用のＧＵＩ５１において、「３気筒か」の選択項目で「３気筒」の選択肢が選択された場合、絞込属性記憶部には「３ＣＹＬ」を示す情報が当該選択項目に対応する絞込属性値として記憶され、「その他」の選択肢が選択された場合、「ＯＴＨＥＲ」を示す情報が当該選択項目に対応する絞込属性値として記憶される。これらの絞込属性値は、上述の下位層ソフトウェア部品リスト（図４参照）における属性情報の該当の細目（「３気筒」）に記述される属性値と対応するものである。なお、他の選択項目についても同様である。また、絞込属性選択用のＧＵＩ５１において「スキップボタン」５２が押下された場合、絞込属性の選択が無効である旨の情報を絞込属性記憶部に記憶する。
【００７４】
図１１は、管理サーバ３０が実行する上述の「上位層−上位層部品検索処理」の手順を示すフローチャートである。この処理は、上述の「絞込属性選択処理」（図５，１０参照）実行後に続いて開始される。まず、動作モード記憶部（図５参照）の記憶内容に基づき、上位層−下位層部品検索がユーザにより選択されているか否かを判定する（Ｓ３１０）。具体的には、上位層−下位層部品検索を実行する旨の情報が動作モード記憶部に記憶されているか否かを判定する。ここで、上位層−下位層部品検索が選択されていないと判定した場合（Ｓ３１０：ＮＯ）、すなわち、上位層−下位層部品検索を実行しない旨の情報が記憶されている場合、本処理を終了する。
【００７５】
一方、上位層−下位層部品検索が選択されていると判定した場合（Ｓ３１０：ＹＥＳ）、すなわち、上位層−下位層部品検索を実行する旨の情報が記憶されている場合、検索要求元の端末装置１０から入力された上位層部品一覧ファイル（図６参照）から上位層ソフトウェア部品の名称をリストの上位から順に読み取る（Ｓ３２０）。
【００７６】
つぎに、データベース３７に格納されている上位層−下位層関連付情報（図３参照）から、Ｓ３２０で読み取った名称に該当する上位層ソフトウェア部品を検索する（Ｓ３３０）。そして、検索により発見された上位層ソフトウェア部品の項目（行）から、この上位層ソフトウェア部品に関連付けされている下位層ソフトウェア部品の名称を全て読み出し、この読み出した下位層ソフトウェア部品の名称を検索部品リスト（図７参照）へ記録する（Ｓ３４０）。
【００７７】
つぎに、上位層部品一覧ファイルに記述されている全ての上位層ソフトウェア部品について検索を行ったか否かを判定する（Ｓ３５０）。ここで、全ての上位層ソフトウェア部品についての検索が完了していないと判定した場合（Ｓ３５０：ＮＯ）、Ｓ３２０の処理へ戻り、上位層部品一覧ファイルにおける次の上位層ソフトウェア部品の名称を読み取る。以降、Ｓ３２０〜Ｓ３５０の処理を順次繰り返し、Ｓ３５０において全ての上位層ソフトウェア部品について検索を行ったと判定した場合（Ｓ３５０：ＹＥＳ）、検索部品リストに記述されている下位層ソフトウェア部品の名称を昇順にソートし、名称が重複する項目を削除する（Ｓ３６０）。
【００７８】
図１２は、管理サーバ３０が実行する上述の「バリエーション絞込処理」の手順を示すフローチャートである。この処理は、上述の「上位層−下位層部品検索処理」（図５，１１参照）実行後に続いて開始される。まず、絞込属性記憶部（図５参照）の記憶内容に基づいて、絞込属性の選択が有効であるか否かを判定する（Ｓ４１０）。ここで、絞込属性の選択が無効であると判定した場合（Ｓ４１０：ＮＯ）、すなわち、上述の「絞込属性選択処理」（図５，１０参照）においてユーザがスキップを選択した場合、本処理を終了する。
【００７９】
一方、絞込属性の選択が有効であると判定した場合（Ｓ４１０：ＹＥＳ）、すなわち、絞込属性記憶部にユーザから指定された絞込属性値が記憶されている場合、記憶されている１の選択項目に対応する絞込属性値と、作業用メモリ上の下位層ソフトウェア部品リスト（図４）の属性情報における該当の細目に記述されている各下位層ソフトウェア部品の属性値とを比較する。そして、絞込属性記憶部に記憶されている絞込属性値に適合しない属性値を有する下位層ソフトウェア部品の項目（行）を作業メモリ上のリストから削除する（Ｓ４２０）。例えば、「３気筒か」の選択項目に対応する絞込属性値として「３ＣＹＬ」の値が絞込属性記憶部に記憶されている場合、下位層ソフトウェア部品リストにおいて、この選択項目に対応する「３気筒」の細目に「ＯＴＨＥＲ」の属性値が記述されている下位層ソフトウェア部品（バリエーション部品）の項目（行）をリストから削除する。また、下位層ソフトウェア部品リストにおいて、この選択項目対応する「３気筒」の細目に何も記述されていない場合、その下位層ソフトウェア部品は削除の対象にならない。なお、他の絞込属性の選択項目についても同様である。
【００８０】
つぎに、絞込属性の全ての選択項目について処理を行ったか否かを判定する（Ｓ４３０）、ここで、全ての選択項目に対する処理を完了していないと判定した場合（Ｓ４３０：ＮＯ）、Ｓ４２０の処理へ戻って次の選択項目に対応する絞込属性値について処理を行う。以降、Ｓ４２０，Ｓ４３０の処理を順次繰り返し、Ｓ４３０において全ての選択項目について処理を行ったと判定した場合（Ｓ４３０：ＹＥＳ）、本処理を終了する。
【００８１】
図１３は、管理サーバ３０が実行する上述の「独立下位層部品検索処理」の手順を示すフローチャートである。この処理は、上述の「バリエーション絞込処理」（図５,１２参照）の実行後、続けて開始される。まず、動作モード記憶部（図５参照）の記憶内容に基づき、独立下位層部品検索が選択されているか否かを判定する（Ｓ５１０）。具体的には、独立下位層部品検索を実行する旨の情報が動作モード記憶部に記憶されているか否かを判定する。ここで、独立下位層部品検索が選択されていないと判定した場合（Ｓ５１０：ＮＯ）、すなわち、独立下位層部品検索を実行しない旨の情報が記憶されている場合、本処理を終了する。
【００８２】
一方、独立下位層部品検索が選択されていると判定した場合（Ｓ５１０：ＹＥＳ）、すなわち、独立下位層部品検索を実行する旨の情報が記憶されている場合、下位層ソフトウェア部品リスト（図４参照）において、リストの上位から順に「独立属性」の項目に「default」の値が記述されている下位層ソフトウェア部品を検索する（Ｓ５２０）。そして、検索により発見された下位層ソフトウェア部品の名称を読み出し、この読み出した下位層ソフトウェア部品の名称を検索部品リスト（図７参照）へ記録する（Ｓ５３０）。
【００８３】
つぎに、下位層ソフトウェア部品リストに記述されている全ての下位層ソフトウェア部品に対して検索を行ったか否かを判定する（Ｓ５４０）。ここで、全ての下位層ソフトウェア部品に対する検索が完了していないと判定した場合（Ｓ５４０：ＮＯ）、Ｓ５２０の処理へ戻り、下位層ソフトウェア部品リストにおける次の下位層ソフトウェア部品から検索を行う。以降、Ｓ５２０〜Ｓ５４０の処理を順次繰り返し、Ｓ５４０において全ての下位層ソフトウェア部品について検索を行ったと判定した場合（Ｓ５４０：ＹＥＳ）、検索部品リストに記述されている下位層ソフトウェア部品の名称を昇順にソートし、名称が重複する項目を削除する（Ｓ５５０）。
【００８４】
図１４は、管理サーバ３０が実行する上述の「下位層−下位層部品検索処理」の手順を示すフローチャートである。この処理は、上述の「独立下位層部品検索処理」（図５,１３参照）の実行後、続けて開始される。まず、動作モード記憶部（図５参照）の記憶内容に基づき、下位層−下位層部品検索がユーザにより選択されているか否かを判定する（Ｓ６１０）。具体的には、下位層−下位層部品検索を実行する旨の情報が動作モード記憶部に記憶されているか否かを判定する。ここで、下位層−下位層部品検索が選択されていないと判定した場合（Ｓ６１０：ＮＯ）、すなわち、下位層−下位層部品検索を実行しない旨の情報が記憶されている場合、本処理を終了する。
【００８５】
一方、下位層−下位層部品検索が選択されていると判定した場合（Ｓ６１０：ＹＥＳ）、すなわち、下位層−下位層部品検索を実行する旨の情報が記憶されている場合、検索部品リスト（図７）の上位から順に下位層ソフトウェア部品の名称を読み取る（Ｓ６２）。つぎに、作業用メモリ上の下位層ソフトウェア部品リスト（図４参照）から、Ｓ６２０で読み取った名称に該当する下位層ソフトウェア部品を検索する（Ｓ６３０）。そして、検索により発見された下位層ソフトウェア部品の項目（行）から、この下位層ソフトウェア部品に関連付されている他の下位層ソフトウェア部品の名称を全て読み出し、この読み出した下位層ソフトウェア部品の名称を検索部品リストの最後尾へ追加する（Ｓ６４０）。
【００８６】
つぎに、検索部品リストに記述されている全ての下位層ソフトウェア部品について検索を行ったか否かを判定する（Ｓ６５０）。ここで、全ての下位層ソフトウェア部品についての検索が完了していないと判定した場合（Ｓ６５０：ＮＯ）、Ｓ６２０の処理へ戻り、検索部品リストにおける次の下位層ソフトウェア部品の名称を読み取る。以降、Ｓ６２０〜Ｓ６５０の処理を順次繰り返し、Ｓ６５０において全ての下位層ソフトウェア部品について検索を行ったと判定した場合（Ｓ６５０：ＹＥＳ）、検索部品リストに記述されている下位層ソフトウェア部品の名称を昇順にソートし、名称が重複する項目を削除する（Ｓ６６０）。
【００８７】
図１５は、管理サーバ３０が実行する上述の「出力情報生成処理」の手順を示すフローチャートである。この処理は、上述の「下位層−下位層部品検索処理」（図５,１４参照）の実行後、続けて開始される。まず、検索部品リスト（図７参照）の上位から順に下位層ソフトウェア部品の名称を読み取る（Ｓ７１０）。つぎに、作業用メモリ上の下位層ソフトウェア部品リスト（図４参照）から、Ｓ７１０で読み取った名称に該当する全ての下位層ソフトウェア部品を検索する（Ｓ７２０）。そして、検索により発見された下位層ソフトウェア部品の項目（行）から、「下位層部品名」、「バリエーション」、「オブジェクト名」、「適用」の各項目に記述されている情報を読み出し、これを上述の出力情報（図８参照）として記録する（Ｓ７３０）。
【００８８】
つぎに、検索部品リストに記述されている全ての下位層ソフトウェア部品について処理を行ったか否かを判定する（Ｓ７４０）。ここで、全ての下位層ソフトウェア部品についての処理が完了していないと判定した場合（Ｓ７４０：ＮＯ）、Ｓ７１０の処理へ戻り、検索部品リストにおける次の下位層ソフトウェア部品の名称を読み取る。以降、Ｓ７１０〜Ｓ７４０の処理を順次繰り返し、Ｓ７４０において全ての下位層ソフトウェア部品について処理を行ったと判定した場合（Ｓ７４０：ＹＥＳ）、出力情報を検索要求元の端末装置１０へ出力する（Ｓ７５０）。
【００８９】
なお、上述の「バリエーション絞込処理」（図５，１２参照）において下位層ソフトウェア部品リストに対するバリエーション部品の絞り込みが行われている場合、この「出力情報生成処理」では、ユーザが選択した絞込属性に適合するバリエーション部品に関する情報のみが出力情報として抽出される。つまり、下位層ソフトウェア部品に関する情報の検索に際し、ユーザが目的に応じた絞込属性を選択することで、ユーザにとって不要な情報が除外された検索結果を得ることができる。
【００９０】
図１６は、管理サーバ３０が実行する上述の「上位層−下位層関連付情報登録処理」の手順を示すフローチャートである。この処理は、管理サーバ３０の部品データベース（図２参照）に、新規の上位層ソフトウェア部品が格納される際に実行される。まず、この新規の上位層ソフトウェア部品のソースコードの先頭部分に付加されているヘッダ（当該上位層ソフトウェア部品自体に関する情報）から、当該上位層ソフトウェア部品の名称、オブジェクト名及び適用に該当する情報を読み取る（Ｓ８１０）。つぎに、当該上位層ソフトウェア部品のソースコード内のインクルード文（例えば、Ｃ言語では「#include」を使った命令文）から、上位層ソフトウェア部品が参照（インクルード）している全ての下位層ソフトウェア部品の名称を取得する（Ｓ８２０）。
【００９１】
つぎに、Ｓ８１０で読み取った名称に該当する上位層ソフトウェアを上位層−下位層関連付情報（図３参照）から検索し（Ｓ８３０）、リスト内に該当する上位層ソフトウェア部品があるか否かを判定する（Ｓ８４０）。ここで、リスト内に該当する上位層ソフトウェア部品が存在すると判定した場合（Ｓ８４０：ＹＥＳ）、上位層−下位層関連付情報における「下位層部品１〜５」の項目の内容をＳ８２０で取得した名称に更新する（Ｓ８５０）。
【００９２】
一方、Ｓ８４０でリスト内に該当する上位層ソフトウェア部品が存在しないと判定した場合（Ｓ８４０：ＮＯ）、Ｓ８１０で取得した上位層ソフトウェア部品の名称、オブジェクト名及び適用に該当する各情報と、Ｓ８２０で取得した下位層ソフトウェア部品の名称とを、「上位層−下位層関連付情報」における「上位層部品名称」、「オブジェクト名」、「適用」、「下位層部品１〜５」の各項目にそれぞれ記録し、当該上位層ソフトウェア部品の項目（行）を新たにリストに追加する（Ｓ８６０）。
【００９３】
図１７は、管理サーバ３０が実行する上述の「下位層−下位層関連付情報登録処理」の手順を示すフローチャートである。この処理は、管理サーバ３０の部品データベース（図２参照）に、新規の下位層ソフトウェア部品が格納される際に実行される。まず、この新規の下位層ソフトウェア部品のソースコードの先頭部分に付加されているヘッダから、当該下位層ソフトウェア部品の名称、バリエーション、オブジェクト名及び適用に該当する情報を読み取る（Ｓ９１０）。つぎに、当該下位層ソフトウェア部品のソースコード内のインクルード文から、下位層ソフトウェア部品が参照（インクルード）している全ての下位層ソフトウェア部品の名称を取得する（Ｓ９２０）。
【００９４】
つぎに、Ｓ９２０で読み取った名称に該当する下位層ソフトウェアを下位層ソフトウェア部品リスト（図４参照）から検索し（Ｓ９３０）、リスト内に該当する下位層ソフトウェア部品があるか否かを判定する（Ｓ９４０）。ここで、リスト内に該当する下位層ソフトウェア部品が存在すると判定した場合（Ｓ９４０：ＹＥＳ）、下位層ソフトウェア部品リストにおける「下位層１〜４」の項目の内容をＳ９２０で取得した名称に更新する（Ｓ９５０）。
【００９５】
一方、Ｓ９４０でリスト内に該当する下位層ソフトウェア部品が存在しないと判定した場合（Ｓ９４０：ＮＯ）、Ｓ９１０で取得した下位層ソフトウェア部品の名称、バリエーション、オブジェクト名及び適用に該当する各情報と、Ｓ９２０で取得した下位層ソフトウェア部品の名称とを、下位層ソフトウェア部品リストにおける「下位層部品名」、「バリエーション」、「オブジェクト名」、「適用」、「下位層１〜４」の各項目にそれぞれ記録し、当該下位層ソフトウェア部品の項目（行）を新たにリストに追加する（Ｓ９６０）。
【００９６】
以上、本実施形態の部品データベース管理システム１について説明したが、本実施形態の部品データベース管理システム１の構成と、特許請求の範囲に記載の構成との対応は次のとおりである。
【００９７】
実施形態の部品データベース管理システム１における管理サーバ３０のデータベース３７が、特許請求の範囲における上位層−下位層関連付情報記憶手段及び下位層ソフトウェア部品リスト記憶手段に相当する。管理サーバ３０が実現する動作モード選択部（図５の（１）参照）及び絞込属性選択部（図５の（２）参照）が、動作モード選択手段に相当する。絞込属性選択部（図５の（２）参照）が、絞込情報取得手段に相当する。上位層−下位層部品検索部（図５の（３）参照）が、上位層−下位層検索手段に相当する。バリエーション絞込部（図５の（４）参照）が、バリエーション絞込手段に相当する。独立下位層部品検索部（図５の（５）参照）が、独立下位層部品検索手段に相当する。下位層−下位層部品検索部（図５の（６）参照）が、下位層−下位層検索手段に相当する。出力情報生成部（図５の（７）参照）が、出力手段に相当する。上位層−下位層関連付情報登録部（図５の（８）参照）が、上位層−下位層関連付情報取得手段に相当する。下位層−下位層関連付情報登録部（図５の（９）参照）が、下位層−下位層関連付情報取得手段に相当する。
【００９８】
［効果］
本実施形態の部品データベース管理システム１によれば、以下のような効果を奏する。
（１）「ソフトウェア部品情報検索処理」によって検索結果として提供される出力情報は、複数のバリエーション部品の中からユーザの指定した絞込属性に適合するものに絞り込まれており、従来人手によって行ってきたバリエーション部品の選択を自動で行うことができる。したがって、複数のバリエーション部品の中から必要な下位層ソフトウェア部品を効率よく検索可能であり、階層やバリエーションを考慮してソフトウェア部品を選択・抽出する手間を大幅に低減することができる。
【００９９】
（２）下位層ソフトウェア部品リストにおいて、下位層ソフトウェア部品にインクルードされる他の下位層ソフトウェア部品との関連付けを定義することで、上位層ソフトウェア部品に対応する下位層ソフトウェア部品を検索した後、この検索された下位層ソフトウェア部品に対応する他の下位層ソフトウェア部品も検索できる。したがって、ユーザは、指定した上位層ソフトウェア部品が必要とする下位層ソフトウェア部品に関する情報のみならず、この下位層ソフトウェア部品が必要とする他の下位層ソフトウェア部品に関する情報も簡単に取得することができる。これにより、ソフトウェア開発に必要なソフトウェア部品に関する情報を取得する手間が大幅に軽減される。
【０１００】
（３）下位層ソフトウェア部品リストにおいて、何れの上位層ソフトウェア部品にも依存しない独立下位層ソフトウェア部品に対して独立属性を定義することで、上位層ソフトウェア部品に対応する下位層ソフトウェア部品を検索すると共に、独立下位層ソフトウェア部品も検索できる。したがって、ユーザは、指定した上位層ソフトウェア部品が必要とする下位層ソフトウェア部品に関する情報のみならず、ハードウェア構成やチップセットの構成に依存する独立下位層ソフトウェア部品に関する情報も簡単に取得することができる。これにより、ソフトウェア開発に必要なソフトウェア部品に関する情報を取得する手間が大幅に軽減される。
【０１０１】
（４）上述の「動作モード選択処理」によって、上位層−下位層部品検索、下位層−下位層部品検索、独立下位層部品検索のうち、どの検索方法を利用して部品情報の検索を行うかを任意に選択できる。また、絞込属性選択処理においても、バリエーション絞込を行うか否かを設定可能である。これにより、ユーザの要求度合に応じた態様でソフトウェア部品の検索を行うことができ、ユーザのニーズに適合する検索結果を提供可能である。
【０１０２】
（５）ソフトウェア部品のソースコードから必要な情報を読み取ることで、上位層−下位層関連付情報や、下位層ソフトウェア部品リストにおける下位層部品の関連付に関する情報を自動的に取得可能である。これにより、ソフトウェア部品に関する情報を検索する上で必要なこれらの情報を人手で入力するための手間が大幅に低減され、部品データベース管理システムの運用上、大変有利である。
【０１０３】
以上、本発明の実施形態について説明したが、本発明は上記の実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り様々な態様にて実施することが可能である。
【０１０４】
例えば、上記実施形態では、上述の「ソフトウェア部品情報検索処理」に係る各処理（「動作モード選択処理」、「絞込属性選択処理」、「上位層−下位層部品検索処理」、「バリエーション絞込処理」、「独立下位層部品検索処理」、「下位層−下位層部品検索処理」、「出力情報生成処理」、「上位層−下位層関連付情報登録処理」、「下位層−下位層関連付情報登録処理」）を、端末装置１０からの要求に応じて管理サーバ３０側で実行する構成となっている。
【０１０５】
これに対し、管理サーバ３０を、ネットワークアタッチトストレージ（Network Attached Storage：ＮＡＳ）のようなネットワークに直接接続可能な記憶装置からなるファイルサービス専用装置で構成し、上述の各処理を管理サーバ３０ではなく端末装置１０側で実行させるような構成であってもよい。このような構成の場合、管理サーバ３０には図１で示すＣＰＵ３１、ＲＯＭ３３、ＲＡＭ３５は不要となり、上記実施形態においてこれらの構成が実現する機能は、端末装置１０のＣＰＵ１１、ＲＯＭ１３及びＲＡＭ１５が代わりに実現することになる。
【０１０６】
具体的な運用としては、上述の各処理のプログラム及び各種データベース（部品データベース、上位層−下位層関連付情報、下位層ソフトウェア部品リスト等）を管理サーバ３０に格納しておき、端末装置１０側で管理サーバ３０に格納されているプログラムを起動させる。そして、端末装置１０上で動作するプログラムが、管理サーバ３０内の各データベースを参照しながら、上述の各処理と同様の処理を端末装置１０上で実行する。
【図面の簡単な説明】
【０１０７】
【図１】本発明が適用された部品データベース管理システム１の概略構成を示すブロック図である。
【図２】データベース３７の構成を模式的に示す説明図である。
【図３】上位層−下位層関連付情報の記述様式の一例を示す説明図である。
【図４】下位層ソフトウェア部品リストの記述様式の一例を示す説明図である。
【図５】「ソフトウェア部品情報検索処理」の機能的構成を示すブロック図である。
【図６】上位層部品一覧ファイルの記述様式の一例を示す説明図である。
【図７】検索部品リストの記述様式の一例を示す説明図である。
【図８】出力情報の記述様式の一例を示す説明図である。
【図９】（ａ）は「動作モード選択処理」の手順を示すフローチャートであり、（ｂ）は動作モード選択用のＧＵＩの一例を示す説明図である。
【図１０】「絞込属性選択処理」の手順を示すフローチャートである。
【図１１】「上位層−下位層部品検索処理」の手順を示すフローチャートである。
【図１２】「バリエーション絞込処理」の手順を示すフローチャートである。
【図１３】「独立下位層部品検索処理」の手順を示すフローチャートである。
【図１４】「下位層−下位層部品検索処理」の手順を示すフローチャートである。
【図１５】「出力情報生成処理」の手順を示すフローチャートである。
【図１６】「上位層−下位層関連付情報登録処理」の手順を示すフローチャートである。
【図１７】「下位層−下位層関連付情報登録処理」の手順を示すフローチャートである。
【符号の説明】
【０１０８】
１…部品データベース管理システム、１０…端末装置、１１，３１…ＣＰＵ、１３，３３…ＲＯＭ、１５，３５…ＲＡＭ、１７…ハードディスク装置（ＨＤＤ）、１９…入力部、２１…表示部、２３，３９通信部、３０…管理サーバ、３７…データベース。
【図１】
2008287352.tif 000003
【図２】
2008287352.tif 000004
【図３】
2008287352.tif 000005
【図４】
2008287352.tif 000006
【図５】
2008287352.tif 000007
【図６】
2008287352.tif 000008
【図７】
2008287352.tif 000009
【図８】
2008287352.tif 000010
【図９】
2008287352.tif 000011
【図１０】
2008287352.tif 000012
【図１１】
2008287352.tif 000013
【図１２】
2008287352.tif 000014
【図１３】
2008287352.tif 000015
【図１４】
2008287352.tif 000016
【図１５】
2008287352.tif 000017
【図１６】
2008287352.tif 000018
【図１７】
2008287352.tif 000019