(57)【要約】【課題】開発工数を効果的に低減できるソフトウェア素材選定支援装置を提供する。【解決手段】ソフトウェア素材選定支援装置１０は、文言と開発済ソフトウェア情報３０により説明される開発済ソフトウェアで利用される傾向にあるソフトウェア素材との関係を示す仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を格納した利用傾向データベース１３と、開発対象ソフトウェア情報５０に出現する文言を抽出し、抽出した文言に関係するソフトウェア素材を仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０から検索する検索部１４と、検索部１４により検索されたソフトウェア素材を開発対象ソフトウェアにおいて利用可能なソフトウェア素材の候補として提示する素材提示部１６と、を有する。【選択図】図１２
2018120381.tif 000002
【特許請求の範囲】
【請求項１】
文言と当該文言が出現する文書により説明される開発済ソフトウェアで利用される傾向にあるソフトウェア素材との関係を示す利用傾向関係情報を格納した利用傾向データ記憶部と、
開発対象ソフトウェアを説明する文書に出現する文言を抽出し、抽出した前記文言に関係する前記ソフトウェア素材を前記利用傾向関係情報から検索する検索部と、
前記検索部により検索された前記ソフトウェア素材を前記開発対象ソフトウェアにおいて利用可能な前記ソフトウェア素材の候補として提示する素材提示部と、を有することを特徴とするソフトウェア素材選定支援装置。
【請求項２】
前記利用傾向関係情報が、前記文言と前記ソフトウェア素材との関連度を示す情報を含み、
前記検索部が、検索した前記ソフトウェア素材について前記関連度を示す情報に基づいて前記開発対象ソフトウェアでの有効度を算出し、
前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記有効度に基づいて前記開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じて前記ソフトウェア素材の候補として提示することを特徴とする請求項１に記載のソフトウェア素材選定支援装置。
【請求項３】
前記ソフトウェア素材に関する情報を格納した素材情報データ記憶部をさらに有し、
前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記ソフトウェア素材に関する情報に基づいて格付け値を算出し、前記有効度及び前記格付け値に基づいて前記開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じて前記ソフトウェア素材の候補として提示することを特徴とする請求項２に記載のソフトウェア素材選定支援装置。
【請求項４】
開発済ソフトウェアを説明する文書に出現する文言を抽出し、抽出された前記文言に基づいて前記利用傾向関係情報を作成して、作成した前記利用傾向関係情報を前記利用傾向データ記憶部に格納する利用傾向分析部をさらに有することを特徴とする請求項１〜請求項３のいずれか一項に記載のソフトウェア素材選定支援装置。
【請求項５】
前記利用傾向関係情報が、アソシエーション分析により作成されていることを特徴とする請求項１〜請求項４のいずれか一項に記載のソフトウェア素材選定支援装置。
【請求項６】
前記利用傾向関係情報が、ソフトウェア素材名以外の前記文言が条件として設定され、前記ソフトウェア素材名が前記条件を満足したときに導かれる結論として設定される相関ルールを含んでいることを特徴とする請求項５に記載のソフトウェア素材選定支援装置。
【請求項７】
前記利用傾向関係情報が、ソフトウェア素材名が条件として設定され、前記ソフトウェア素材名が前記条件を満足したときに導かれる結論として設定される相関ルールを含んでいることを特徴とする請求項５に記載のソフトウェア素材選定支援装置。
【請求項８】
前記ソフトウェア素材に関する情報が、前記ソフトウェア素材のソフトウェア品質、コスト及び利用可能化時間の中から選択される１または複数の情報を含み、
前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記ソフトウェア品質、前記コスト及び前記利用可能化時間の中から選択された１または複数の情報に基づいて前記格付け値を算出することを特徴とする請求項３に記載のソフトウェア素材選定支援装置。
【請求項９】
コンピュータを有する制御部と、文言と当該文言が出現する文書により説明されるソフトウェアにおいて利用される傾向にあるソフトウェア素材との関係を示す利用傾向関係情報を格納した記憶部と、を備えた装置において用いられるプログラムであって、
前記コンピュータを、
開発対象ソフトウェアを説明する文書に出現する文言を抽出し、抽出した前記文言に関係する前記ソフトウェア素材を前記利用傾向関係情報から検索する検索部、及び、
前記検索部により検索された前記ソフトウェア素材を前記開発対象ソフトウェアにおいて利用可能な前記ソフトウェア素材の候補として提示する素材提示部、して機能させることを特徴とするソフトウェア素材選定支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発対象ソフトウェアにおいて利用可能なソフトウェア素材の選定を支援するソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラムに関する。
【背景技術】
【０００２】
近年、ソフトウェア開発において、オープンソースソフトウェア（以下、「ＯＳＳ」という）や自社で過去に開発したソフトウェア部品、実績のある開発ツールなどの既存のソフトウェア素材を利用することにより開発工数を低減しようとする動きがある。
【０００３】
このような動きに対応して、例えば、特許文献１には、ソフトウェア開発において利用可能なソフトウェア素材の選定を支援する技術が開示されている。特許文献１に開示されている情報処理装置は、ソフトウェアソースの検索手段及び選定支援手段を有している。検索手段は、開発物件における利用候補ソフトウェアソースについて選定条件（ポリシー）への適合度合いを示すスコアを出力する。選定支援手段は、その利用候補ソフトウェアソースの任意の部分を含む既開発物件の構成を示す情報に基づいて、そのスコアに重みを追加した更新スコアを含む、その利用候補ソフトウェアソースの情報を出力する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１６１９８２
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記引用文献１に開示されている技術では、選定対象となるソフトウェアソースがライセンスやコード規模などの選定条件にどれだけ合致しているかをスコア付けするものであって、そのソフトウェアソースの機能面から選定のための評価をおこなうものではない。そのため、ソフトウェアソースの機能について、検索する側で一定の知識やスキルが必要となるが、特にＯＳＳのような日々進歩している分野では、熟練者であっても知識やスキルが進歩に追いつかない場合がある。これにより、利用可能なソフトウェア素材があるにもかかわらず、自ら実装してしまうことがあり、開発工数を低減させるという要求に満足に対応できていないという実情がある。
【０００６】
本発明は、上記課題に鑑み、開発工数を効果的に低減できるソフトウェア素材選定支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るソフトウェア素材選定支援装置は、文言と当該文言が出現する文書により説明される開発済ソフトウェアで利用される傾向にあるソフトウェア素材との関係を示す利用傾向関係情報を格納した利用傾向データ記憶部と、開発対象ソフトウェアを説明する文書に出現する文言を抽出し、抽出した前記文言に関係する前記ソフトウェア素材を前記利用傾向関係情報から検索する検索部と、前記検索部により検索された前記ソフトウェア素材を前記開発対象ソフトウェアにおいて利用可能な前記ソフトウェア素材の候補として提示する素材提示部と、を有することを特徴とする。
【０００８】
本発明によれば、文言と当該文言が出現する文書により説明される開発済ソフトウェアで利用される傾向にあるソフトウェア素材との関係を示す利用傾向関係情報を用いて開発対象ソフトウェアで利用可能なソフトウェア素材の候補を提示する。このようにしたことから、開発済ソフトウェアを説明する文書には機能面についての記載が含まれていると考えられるところ、当該文書に出現する文言とソフトウェア素材との関係を開発対象ソフトウェアについても同様に当てはめて、当該開発対象ソフトウェアを説明する文書に基づき利用可能なソフトウェア素材の候補を効果的に提示することができる。
【０００９】
本発明においては、前記利用傾向関係情報が、前記文言と前記ソフトウェア素材との関連度を示す情報を含み、前記検索部が、検索した前記ソフトウェア素材について前記関連度を示す情報に基づいて前記開発対象ソフトウェアでの有効度を算出し、前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記有効度に基づいて前記開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じて前記ソフトウェア素材の候補として提示するようにしてもよい。このようにすることで、利用可能なソフトウェア素材の候補をより適切に提示することができる。
【００１０】
本発明においては、前記ソフトウェア素材に関する情報を格納した素材情報データ記憶部をさらに有し、前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記ソフトウェア素材に関する情報に基づいて格付け値を算出し、前記有効度及び前記格付け値に基づいて前記開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じて前記ソフトウェア素材の候補として提示するようにしてもよい。このようにすることで、利用可能なソフトウェア素材の候補をより適切に提示することができる。
【発明の効果】
【００１１】
本発明によれば、開発対象ソフトウェアにおいて利用可能なソフトウェア素材の候補をより効果的に提示することができるので、ソフトウェア素材の再利用率を高めて、開発工数を効果的に低減できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係るソフトウェア素材選定支援装置を含むシステム構成の例である。
【図２】素材利用履歴データベースに格納された開発済ソフトウェア情報の一例を模式的に示す図である。
【図３】利用傾向分析部における仕様書傾向テーブル作成時のデータの流れの一例を模式的に示す図である。
【図４】利用傾向分析部における組み合わせ傾向テーブル作成時のデータの流れの一例を模式的に示す図である。
【図５】利用傾向データベースに格納された仕様書傾向テーブルの一例を示す図である。
【図６】利用傾向データベースに格納された組み合わせ傾向テーブルの一例を示す図である。
【図７】検索部における候補素材テーブル作成時のデータの流れの一例を模式的に示す図である。
【図８】検索部において候補素材テーブルを作成する途中で作成される候補素材リストの一例を示す図である。
【図９】検索部により作成された候補素材テーブルの一例を示す図である。
【図１０】素材情報データベースに格納された素材情報テーブルの一例を示す図である。
【図１１】素材提示部により作成された推奨素材テーブルの一例を示す図である。
【図１２】図１のソフトウェア素材選定支援装置の制御部において実行される本発明にかかるソフトウェア素材選定支援処理の一例を示すフローチャートである。
【図１３】ソフトウェア素材提示処理を行う際の画面イメージの一例を示す図である。
【発明を実施するための形態】
【００１３】
本発明の一実施形態に係るソフトウェア素材選定支援装置を含むシステムについて、図面を参照して詳細に説明する。図１は、本発明の一実施形態に係るソフトウェア素材選定支援装置を含むシステム構成の例である。
【００１４】
本実施形態のソフトウェア素材選定支援装置では、以下の手順によって開発者に対して開発対象のソフトウェアにおいて利用可能なソフトウェア素材の候補を提示することによりソフトウェア素材の選定を支援する。
（１）ソフトウェア素材の利用傾向を作成する元となるデータ群として、開発済ソフトウェアの仕様書及びその開発済ソフトウェアが利用したソフトウェア素材のリストを含む情報（開発済ソフトウェア情報）をデータベースに蓄積する。そして、この情報を分析することにより、仕様書及びソフトウェア素材のリストに出現する文言によってどのソフトウェア素材が利用されやすいかという利用傾向を割り出す。
（２）開発対象ソフトウェアの仕様及びそのソフトウェアで利用予定のソフトウェア素材のリスト（開発対象ソフトウェア情報）を入力とし、上記割り出した利用傾向を参照して、開発対象ソフトウェアで利用可能なソフトウェア素材の候補とその有効度を示すテーブル（候補素材テーブル）を作成する。
（３）作成した候補素材テーブルに含まれるソフトウェア素材に対し、各ソフトウェア素材に関連する情報を参照して、品質、コスト及び利用容易性の観点からどれだけ適切なソフトウェア素材であるかを考慮して格付けを行い、有効度及び格付けに基づいて算出した推奨度にしたがいソフトウェア素材の候補を出力して開発者に情報提示を行う。
【００１５】
図１に示すように、本実施形態に係るソフトウェア素材選定支援装置を含むシステム１は、入力装置５と、出力装置６と、ソフトウェア素材選定支援装置（以下、単に「支援装置１０」という）と、を有している。
【００１６】
入力装置５は、例えば、キーボードやマウスなどの入力装置であり、ユーザ操作に応じた各種情報を支援装置１０に入力する。または、入力装置５は、支援装置１０に直接またはネットワークを介して接続されるコンピュータ等の情報処理装置などで、支援装置１０が処理可能なファイルまたはその他の情報を入力するものであってもよい。本実施形態では、入力装置５は、各種情報を格納可能な記憶装置も含み、当該記憶装置に格納された開発対象ソフトウェア情報５０（後述）を支援装置１０に入力する。
【００１７】
出力装置６は、例えば、ディスプレイなどの出力装置であり、支援装置１０が出力した処理結果などを表示する機能を有する。出力装置６は、支援装置１０に直接またはネットワークを介して接続される情報処理装置などであってもよく、この場合、入力装置５と出力装置６とが、同一の情報処理装置であってもよい。
【００１８】
支援装置１０は、コンピュータを有する制御部１０ａと、ハードディスク装置などの記憶装置を有する記憶部１０ｂとを備えている。制御部１０ａは、記憶部１０ｂに格納されたプログラム（すなわち、ソフトウェア素材選定支援プログラム）を実行することにより、利用傾向分析部１２、検索部１４及び素材提示部１６などの各種機能部として機能する。また、記憶部１０ｂには、素材利用履歴データベース１１、利用傾向データベース１３及び素材情報データベース１５が構築されている。
【００１９】
素材利用履歴データベース１１は、ソフトウェア素材の利用履歴に関する情報を格納する。具体的には、素材利用履歴データベース１１は、図２に示すように、既に開発が完了している１または複数の開発済ソフトウェア情報３０を格納している。開発済ソフトウェア情報３０は、例えば、開発済ソフトウェアを説明する文書であり、仕様書３１及び素材リストデータ３２を含んでいる。開発済ソフトウェア情報３０は、支援装置１０において処理可能なファイルまたはその他形式の情報である。なお、素材利用履歴データベース１１に格納する情報は、開発済ソフトウェア情報３０のような情報に限らず、ソフトウェア素材の利用履歴を把握できる任意の情報を含むことができる。例えば、ソフトウェアコミュニティサイトなどにおけるユーザ（アカウント）ごとの利用中ソフトウェア素材リストなどでもよい。この利用中ソフトウェア素材リストは、例えば、あるソフトウェア素材に対して、そのソフトウェア素材と「同時に利用されやすいソフトウェア素材」を選定する場合に有効である。このようなソフトウェアコミュニティサイトの情報も利用傾向の分析対象として利用できる。
【００２０】
また、開発済ソフトウェアは、その開発の経緯、開発の主体、仕様書の有無等に関わらず、既に開発されていて実行可能なソフトウェアをすべて含む。つまり、ある企業にとって、自社が主体となり、仕様書に基づいて自社の事業のために開発したソフトウェアのみならず、他の企業または個人により開発され、いわゆるオープンソースとして提供されていて必ずしも仕様書が公開されていないソフトウェアも、開発済みソフトウェアである。
【００２１】
仕様書３１は、開発済ソフトウェアの仕様について記載された情報である。本明細書において、仕様には、例えば、実現する機能、使用言語、開発環境、ソフトウェア構造などの開発済ソフトウェアを説明する上で必要となるあらゆる情報を含み得るものとする。素材リストデータ３２は、開発済ソフトウェアで利用された１または複数のソフトウェア素材を特定する情報である。素材リストデータ３２には、素材情報データベース１５に格納されているソフトウェア素材を特定するための情報である素材ＩＤ（名称や識別記号など）がリスト化されて含まれているものとする。素材ＩＤは、ソフトウェア素材名に相当する。
【００２２】
素材利用履歴データベース１１に開発済ソフトウェア情報３０を追加したり更新したりするには、入力装置５から手動で行い、または、支援装置１０に接続された図示しない情報処理装置などにより自動的に行う。本実施形態において、素材利用履歴データベース１１は、記憶部１０ｂにて実現されるが、ネットワーククラウド上に仮想的に設けられていてもよい。
【００２３】
利用傾向分析部１２は、素材利用履歴データベース１１に格納された開発済ソフトウェア情報３０を取得して、開発済ソフトウェア情報３０に含まれる開発済ソフトウェアについての説明とソフトウェア素材の利用されやすさ（利用傾向）との関係を分析する。利用傾向分析部１２は、図３及び図４に模式的に示すデータの流れに沿い、開発済ソフトウェア情報３０に基づいて、仕様書傾向テーブル３１０（図５）及び組み合わせ傾向テーブル３２０（図６）を作成する。
【００２４】
利用傾向分析部１２は、図３に示すように、素材利用履歴データベース１１から取得した開発済ソフトウェア情報３０について、仕様書３１を単語（すなわち出現文言）に分解して仕様書単語リスト３３を作成する。利用傾向分析部１２は、この仕様書単語リスト３３に、素材リストデータ３２に含まれているソフトウェア素材の素材ＩＤを単語（すなわち出現文言）として含めて、仕様書傾向テーブル作成用リスト３４を作成する。そして、利用傾向分析部１２は、それぞれの開発済ソフトウェア情報３０について作成した仕様書傾向テーブル作成用リスト３４に対してアソシエーション分析を行い、「条件（出現文言）」及び「結論（素材ＩＤ）」、ならびに、これら条件と結論との関連度を示す情報である「支持度」、「確信度」及び「リフト値」の組み合わせからなる相関ルールテーブル３５を抽出する。抽出した相関ルールテーブル３５の中から、（１）条件にソフトウェア素材の素材ＩＤを含むルール、及び、（２）結論がソフトウェア素材の素材ＩＤでないルール、を取り除いて、仕様書傾向テーブル３１０を作成する。
【００２５】
また、利用傾向分析部１２は、図４に示すように、素材利用履歴データベース１１から取得した開発済ソフトウェア情報３０について、素材リストデータ３２に含まれているソフトウェア素材の素材ＩＤを単語（すなわち出現文言）として含めた組み合わせ傾向テーブル作成用リスト３６を作成する。そして、利用傾向分析部１２は、それぞれの開発済ソフトウェア情報３０について作成した組み合わせ傾向テーブル作成用リスト３６に対してアソシエーション分析を行い、「条件（出現文言）」及び「結論（素材ＩＤ）」、ならびに、これら条件と結論との関連度を示す情報である「支持度」、「確信度」及び「リフト値」の組み合わせからなる相関ルールテーブルを作成して、作成した相関ルールテーブルを組み合わせ傾向テーブル３２０とする。
【００２６】
図５に仕様書傾向テーブルを、図６に組み合わせ傾向テーブル３２０を示す。仕様書傾向テーブル３１０は、開発済ソフトウェア情報３０の仕様書３１に含まれる文言（特に名詞などの単語）にどのような特徴があると、どのソフトウェア素材が利用されやすいかという利用傾向を表す。組み合わせ傾向テーブル３２０は、開発済ソフトウェアでどのソフトウェア素材が利用されると、どのソフトウェア素材が同時に利用されやすいかという利用傾向を表す。仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０は、アソシエーション分析を用いて作成されているので、相関ルールを網羅的に抽出できるとともに、支持度、確信度及びリフト値により各ルールの有効性を評価することができる。仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０は、利用傾向関係情報に相当する。
【００２７】
仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０は、条件と当該条件を満足したときに導かれる結論とで示される相関ルールについての支持度、確信度及びリフト値を有している。
【００２８】
支持度（Ｓｕｐｐｏｒｔ）は、「分析に用いた開発済ソフトウェア情報３０の全数に対する、その相関ルール（条件と結論との組み合わせ）が実際に出現する開発済ソフトウェア情報３０の数の割合」である。
【００２９】
確信度（Ｃｏｎｆｉｄｅｎｃｅ）は、「分析に用いた開発済ソフトウェア情報３０のうちのその相関ルールの条件に当てはまる開発済ソフトウェア情報３０の数に対する、その相関ルール（条件と結論との組み合わせ）が実際に出現する開発済ソフトウェア情報３０の数の割合」である。
【００３０】
リフト値（Ｌｉｆｔ）は、『「分析に用いた開発済ソフトウェア情報３０の全数に対する、その相関ルールの結論に示されるソフトウェア素材を利用している開発済ソフトウェア情報３０の数の割合」に対する、上記確信度の割合』である。
【００３１】
利用傾向分析部１２は、作成した仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を、利用傾向データベース１３に格納する。利用傾向分析部１２を有することにより、仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０の更新を適時に行なうことができる。
【００３２】
利用傾向データベース１３は、利用傾向分析部１２によって作成された仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を格納する。本実施形態において、利用傾向データベース１３は、記憶部１０ｂにて実現されるが、ネットワーククラウド上に仮想的に設けられていてもよい。なお、素材利用履歴データベース１１及び利用傾向分析部１２を支援装置１０とは異なる他の情報処理装置において実現し、当該情報処理装置にて作成した仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を利用傾向データベース１３に格納するようにしてもよい。この場合、支援装置１０において素材利用履歴データベース１１及び利用傾向分析部１２を省略することができる。利用傾向データベース１３は、利用傾向データ記憶部に相当する。
【００３３】
検索部１４は、入力装置５から入力される開発対象ソフトウェアを説明する文書に基づき、利用傾向データベース１３に格納されている仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を使用して、利用候補となるソフトウェア素材を検出する。検索部１４は、図７に示すデータフローに沿って、候補素材テーブル５００を作成する。なお、図７において、仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０は抜粋であり、実際には、条件及び結論以外に、上記で説明した支持度、確信度及びリフト値を含む。
【００３４】
本実施形態において、検索部１４に入力される開発対象ソフトウェアを説明する文書は、開発対象ソフトウェアの仕様書５１及び素材リストデータ５２を含む開発対象ソフトウェア情報５０である。仕様書５１及び素材リストデータ５２は、上述の開発済ソフトウェア情報３０の仕様書３１及び素材リストデータ３２と同様のものである。開発対象ソフトウェア情報５０は、仕様書５１及び素材リストデータ５２のうちの一方のみ含むものであってもよい。
【００３５】
検索部１４は、図７に示すように、開発対象ソフトウェア情報５０について、仕様書５１を分解してそれに含まれる単語を抽出し、抽出した単語を含む仕様書単語リスト５３を作成する。検索部１４は、この仕様書単語リスト５３を仕様書傾向テーブル３１０の条件に当てはめて、満足した条件（図７において判定：○）に対応する結論に示されるソフトウェア素材の素材ＩＤ及び確信度を抽出して、抽出した素材ＩＤ及び確信度を有効度［Ａ］として含む候補素材リスト［Ａ］５４（図８（ａ））を作成する。仕様書傾向テーブル３１０を用いることにより、開発済ソフトウェア情報３０の仕様書３１に含まれる文言の特徴とこの特徴があるときに利用されやすいソフトウェア素材との関係を開発対象ソフトウェアに当てはめて、過去のソフトウェア素材の利用履歴からより適切なソフトウェア素材の候補を検索することができる。
【００３６】
また、検索部１４は、開発対象ソフトウェア情報５０について、素材リストデータ５２に含まれているソフトウェア素材の素材ＩＤを単語として含むソフトウェア素材単語リスト５５を作成する。検索部１４は、このソフトウェア素材単語リスト５５を組み合わせ傾向テーブル３２０の条件に当てはめて、満足した条件（図７において判定：○）に対応する結論に示されるソフトウェア素材の素材ＩＤ及び確信度を抽出して、抽出した素材ＩＤ及び確信度を有効度［Ｂ］として含む候補素材リスト［Ｂ］５６（図８（ｂ））を作成する。組み合わせ傾向テーブル３２０を用いることにより、開発済ソフトウェア情報３０の素材リストデータ３２に含まれる素材ＩＤの特徴とこの特徴があるときに同時に利用されやすいソフトウェア素材との関係を開発対象ソフトウェアに当てはめて、過去のソフトウェア素材の利用履歴からより適切なソフトウェア素材の候補を検索することができる。
【００３７】
候補素材リスト［Ａ］５４及び候補素材リスト［Ｂ］５６は、素材ＩＤに示されるソフトウェア素材が開発対象ソフトウェアにおいて利用可能な候補としてどれだけ有効かを示す有効度［Ａ］及び有効度［Ｂ］を含んでいる。本実施形態において、有効度として、仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０から取り出した確信度を用いている。有効度については、これに限定されるものではなく、利用可能な候補としての有効性を示す指標が求められるのであれば、例えば、確信度以外の二つの値を用いるなど、他の方法によって算出してもよい。また、有効度について、有効度基準値を設定し、有効度が有効度基準値以上となるソフトウェア素材の素材ＩＤのみを利用可能なソフトウェア素材の候補として候補素材リスト［Ａ］５４及び候補素材リスト［Ｂ］５６に含める構成としてもよい。
【００３８】
検索部１４は、候補素材リスト［Ａ］５４及び候補素材リスト［Ｂ］５６を組み合わせて、図９に示す候補素材テーブル５００を作成する。候補素材テーブル５００は、候補素材リスト［Ａ］５４及び候補素材リスト［Ｂ］５６から取得したソフトウェア素材の有効度［Ａ］及び有効度［Ｂ］について計算した平均値（有効度平均）を含む。なお、本実施形態では、有効度の平均値を出しているが、これに限定されるものではなく、利用可能な候補としての有効性を示す指標が求められるのであれば、他の方法によって有効度平均に代わる値を算出してもよい。また、有効度平均について、有効度平均基準値を設定し、有効度平均が有効度平均基準値以上となるソフトウェア素材のみを利用可能なソフトウェア素材の候補として候補素材テーブル５００に含める構成としてもよい。
【００３９】
素材情報データベース１５は、ソフトウェア素材に関連する情報を格納する。具体的には、素材情報データベース１５は、図１０に示すように、ソフトウェア素材に関連する情報を含む素材情報テーブル６００を格納している。素材情報テーブル６００においては、各ソフトウェア素材が素材ＩＤで管理されており、それぞれの素材ＩＤに対して、素材名称、ソフトウェア品質、コスト及び利用可能化時間の情報が関連付けられている。なお、ソフトウェア品質、コスト及び利用可能化時間については、これらから選択される１つまたは２つのみ含む構成としてもよい。
【００４０】
ソフトウェア品質は、ソフトウェア素材の品質を表す情報であり、「１２か月不具合数」は、直近１２か月間で当該ソフトウェア素材において出現したバグ数であり、「ソース複雑度平均」は当該ソフトウェア素材のソースコードの複雑度の平均値である。
【００４１】
コストは、ソフトウェア素材の導入及び維持に必要な具体的な費用（金額）を表す情報であり、「初期費用」は、ソフトウェア素材を入手するために必要な費用であり、「維持管理費」は、ソフトウェア素材を１２か月にわたって維持管理するための費用である。
【００４２】
利用可能化時間は、ソフトウェア素材を利用するまでにかかる時間（すなわち、利用容易性の指標）に関する情報であり、「ドキュメント整備状況」は、ソフトウェア素材の仕様について書かれたドキュメント（文書）が用意されているか、用意されているとすればどの言語で用意されているかを表す。ドキュメント整備状況の「多言語」は複数の言語を用いて表現されたドキュメントが用意されており、「英語のみ」は英語を用いて表現されたドキュメントのみ用意されており、「なし」はソフトウェア素材のドキュメントがまったく用意されていないことを意味する。
【００４３】
素材情報データベース１５は、素材情報テーブル６００に含まれる上記情報以外にも、例えば、各ソフトウェア素材の種別、機能及び用途等を説明する情報などを格納している。本実施形態において、素材情報データベース１５は、記憶部１０ｂにて実現されるが、ネットワーククラウド上に仮想的に設けられていてもよい。素材情報データベース１５は、素材情報データ記憶部に相当する。
【００４４】
素材提示部１６は、候補素材テーブル５００に含まれるソフトウェア素材について、素材情報テーブル６００から取得した情報に基づいて格付け値を算出して、候補素材テーブル５００に対して算出した格付け値を付加して推奨素材テーブル７００を作成する。そして、素材提示部１６は、上記有効度及び格付け値に基づいて開発対象ソフトウェアに対する推奨度を算出して、推奨素材テーブル７００にさらに含め、推奨素材テーブル７００に含まれるソフトウェア素材を、当該推奨度に応じてソフトウェア素材の候補として提示する。図１１に推奨素材テーブル７００の一例を示す。
【００４５】
具体的には、素材提示部１６は、候補素材テーブル５００の素材ＩＤに示される各ソフトウェア素材について、素材情報テーブル６００のソフトウェア品質、コスト及び利用可能化時間の各数値から格付け値を算出し、上記有効度及び格付け値に基づいて開発対象ソフトウェアへの利用の推奨度を算出する。
【００４６】
素材提示部１６が行なう格付けは、上述した検索部１４において算出したソフトウェア素材の有効度に対して、例えば、品質、コスト及び利用容易性などの面から重み付けする意味を有する。このようにすることで、ソフトウェア素材の候補の提示に、ソフトウェア素材自体の評価を反映することができる。特に上記３項目を用いることで、ソフトウェア素材の品質、ソフトウェア素材の入手や維持管理していく上で必要になるコスト、及び、ソフトウェア素材を利用する(素材を単体でツールとして使用したり、外部販売する自社製品に組み込んだりする)までにかかる時間についての評価を反映することができる。
【００４７】
素材提示部１６は、次のようにしてソフトウェア素材の格付け値（点）を付与する。
【００４８】
ソフトウェア品質の「１２か月不具合数」については、０〜３または５１以上を１点、２０〜５０を２点、４〜１９を３点として格付け値を付与し、「ソース複雑度平均」については、２１以上を１点、１０〜２０を２点、９以下を３点として格付け値を付与する。
【００４９】
コストの「初期費用」について、１０００万円以上を１点、１０００万円未満〜１００万円以上を２点、１００万円未満を３点として格付け値を付与し、「維持管理費」については、１０００万円以上を１点、１０００万円未満〜１００万円以上を２点、１００万円未満を３点として格付け値を付与する。
【００５０】
利用可能化時間の「ドキュメント整備状況」については、なしを１点、英語のみを２点、多言語を３点として格付け値を付与する。
【００５１】
素材提示部１６は、格付け値を付与したあと、ソフトウェア素材ごとに格付け平均を算出する。そして、素材提示部１６は、有効度平均と格付け平均を乗じて推奨度を算出し、推奨素材テーブル７００に含める。そして、素材提示部１６は、推奨素材テーブル７００に含まれる素材ＩＤで示されるソフトウェア素材について、それぞれの推奨度に応じた順で表示するための情報（表示情報）を出力装置６に出力する。
【００５２】
素材提示部１６は、推奨度に応じてソフトウェア素材の候補を表示するための情報を出力（すなわち提示）するものであるが、これに限定されるものではない。例えば、素材提示部１６は、格付け値及び推奨度を算出せず、検索部１４において算出したソフトウェア素材の有効度に応じた順で表示するための情報を出力するものであってもよい。または、さらに簡略化して、検索部１４において有効度を算出せず、検索部１４において検索されたソフトウェア素材を利用可能なソフトウェア素材の候補として表示するための情報を出力するものであってもよい。このようにすることで、より簡易な構成で利用可能なソフトウェア素材の候補を提示できる。
【００５３】
次に、上述した支援装置１０における本発明に係る動作（ソフトウェア素材選定支援動作）の一例について、図１２のフローチャートを参照して説明する。
【００５４】
支援装置１０が動作を開始すると、利用傾向分析部１２が、素材利用履歴データベース１１に格納された開発済ソフトウェア情報３０に基づいて、仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を作成する（ステップＳ１０）。利用傾向分析部１２は、素材利用履歴データベース１１に開発済ソフトウェア情報３０が追加されたり、開発済ソフトウェア情報３０が更新されたりする度に、仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を再作成する。利用傾向分析部１２は、作成した仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を利用傾向データベース１３に格納する。
【００５５】
次に、検索部１４が入力装置５からソフトウェア提示要求を受信すると（ステップＳ２０）、検索部１４は、受信したソフトウェア提示要求に含まれる開発対象ソフトウェア情報５０に基づいて仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を使用して利用候補となるソフトウェア素材（素材ＩＤ）の有効度を含む候補素材テーブル５００を作成する（ステップＳ３０）。
【００５６】
そして、素材提示部１６が、素材情報データベース１５の素材情報テーブル６００から取得した情報に基づくソフトウェア素材の格付け値を求めるとともに、候補素材テーブル５００に対して格付け値を付加し、有効度と格付け値とから求めた推奨度を含む推奨素材テーブル７００を作成する（ステップＳ４０）。
【００５７】
最後に、素材提示部１６は、推奨素材テーブル７００に含まれる利用を推奨するソフトウェア素材について、それぞれの推奨度に応じた順で表示するための情報（表示情報）を出力装置６に出力する（ステップＳ５０）。
【００５８】
次に、上述したソフトウェア素材選定支援処理について、図１３を参照して表示操作の観点から説明する。図１３は、ソフトウェア素材提示処理を行う際の画面イメージの一例を示す図である。
【００５９】
図１３に示す画面８００は、出力装置６にて表示される。この画面８００は、開発対象ソフトウェア情報５０の仕様書５１のファイル名を入力するファイル名入力エリア８０１と、開発対象ソフトウェアにおいて利用するソフトウェア素材を入力するソフトウェア素材名入力エリア８０２と、ソフトウェア素材選定支援処理を開始する操作を入力する検索ボタン８０３と、利用可能と推測するソフトウェア素材を表示する表示エリア８０４と、が設けられている。
【００６０】
開発者は、最初にファイル名入力エリア８０１にファイル名を入力する。また、開発者は仕様書での記載の有無に関わらず、開発対象ソフトウェアでの利用を考えているソフトウェア素材の名称を、ソフトウェア素材名入力エリア８０２に入力してもよい。ソフトウェア素材名入力エリア８０２に入力したソフトウェア素材の名称から素材リストデータ５２が作成される。そして、開発者は、検索ボタン８０３を押下する。これにより、入力装置５から支援装置１０に対して、開発対象ソフトウェア情報５０を含むソフトウェア提示要求が送信され、支援装置１０が、上述したソフトウェア素材選定支援処理を実行して処理結果として上記表示情報を出力装置６に出力する。
【００６１】
出力装置６は、上記表示情報に基づいて、表示エリア８０４に推奨度に応じた順（例えば、推奨度の高い順）でソフトウェア素材についての情報を並べて表示する。これ以外にも、推奨素材テーブル７００の各数値によって並び替えた順で表示してもよい。また、表示内容として、図１３に示すもの以外にも、例えば、素材提示部１６によって得られたソフトウェア素材の格付け情報や、素材情報データベース１５に格納されているソフトウェア素材に関連する情報などを含めてもよい。
【００６２】
また、開発者が、表示エリア８０４に表示されているソフトウェア素材の名称をソフトウェア素材名入力エリア８０２に入力するとともに検索ボタン８０３を押す操作を繰り返して、連続してソフトウェア素材選定支援処理を実行してもよい。そして、開発者が利用したいソフトウェア素材が表示エリア８０４に表示されなくなった時点で、入力した開発対象ソフトウェアの仕様書とソフトウェア素材名入力エリア８０２に入力した利用予定のソフトウェア素材の情報を、開発済ソフトウェア情報３０として素材利用履歴データベース１１に格納できるようにしてよい。これによってユーザは、開発対象ソフトウェアの仕様書に基づく利用可能ソフトウェアの提示要求から、ソフトウェア素材の採用、そして利用予定ソフトウェア素材の情報の保存を、一度に行うことができる。
【００６３】
以上より、本実施形態の支援装置１０によれば、単語と当該単語が出現する開発済ソフトウェア情報３０により説明される開発済ソフトウェアで利用される傾向にあるソフトウェア素材との関係を示す仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０を用いて開発対象ソフトウェアで利用可能なソフトウェア素材の候補を提示する。このようにしたことから、開発済ソフトウェア情報３０には機能面についての記載が含まれていると考えられるところ、当該開発済ソフトウェア情報３０に出現する文言とソフトウェア素材との関係を開発対象ソフトウェアについても同様に当てはめて、当該開発対象ソフトウェア情報５０に基づき利用可能なソフトウェア素材の候補を効果的に提示することができる。
【００６４】
また、仕様書傾向テーブル３１０及び組み合わせ傾向テーブル３２０が、単語とソフトウェア素材との関連度を示す確信度を含み、検索部１４が、検索したソフトウェア素材について確信度に基づいて開発対象ソフトウェアでの有効度を算出する。素材提示部１６が、検索部１４により検索されたソフトウェア素材について、素材情報テーブル６００に基づいて格付け値を算出する。そして、素材提示部１６が、有効度及び格付け値に基づいて開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じてソフトウェア素材の候補として提示する。このようにすることで、利用可能なソフトウェア素材の候補をより適切に提示することができる。
【００６５】
上述した実施形態では、利用傾向分析部１２及び検索部１４が、ソフトウェアの仕様書から文言として単語を抽出する構成であったが、この単語は、例えば、ソフトウェアに関する名詞であってもよい。すなわち、ソフトウェアに関する名詞についての辞書情報を記憶部１０ｂなどに格納し、この辞書情報と照らし合わせて単語を抽出する構成としてもよい。ソフトウェアに関する名詞とは、たとえば、ソフトウェアの名称またはそれに類するもの（テキストエディタ、コンパイラなど）、ソフトウェアの機能（検索、検証、エンコード、デコードなど）、ソフトウェアが入出力するデータ形式（ＰＤＦ、Ｂａｓｅ６４など）、プログラム言語（Ｊａｖａ（登録商標）など）、開発環境（フレームワーク、Ｅｃｌｉｐｓｅなど）などを含む。ソフトウェアに関する名詞は、ソフトウェア素材の名称や識別情報を含んでもよい。また、利用傾向分析部１２及び検索部１４が、ソフトウェアの仕様書から文言としてフレーズを抽出する構成であってもよい。
【００６６】
また、上述した実施形態では、利用傾向分析部１２が、アソシエーション分析を用いる構成であったが、これに限定されるものではない。例えば、利用傾向分析部１２が、開発済ソフトウェア情報３０についてベクトル化を行なうとともに、検索部１４が、開発対象ソフトウェア情報５０についてベクトル化を行い、開発対象ソフトウェア情報５０のベクトルに類似するベクトルを有する開発済ソフトウェア情報３０に含まれるソフトウェア素材を、開発対象ソフトウェアで利用可能なソフトウェア素材の候補として提示する構成などであってもよく、本発明の目的に反しない限り、分析方法は任意である。
【００６７】
以上、図面を用いて本発明の実施形態を詳述してきたが、具体的な構成はこの実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。本発明の要旨を逸脱しない範囲における設計変更等があっても、それらは本発明に含まれるものである。
【符号の説明】
【００６８】
１…システム、５…入力装置、６…出力装置、１０…支援装置、１０ａ…制御部、１０ｂ…記憶部、１１…素材利用履歴データベース、１２…利用傾向分析部、１３…利用傾向データベース（利用傾向データ記憶部）、１４…検索部、１５…素材情報データベース（素材情報データ記憶部）、１６…素材提示部、３０…開発済ソフトウェア情報（開発済ソフトウェアを説明する文書）、３１…仕様書、３２…素材リストデータ、３３…仕様書単語リスト、３４…仕様書傾向テーブル作成用リスト、３５…相関ルールテーブル、３６…傾向テーブル作成用リスト、５０…開発対象ソフトウェア情報（開発対象ソフトウェアを説明する文書）、５１…仕様書、５２…素材リストデータ、５３…仕様書単語リスト、５５…ソフトウェア素材単語リスト、３１０…仕様書傾向テーブル（利用傾向関係情報）、３２０…組み合わせ傾向テーブル（利用傾向関係情報）、５００…候補素材テーブル、６００…素材情報テーブル（ソフトウェア素材に関する情報）、７００…推奨素材テーブル、８００…画面、８０１…ファイル名入力エリア、８０２…ソフトウェア素材名入力エリア、８０３…検索ボタン、８０４…表示エリア
【図１】
2018120381.tif 000003
【図２】
2018120381.tif 000004
【図３】
2018120381.tif 000005
【図４】
2018120381.tif 000006
【図５】
2018120381.tif 000007
【図６】
2018120381.tif 000008
【図７】
2018120381.tif 000009
【図８】
2018120381.tif 000010
【図９】
2018120381.tif 000011
【図１０】
2018120381.tif 000012
【図１１】
2018120381.tif 000013
【図１２】
2018120381.tif 000014
【図１３】
2018120381.tif 000015