JP7464109B2 - ソフトウェア評価装置、ソフトウェア評価方法及びプログラム - Google Patents

ソフトウェア評価装置、ソフトウェア評価方法及びプログラム Download PDF

Info

Publication number
JP7464109B2
JP7464109B2 JP2022509842A JP2022509842A JP7464109B2 JP 7464109 B2 JP7464109 B2 JP 7464109B2 JP 2022509842 A JP2022509842 A JP 2022509842A JP 2022509842 A JP2022509842 A JP 2022509842A JP 7464109 B2 JP7464109 B2 JP 7464109B2
Authority
JP
Japan
Prior art keywords
software
recommendation
information
function
score
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022509842A
Other languages
English (en)
Other versions
JPWO2021192049A1 (ja
JPWO2021192049A5 (ja
Inventor
侑己 宮口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2021192049A1 publication Critical patent/JPWO2021192049A1/ja
Publication of JPWO2021192049A5 publication Critical patent/JPWO2021192049A5/ja
Application granted granted Critical
Publication of JP7464109B2 publication Critical patent/JP7464109B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、ソフトウェア評価装置、ソフトウェア評価方法及びプログラムに関する。
アプリケーションを開発する際に、オープンソースソフトウェア(Open Source Software;OSS)等の、ソースコードのアクセス、使用及び修正が可能であるソフトウェアを活用することがある。この技術に関連し、特許文献1は、利用するOSSの選定において、より適したOSSを選定する開発支援方法を開示する。特許文献1にかかる方法は、開発物件に利用するソフトウェアソースの候補である利用候補ソフトウェアソースを検出し、その開発物件に対応するポリシーで示される選定条件のそれぞれへの、その利用候補ソフトウェアソースの適合の度合いを示す、スコアを出力する。また、特許文献1にかかる方法は、その利用候補ソフトウェアソースの任意の部分を含む既開発物件の構成を示す情報に基づいて、そのスコアに重みを追加した更新スコアを含む、その利用候補ソフトウェアソースの情報を出力する。
特開2015-161982号公報
OSSのような、ソースコードのアクセス、使用及び修正が可能であるソフトウェアでは、不特定多数の開発者によって開発が行われているため、品質の担保が難しい。そして、このようなソフトウェアのいくつかを組み合わせて実現されたアプリケーションが実運用に入った後で、採用したソフトウェアの信頼性が下がってしまうリスクがある。しかしながら、このようなリスクが発生しても、そのリスクの発生を発見することは困難である。ここで、特許文献1は、OSSの信頼性の傾向を検知することについて、開示していない。したがって、特許文献1にかかる技術では、OSSの信頼性が低下するリスクを評価できない。
本開示の目的は、このような課題を解決するためになされたものであり、ソフトウェアの信頼性の傾向を適切に評価することが可能なソフトウェア評価装置、ソフトウェア評価方法及びプログラムを提供することにある。
本開示にかかるソフトウェア評価装置は、アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェアに関する情報であるソフトウェア情報を取得する情報取得手段と、前記ソフトウェア情報から、前記ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出する推奨値算出手段と、前記ソフトウェア推奨値の変化に基づいて、前記ソフトウェアに関する傾向を分析する傾向分析手段と、を有する。
また、本開示にかかるソフトウェア評価方法は、アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェアに関する情報であるソフトウェア情報を取得し、前記ソフトウェア情報から、前記ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出し、前記ソフトウェア推奨値の変化に基づいて、前記ソフトウェアに関する傾向を分析する。
また、本開示にかかるプログラムは、アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェアに関する情報であるソフトウェア情報を取得するステップと、前記ソフトウェア情報から、前記ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出するステップと、前記ソフトウェア推奨値の変化に基づいて、前記ソフトウェアに関する傾向を分析するステップと、をコンピュータに実行させる。
本開示によれば、ソフトウェアの信頼性の傾向を適切に評価することが可能なソフトウェア評価装置、ソフトウェア評価方法及びプログラムを提供できる。
本開示の実施の形態にかかるソフトウェア評価装置の概要を示す図である。 本開示の実施の形態にかかるソフトウェア評価装置によって実行されるソフトウェア評価方法を示すフローチャートである。 実施の形態1にかかるソフトウェア評価システムの構成を示す図である。 実施の形態1にかかるソフトウェア評価装置の構成を示す図である。 実施の形態1にかかる使用ソフトウェア情報DBに格納される使用ソフトウェア情報テーブルを例示する図である。 実施の形態1にかかる機能情報DBに格納される機能情報テーブルを例示する図である。 実施の形態1にかかるウェブサイト管理DBに格納されるウェブサイト管理テーブルを例示する図である。 実施の形態1にかかる推奨度管理DBに格納されるウェブサイト毎推奨度テーブルを例示する図である。 実施の形態1にかかる推奨度管理DBに格納される機能毎推奨度テーブルを例示する図である。 実施の形態1にかかる推奨度管理DBに格納される統合推奨度管理テーブルを例示する図である。 実施の形態1にかかるソフトウェア評価装置によって実行されるソフトウェア評価方法を示すフローチャートである。 図11に示したS110の処理の詳細を示すシーケンス図である。 図11に示したS120の処理の詳細を示すシーケンス図である。 図11に示したS130の処理の詳細を示すシーケンス図である。 図11に示したS140の処理の詳細を示すシーケンス図である。 図11に示したS150の処理の詳細を示すシーケンス図である。 図11に示したS160の処理の詳細を示すシーケンス図である。 実施の形態1にかかる、統合推奨得点の移動平均値及び変化量の推移を例示する図である。 図11に示したS170の処理の詳細を示すフローチャートである。
(本開示にかかる実施の形態の概要)
本開示の実施形態の説明に先立って、本開示にかかる実施の形態の概要について説明する。図1は、本開示の実施の形態にかかるソフトウェア評価装置1の概要を示す図である。また、図2は、本開示の実施の形態にかかるソフトウェア評価装置1によって実行されるソフトウェア評価方法を示すフローチャートである。
ソフトウェア評価装置1は、例えばコンピュータである。ソフトウェア評価装置1は、情報取得部2と、推奨値算出部4と、傾向分析部6とを有する。情報取得部2、推奨値算出部4及び傾向分析部6は、それぞれ、情報取得手段、推奨値算出手段及び傾向分析手段としての機能を有する。
情報取得部2は、ソフトウェア情報を取得する(ステップS12)。ここで、「ソフトウェア情報」とは、アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧(アクセス)、使用及び修正が可能であるソフトウェアに関する情報である。また、「複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェア」とは、例えばオープンソースソフトウェア(OSS)であるが、これに限定されない。本実施の形態にかかるソフトウェアは、例えば、「(閉じた)組織内における複数のユーザ」によるソースコードの閲覧、使用及び修正が可能であるソフトウェアであってもよい。つまり、本実施の形態にかかるソフトウェア(ソースコード)は、全世界のユーザによる閲覧等が可能である必要はなく、ある限定された組織の複数のユーザによる閲覧等が可能であればよい。
推奨値算出部4は、取得されたソフトウェア情報から、ソフトウェア推奨値を算出する(ステップS14)。ここで、ソフトウェア推奨値とは、ソフトウェア(OSS等)に関する信頼性の度合いである。傾向分析部6は、ソフトウェア推奨値の変化に基づいて、ソフトウェア(OSS等)に関する傾向を分析する(ステップS16)。例えば、傾向分析部6は、ソフトウェア推奨値の変化と、この変化に関する基準を示す基準情報(閾値)とに基づいて、ソフトウェア(OSS等)に関するリスク発生の有無の傾向を分析してもよい。
本実施の形態にかかるソフトウェア評価装置1は、ソフトウェア推奨値の変化に基づいて、ソフトウェア(OSS等)に関する傾向を分析するように構成されている。したがって、本実施の形態にかかるソフトウェア評価装置1は、ソフトウェアの信頼性の傾向を適切に評価することが可能となる。そして、ユーザに対して、実運用中のアプリケーションの品質担保のための判断情報を提供することができる。なお、ソフトウェア評価方法及びソフトウェア評価方法を実行するプログラムによっても、ソフトウェアの信頼性の傾向を適切に評価することが可能となる。
なお、情報取得部2は、ソフトウェア情報として、ソフトウェアの機能に関する機能情報を取得してもよい(S12)。機能情報については後述する。このとき、推奨値算出部4は、機能情報に基づいて、アプリケーションに使用されるソフトウェアの機能に関する評価指標である機能推奨得点を算出し、機能推奨得点を用いてソフトウェア推奨値を算出してもよい(S14)。機能推奨得点については後述する。このような構成によって、開発対象のアプリケーション(アプリケーション製品)について、より正確に、利用用途に合ったソフトウェア推奨値を算出することができる。したがって、ソフトウェアの信頼性の傾向をより適切に評価することが可能となる。
また、情報取得部2は、ソフトウェア情報として、ソフトウェアに対する1つ以上の推奨度を取得してもよい。推奨度については後述する。このとき、推奨値算出部4は、1つ以上の推奨度に基づいてソフトウェアの評価指標であるソフトウェア推奨得点を算出し、ソフトウェア推奨得点を用いてソフトウェア推奨値を算出してもよい。ソフトウェア推奨得点については後述する。また、推奨値算出部4は、ソフトウェア推奨得点を算出し、ソフトウェア推奨得点と機能推奨得点とを用いてソフトウェア推奨値を算出してもよい。
また、推奨値算出部4は、ソフトウェア推奨値として、ソフトウェア推奨得点と機能推奨得点とを統合した統合推奨得点を算出してもよい。統合推奨得点については後述する。このとき、傾向分析部6は、統合推奨得点の変化に基づいて、ソフトウェアに関する傾向を分析してもよい。このような構成によって、開発対象のアプリケーションについて、より正確に、ソフトウェア推奨値である統合推奨得点を算出することができる。したがって、ソフトウェアの信頼性の傾向をさらに適切に評価することが可能となる。
(実施の形態1)
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
図3は、実施の形態1にかかるソフトウェア評価システム20の構成を示す図である。ソフトウェア評価システム20は、1つ以上の推奨度情報サーバ30(30A,30B)と、ソフトウェア管理サーバ50と、ソフトウェア評価装置100とを有する。推奨度情報サーバ30、ソフトウェア管理サーバ50及びソフトウェア評価装置100は、インターネット等のネットワーク22を介して互いに通信可能に接続され得る。なお、推奨度情報サーバ30、ソフトウェア管理サーバ50及びソフトウェア評価装置100は、例えばクラウドコンピューティングによって実現されてもよい。この場合、推奨度情報サーバ30、ソフトウェア管理サーバ50及びソフトウェア評価装置100は、互いに物理的に別個である必要はない。
推奨度情報サーバ30は、OSS等のソフトウェア(以後、「単にソフトウェアと称する」)の推奨度に関する情報(推奨度情報)を提供するウェブサイト(推奨度情報サイト)を実現する。推奨度情報サーバ30は、ソフトウェアごとの推奨度を提供する。推奨度情報サーバ30は、例えば、Open Hub(登録商標)、OSS Radar Scope(登録商標)、又は、(閉じた)組織内のOSS推奨度サイトを提供するサーバであるが、これに限られない。推奨度情報サーバ30は、全世界のユーザ、又は限られた組織内の複数のユーザに対して、推奨度情報を提供し得る。なお、複数の推奨度情報サーバ30(推奨度情報サイト)ごとに、ソフトウェアの推奨度を表す指標は異なり得る。なお、図3には、2つの推奨度情報サーバ30A,30Bが示されているが、推奨度情報サーバ30の数は任意である。
ソフトウェア管理サーバ50は、ソフトウェア(プログラム)のソースコードを管理するサービス(ソフトウェア管理サービス)を提供する。ソフトウェア管理サーバ50は、ソースコードの変更履歴などを記録及び追跡するバージョン管理システムを実現し得る。ソフトウェア管理サーバ50(ソフトウェア管理サービス)は、ソフトウェアのソースコードを複数のユーザに公開し、複数のユーザによるソースコードの閲覧、使用及び修正を可能とするためのサービスを提供する。つまり、複数のユーザは、ソフトウェア管理サービスを使用して、ソースコードを閲覧し、使用し、修正し、保存することができる。そして、ソフトウェア管理サービスに登録され公開されているソースコードを不特定多数の開発者が編集することで、ソフトウェアの開発が進められ得る。ソフトウェア管理サーバ50は、例えばGitHub(登録商標)であるが、これに限られない。ソフトウェア管理サーバ50は、全世界のユーザ、又は限られた組織内の複数のユーザに対して、ソフトウェア管理サービスを提供し得る。なお、図3には、1つのソフトウェア管理サーバ50が示されているが、ソフトウェア管理サーバ50の数は任意である。
ソフトウェア管理サーバ50は、各ソフトウェアの機能に関する機能情報を登録する。機能情報は、ソースファイルに関する情報を示す。ここで、ソフトウェアは、複数のソースファイルで構成されている。そして、各ソースファイルは、ソフトウェアの予め定められた機能を実現するモジュールである。機能情報は、コード情報と、変更情報とを含み得る。コード情報は、各ソフトウェア(ソースファイル)のソースコードを示す。また、変更情報は、各ソフトウェアを構成するソースファイル(ソースコード)の変更履歴及び変更数(変更回数)を示す。変更情報は、例えばコミット(commit)情報であるが、これに限られない。
ソフトウェア評価装置100は、図1に示したソフトウェア評価装置1に対応する。ソフトウェア評価装置100は、OSS等のソフトウェアの信頼性を評価する。なお、以下の例では、ソフトウェア評価装置100は、OSSの信頼性を評価するとして説明する。
ソフトウェア評価装置100は、OSS等のソフトウェアに関するソフトウェア情報を取得する。ここで、「ソフトウェア情報」は、推奨度情報及び機能情報を含み得る。また、ソフトウェア評価装置100は、ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出する。そして、ソフトウェア評価装置100は、ソフトウェア推奨値の変化に基づいて、ソフトウェアに関する傾向を分析する。詳しくは後述する。
図4は、実施の形態1にかかるソフトウェア評価装置100の構成を示す図である。ソフトウェア評価装置100は、主要なハードウェア構成として、制御部102と、記憶部104と、通信部106と、インタフェース部108(IF;Interface)とを有する。制御部102、記憶部104、通信部106及びインタフェース部108は、データバスなどを介して相互に接続されている。
制御部102は、例えばCPU(Central Processing Unit)等のプロセッサである。制御部102は、制御処理及び演算処理等を行う演算装置としての機能を有する。記憶部104は、例えばメモリ又はハードディスク等の記憶デバイスである。記憶部104は、例えばROM(Read Only Memory)又はRAM(Random Access Memory)等である。記憶部104は、制御部102によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。また、記憶部104は、処理データ等を一時的に記憶するための機能を有する。記憶部104は、データベースを含み得る。
通信部106は、推奨度情報サーバ30及びソフトウェア管理サーバ50等の他の装置とネットワーク22を介して通信を行うために必要な処理を行う。通信部106は、通信ポート、ルータ、ファイアウォール等を含み得る。インタフェース部108は、例えばユーザインタフェース(UI)である。インタフェース部108は、キーボード、タッチパネル又はマウス等の入力装置と、ディスプレイ又はスピーカ等の出力装置とを有する。インタフェース部108は、ユーザ(オペレータ)によるデータの入力の操作を受け付け、ユーザに対して情報を出力する。インタフェース部108は、傾向分析の結果を表示してもよい。
実施の形態1にかかるソフトウェア評価装置100は、構成要素として、情報取得部110と、推奨値算出部120と、傾向分析部130と、各種DB(DB:データベース)とを有する。また、実施の形態1にかかるソフトウェア評価装置100は、データベースの構成要素として、使用ソフトウェア情報DB142と、機能情報DB144と、ウェブサイト管理DB146と、推奨度管理DB148とを有する。情報取得部110は、推奨度取得部112と、機能情報取得部114とを有する。推奨値算出部120は、ソフトウェア推奨得点算出部122と、機能推奨得点算出部124と、統合推奨得点算出部126とを有する。傾向分析部130は、変化量算出部132と、傾向判定部134とを有する。なお、ソフトウェア評価装置100は、物理的に1つの装置で構成されている必要はない。この場合、上述した各構成要素は、物理的に別個の複数の装置によって実現されてもよい。例えば、各種DBは、別の装置で構成されている。
情報取得部110は、図1に示した情報取得部2に対応する。情報取得部110は、情報取得手段としての機能を有する。推奨値算出部120は、図1に示した推奨値算出部4に対応する。推奨値算出部120は、推奨値算出手段としての機能を有する。傾向分析部130は、図1に示した傾向分析部6に対応する。傾向分析部130は、傾向分析手段としての機能を有する。
また、推奨度取得部112は、推奨度取得手段としての機能を有する。機能情報取得部114は、機能情報取得手段としての機能を有する。ソフトウェア推奨得点算出部122は、ソフトウェア推奨得点算出手段としての機能を有する。機能推奨得点算出部124は、機能推奨得点算出手段としての機能を有する。統合推奨得点算出部126は、統合推奨得点算出手段としての機能を有する。変化量算出部132は、変化量算出手段としての機能を有する。傾向判定部134は、傾向判定手段としての機能を有する。
また、使用ソフトウェア情報DB142は、使用ソフトウェア情報格納手段としての機能を有する。機能情報DB144は、機能情報格納手段としての機能を有する。ウェブサイト管理DB146は、ウェブサイト管理情報格納手段としての機能を有する。推奨度管理DB148は、推奨度管理情報格納手段としての機能を有する。
なお、上述した各構成要素は、例えば、制御部102の制御によって、プログラムを実行させることによって実現できる。より具体的には、各構成要素は、記憶部104に格納されたプログラムを、制御部102が実行することによって実現され得る。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。また、各構成要素は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組み合わせ等により実現してもよい。また、各構成要素は、例えばFPGA(field-programmable gate array)又はマイコン等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。なお、各構成要素の具体的な機能については後述する。
図5は、実施の形態1にかかる使用ソフトウェア情報DB142に格納される使用ソフトウェア情報テーブルを例示する図である。使用ソフトウェア情報テーブルは、開発対象のアプリケーションに使用されるソフトウェア(使用ソフトウェア)に関する情報を示す。使用ソフトウェア情報テーブルは、各アプリケーションと、各アプリケーションに関する使用ソフトウェア及び使用機能(使用モジュール)とを含む。使用機能は、使用ソフトウェアにおいて、開発対象のアプリケーションで使用される機能(モジュール;ソースファイル)を示す。図5に例示する使用ソフトウェア情報テーブルは、後述する処理によって生成され得る。
図5に示した例では、開発対象の「アプリケーションA」で使用されるソフトウェアは「OSS_A」及び「OSS_B」である。また、「OSS_A」において、「アプリケーションA」で使用される機能(モジュール)は、「OSS_A_機能A」及び「OSS_A_機能B」である。また、「OSS_B」において、「アプリケーションA」で使用される機能(モジュール)は、「OSS_B_機能A」である。
図6は、実施の形態1にかかる機能情報DB144に格納される機能情報テーブルを例示する図である。機能情報テーブルは、各ソフトウェアと、各ソフトウェアに関する使用機能(モジュール;ソースファイル)と、使用機能に関するコード情報及び変更情報とを含む。図6に例示する機能情報テーブルは、後述する処理によって生成され得る。
図7は、実施の形態1にかかるウェブサイト管理DB146に格納されるウェブサイト管理テーブルを例示する図である。ウェブサイト管理テーブルは、各ソフトウェアの識別情報(ソフトウェア名)と、そのソフトウェアに関する推奨度情報サイト(推奨度情報サイトの識別情報)と、各推奨度情報サイトに関するウェブサイト情報とを含む。推奨度情報サイトは、対応するソフトウェアについての推奨度が公開されているウェブサイトである。図7に示した例では、「OSS_A」の推奨度は、推奨度情報サーバ30Aによって実現される「サイトA」と、推奨度情報サーバ30Bによって実現される「サイトB」とによって提供(公開)されている。ウェブサイト情報は、例えば、対応する推奨度情報サイトにアクセスするためのURL(Uniform Resource Locator)である。なお、図7に例示するウェブサイト管理テーブルは、予め管理者によって作成されていてもよい。
図8は、実施の形態1にかかる推奨度管理DB148に格納されるウェブサイト毎推奨度テーブルを例示する図である。ウェブサイト毎推奨度テーブルは、各ソフトウェアの識別情報(ソフトウェア名)と、そのソフトウェアに関する推奨度情報サイト(推奨度情報サイトの識別情報)と、各推奨度情報サイトにおける推奨度と、その推奨度に対応するソフトウェア推奨得点とを含む。図8に例示するウェブサイト毎推奨度テーブルは、後述する処理によって生成され得る。なお、ソフトウェア推奨得点の算出方法については後述する。
図8に示す例では、「OSS_A」の推奨度は、「サイトA」では「high activity」であり、「サイトB」では「推奨」である。このように、推奨度情報サイトごとに、推奨度のスコアリング方法(評価指標)が異なる。一方、ソフトウェア推奨得点は、後述するように、共通の評価指標でスコアリングされた推奨値である。図8の例では、「サイトA」における「OSS_A」の推奨度「high activity」に対応するソフトウェア推奨得点は、「7.2」である。また、「サイトB」における「OSS_A」の推奨度「推奨」に対応するソフトウェア推奨得点は、「8.1」である。したがって、「OSS_A」の信頼性は、「サイトA」よりも「サイトB」での方が高い。
図9は、実施の形態1にかかる推奨度管理DB148に格納される機能毎推奨度テーブルを例示する図である。機能毎推奨度テーブルは、各ソフトウェアの識別情報(ソフトウェア名)と、各ソフトウェアにおける使用機能(使用機能の識別情報)と、各使用機能に関する評価指標である機能推奨得点と、機能毎の推奨度である機能毎推奨度とを含む。機能毎推奨度は、機能推奨得点が予め定められた閾値以上である場合に「推奨」を示し、機能推奨得点が予め定められた閾値未満である場合に「非推奨」を示す。機能毎推奨度テーブルは、後述する処理によって生成され得る。なお、機能推奨得点の算出方法については後述する。
図9に示した例では、「OSS_A_機能A」の機能推奨得点が「9.5」であり、機能毎推奨度が「推奨」である。また、「OSS_A_機能B」の機能推奨得点が「6.2」であり、機能毎推奨度が「非推奨」である。このように、機能推奨得点を算出することによって、ソフトウェアにおける、アプリケーションに使用される機能毎に、信頼性を評価することができる。
図10は、実施の形態1にかかる推奨度管理DB148に格納される統合推奨度管理テーブルを例示する図である。統合推奨度管理テーブルは、ソフトウェアごとに、ある日付における、統合推奨得点と、統合推奨度と、変化量とが対応付けられている。ここで、統合推奨得点は、ソフトウェア推奨得点と機能推奨得点とを統合した推奨値(ソフトウェア推奨値)である。統合推奨得点については後述する。また、統合推奨度は、統合推奨得点が予め定められた閾値以上である場合に「推奨」を示し、統合推奨得点が予め定められた閾値未満である場合に「非推奨」を示す。「変化量」は、統合推奨得点を算出し始めてから対応する日付までの統合推奨得点の変化を示す値である。統合推奨度管理テーブルは、後述する処理によって生成され得る。なお、統合推奨得点及び変化量の算出方法については後述する。
図10に示した例では、「OSS_A」について、ある日付「YYYY/MM/DD」では、統合推奨得点は「7.1」であり、統合推奨度は「推奨」である。また、変化量は「-0.6」である。ここで、図10に示した例では、変化量が負の値なので、統合推奨得点を算出し始めてから、統合推奨得点が減少していることが分かる。
図11は、実施の形態1にかかるソフトウェア評価装置100によって実行されるソフトウェア評価方法を示すフローチャートである。情報取得部110は、ソフトウェア情報として、ソフトウェアの推奨度を取得する(ステップS110)。具体的には、推奨度取得部112は、使用ソフトウェアについて、1つ以上の推奨度情報サイトで公開されている推奨度を、推奨度情報サーバ30から通信部106を介して取得する。詳しくは後述する。
推奨値算出部120は、ソフトウェア推奨得点を算出する(ステップS120)。具体的には、ソフトウェア推奨得点算出部122は、S110の処理で取得された推奨度を用いて、使用ソフトウェアの評価指標であるソフトウェア推奨得点を算出する。詳しくは後述する。
情報取得部110は、ソフトウェア情報として、機能情報を取得する(ステップS130)。具体的には、機能情報取得部114は、ソフトウェア管理サーバ50から、通信部106を介して、使用ソフトウェアについてアプリケーションで使用される使用機能に関する機能情報(コード情報及び変更情報)を取得する。詳しくは後述する。
推奨値算出部120は、機能推奨得点を算出する(ステップS140)。具体的には、機能推奨得点算出部124は、S130の処理で取得された機能情報を用いて、使用ソフトウェアについての使用機能に関する評価指標である機能推奨得点を算出する。詳しくは後述する。
推奨値算出部120は、統合推奨得点を算出する(ステップS150)。具体的には、統合推奨得点算出部126は、使用ソフトウェアについて、ソフトウェア推奨値として、ソフトウェア推奨得点と機能推奨得点とを統合した統合推奨得点を算出する。詳しくは後述する。
傾向分析部130は、変化量を算出する(ステップS160)。具体的には、変化量算出部132は、使用ソフトウェアについて、統合推奨得点の変化量を算出する。詳しくは後述する。そして、傾向分析部130は、使用ソフトウェアに関する傾向分析を行う(ステップS170)。具体的には、傾向判定部134は、統合推奨得点(ソフトウェア推奨値)の変化に基づいて、使用ソフトウェアに関する傾向を分析する。さらに具体的には、傾向判定部134は、統合推奨得点(ソフトウェア推奨値)の変化と、この変化に関する基準を示す基準情報(要注意傾向値)とに基づいて、使用ソフトウェアに関するリスク発生の有無の傾向を分析する。詳しくは後述する。
図12は、図11に示したS110の処理の詳細を示すシーケンス図である。開発者は、アプリケーションで使用される使用ソフトウェアのリスト示す使用ソフトウェア情報を、使用ソフトウェア情報DB142に登録する(ステップS111)。これにより、図5に例示した使用ソフトウェア情報テーブルにおける「アプリケーション」及び「使用ソフトウェア」の項目が生成される。そして、推奨度取得部112は、使用ソフトウェア情報DB142から、使用ソフトウェアのリスト示す使用ソフトウェア情報を取得する(ステップS112)。
推奨度取得部112は、ウェブサイト管理DB146から、S112の処理で取得された使用ソフトウェア情報に関する使用ソフトウェアについての推奨度が提供されている推奨度情報サイトのウェブサイト情報を取得する(ステップS113)。具体的には、推奨度取得部112は、ウェブサイト管理テーブルを用いて、S112で取得された使用ソフトウェア情報に対応する推奨度情報サイトのウェブサイト情報(URL)を取得する。
推奨度取得部112は、S113で取得されたウェブサイト情報に対応する推奨度情報サーバ30から、S112で取得された使用ソフトウェア情報に示された使用ソフトウェアの推奨度(ソフトウェア推奨度)を取得(抽出)する(ステップS114)。具体的には、推奨度取得部112は、S113で取得されたURLのウェブサイトにアクセスすることで、使用ソフトウェアの推奨度(ソフトウェア推奨度)を取得する。そして、推奨度取得部112は、S114の処理で取得されたソフトウェア推奨度を、推奨度管理DB148に登録する(ステップS115)。これにより、図8に例示したウェブサイト毎推奨度テーブルにおける「ソフトウェア名」、「推奨度情報サイト」、及び「推奨度」の項目が生成される。
図13は、図11に示したS120の処理の詳細を示すシーケンス図である。ソフトウェア推奨得点算出部122は、推奨度管理DB148から、推奨度情報サイトごとの推奨度を取得する(ステップS121)。例えば、ソフトウェア推奨得点算出部122は、図8に例示したウェブサイト毎推奨度テーブルから、「OSS_A」の推奨度として、「サイトA」における「high activity」と、「サイトB」における「推奨」とを取得する。ソフトウェア推奨得点算出部122は、各推奨度情報サイトにおける推奨度を、ソフトウェア推奨得点に変換する(ステップS122)。詳しくは後述する。そして、ソフトウェア推奨得点算出部122は、S122の処理で算出されたソフトウェア推奨得点を、推奨度管理DB148に登録する(ステップS124)。これにより、図8に例示したウェブサイト毎推奨度テーブルにおける「ソフトウェア推奨得点」の項目が生成される。
ここで、S122の処理の具体例について説明する。上述したように、推奨度情報サイトごとに、推奨度のスコアリング方法(評価指標)が異なる。言い換えると、推奨度情報サイトで公開されている推奨度は、共通の評価指標になっていない。例えば、図8の例では、「OSS_A」の推奨度は、「サイトA」では「high activity」であり、「サイトB」では「推奨」である。このように、推奨度情報サイトごとの推奨度では、ソフトウェアの評価指標が統一されていない。そのため、このままでは、複数の推奨度情報サイトごとの推奨度を用いて、ソフトウェアを評価できない。したがって、ソフトウェアの評価指標を統一するため、ソフトウェア推奨得点算出部122は、各推奨度情報サイトにおける推奨度を、共通の評価指標である、定量的なソフトウェア推奨得点に変換する。
各推奨度情報サイトにおける推奨度からソフトウェア推奨得点への変換は、推奨度情報サイトに掲載されている推奨度と、推奨度情報サイトの最終更新日とを用いて行われる。具体的には、各推奨度情報サイトにおける推奨度を0~10点のソフトウェア推奨得点に再マッピングし、再マッピングされた値に最終更新日に対応する重みを付与することで、上記変換が行われる。
例えば、推奨度情報サイトがOpen hubの場合、例えば、以下のように再マッピングを行ってもよい。ここで、Open hubにおける推奨度を「 」で示し、対応するソフトウェア推奨得点(再マッピングされた値)を( )で示す。
「very high activity」(10点),「high activity」(8点),「moderate activity」(6点),「low activity」(3点),「very low activity」(1点),「inactive」(0点)
上記の例では、例えば、Open hubにおける推奨度が「very high activity」である場合、対応するソフトウェア推奨得点(再マッピングされた値)は10点である。
また、推奨度情報サイトがRadar scopeの場合、例えば、以下のように再マッピングを行ってもよい。ここで、Radar scopeにおける推奨度を「 」で示し、対応するソフトウェア推奨得点(再マッピングされた値)を( )で示す。
「1~1.4」(1点),「1.5~1.9」(2点),「2~2.4」(3点),「2.5~2.9」(4点),「3~3.4」(6点),「3.5~3.9」(8点),「4~4.4」(9点),「4.5~5」(10点)
上記の例では、例えば、Radar scopeにおける推奨度が4.5~5である場合、対応するソフトウェア推奨得点(再マッピングされた値)は10点である。
また、推奨度情報サイトが組織内のOSS推奨サイトである場合、例えば、以下のように再マッピングを行う。ここで、組織内のOSS推奨サイトにおける推奨度を「 」で示し、対応するソフトウェア推奨得点を( )で示す。
「推奨」(9点),「非推奨」(1点),「ハイリスク」(0点)
また、最終更新日に対応する重みの例を、以下に示す。ここで、現在から最終更新日までの期間を「 」で示している。
「1カ月以内」:1,「1~2カ月」:0.9,「3~4カ月」:0.6,「4カ月~」:0
なお、上記の例では、現在から最終更新日までの期間が短いほど重みを大きくし、現在から最終更新日までの期間が長いほど重みを小さくしている。これは、古い情報は信頼性が低いため、ソフトウェア推奨得点を算出する上で重視しないという思想による。
上記の例において、例えば、あるソフトウェア「OSS_A」について、Open hubでは、推奨度が「high activity」であり、現在から最終更新日までの期間が「1~2カ月」であるとする。また、「OSS_A」について、Radar scopeでは、推奨度が「4~4.4」であり、現在から最終更新日までの期間が「3~4カ月」であるとする。この場合、ソフトウェア推奨得点算出部122は、「OSS_A」についてのOpen hubにおける重み付け後のソフトウェア推奨得点を、8×0.9=7.2と算出する。また、この場合、ソフトウェア推奨得点算出部122は、「OSS_A」についてのRadar scopeにおける重み付け後のソフトウェア推奨得点を、9×0.6=5.4と算出する。
そして、ソフトウェア推奨得点算出部122は、推奨度情報サイトごとに算出された(重み付け後の)ソフトウェア推奨得点を平均することで、そのソフトウェアの評価指標であるソフトウェア評価得点を算出してもよい。例えば、上記の例では、「OSS_A」のソフトウェア評価得点は、(7.2+5.4)/2=6.3である。なお、ソフトウェア評価得点は、どの推奨度情報サイトを重視するかによって重み付けを行うことで、加重平均によって算出されてもよい。
図14は、図11に示したS130の処理の詳細を示すシーケンス図である。機能情報取得部114は、ソフトウェア管理サーバ50から、使用ソフトウェアに関するコード情報を取得する(ステップS131)。具体的には、GitHub等のソフトウェア管理サーバ50には、OSS等のソフトウェアを構成する複数のソースファイル(ソースコード)が登録されている。したがって、機能情報取得部114は、このソースファイルを取得(抽出)するためのコマンドを用いることで、使用ソフトウェアに関するソースファイル(ソースコード)を、コード情報として取得する。例えば、GitHubでは、「git clone」といったコマンドを用いることで、コード情報(ソースファイル)が取得され得る。そして、機能情報取得部114は、S131で取得されたコード情報を機能情報DB144に登録する(ステップS132)。なお、S131で取得されS132で登録されたコード情報には、使用機能でない機能、つまり使用ソフトウェアにおいて開発対象のアプリケーションで使用されていない機能(ソースコード)も含まれている可能性がある。
機能情報取得部114は、S132で登録されたコード情報から、使用機能を抽出(スキャン)する(ステップS133)。具体的には、機能情報取得部114は、開発対象のアプリケーションにおけるコードと、S132で機能情報DB144に登録されたコード情報とを比較する。これにより、機能情報取得部114は、機能情報DB144に登録されたコード情報から、開発対象のアプリケーションにおいて使用されている使用機能(ソースファイル;ソースコード)を検出する。
図5に例示した例において、例えば、「OSS_A」が「OSS_A_機能A」、「OSS_A_機能B」及び「OSS_A_機能C」に対応するソースファイルで構成されているとする。この場合、S132で、機能情報DB144には「OSS_A_機能A」、「OSS_A_機能B」及び「OSS_A_機能C」に対応するソースファイルが登録される。そして、機能情報取得部114は、使用ソフトウェア「OSS_A」において、アプリケーションに使用される「OSS_A_機能A」及び「OSS_A_機能B」を、使用機能として検出する。
使用機能の検出方法について、例えば、機能情報取得部114は、開発対象のアプリケーションにおいて使用されているソースファイルのファイル名を、S132で機能情報DB144に登録されたコード情報から検出(検索)する。また、機能情報取得部114は、開発対象のアプリケーションにおけるソースコードに一致する文字列を、S132で機能情報DB144に登録されたコード情報におけるソースコードから検出(検索)する。これにより、機能情報取得部114は、開発対象のアプリケーションにおいて使用されているソースコードを抽出することができる。
そして、機能情報取得部114は、S133で抽出された使用機能(ソースファイル)を、使用ソフトウェア情報DB142に登録する(ステップS134)。これにより、図5に例示した使用ソフトウェア情報テーブルにおける「使用機能」の項目が生成される。
機能情報取得部114は、ソフトウェア管理サーバ50から、使用機能(ソースファイル)の変更情報を取得する(ステップS135)。図5の例では、機能情報取得部114は、「OSS_A_機能A」及び「OSS_A_機能B」のソースファイルに対応する変更情報を取得する。そして、機能情報取得部114は、S135で取得された変更情報を機能情報DB144に登録する(ステップS136)。これにより、図6に例示した機能情報テーブルの「コード情報」及び「変更情報」の項目が生成される。
図15は、図11に示したS140の処理の詳細を示すシーケンス図である。機能推奨得点算出部124は、機能情報DB144から使用機能(使用ソースファイル)の変更情報を取得する(ステップS141)。機能推奨得点算出部124は、変更情報を用いて機能推奨得点を算出する(ステップS142)。例えば、機能推奨得点算出部124は、バグを含む可能性(バグ含有度)の高いソースファイルについては、信頼性が低いとして、機能推奨得点が低くなるようにしてもよい。
バグ含有度について、例えば、高頻度にかつ最近になって集中的にバグが修正されているソースファイルについては、バグ含有度が高い可能性がある。例えば、バグ含有度は、bugspotsのようなバグ予測アルゴリズムによって算出され得る。機能推奨得点算出部124は、例えば、以下の式1によって、複数の使用機能(使用ソースファイル)それぞれについて、バグ含有度Scoreを算出する。
Figure 0007464109000001
・・・(1)
式1において、nは、バグが修正された回数(コミット数)である。また、tiは、修正が行われた時点のタイムスタンプである。n及びtiは、変更情報から得られる。
機能推奨得点算出部124は、例えば以下の式2で示す正規化関数を用いて、使用機能(使用ソースファイル)についてのScoreを、0~1の値に正規化する。
Figure 0007464109000002
・・・(2)
式2において、x=Scoreである。また、xmaxは、複数の使用機能それぞれについて算出されたScoreのうちの最大のScoreである。また、xminは、複数の使用機能それぞれについて算出されたScoreのうちの最小のScoreである。そして、機能推奨得点算出部124は、以下の式3を用いて、使用機能それぞれについて、機能推奨得点を算出する。
機能推奨得点=(1-N(x))*10
・・・(3)
そして機能推奨得点算出部124は、S142で機能推奨得点を、推奨度管理DB148に登録する(ステップS143)。これにより、図9に例示した機能毎推奨度テーブルの「機能推奨得点」の項目が生成される。なお、バグ含有度Scoreの正規化の方法は、上記の式2を用いる方法に限定されない。例えば、上述したソフトウェア推奨得点で用いた再マッピングを用いてもよいし、0以上1以下となり且つ単調増加の関数f(Score)を用いてもよい。
図16は、図11に示したS150の処理の詳細を示すシーケンス図である。統合推奨得点算出部126は、推奨度管理DB148から、評価対象のソフトウェアについてのソフトウェア推奨得点を取得する(ステップS151)。具体的には、統合推奨得点算出部126は、図8に例示したウェブサイト毎推奨度テーブルから、評価対象のソフトウェアについての、ウェブサイトごとのソフトウェア推奨得点を取得(抽出)する。また、統合推奨得点算出部126は、推奨度管理DB148から、評価対象のソフトウェアについての機能推奨得点を取得する(ステップS152)。具体的には、統合推奨得点算出部126は、図9に例示した機能毎推奨度テーブルから、使用機能ごとの機能推奨得点を取得(抽出)する。
次に、統合推奨得点算出部126は、ソフトウェア推奨得点及び機能推奨得点を用いて、統合推奨得点を算出する(ステップS153)。具体的には、統合推奨得点算出部126は、推奨度情報サイトごとに算出されたソフトウェア推奨得点を平均することで、ソフトウェア評価得点を算出する。また、統合推奨得点算出部126は、使用機能ごとに算出された機能推奨得点を平均することで、そのソフトウェアの機能の評価指標である機能評価得点を算出する。なお、機能評価得点は、各使用機能(ソースファイル)のライン数に応じた加重平均によって算出されてもよい。例えば、開発対象のアプリケーションにおいて、使用機能Aのライン数が1000L、使用機能Bのライン数が100Lである場合、使用機能Aの重みを使用機能Bの重みよりも高くなるようにしてもよい。
統合推奨得点算出部126は、ソフトウェア評価得点と機能評価得点との加重平均によって、統合推奨得点を算出する。具体的には、ソフトウェア評価得点及び機能評価得点それぞれについて、予め、重みが設定されている。この重みは、ソフトウェア評価得点及び機能評価得点のどちらをどれだけ重視するかの指標(割合)を示す。例えば、ソフトウェア評価得点の重みを4、機能評価得点の重みを1とすると、ソフトウェア評価得点を機能評価得点よりも4倍重視することとなる。
ソフトウェア評価得点Ssの重みをWs、機能評価得点Sfの重みをWfとすると、統合推奨得点算出部126は、以下の式4を用いて、統合推奨得点Siを算出する。
Figure 0007464109000003
・・・(4)
そして、統合推奨得点算出部126は、算出された統合推奨得点を、推奨度管理DB148に登録する(ステップS154)。これにより、図10に例示した統合推奨度管理テーブルの統合推奨得点の項目が生成される。また、推奨度管理DB148は、統合推奨得点が登録された日付を登録する。そして、統合推奨得点算出部126は、定期的に又は任意のタイミングで、ある使用ソフトウェアについて、統合推奨得点を算出する。これにより、推奨度管理DB148には、統合推奨得点の時系列データが格納される。例えば、推奨度管理DB148には、1ヶ月ごとに算出された統合推奨得点の時系列データが格納される。
図17は、図11に示したS160の処理の詳細を示すシーケンス図である。変化量算出部132は、推奨度管理DB148から、統合推奨得点の時系列データを取得する(ステップS161)。具体的には、変化量算出部132は、図10に例示した統合推奨度管理テーブルから、統合推奨得点の時系列データを取得する。そして、変化量算出部132は、統合推奨得点の時系列データを用いて、統合推奨得点の変化量を算出する(ステップS162)。
ここで、統合推奨得点が算出されたタイミングを第k期(kは1以上の整数)と表現する。第1期は、最初に統合推奨得点が算出されたタイミングである。また、第a期を、直近の統合推奨得点が算出されたタイミングとする。このとき、変化量算出部132は、直近の統合推奨得点と、第1期で算出された統合推奨得点との差分を、変化量として算出してもよい。ここで、後段の処理(S170)で統合推奨得点の傾向を分析するためには、変化の推移を平滑化することが好ましい。したがって、変化量算出部132は、直近のn期分の統合推奨得点を用いて移動平均値を算出し、この移動平均値と第1期の統合推奨得点との差分を、変化量として算出してもよい。
移動平均を算出する際に用いる時系列データの区間を3(n=3)とする。このとき、変化量算出部132は、以下の式5を用いて、第a期における統合推奨得点の移動平均値(a)を算出する。
移動平均値(a)=(第a期の統合推奨得点+第(a-1)期の統合推奨得点+第(a-2)期の統合推奨得点)/3
・・・(5)
そして、変化量算出部132は、以下の式6によって、第a期における統合推奨得点の変化量(a)を算出する。
変化量(a)=移動平均値(a)-第1期の統合推奨得点
・・・(6)
そして、変化量算出部132は、統合推奨得点の変化量を、推奨度管理DB148に登録する(ステップS163)。これにより、図10に例示した統合推奨度管理テーブルの変化量の項目が生成される。そして、変化量算出部132は、定期的に又は任意のタイミングで、ある使用ソフトウェアについて、変化量を算出する。これにより、推奨度管理DB148には、統合推奨得点及び変化量の時系列データが格納される。
図18は、実施の形態1にかかる、統合推奨得点の移動平均値及び変化量の推移を例示する図である。図18には、第1期から第8期までの統合推奨得点の移動平均値及び変化量が例示されている。なお、図18に記載されたデータでは、小数点第2位以下が切り捨てられている。図18に示す例では、第3期以降の全てのタイミングで変化量が負の値である。また、変化量の絶対値は、徐々に大きくなっている。したがって、統合推奨得点(ソフトウェア推奨値)が下降傾向であることが分かる。
なお、微量な増減を誤差とみなすための許容値を予め設定しておき、変化量の絶対値が許容値内の場合は、変化量を0、つまり、変化の傾向をなしとみなしてもよい。例えば、許容値を0.5と設定したとする。この場合、第1期と第3期との変化量は-0.2であり、変化量の絶対値は許容値内である。したがって、変化量(3)=0としてもよい。
図19は、図11に示したS170の処理の詳細を示すフローチャートである。傾向判定部134は、統合推奨得点(ソフトウェア推奨値)の変化量と、要注意傾向値とを比較する(ステップS171)。ここで、要注意傾向値は、統合推奨得点(ソフトウェア推奨値)の下降傾向が続き、分析対象のソフトウェアが将来的に非推奨になる可能性が高い傾向(要注意傾向)であるとみなすための閾値として、予め設定され得る。
例えば、ソフトウェアが非推奨と判定される統合推奨得点の閾値Thと第1期の統合推奨得点との差分に、予め設定された係数c(cは0以上1以下の値)を乗算することで、要注意傾向値を算出してもよい。図18に示した例において、Th=3、c=0.5とすると、要注意傾向値=(3-8.5)×0.5=-2.7(小数点第2位以下切り捨て)となる。
傾向判定部134は、統合推奨得点(ソフトウェア推奨値)の変化量が要注意傾向値を下回った場合(ステップS172)に、警告を出力する(ステップS173)。具体的には、傾向判定部134は、インタフェース部108を用いて、使用ソフトウェアに関するリスクが発生する可能性がある旨の警告を出力する。これにより、ユーザは、使用ソフトウェアについて、リスク発生の可能性があることを認識することができる。
(変形例)
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、図11等に示したフローチャート及びシーケンス図の各処理の順序は、適宜、変更可能である。また、図11等に示したフローチャート及びシーケンス図の処理の1つ以上は、なくてもよい。例えば、図11において、S120の処理と、S130~S140の処理とは、互いに逆であってもよい。
また、S120の処理及びS140の処理は、どちらか一方のみであってもよい。この場合、S150の処理はなくてもよい。そして、S120の処理及びS140の処理のいずれかで算出された推奨得点を、ソフトウェア推奨値として、S160~S170の処理を行ってもよい。一方、ソフトウェア推奨得点と機能推奨得点とを統合した統合推奨得点を用いて傾向分析を行うことで、上述したように、より正確に、使用ソフトウェアに関する傾向を分析することができる。
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェアに関する情報であるソフトウェア情報を取得する情報取得手段と、
前記ソフトウェア情報から、前記ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出する推奨値算出手段と、
前記ソフトウェア推奨値の変化に基づいて、前記ソフトウェアに関する傾向を分析する傾向分析手段と、
を有するソフトウェア評価装置。
(付記2)
前記情報取得手段は、前記ソフトウェア情報として、前記ソフトウェアの機能に関する機能情報を取得し、
前記推奨値算出手段は、前記機能情報に基づいて、前記アプリケーションに使用される前記ソフトウェアの機能に関する評価指標である機能推奨得点を算出し、前記機能推奨得点を用いて前記ソフトウェア推奨値を算出する、
付記1に記載のソフトウェア評価装置。
(付記3)
前記情報取得手段は、前記ソフトウェア情報として、前記ソフトウェアに対する1つ以上の推奨度を取得し、
前記推奨値算出手段は、1つ以上の前記推奨度に基づいて前記ソフトウェアの評価指標であるソフトウェア推奨得点を算出し、少なくとも前記ソフトウェア推奨得点を用いて前記ソフトウェア推奨値を算出する、
付記1又は2に記載のソフトウェア評価装置。
(付記4)
前記情報取得手段は、前記ソフトウェア情報として、前記ソフトウェアに対する1つ以上の推奨度を取得し、
前記推奨値算出手段は、1つ以上の前記推奨度に基づいて前記ソフトウェアの評価指標であるソフトウェア推奨得点を算出し、前記ソフトウェア推奨得点と前記機能推奨得点とを用いて前記ソフトウェア推奨値を算出する、
付記2に記載のソフトウェア評価装置。
(付記5)
前記推奨値算出手段は、前記ソフトウェア推奨値として、前記ソフトウェア推奨得点と前記機能推奨得点とを統合した統合推奨得点を算出し、
前記傾向分析手段は、前記統合推奨得点の変化に基づいて、前記ソフトウェアに関する傾向を分析する、
付記4に記載のソフトウェア評価装置。
(付記6)
前記傾向分析手段は、前記ソフトウェア推奨値の変化と、前記変化に関する基準を示す基準情報とに基づいて、前記ソフトウェアに関するリスク発生の有無の傾向を分析する、
付記1から5のいずれか1項に記載のソフトウェア評価装置。
(付記7)
前記基準情報は、前記ソフトウェアが非推奨になる可能性が高い傾向を示す前記ソフトウェア推奨値の変化量の閾値として、予め設定されており、
前記傾向分析手段は、前記ソフトウェア推奨値の変化量が前記閾値を下回った場合に、前記ソフトウェアに関するリスクが発生する可能性がある旨の警告を出力する、
付記6に記載のソフトウェア評価装置。
(付記8)
前記ソフトウェアは、オープンソースソフトウェアである、
付記1から7のいずれか1項に記載のソフトウェア評価装置。
(付記9)
アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェアに関する情報であるソフトウェア情報を取得し、
前記ソフトウェア情報から、前記ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出し、
前記ソフトウェア推奨値の変化に基づいて、前記ソフトウェアに関する傾向を分析する、
ソフトウェア評価方法。
(付記10)
前記ソフトウェア情報として、前記ソフトウェアの機能に関する機能情報を取得し、
前記機能情報に基づいて、前記アプリケーションに使用される前記ソフトウェアの機能に関する評価指標である機能推奨得点を算出し、前記機能推奨得点を用いて前記ソフトウェア推奨値を算出する、
付記9に記載のソフトウェア評価方法。
(付記11)
前記ソフトウェア情報として、前記ソフトウェアに対する1つ以上の推奨度を取得し、
1つ以上の前記推奨度に基づいて前記ソフトウェアの評価指標であるソフトウェア推奨得点を算出し、少なくとも前記ソフトウェア推奨得点を用いて前記ソフトウェア推奨値を算出する、
付記9又は10に記載のソフトウェア評価方法。
(付記12)
前記ソフトウェア情報として、前記ソフトウェアに対する1つ以上の推奨度を取得し、
1つ以上の前記推奨度に基づいて前記ソフトウェアの評価指標であるソフトウェア推奨得点を算出し、前記ソフトウェア推奨得点と前記機能推奨得点とを用いて前記ソフトウェア推奨値を算出する、
付記10に記載のソフトウェア評価方法。
(付記13)
前記ソフトウェア推奨値として、前記ソフトウェア推奨得点と前記機能推奨得点とを統合した統合推奨得点を算出し、
前記統合推奨得点の変化に基づいて、前記ソフトウェアに関する傾向を分析する、
付記12に記載のソフトウェア評価方法。
(付記14)
前記ソフトウェア推奨値の変化と、前記変化に関する基準を示す基準情報とに基づいて、前記ソフトウェアに関するリスク発生の有無の傾向を分析する、
付記9から13のいずれか1項に記載のソフトウェア評価方法。
(付記15)
前記基準情報は、前記ソフトウェアが非推奨になる可能性が高い傾向を示す前記ソフトウェア推奨値の変化量の閾値として、予め設定されており、
前記ソフトウェア推奨値の変化量が前記閾値を下回った場合に、前記ソフトウェアに関するリスクが発生する可能性がある旨の警告を出力する、
付記14に記載のソフトウェア評価方法。
(付記16)
前記ソフトウェアは、オープンソースソフトウェアである、
付記9から15のいずれか1項に記載のソフトウェア評価方法。
(付記17)
アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェアに関する情報であるソフトウェア情報を取得するステップと、
前記ソフトウェア情報から、前記ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出するステップと、
前記ソフトウェア推奨値の変化に基づいて、前記ソフトウェアに関する傾向を分析するステップと、
をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
1 ソフトウェア評価装置
2 情報取得部
4 推奨値算出部
6 傾向分析部
20 ソフトウェア評価システム
22 ネットワーク
30 推奨度情報サーバ
50 ソフトウェア管理サーバ
100 ソフトウェア評価装置
110 情報取得部
112 推奨度取得部
114 機能情報取得部
120 推奨値算出部
122 ソフトウェア推奨得点算出部
124 機能推奨得点算出部
126 統合推奨得点算出部
130 傾向分析部
132 変化量算出部
134 傾向判定部
142 使用ソフトウェア情報DB
144 機能情報DB
146 ウェブサイト管理DB
148 推奨度管理DB

Claims (10)

  1. アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェアに関する情報であるソフトウェア情報を取得する情報取得手段と、
    前記ソフトウェア情報から、前記ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出する推奨値算出手段と、
    前記ソフトウェア推奨値の変化に基づいて、前記ソフトウェアに関する傾向を分析する傾向分析手段と、
    を有するソフトウェア評価装置。
  2. 前記情報取得手段は、前記ソフトウェア情報として、前記ソフトウェアの機能に関する機能情報を取得し、
    前記推奨値算出手段は、前記機能情報に基づいて、前記アプリケーションに使用される前記ソフトウェアの機能に関する評価指標である機能推奨得点を算出し、前記機能推奨得点を用いて前記ソフトウェア推奨値を算出する、
    請求項1に記載のソフトウェア評価装置。
  3. 前記情報取得手段は、前記ソフトウェア情報として、前記ソフトウェアに対する1つ以上の推奨度を取得し、
    前記推奨値算出手段は、1つ以上の前記推奨度に基づいて前記ソフトウェアの評価指標であるソフトウェア推奨得点を算出し、少なくとも前記ソフトウェア推奨得点を用いて前記ソフトウェア推奨値を算出する、
    請求項1又は2に記載のソフトウェア評価装置。
  4. 前記情報取得手段は、前記ソフトウェア情報として、前記ソフトウェアに対する1つ以上の推奨度を取得し、
    前記推奨値算出手段は、1つ以上の前記推奨度に基づいて前記ソフトウェアの評価指標であるソフトウェア推奨得点を算出し、前記ソフトウェア推奨得点と前記機能推奨得点とを用いて前記ソフトウェア推奨値を算出する、
    請求項2に記載のソフトウェア評価装置。
  5. 前記推奨値算出手段は、前記ソフトウェア推奨値として、前記ソフトウェア推奨得点と前記機能推奨得点とを統合した統合推奨得点を算出し、
    前記傾向分析手段は、前記統合推奨得点の変化に基づいて、前記ソフトウェアに関する傾向を分析する、
    請求項4に記載のソフトウェア評価装置。
  6. 前記傾向分析手段は、前記ソフトウェア推奨値の変化と、前記変化に関する基準を示す基準情報とに基づいて、前記ソフトウェアに関するリスク発生の有無の傾向を分析する、
    請求項1から5のいずれか1項に記載のソフトウェア評価装置。
  7. 前記基準情報は、前記ソフトウェアが非推奨になる可能性が高い傾向を示す前記ソフトウェア推奨値の変化量の閾値として、予め設定されており、
    前記傾向分析手段は、前記ソフトウェア推奨値の変化量が前記閾値を下回った場合に、前記ソフトウェアに関するリスクが発生する可能性がある旨の警告を出力する、
    請求項6に記載のソフトウェア評価装置。
  8. 前記ソフトウェアは、オープンソースソフトウェアである、
    請求項1から7のいずれか1項に記載のソフトウェア評価装置。
  9. アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェアに関する情報であるソフトウェア情報を取得し、
    前記ソフトウェア情報から、前記ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出し、
    前記ソフトウェア推奨値の変化に基づいて、前記ソフトウェアに関する傾向を分析する、
    コンピュータによって実行されるソフトウェア評価方法。
  10. アプリケーションに使用されるソフトウェアであって、複数のユーザによるソースコードの閲覧、使用及び修正が可能であるソフトウェアに関する情報であるソフトウェア情報を取得するステップと、
    前記ソフトウェア情報から、前記ソフトウェアに関する信頼性の度合いであるソフトウェア推奨値を算出するステップと、
    前記ソフトウェア推奨値の変化に基づいて、前記ソフトウェアに関する傾向を分析するステップと、
    をコンピュータに実行させるプログラム。
JP2022509842A 2020-03-24 2020-03-24 ソフトウェア評価装置、ソフトウェア評価方法及びプログラム Active JP7464109B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/013058 WO2021192049A1 (ja) 2020-03-24 2020-03-24 ソフトウェア評価装置、ソフトウェア評価方法及びコンピュータ可読媒体

Publications (3)

Publication Number Publication Date
JPWO2021192049A1 JPWO2021192049A1 (ja) 2021-09-30
JPWO2021192049A5 JPWO2021192049A5 (ja) 2022-11-08
JP7464109B2 true JP7464109B2 (ja) 2024-04-09

Family

ID=77891217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022509842A Active JP7464109B2 (ja) 2020-03-24 2020-03-24 ソフトウェア評価装置、ソフトウェア評価方法及びプログラム

Country Status (3)

Country Link
US (1) US20230135844A1 (ja)
JP (1) JP7464109B2 (ja)
WO (1) WO2021192049A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250749A (ja) 1999-03-03 2000-09-14 Hitachi Ltd ソフトウェア品質管理装置
JP2003029970A (ja) 2001-07-12 2003-01-31 Mitsubishi Electric Corp プログラム品質管理支援装置、プログラム品質管理支援方法、プログラム品質管理支援方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体、プログラム品質管理支援方法をコンピュータに実行させるためのプログラム
JP2014241021A (ja) 2013-06-11 2014-12-25 株式会社日立製作所 ソフトウェア評価装置および方法
US20150100940A1 (en) 2013-10-04 2015-04-09 Avaya Inc. System and method for prioritizing and remediating defect risk in source code

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269622B2 (en) * 2019-06-28 2022-03-08 Intel Corporation Methods, systems, articles of manufacture, and apparatus for a context and complexity-aware recommendation system for improved software development efficiency
US20210109750A1 (en) * 2019-10-09 2021-04-15 Visa International Service Association Code quality linked rewards

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250749A (ja) 1999-03-03 2000-09-14 Hitachi Ltd ソフトウェア品質管理装置
JP2003029970A (ja) 2001-07-12 2003-01-31 Mitsubishi Electric Corp プログラム品質管理支援装置、プログラム品質管理支援方法、プログラム品質管理支援方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体、プログラム品質管理支援方法をコンピュータに実行させるためのプログラム
JP2014241021A (ja) 2013-06-11 2014-12-25 株式会社日立製作所 ソフトウェア評価装置および方法
US20150100940A1 (en) 2013-10-04 2015-04-09 Avaya Inc. System and method for prioritizing and remediating defect risk in source code

Also Published As

Publication number Publication date
WO2021192049A1 (ja) 2021-09-30
JPWO2021192049A1 (ja) 2021-09-30
US20230135844A1 (en) 2023-05-04

Similar Documents

Publication Publication Date Title
US11934298B2 (en) Defect prediction operation
Yan et al. Just-in-time defect identification and localization: A two-phase framework
AU2017228584B2 (en) Multi-data analysis based proactive defect detection and resolution
EP2885701B1 (en) Predicting software build errors
US9507695B2 (en) Risk-based test coverage and prioritization
US8745588B2 (en) Method for testing operation of software
US10789225B2 (en) Column weight calculation for data deduplication
US11550707B2 (en) Systems and methods for generating and executing a test case plan for a software product
An et al. An empirical study of crash-inducing commits in mozilla firefox
CN113127342B (zh) 基于电网信息系统特征选择的缺陷预测方法及装置
Li et al. Characterizing the differences between pre-and post-release versions of software
US11200145B2 (en) Automatic bug verification
Gujral et al. Classifying bug severity using dictionary based approach
Zhou et al. Generalized accelerated failure time spatial frailty model for arbitrarily censored data
CN111352698A (zh) 一种jvm参数的调整方法及装置
Hirsch et al. Root cause prediction based on bug reports
Huo et al. An empirical study of the effects of expert knowledge on bug reports
JP7464109B2 (ja) ソフトウェア評価装置、ソフトウェア評価方法及びプログラム
US10867249B1 (en) Method for deriving variable importance on case level for predictive modeling techniques
Barbour et al. A technique for just-in-time clone detection in large scale systems
JP2019003333A (ja) バグ混入確率計算プログラム及びバグ混入確率計算方法
Eng et al. Predicting Defective Visual Code Changes in a Multi-Language AAA Video Game Project
Alonso-García et al. Machine Learning Based System for the Control and Evaluation of Programming Vulnerabilities
US11461219B2 (en) Prioritizing software bug mitigation for software on multiple systems
Kaur et al. Improved Framework for Bug Severity Classification using N-gram Features with Convolution Neural Network

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220907

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240311

R150 Certificate of patent or registration of utility model

Ref document number: 7464109

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150