特許第6797038号(P6797038)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立ソリューションズの特許一覧

特許6797038ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム
<>
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000002
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000003
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000004
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000005
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000006
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000007
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000008
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000009
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000010
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000011
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000012
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000013
  • 特許6797038-ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6797038
(24)【登録日】2020年11月19日
(45)【発行日】2020年12月9日
(54)【発明の名称】ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム
(51)【国際特許分類】
   G06F 8/36 20180101AFI20201130BHJP
【FI】
   G06F8/36
【請求項の数】8
【全頁数】16
(21)【出願番号】特願2017-10814(P2017-10814)
(22)【出願日】2017年1月25日
(65)【公開番号】特開2018-120381(P2018-120381A)
(43)【公開日】2018年8月2日
【審査請求日】2019年9月4日
(73)【特許権者】
【識別番号】000233055
【氏名又は名称】株式会社日立ソリューションズ
(74)【代理人】
【識別番号】110000279
【氏名又は名称】特許業務法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】森下 大輔
(72)【発明者】
【氏名】三浦 拓也
(72)【発明者】
【氏名】藤末 真人
【審査官】 北元 健太
(56)【参考文献】
【文献】 特開2012−123675(JP,A)
【文献】 特開平2−148137(JP,A)
【文献】 特開平4−137037(JP,A)
【文献】 特開2000−276338(JP,A)
【文献】 特開2014−126902(JP,A)
【文献】 特開2008−171318(JP,A)
【文献】 特開2007−316769(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00 − 8/77
(57)【特許請求の範囲】
【請求項1】
文言と当該文言が出現する文書により説明される開発済ソフトウェアで利用される傾向にあるソフトウェア素材との関係を示す利用傾向関係情報を格納した利用傾向データ記憶部と、
開発対象ソフトウェアを説明する文書に出現する文言を抽出し、抽出した前記文言に関係する前記ソフトウェア素材を前記利用傾向関係情報から検索する検索部と、
前記検索部により検索された前記ソフトウェア素材を前記開発対象ソフトウェアにおいて利用可能な前記ソフトウェア素材の候補として提示する素材提示部と、を有し、
前記利用傾向関係情報が、前記文言と前記ソフトウェア素材との関連度を示す情報を含み、
前記検索部が、検索した前記ソフトウェア素材について前記関連度を示す情報に基づいて前記開発対象ソフトウェアでの有効度を算出し、
前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記有効度に基づいて前記開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じて前記ソフトウェア素材の候補として提示することを特徴とするソフトウェア素材選定支援装置。
【請求項2】
前記ソフトウェア素材に関する情報を格納した素材情報データ記憶部をさらに有し、
前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記ソフトウェア素材に関する情報に基づいて格付け値を算出し、前記有効度及び前記格付け値に基づいて前記開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じて前記ソフトウェア素材の候補として提示することを特徴とする請求項に記載のソフトウェア素材選定支援装置。
【請求項3】
開発済ソフトウェアを説明する文書に出現する文言を抽出し、抽出された前記文言に基づいて前記利用傾向関係情報を作成して、作成した前記利用傾向関係情報を前記利用傾向データ記憶部に格納する利用傾向分析部をさらに有することを特徴とする請求項1〜請求項のいずれか一項に記載のソフトウェア素材選定支援装置。
【請求項4】
前記利用傾向関係情報が、アソシエーション分析により作成されていることを特徴とする請求項1〜請求項のいずれか一項に記載のソフトウェア素材選定支援装置。
【請求項5】
前記利用傾向関係情報が、ソフトウェア素材名以外の前記文言が条件として設定され、前記ソフトウェア素材名が前記条件を満足したときに導かれる結論として設定される相関ルールを含んでいることを特徴とする請求項に記載のソフトウェア素材選定支援装置。
【請求項6】
前記利用傾向関係情報が、ソフトウェア素材名が条件として設定され、前記ソフトウェア素材名が前記条件を満足したときに導かれる結論として設定される相関ルールを含んでいることを特徴とする請求項に記載のソフトウェア素材選定支援装置。
【請求項7】
前記ソフトウェア素材に関する情報が、前記ソフトウェア素材のソフトウェア品質、コスト及び利用可能化時間の中から選択される1または複数の情報を含み、
前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記ソフトウェア品質、前記コスト及び前記利用可能化時間の中から選択された1または複数の情報に基づいて前記格付け値を算出することを特徴とする請求項に記載のソフトウェア素材選定支援装置。
【請求項8】
コンピュータを有する制御部と、文言と当該文言が出現する文書により説明されるソフトウェアにおいて利用される傾向にあるソフトウェア素材との関係を示す利用傾向関係情報を格納した記憶部と、を備えた装置において用いられるプログラムであって、
前記コンピュータを、
開発対象ソフトウェアを説明する文書に出現する文言を抽出し、抽出した前記文言に関係する前記ソフトウェア素材を前記利用傾向関係情報から検索する検索部、及び、
前記検索部により検索された前記ソフトウェア素材を前記開発対象ソフトウェアにおいて利用可能な前記ソフトウェア素材の候補として提示する素材提示部、して機能させ
前記利用傾向関係情報が、前記文言と前記ソフトウェア素材との関連度を示す情報を含み、
前記検索部が、検索した前記ソフトウェア素材について前記関連度を示す情報に基づいて前記開発対象ソフトウェアでの有効度を算出し、
前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記有効度に基づいて前記開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じて前記ソフトウェア素材の候補として提示することを特徴とするソフトウェア素材選定支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、開発対象ソフトウェアにおいて利用可能なソフトウェア素材の選定を支援するソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラムに関する。
【背景技術】
【0002】
近年、ソフトウェア開発において、オープンソースソフトウェア(以下、「OSS」という)や自社で過去に開発したソフトウェア部品、実績のある開発ツールなどの既存のソフトウェア素材を利用することにより開発工数を低減しようとする動きがある。
【0003】
このような動きに対応して、例えば、特許文献1には、ソフトウェア開発において利用可能なソフトウェア素材の選定を支援する技術が開示されている。特許文献1に開示されている情報処理装置は、ソフトウェアソースの検索手段及び選定支援手段を有している。検索手段は、開発物件における利用候補ソフトウェアソースについて選定条件(ポリシー)への適合度合いを示すスコアを出力する。選定支援手段は、その利用候補ソフトウェアソースの任意の部分を含む既開発物件の構成を示す情報に基づいて、そのスコアに重みを追加した更新スコアを含む、その利用候補ソフトウェアソースの情報を出力する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2015−161982
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記引用文献1に開示されている技術では、選定対象となるソフトウェアソースがライセンスやコード規模などの選定条件にどれだけ合致しているかをスコア付けするものであって、そのソフトウェアソースの機能面から選定のための評価をおこなうものではない。そのため、ソフトウェアソースの機能について、検索する側で一定の知識やスキルが必要となるが、特にOSSのような日々進歩している分野では、熟練者であっても知識やスキルが進歩に追いつかない場合がある。これにより、利用可能なソフトウェア素材があるにもかかわらず、自ら実装してしまうことがあり、開発工数を低減させるという要求に満足に対応できていないという実情がある。
【0006】
本発明は、上記課題に鑑み、開発工数を効果的に低減できるソフトウェア素材選定支援装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係るソフトウェア素材選定支援装置は、文言と当該文言が出現する文書により説明される開発済ソフトウェアで利用される傾向にあるソフトウェア素材との関係を示す利用傾向関係情報を格納した利用傾向データ記憶部と、開発対象ソフトウェアを説明する文書に出現する文言を抽出し、抽出した前記文言に関係する前記ソフトウェア素材を前記利用傾向関係情報から検索する検索部と、前記検索部により検索された前記ソフトウェア素材を前記開発対象ソフトウェアにおいて利用可能な前記ソフトウェア素材の候補として提示する素材提示部と、を有することを特徴とする。
【0008】
本発明によれば、文言と当該文言が出現する文書により説明される開発済ソフトウェアで利用される傾向にあるソフトウェア素材との関係を示す利用傾向関係情報を用いて開発対象ソフトウェアで利用可能なソフトウェア素材の候補を提示する。このようにしたことから、開発済ソフトウェアを説明する文書には機能面についての記載が含まれていると考えられるところ、当該文書に出現する文言とソフトウェア素材との関係を開発対象ソフトウェアについても同様に当てはめて、当該開発対象ソフトウェアを説明する文書に基づき利用可能なソフトウェア素材の候補を効果的に提示することができる。
【0009】
本発明においては、前記利用傾向関係情報が、前記文言と前記ソフトウェア素材との関連度を示す情報を含み、前記検索部が、検索した前記ソフトウェア素材について前記関連度を示す情報に基づいて前記開発対象ソフトウェアでの有効度を算出し、前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記有効度に基づいて前記開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じて前記ソフトウェア素材の候補として提示するようにしてもよい。このようにすることで、利用可能なソフトウェア素材の候補をより適切に提示することができる。
【0010】
本発明においては、前記ソフトウェア素材に関する情報を格納した素材情報データ記憶部をさらに有し、前記素材提示部が、前記検索部により検索された前記ソフトウェア素材について、前記ソフトウェア素材に関する情報に基づいて格付け値を算出し、前記有効度及び前記格付け値に基づいて前記開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じて前記ソフトウェア素材の候補として提示するようにしてもよい。このようにすることで、利用可能なソフトウェア素材の候補をより適切に提示することができる。
【発明の効果】
【0011】
本発明によれば、開発対象ソフトウェアにおいて利用可能なソフトウェア素材の候補をより効果的に提示することができるので、ソフトウェア素材の再利用率を高めて、開発工数を効果的に低減できる。
【図面の簡単な説明】
【0012】
図1】本発明の一実施形態に係るソフトウェア素材選定支援装置を含むシステム構成の例である。
図2】素材利用履歴データベースに格納された開発済ソフトウェア情報の一例を模式的に示す図である。
図3】利用傾向分析部における仕様書傾向テーブル作成時のデータの流れの一例を模式的に示す図である。
図4】利用傾向分析部における組み合わせ傾向テーブル作成時のデータの流れの一例を模式的に示す図である。
図5】利用傾向データベースに格納された仕様書傾向テーブルの一例を示す図である。
図6】利用傾向データベースに格納された組み合わせ傾向テーブルの一例を示す図である。
図7】検索部における候補素材テーブル作成時のデータの流れの一例を模式的に示す図である。
図8】検索部において候補素材テーブルを作成する途中で作成される候補素材リストの一例を示す図である。
図9】検索部により作成された候補素材テーブルの一例を示す図である。
図10】素材情報データベースに格納された素材情報テーブルの一例を示す図である。
図11】素材提示部により作成された推奨素材テーブルの一例を示す図である。
図12図1のソフトウェア素材選定支援装置の制御部において実行される本発明にかかるソフトウェア素材選定支援処理の一例を示すフローチャートである。
図13】ソフトウェア素材提示処理を行う際の画面イメージの一例を示す図である。
【発明を実施するための形態】
【0013】
本発明の一実施形態に係るソフトウェア素材選定支援装置を含むシステムについて、図面を参照して詳細に説明する。図1は、本発明の一実施形態に係るソフトウェア素材選定支援装置を含むシステム構成の例である。
【0014】
本実施形態のソフトウェア素材選定支援装置では、以下の手順によって開発者に対して開発対象のソフトウェアにおいて利用可能なソフトウェア素材の候補を提示することによりソフトウェア素材の選定を支援する。
(1)ソフトウェア素材の利用傾向を作成する元となるデータ群として、開発済ソフトウェアの仕様書及びその開発済ソフトウェアが利用したソフトウェア素材のリストを含む情報(開発済ソフトウェア情報)をデータベースに蓄積する。そして、この情報を分析することにより、仕様書及びソフトウェア素材のリストに出現する文言によってどのソフトウェア素材が利用されやすいかという利用傾向を割り出す。
(2)開発対象ソフトウェアの仕様及びそのソフトウェアで利用予定のソフトウェア素材のリスト(開発対象ソフトウェア情報)を入力とし、上記割り出した利用傾向を参照して、開発対象ソフトウェアで利用可能なソフトウェア素材の候補とその有効度を示すテーブル(候補素材テーブル)を作成する。
(3)作成した候補素材テーブルに含まれるソフトウェア素材に対し、各ソフトウェア素材に関連する情報を参照して、品質、コスト及び利用容易性の観点からどれだけ適切なソフトウェア素材であるかを考慮して格付けを行い、有効度及び格付けに基づいて算出した推奨度にしたがいソフトウェア素材の候補を出力して開発者に情報提示を行う。
【0015】
図1に示すように、本実施形態に係るソフトウェア素材選定支援装置を含むシステム1は、入力装置5と、出力装置6と、ソフトウェア素材選定支援装置(以下、単に「支援装置10」という)と、を有している。
【0016】
入力装置5は、例えば、キーボードやマウスなどの入力装置であり、ユーザ操作に応じた各種情報を支援装置10に入力する。または、入力装置5は、支援装置10に直接またはネットワークを介して接続されるコンピュータ等の情報処理装置などで、支援装置10が処理可能なファイルまたはその他の情報を入力するものであってもよい。本実施形態では、入力装置5は、各種情報を格納可能な記憶装置も含み、当該記憶装置に格納された開発対象ソフトウェア情報50(後述)を支援装置10に入力する。
【0017】
出力装置6は、例えば、ディスプレイなどの出力装置であり、支援装置10が出力した処理結果などを表示する機能を有する。出力装置6は、支援装置10に直接またはネットワークを介して接続される情報処理装置などであってもよく、この場合、入力装置5と出力装置6とが、同一の情報処理装置であってもよい。
【0018】
支援装置10は、コンピュータを有する制御部10aと、ハードディスク装置などの記憶装置を有する記憶部10bとを備えている。制御部10aは、記憶部10bに格納されたプログラム(すなわち、ソフトウェア素材選定支援プログラム)を実行することにより、利用傾向分析部12、検索部14及び素材提示部16などの各種機能部として機能する。また、記憶部10bには、素材利用履歴データベース11、利用傾向データベース13及び素材情報データベース15が構築されている。
【0019】
素材利用履歴データベース11は、ソフトウェア素材の利用履歴に関する情報を格納する。具体的には、素材利用履歴データベース11は、図2に示すように、既に開発が完了している1または複数の開発済ソフトウェア情報30を格納している。開発済ソフトウェア情報30は、例えば、開発済ソフトウェアを説明する文書であり、仕様書31及び素材リストデータ32を含んでいる。開発済ソフトウェア情報30は、支援装置10において処理可能なファイルまたはその他形式の情報である。なお、素材利用履歴データベース11に格納する情報は、開発済ソフトウェア情報30のような情報に限らず、ソフトウェア素材の利用履歴を把握できる任意の情報を含むことができる。例えば、ソフトウェアコミュニティサイトなどにおけるユーザ(アカウント)ごとの利用中ソフトウェア素材リストなどでもよい。この利用中ソフトウェア素材リストは、例えば、あるソフトウェア素材に対して、そのソフトウェア素材と「同時に利用されやすいソフトウェア素材」を選定する場合に有効である。このようなソフトウェアコミュニティサイトの情報も利用傾向の分析対象として利用できる。
【0020】
また、開発済ソフトウェアは、その開発の経緯、開発の主体、仕様書の有無等に関わらず、既に開発されていて実行可能なソフトウェアをすべて含む。つまり、ある企業にとって、自社が主体となり、仕様書に基づいて自社の事業のために開発したソフトウェアのみならず、他の企業または個人により開発され、いわゆるオープンソースとして提供されていて必ずしも仕様書が公開されていないソフトウェアも、開発済みソフトウェアである。
【0021】
仕様書31は、開発済ソフトウェアの仕様について記載された情報である。本明細書において、仕様には、例えば、実現する機能、使用言語、開発環境、ソフトウェア構造などの開発済ソフトウェアを説明する上で必要となるあらゆる情報を含み得るものとする。素材リストデータ32は、開発済ソフトウェアで利用された1または複数のソフトウェア素材を特定する情報である。素材リストデータ32には、素材情報データベース15に格納されているソフトウェア素材を特定するための情報である素材ID(名称や識別記号など)がリスト化されて含まれているものとする。素材IDは、ソフトウェア素材名に相当する。
【0022】
素材利用履歴データベース11に開発済ソフトウェア情報30を追加したり更新したりするには、入力装置5から手動で行い、または、支援装置10に接続された図示しない情報処理装置などにより自動的に行う。本実施形態において、素材利用履歴データベース11は、記憶部10bにて実現されるが、ネットワーククラウド上に仮想的に設けられていてもよい。
【0023】
利用傾向分析部12は、素材利用履歴データベース11に格納された開発済ソフトウェア情報30を取得して、開発済ソフトウェア情報30に含まれる開発済ソフトウェアについての説明とソフトウェア素材の利用されやすさ(利用傾向)との関係を分析する。利用傾向分析部12は、図3及び図4に模式的に示すデータの流れに沿い、開発済ソフトウェア情報30に基づいて、仕様書傾向テーブル310(図5)及び組み合わせ傾向テーブル320(図6)を作成する。
【0024】
利用傾向分析部12は、図3に示すように、素材利用履歴データベース11から取得した開発済ソフトウェア情報30について、仕様書31を単語(すなわち出現文言)に分解して仕様書単語リスト33を作成する。利用傾向分析部12は、この仕様書単語リスト33に、素材リストデータ32に含まれているソフトウェア素材の素材IDを単語(すなわち出現文言)として含めて、仕様書傾向テーブル作成用リスト34を作成する。そして、利用傾向分析部12は、それぞれの開発済ソフトウェア情報30について作成した仕様書傾向テーブル作成用リスト34に対してアソシエーション分析を行い、「条件(出現文言)」及び「結論(素材ID)」、ならびに、これら条件と結論との関連度を示す情報である「支持度」、「確信度」及び「リフト値」の組み合わせからなる相関ルールテーブル35を抽出する。抽出した相関ルールテーブル35の中から、(1)条件にソフトウェア素材の素材IDを含むルール、及び、(2)結論がソフトウェア素材の素材IDでないルール、を取り除いて、仕様書傾向テーブル310を作成する。
【0025】
また、利用傾向分析部12は、図4に示すように、素材利用履歴データベース11から取得した開発済ソフトウェア情報30について、素材リストデータ32に含まれているソフトウェア素材の素材IDを単語(すなわち出現文言)として含めた組み合わせ傾向テーブル作成用リスト36を作成する。そして、利用傾向分析部12は、それぞれの開発済ソフトウェア情報30について作成した組み合わせ傾向テーブル作成用リスト36に対してアソシエーション分析を行い、「条件(出現文言)」及び「結論(素材ID)」、ならびに、これら条件と結論との関連度を示す情報である「支持度」、「確信度」及び「リフト値」の組み合わせからなる相関ルールテーブルを作成して、作成した相関ルールテーブルを組み合わせ傾向テーブル320とする。
【0026】
図5に仕様書傾向テーブルを、図6に組み合わせ傾向テーブル320を示す。仕様書傾向テーブル310は、開発済ソフトウェア情報30の仕様書31に含まれる文言(特に名詞などの単語)にどのような特徴があると、どのソフトウェア素材が利用されやすいかという利用傾向を表す。組み合わせ傾向テーブル320は、開発済ソフトウェアでどのソフトウェア素材が利用されると、どのソフトウェア素材が同時に利用されやすいかという利用傾向を表す。仕様書傾向テーブル310及び組み合わせ傾向テーブル320は、アソシエーション分析を用いて作成されているので、相関ルールを網羅的に抽出できるとともに、支持度、確信度及びリフト値により各ルールの有効性を評価することができる。仕様書傾向テーブル310及び組み合わせ傾向テーブル320は、利用傾向関係情報に相当する。
【0027】
仕様書傾向テーブル310及び組み合わせ傾向テーブル320は、条件と当該条件を満足したときに導かれる結論とで示される相関ルールについての支持度、確信度及びリフト値を有している。
【0028】
支持度(Support)は、「分析に用いた開発済ソフトウェア情報30の全数に対する、その相関ルール(条件と結論との組み合わせ)が実際に出現する開発済ソフトウェア情報30の数の割合」である。
【0029】
確信度(Confidence)は、「分析に用いた開発済ソフトウェア情報30のうちのその相関ルールの条件に当てはまる開発済ソフトウェア情報30の数に対する、その相関ルール(条件と結論との組み合わせ)が実際に出現する開発済ソフトウェア情報30の数の割合」である。
【0030】
リフト値(Lift)は、『「分析に用いた開発済ソフトウェア情報30の全数に対する、その相関ルールの結論に示されるソフトウェア素材を利用している開発済ソフトウェア情報30の数の割合」に対する、上記確信度の割合』である。
【0031】
利用傾向分析部12は、作成した仕様書傾向テーブル310及び組み合わせ傾向テーブル320を、利用傾向データベース13に格納する。利用傾向分析部12を有することにより、仕様書傾向テーブル310及び組み合わせ傾向テーブル320の更新を適時に行なうことができる。
【0032】
利用傾向データベース13は、利用傾向分析部12によって作成された仕様書傾向テーブル310及び組み合わせ傾向テーブル320を格納する。本実施形態において、利用傾向データベース13は、記憶部10bにて実現されるが、ネットワーククラウド上に仮想的に設けられていてもよい。なお、素材利用履歴データベース11及び利用傾向分析部12を支援装置10とは異なる他の情報処理装置において実現し、当該情報処理装置にて作成した仕様書傾向テーブル310及び組み合わせ傾向テーブル320を利用傾向データベース13に格納するようにしてもよい。この場合、支援装置10において素材利用履歴データベース11及び利用傾向分析部12を省略することができる。利用傾向データベース13は、利用傾向データ記憶部に相当する。
【0033】
検索部14は、入力装置5から入力される開発対象ソフトウェアを説明する文書に基づき、利用傾向データベース13に格納されている仕様書傾向テーブル310及び組み合わせ傾向テーブル320を使用して、利用候補となるソフトウェア素材を検出する。検索部14は、図7に示すデータフローに沿って、候補素材テーブル500を作成する。なお、図7において、仕様書傾向テーブル310及び組み合わせ傾向テーブル320は抜粋であり、実際には、条件及び結論以外に、上記で説明した支持度、確信度及びリフト値を含む。
【0034】
本実施形態において、検索部14に入力される開発対象ソフトウェアを説明する文書は、開発対象ソフトウェアの仕様書51及び素材リストデータ52を含む開発対象ソフトウェア情報50である。仕様書51及び素材リストデータ52は、上述の開発済ソフトウェア情報30の仕様書31及び素材リストデータ32と同様のものである。開発対象ソフトウェア情報50は、仕様書51及び素材リストデータ52のうちの一方のみ含むものであってもよい。
【0035】
検索部14は、図7に示すように、開発対象ソフトウェア情報50について、仕様書51を分解してそれに含まれる単語を抽出し、抽出した単語を含む仕様書単語リスト53を作成する。検索部14は、この仕様書単語リスト53を仕様書傾向テーブル310の条件に当てはめて、満足した条件(図7において判定:○)に対応する結論に示されるソフトウェア素材の素材ID及び確信度を抽出して、抽出した素材ID及び確信度を有効度[A]として含む候補素材リスト[A]54(図8(a))を作成する。仕様書傾向テーブル310を用いることにより、開発済ソフトウェア情報30の仕様書31に含まれる文言の特徴とこの特徴があるときに利用されやすいソフトウェア素材との関係を開発対象ソフトウェアに当てはめて、過去のソフトウェア素材の利用履歴からより適切なソフトウェア素材の候補を検索することができる。
【0036】
また、検索部14は、開発対象ソフトウェア情報50について、素材リストデータ52に含まれているソフトウェア素材の素材IDを単語として含むソフトウェア素材単語リスト55を作成する。検索部14は、このソフトウェア素材単語リスト55を組み合わせ傾向テーブル320の条件に当てはめて、満足した条件(図7において判定:○)に対応する結論に示されるソフトウェア素材の素材ID及び確信度を抽出して、抽出した素材ID及び確信度を有効度[B]として含む候補素材リスト[B]56(図8(b))を作成する。組み合わせ傾向テーブル320を用いることにより、開発済ソフトウェア情報30の素材リストデータ32に含まれる素材IDの特徴とこの特徴があるときに同時に利用されやすいソフトウェア素材との関係を開発対象ソフトウェアに当てはめて、過去のソフトウェア素材の利用履歴からより適切なソフトウェア素材の候補を検索することができる。
【0037】
候補素材リスト[A]54及び候補素材リスト[B]56は、素材IDに示されるソフトウェア素材が開発対象ソフトウェアにおいて利用可能な候補としてどれだけ有効かを示す有効度[A]及び有効度[B]を含んでいる。本実施形態において、有効度として、仕様書傾向テーブル310及び組み合わせ傾向テーブル320から取り出した確信度を用いている。有効度については、これに限定されるものではなく、利用可能な候補としての有効性を示す指標が求められるのであれば、例えば、確信度以外の二つの値を用いるなど、他の方法によって算出してもよい。また、有効度について、有効度基準値を設定し、有効度が有効度基準値以上となるソフトウェア素材の素材IDのみを利用可能なソフトウェア素材の候補として候補素材リスト[A]54及び候補素材リスト[B]56に含める構成としてもよい。
【0038】
検索部14は、候補素材リスト[A]54及び候補素材リスト[B]56を組み合わせて、図9に示す候補素材テーブル500を作成する。候補素材テーブル500は、候補素材リスト[A]54及び候補素材リスト[B]56から取得したソフトウェア素材の有効度[A]及び有効度[B]について計算した平均値(有効度平均)を含む。なお、本実施形態では、有効度の平均値を出しているが、これに限定されるものではなく、利用可能な候補としての有効性を示す指標が求められるのであれば、他の方法によって有効度平均に代わる値を算出してもよい。また、有効度平均について、有効度平均基準値を設定し、有効度平均が有効度平均基準値以上となるソフトウェア素材のみを利用可能なソフトウェア素材の候補として候補素材テーブル500に含める構成としてもよい。
【0039】
素材情報データベース15は、ソフトウェア素材に関連する情報を格納する。具体的には、素材情報データベース15は、図10に示すように、ソフトウェア素材に関連する情報を含む素材情報テーブル600を格納している。素材情報テーブル600においては、各ソフトウェア素材が素材IDで管理されており、それぞれの素材IDに対して、素材名称、ソフトウェア品質、コスト及び利用可能化時間の情報が関連付けられている。なお、ソフトウェア品質、コスト及び利用可能化時間については、これらから選択される1つまたは2つのみ含む構成としてもよい。
【0040】
ソフトウェア品質は、ソフトウェア素材の品質を表す情報であり、「12か月不具合数」は、直近12か月間で当該ソフトウェア素材において出現したバグ数であり、「ソース複雑度平均」は当該ソフトウェア素材のソースコードの複雑度の平均値である。
【0041】
コストは、ソフトウェア素材の導入及び維持に必要な具体的な費用(金額)を表す情報であり、「初期費用」は、ソフトウェア素材を入手するために必要な費用であり、「維持管理費」は、ソフトウェア素材を12か月にわたって維持管理するための費用である。
【0042】
利用可能化時間は、ソフトウェア素材を利用するまでにかかる時間(すなわち、利用容易性の指標)に関する情報であり、「ドキュメント整備状況」は、ソフトウェア素材の仕様について書かれたドキュメント(文書)が用意されているか、用意されているとすればどの言語で用意されているかを表す。ドキュメント整備状況の「多言語」は複数の言語を用いて表現されたドキュメントが用意されており、「英語のみ」は英語を用いて表現されたドキュメントのみ用意されており、「なし」はソフトウェア素材のドキュメントがまったく用意されていないことを意味する。
【0043】
素材情報データベース15は、素材情報テーブル600に含まれる上記情報以外にも、例えば、各ソフトウェア素材の種別、機能及び用途等を説明する情報などを格納している。本実施形態において、素材情報データベース15は、記憶部10bにて実現されるが、ネットワーククラウド上に仮想的に設けられていてもよい。素材情報データベース15は、素材情報データ記憶部に相当する。
【0044】
素材提示部16は、候補素材テーブル500に含まれるソフトウェア素材について、素材情報テーブル600から取得した情報に基づいて格付け値を算出して、候補素材テーブル500に対して算出した格付け値を付加して推奨素材テーブル700を作成する。そして、素材提示部16は、上記有効度及び格付け値に基づいて開発対象ソフトウェアに対する推奨度を算出して、推奨素材テーブル700にさらに含め、推奨素材テーブル700に含まれるソフトウェア素材を、当該推奨度に応じてソフトウェア素材の候補として提示する。図11に推奨素材テーブル700の一例を示す。
【0045】
具体的には、素材提示部16は、候補素材テーブル500の素材IDに示される各ソフトウェア素材について、素材情報テーブル600のソフトウェア品質、コスト及び利用可能化時間の各数値から格付け値を算出し、上記有効度及び格付け値に基づいて開発対象ソフトウェアへの利用の推奨度を算出する。
【0046】
素材提示部16が行なう格付けは、上述した検索部14において算出したソフトウェア素材の有効度に対して、例えば、品質、コスト及び利用容易性などの面から重み付けする意味を有する。このようにすることで、ソフトウェア素材の候補の提示に、ソフトウェア素材自体の評価を反映することができる。特に上記3項目を用いることで、ソフトウェア素材の品質、ソフトウェア素材の入手や維持管理していく上で必要になるコスト、及び、ソフトウェア素材を利用する(素材を単体でツールとして使用したり、外部販売する自社製品に組み込んだりする)までにかかる時間についての評価を反映することができる。
【0047】
素材提示部16は、次のようにしてソフトウェア素材の格付け値(点)を付与する。
【0048】
ソフトウェア品質の「12か月不具合数」については、0〜3または51以上を1点、20〜50を2点、4〜19を3点として格付け値を付与し、「ソース複雑度平均」については、21以上を1点、10〜20を2点、9以下を3点として格付け値を付与する。
【0049】
コストの「初期費用」について、1000万円以上を1点、1000万円未満〜100万円以上を2点、100万円未満を3点として格付け値を付与し、「維持管理費」については、1000万円以上を1点、1000万円未満〜100万円以上を2点、100万円未満を3点として格付け値を付与する。
【0050】
利用可能化時間の「ドキュメント整備状況」については、なしを1点、英語のみを2点、多言語を3点として格付け値を付与する。
【0051】
素材提示部16は、格付け値を付与したあと、ソフトウェア素材ごとに格付け平均を算出する。そして、素材提示部16は、有効度平均と格付け平均を乗じて推奨度を算出し、推奨素材テーブル700に含める。そして、素材提示部16は、推奨素材テーブル700に含まれる素材IDで示されるソフトウェア素材について、それぞれの推奨度に応じた順で表示するための情報(表示情報)を出力装置6に出力する。
【0052】
素材提示部16は、推奨度に応じてソフトウェア素材の候補を表示するための情報を出力(すなわち提示)するものであるが、これに限定されるものではない。例えば、素材提示部16は、格付け値及び推奨度を算出せず、検索部14において算出したソフトウェア素材の有効度に応じた順で表示するための情報を出力するものであってもよい。または、さらに簡略化して、検索部14において有効度を算出せず、検索部14において検索されたソフトウェア素材を利用可能なソフトウェア素材の候補として表示するための情報を出力するものであってもよい。このようにすることで、より簡易な構成で利用可能なソフトウェア素材の候補を提示できる。
【0053】
次に、上述した支援装置10における本発明に係る動作(ソフトウェア素材選定支援動作)の一例について、図12のフローチャートを参照して説明する。
【0054】
支援装置10が動作を開始すると、利用傾向分析部12が、素材利用履歴データベース11に格納された開発済ソフトウェア情報30に基づいて、仕様書傾向テーブル310及び組み合わせ傾向テーブル320を作成する(ステップS10)。利用傾向分析部12は、素材利用履歴データベース11に開発済ソフトウェア情報30が追加されたり、開発済ソフトウェア情報30が更新されたりする度に、仕様書傾向テーブル310及び組み合わせ傾向テーブル320を再作成する。利用傾向分析部12は、作成した仕様書傾向テーブル310及び組み合わせ傾向テーブル320を利用傾向データベース13に格納する。
【0055】
次に、検索部14が入力装置5からソフトウェア提示要求を受信すると(ステップS20)、検索部14は、受信したソフトウェア提示要求に含まれる開発対象ソフトウェア情報50に基づいて仕様書傾向テーブル310及び組み合わせ傾向テーブル320を使用して利用候補となるソフトウェア素材(素材ID)の有効度を含む候補素材テーブル500を作成する(ステップS30)。
【0056】
そして、素材提示部16が、素材情報データベース15の素材情報テーブル600から取得した情報に基づくソフトウェア素材の格付け値を求めるとともに、候補素材テーブル500に対して格付け値を付加し、有効度と格付け値とから求めた推奨度を含む推奨素材テーブル700を作成する(ステップS40)。
【0057】
最後に、素材提示部16は、推奨素材テーブル700に含まれる利用を推奨するソフトウェア素材について、それぞれの推奨度に応じた順で表示するための情報(表示情報)を出力装置6に出力する(ステップS50)。
【0058】
次に、上述したソフトウェア素材選定支援処理について、図13を参照して表示操作の観点から説明する。図13は、ソフトウェア素材提示処理を行う際の画面イメージの一例を示す図である。
【0059】
図13に示す画面800は、出力装置6にて表示される。この画面800は、開発対象ソフトウェア情報50の仕様書51のファイル名を入力するファイル名入力エリア801と、開発対象ソフトウェアにおいて利用するソフトウェア素材を入力するソフトウェア素材名入力エリア802と、ソフトウェア素材選定支援処理を開始する操作を入力する検索ボタン803と、利用可能と推測するソフトウェア素材を表示する表示エリア804と、が設けられている。
【0060】
開発者は、最初にファイル名入力エリア801にファイル名を入力する。また、開発者は仕様書での記載の有無に関わらず、開発対象ソフトウェアでの利用を考えているソフトウェア素材の名称を、ソフトウェア素材名入力エリア802に入力してもよい。ソフトウェア素材名入力エリア802に入力したソフトウェア素材の名称から素材リストデータ52が作成される。そして、開発者は、検索ボタン803を押下する。これにより、入力装置5から支援装置10に対して、開発対象ソフトウェア情報50を含むソフトウェア提示要求が送信され、支援装置10が、上述したソフトウェア素材選定支援処理を実行して処理結果として上記表示情報を出力装置6に出力する。
【0061】
出力装置6は、上記表示情報に基づいて、表示エリア804に推奨度に応じた順(例えば、推奨度の高い順)でソフトウェア素材についての情報を並べて表示する。これ以外にも、推奨素材テーブル700の各数値によって並び替えた順で表示してもよい。また、表示内容として、図13に示すもの以外にも、例えば、素材提示部16によって得られたソフトウェア素材の格付け情報や、素材情報データベース15に格納されているソフトウェア素材に関連する情報などを含めてもよい。
【0062】
また、開発者が、表示エリア804に表示されているソフトウェア素材の名称をソフトウェア素材名入力エリア802に入力するとともに検索ボタン803を押す操作を繰り返して、連続してソフトウェア素材選定支援処理を実行してもよい。そして、開発者が利用したいソフトウェア素材が表示エリア804に表示されなくなった時点で、入力した開発対象ソフトウェアの仕様書とソフトウェア素材名入力エリア802に入力した利用予定のソフトウェア素材の情報を、開発済ソフトウェア情報30として素材利用履歴データベース11に格納できるようにしてよい。これによってユーザは、開発対象ソフトウェアの仕様書に基づく利用可能ソフトウェアの提示要求から、ソフトウェア素材の採用、そして利用予定ソフトウェア素材の情報の保存を、一度に行うことができる。
【0063】
以上より、本実施形態の支援装置10によれば、単語と当該単語が出現する開発済ソフトウェア情報30により説明される開発済ソフトウェアで利用される傾向にあるソフトウェア素材との関係を示す仕様書傾向テーブル310及び組み合わせ傾向テーブル320を用いて開発対象ソフトウェアで利用可能なソフトウェア素材の候補を提示する。このようにしたことから、開発済ソフトウェア情報30には機能面についての記載が含まれていると考えられるところ、当該開発済ソフトウェア情報30に出現する文言とソフトウェア素材との関係を開発対象ソフトウェアについても同様に当てはめて、当該開発対象ソフトウェア情報50に基づき利用可能なソフトウェア素材の候補を効果的に提示することができる。
【0064】
また、仕様書傾向テーブル310及び組み合わせ傾向テーブル320が、単語とソフトウェア素材との関連度を示す確信度を含み、検索部14が、検索したソフトウェア素材について確信度に基づいて開発対象ソフトウェアでの有効度を算出する。素材提示部16が、検索部14により検索されたソフトウェア素材について、素材情報テーブル600に基づいて格付け値を算出する。そして、素材提示部16が、有効度及び格付け値に基づいて開発対象ソフトウェアに対する推奨度を算出し、当該推奨度に応じてソフトウェア素材の候補として提示する。このようにすることで、利用可能なソフトウェア素材の候補をより適切に提示することができる。
【0065】
上述した実施形態では、利用傾向分析部12及び検索部14が、ソフトウェアの仕様書から文言として単語を抽出する構成であったが、この単語は、例えば、ソフトウェアに関する名詞であってもよい。すなわち、ソフトウェアに関する名詞についての辞書情報を記憶部10bなどに格納し、この辞書情報と照らし合わせて単語を抽出する構成としてもよい。ソフトウェアに関する名詞とは、たとえば、ソフトウェアの名称またはそれに類するもの(テキストエディタ、コンパイラなど)、ソフトウェアの機能(検索、検証、エンコード、デコードなど)、ソフトウェアが入出力するデータ形式(PDF、Base64など)、プログラム言語(Java(登録商標)など)、開発環境(フレームワーク、Eclipseなど)などを含む。ソフトウェアに関する名詞は、ソフトウェア素材の名称や識別情報を含んでもよい。また、利用傾向分析部12及び検索部14が、ソフトウェアの仕様書から文言としてフレーズを抽出する構成であってもよい。
【0066】
また、上述した実施形態では、利用傾向分析部12が、アソシエーション分析を用いる構成であったが、これに限定されるものではない。例えば、利用傾向分析部12が、開発済ソフトウェア情報30についてベクトル化を行なうとともに、検索部14が、開発対象ソフトウェア情報50についてベクトル化を行い、開発対象ソフトウェア情報50のベクトルに類似するベクトルを有する開発済ソフトウェア情報30に含まれるソフトウェア素材を、開発対象ソフトウェアで利用可能なソフトウェア素材の候補として提示する構成などであってもよく、本発明の目的に反しない限り、分析方法は任意である。
【0067】
以上、図面を用いて本発明の実施形態を詳述してきたが、具体的な構成はこの実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。本発明の要旨を逸脱しない範囲における設計変更等があっても、それらは本発明に含まれるものである。
【符号の説明】
【0068】
1…システム、5…入力装置、6…出力装置、10…支援装置、10a…制御部、10b…記憶部、11…素材利用履歴データベース、12…利用傾向分析部、13…利用傾向データベース(利用傾向データ記憶部)、14…検索部、15…素材情報データベース(素材情報データ記憶部)、16…素材提示部、30…開発済ソフトウェア情報(開発済ソフトウェアを説明する文書)、31…仕様書、32…素材リストデータ、33…仕様書単語リスト、34…仕様書傾向テーブル作成用リスト、35…相関ルールテーブル、36…傾向テーブル作成用リスト、50…開発対象ソフトウェア情報(開発対象ソフトウェアを説明する文書)、51…仕様書、52…素材リストデータ、53…仕様書単語リスト、55…ソフトウェア素材単語リスト、310…仕様書傾向テーブル(利用傾向関係情報)、320…組み合わせ傾向テーブル(利用傾向関係情報)、500…候補素材テーブル、600…素材情報テーブル(ソフトウェア素材に関する情報)、700…推奨素材テーブル、800…画面、801…ファイル名入力エリア、802…ソフトウェア素材名入力エリア、803…検索ボタン、804…表示エリア
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13