JP2013065084A - 予測方法及び予測プログラム - Google Patents

予測方法及び予測プログラム Download PDF

Info

Publication number
JP2013065084A
JP2013065084A JP2011202102A JP2011202102A JP2013065084A JP 2013065084 A JP2013065084 A JP 2013065084A JP 2011202102 A JP2011202102 A JP 2011202102A JP 2011202102 A JP2011202102 A JP 2011202102A JP 2013065084 A JP2013065084 A JP 2013065084A
Authority
JP
Japan
Prior art keywords
prediction
prediction model
model
filter
value
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.)
Granted
Application number
JP2011202102A
Other languages
English (en)
Other versions
JP5803469B2 (ja
Inventor
Kenichi Kobayashi
健一 小林
Akihiko Matsuo
昭彦 松尾
Manabu Kamimura
学 上村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011202102A priority Critical patent/JP5803469B2/ja
Publication of JP2013065084A publication Critical patent/JP2013065084A/ja
Application granted granted Critical
Publication of JP5803469B2 publication Critical patent/JP5803469B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ソフトウェアの障害予測等の予測性能を向上する。
【解決手段】第2パワーフィルタ適用手段24が、フィルタパラメータに基づいて、ソフトウェアメトリクスの値にパワー変換を適用して、説明変数を生成し、予測モデル適用手段26が、説明変数と予測モデルとを用いて、二値の判別又は数値を予測する。また、フィルタパラメータ決定手段14が、メトリクスの過去の値に基づいて、フィルタパラメータを決定し、予測モデル学習手段18が、予測モデルの評価値を求め、当該評価値に基づいて、予測モデル適用手段で用いる予測モデルパラメータを決定する。この場合、フィルタパラメータ決定手段は、予測モデルの評価値が適正な方向に変化するようにフィルタパラメータを更新する処理を繰り返し、パワーフィルタ適用手段は、評価値が適正な方向に変化しなくなったときのフィルタパラメータを用いる。
【選択図】図2

Description

本件は、予測方法及び予測プログラムに関する。
ソフトウェアの障害予測は、ソフトウェアの品質向上の手段として従来から大きな成果を上げている。ソフトウェアの障害予測には、統計モデルを用いた回帰分析や、機械学習を用いたデータマイニングの手法などが用いられる。特に、回帰分析を用いる場合、単なる障害の有無のみでなく連続値(障害発生率)が予測できるため、障害予防活動の優先順位付けやリスク見積もりに応用でき、産業上の利用価値が高い。なお、ソフトウェア障害予測に関する著名な論文である非特許文献1では、ロジスティック回帰分析が用いられており、同手法は現在まで広く一般的に用いられている。
また、ソフトウェアを変更する工数(ソフトウェアの工数)の予測も、ソフトウェア開発の品質向上や効率化に大きな成果を上げている。ソフトウェアの工数予測には、障害予測と同様、統計的手法やデータマイニングの手法が広く用いられるが、連続値を予測する必要があることから、回帰分析を利用するのが一般的である。例えば、ソフトウェア工数予測の論文である非特許文献2では、両側対数変換線形回帰分析を用いており、この手法も近年では標準的な手法である。なお、障害予測技術と工数予測技術の両技術は、入力として「ソフトウェアメトリクス」という同じ範疇に属するデータを用い、統計モデルを用いた回帰分析に基づく予測を行うという共通性を有している。ソフトウェアメトリクスは、対象のソフトウェアやそのソフトウェアを開発・保守しているプロジェクトの活動情報から採取した情報である。
一般的に、障害予測や工数予測を行う場合、予測に用いる予測モデルを作成する「準備」と、作成された予測モデルを用いて実際の予測を行う「実施」の2つのフェーズが実行される。「準備」の段階では、説明変数と応答変数の組のデータを過去のソフトウェアデータベースから作成し、その説明変数から応答変数をできるだけ正しく予測できるように予測モデルを学習させる。一方、「実施」の段階では、予測対象のソフトウェアから計測された説明変数を予測モデルに適用し、予測値である応答変数を計算する。
図21には、従来における障害予測装置の構成の一例が示されている。図21の障害予測装置では、予測モデル作成手段が予測モデルを作成する準備段階を行う。この予測モデル作成手段では、第1メトリクス計測手段において過去ソースコードDB内のソースコード情報から計測される各種ソフトウェアメトリクスが説明変数となり、過去障害情報DBから取得される障害情報が応答変数となる。予測モデル学習手段では、これら説明変数と応答変数を用いて予測モデルを学習し、学習結果の予測モデルを表現する予測モデルパラメータを予測手段に対して出力する。これに対し、予測手段においては、第2メトリクス計測手段が分析対象ソースコードから各種メトリクスを計測した結果が説明変数となる。そして、予測モデル適用手段では入力された予測モデルパラメータで表現される予測モデルに対し入力された説明変数を適用し、計算された応答変数を障害予測結果として出力する。なお、従来における工数予測手段の構成も図21とほぼ同様であるが、図21の「過去障害情報DB」が「過去工数情報DB」となり、「障害予測結果」が「工数予測結果」となる点が異なる。
ここで、ソフトウェアの障害発生や工数は、技術的や自然的な要因によるものに限らず、人間の思索や経済的社会的な外部の環境変化、予測不能な偶発要因など様々な要因により影響を受ける。このため、測定可能なメトリクスのみではすべての障害発生や工数の要因を説明するには十分ではない。そのため、より高い予測性能を得るために入手できた情報を最大限活用するための様々な改良が試みられ続けている。
その試みの一つとして予測モデルの式を探索的に決定するアプローチがある。このアプローチは、例えば、適切な予測モデルの式を見出すために三角関数や除算など任意の関数や演算子を遺伝的アルゴリズムにて組み合わせて探索しようというものである。
また、別の試みとして、入手したメトリクスの情報を最大限活かすために、メトリクスの値を前処理にてフィルタリングするアプローチがある。例えば、非特許文献2には、対数関数でメトリクスを予め変換しておくログフィルタリングによってソフトウェアの工数予測の性能が向上する可能性があると述べられている。ログフィルタリングを適用する場合、(1)全てのメトリクスに適用する、(2)専門知識に基づいて見込みのありそうなメトリクス(概ねコードサイズメトリクスなど)に適用する、(3)適用不適用の全ての組み合わせを試す、など種々の試みがなされている。図22には、ログフィルタリングが行われる予測装置の構成の一例が示されている。図22では、第1、第2メトリクス計測手段の後段に、第1、第2ログフィルタ適用手段が設けられている。
V.R. Basili, L.C. Briand, and W.L. Melo, "A Validation of Object-Oriented Design Metrics as Quality Indicators," IEEE Transactions on Software Engineering, vol. 22, no. 10, pp. 751-761, 1996. URL: http://dx.doi.org/10.1109/32.544352 門田暁人, 小林健一, "線形重回帰モデルを用いたソフトウェア開発工数予測における対数変換の効果," コンピュータソフトウェア, vol. 27, No. 4, pp. 234-239, 2010. URL: http://joi.jlc.jst.go.jp/JST.JSTAGE/jssst/27.4_234
しかしながら、上述したような予測モデル式を探索するアプローチでは、関数空間を闇雲に探すことになるため探索空間が膨大となり、探索に長時間を要するおそれがある。また、予測性能も然程高くないなどの課題もある。
これに対し、上述したようなフィルタリングで前処理するアプローチでは、計算時間のオーバヘッドがわずかでありながらその予測改善効果は高く、また、解釈が容易であるという利点がある。しかるに、フィルタリングで前処理するアプローチは、処理が単純なだけあってメトリクスの持つ情報を十分活かしきることができず、予測性能の向上は限定的であり、十分な性能を発揮するには至っていない。
そこで本件は上記の課題に鑑みてなされたものであり、予測性能を向上することが可能な予測方法及び予測プログラムを提供することを目的とする。
本明細書に記載の予測方法は、フィルタパラメータに基づいて、ソフトウェアメトリクスの値にパワー変換を適用して、説明変数を生成するパワーフィルタ適用工程と、前記説明変数と予測モデルとを用いて、二値の判別又は数値を予測する予測モデル適用工程と、前記フィルタパラメータを決定するフィルタパラメータ決定工程と、前記予測モデルの評価値を求め、当該評価値に基づいて、前記予測モデル適用工程で用いる予測モデルパラメータを決定する予測モデル学習工程と、をコンピュータが実行し、前記フィルタパラメータ決定工程では、前記予測モデルの評価値が適正な方向に変化するようにフィルタパラメータを更新する処理を繰り返し、前記パワーフィルタ適用工程では、前記評価値が適正な方向に変化しなくなったときのフィルタパラメータを用いる予測方法である。
本明細書に記載の予測プログラムは、フィルタパラメータに基づいて、ソフトウェアメトリクスの値にパワー変換を適用して、説明変数を生成し、前記説明変数と予測モデルとを用いて、二値の判別又は数値を予測し、前記説明変数を生成する処理で用いる前記フィルタパラメータを決定し、前記予測モデルの評価値を求め、当該評価値に基づいて、前記予測する処理で用いる予測モデルパラメータを決定する、処理をコンピュータに実行させ、前記フィルタパラメータを決定する処理では、前記予測モデルの評価値が適正な方向に変化するようにフィルタパラメータを更新する処理を繰り返し、前記パワー変換では、前記評価値が適正な方向に変化しなくなったときのフィルタパラメータを用いる予測プログラムである。
本明細書に記載の予測方法及び予測プログラムは、予測性能を向上することができるという効果を奏する。
第1の実施形態に係る障害予測装置のハードウェア構成を示す図である。 障害予測装置の機能ブロック図である。 あるソフトウェアにおけるメトリクス「loc」と障害発生率(障害率)との関係を示すグラフである。 あるソフトウェアにおけるメトリクス「uniq Op」と障害発生率(障害率)との関係を示すグラフである。 シフト係数αを0、正規化係数mを1に固定してパワー係数λを0,1,2の3種に変化させたパワー変換の関数プロットである。 フィルタパラメータ決定手段と予測モデル学習手段の詳細な構成を示すブロック図である。 メトリクス情報の一例を示す図である。 メトリクスの意味を示す図(表)である。 フィルタパラメータの一例を示す図である。 計測されたメトリクスデータの一例を示す図である。 障害情報データの一例を示す図である。 予測モデルパラメータの一例を示す図である。 使用メトリクスリストを示す図である。 図6の変数選択手段の処理を示すフローチャートである。 図6のモデル追加変数探索手段の処理を示すフローチャートである。 図6のモデル除去変数探索手段の処理を示すフローチャートである。 図6のパワー係数決定手段の処理を示すフローチャートである。 図18(a)〜図18(c)は、第1の実施形態の効果を説明するための図である。 第2の実施形態に係る工数予測装置の機能ブロック図である。 工数情報データの一例を示す図である。 従来技術を説明するための図(その1)である。 従来技術を説明するための図(その2)である。
《第1の実施形態》
以下、ソフトウェアの障害予測装置100の一実施形態について、図1〜図18に基づいて詳細に説明する。図1には、ソフトウェアの障害予測装置100のハードウェア構成が示されている。図1に示すように、障害予測装置100は、CPU90、ROM92、RAM94、表示部93、入力部95、記憶部(ここではHDD(Hard Disk Drive))96、及び可搬型記憶媒体用ドライブ99等を備えており、障害予測装置100の構成各部は、バス98に接続されている。表示部93は、液晶ディスプレイ等を含み、入力部95は、キーボード、マウス等を含む。障害予測装置100では、ROM92あるいはHDD96に格納されているプログラム(予測プログラム)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み取ったプログラム(予測プログラム)をCPU90が実行することにより、図2の各部の機能が実現される。
図2には障害予測装置100の機能ブロック図が示されている。なお、図2の矢印は、処理の流れ及びそれに伴うデータの流れを表すものである。図2に示すように、障害予測装置100は、CPU90が予測プログラムを実行することで、予測モデル作成手段10、及び予測手段20としての機能を実現している。なお、図2には、HDD96等に格納される過去ソースコードDB30、過去障害情報DB32、分析対象ソースコード34、及び障害予測結果36も図示されている。
予測モデル作成手段10は、障害予測のための予測モデルを作成する準備段階の処理を実行する手段であり、予測手段20は、実際に障害予測する実施段階の処理を実行する手段である。ここで、本実施形態では、予測の単位をモジュールと呼ぶものとする。モジュールはソフトウェアの一部分であり、通常、ソースコード1本やクラス1つに相当する。なお、本実施形態では、モジュール1つがソースコード1本であるものとする。
ここで、本実施形態の障害予測装置100は、従来のログフィルタを用いた障害予測装置(図22参照)と同様、入力されたソースコードから計測されたメトリクスにフィルタリングを行って、予測モデルの説明変数とする。ただし、本実施形態では、フィルタリングにパワーフィルタを用いる。ここで、ログフィルタで使用される対数関数はパラメータを有さないのに対し、パワーフィルタで使用されるパワー変換関数はパラメータを有している(なお、ログフィルタで使用される対数関数は、厳密には、底をパラメータとして持つが、底の変換は定数倍にしか過ぎず、回帰分析では、定数乗数は最終結果に影響を及ぼさないため、底はパラメータとして扱われることはない)。このフィルタ及びパラメータの違いにより、本実施形態の障害予測装置100は、図22とは異なる構成となっている。
予測モデル作成手段10は、図2に示すように、第1メトリクス計測手段12と、フィルタパラメータ決定手段14と、第1パワーフィルタ適用手段16と、予測モデル学習手段18と、を有する。また、予測手段20は、第2メトリクス計測手段22と、第2パワーフィルタ適用手段24と、予測モデル適用手段26と、を有する。
なお、本実施形態では、第2パワーフィルタ適用手段24(及び第1パワーフィルタ適用手段16)において、パワーフィルタの技術を導入している。ここで、ソースコードの属性値(例えばソースコード行数や循環的複雑度など)を示すソフトウェアメトリクスの多くは、パワー変換(別名べき変換)を行うパワーフィルタによって障害との相関が向上するという性質がある。すなわち、本実施形態では、パワーフィルタを用いることで、より性能の高いソフトウェア障害予測を実現する。
以下、パワーフィルタについて詳細に説明する。なお、以下においては、典型的な予測モデルであるロジスティック回帰分析にパワーフィルタを適用する場合を例にとり説明する。
次式(1)はロジスティック回帰分析の予測モデル式である。
Figure 2013065084
上式(1)のうち、x1,x2,…xnは説明変数、nは説明変数の個数を表す。また、yは応答変数(予測値)である。また、a0,a1,a2,…anはモデルのパラメータであり、特に回帰分析では偏回帰係数と呼ばれる。expは指数関数である。
ここで、「予測」とは、上記予測モデル式に説明変数x1,x2,…xnを代入し、予測値yを求めることをいう。また、「予測モデルの学習」とは、説明変数x1,x2,…xnとそれに対応する応答変数の実測値zの組の集合からなるサンプルデータが与えられたときに、yとzの差異を表す評価関数が最小になるようなyが出力されるように、パラメータ(偏回帰係数)a0,a1,a2,…anを決定することをいう。なお、一般的には、最尤推定法を用いて、パラメータa0,a1,a2,…anが決定される。
ここで、メトリクスwiから説明変数xiを得るために用いられるフィルタfiを関数xi=fi(wi)で表すとすれば、上式(1)より、フィルタを用いたロジスティック回帰分析の予測モデル式は次式(2)で表すことができる。
Figure 2013065084
この場合、パワーフィルタに用いるパワー変換関数は、次式(3)で表される。
Figure 2013065084
上式(3)のうち、λはパワー係数、αはシフト係数、mは正規化係数である。シフト係数αは、上式(3)のw+αの項を正値に保つために設けられている。このシフト係数αは、メトリクス値wの値域集合をWとしたとき、Wの最小値min(W)を用いて次式(4)で決定される。なお、εは適当な正の小さな値であるものとし、本実施形態ではεとして1を採用する。
Figure 2013065084
一方、正規化係数mは出力値の大小を調整するために設けられている。正規化係数mは、メトリクス値wの値域集合をWとし、Wの要素数を|W|とすると、次式(5)にて決定される。
Figure 2013065084
上式(5)からすれば、正規化係数mはシフトしたメトリクス値w+αの相乗平均であるといえる。また、正規化係数mは、f(w)の中ではWが定まれば定まる乗数である。この場合、上式(2)から明らかなように、回帰式の偏回帰係数がf(w)に乗数として係るため、mが如何なる値になろうと最終的な出力である回帰式には変化を及ぼさない。そのため、本実施形態ではm=1と固定するものとする。
なお、以下においては、パワー係数λとシフト係数αの組<λ,α>をパワーフィルタの「フィルタパラメータ」と呼ぶものとする。パワー係数λはパワーフィルタの振る舞いを定めるパラメータである。
次に、パワーフィルタの適用がソフトウェアの障害予測の予測性能向上にどのように寄与するかの概要について説明する。
まず、回帰分析の前処理に置くフィルタに対する要請について説明する。予測問題は最適な予測式を関数空間から探索する探索問題である。探索範囲に良い予測を行える式があるか、探索量は実用的に計算可能な範囲に収まるか、の2点が高い性能を持つ予測を行うための要件である。したがって、フィルタを前処理として付加することはすなわちそのフィルタがメトリクスの情報を活かして予測に貢献し、計算量が現実的であるという要件を持つ。計算量が少ないというのは概ねパラメータが少ないことに等しい。すなわち、少ないパラメータでメトリクスと予測値の相関を最大化するような変換がフィルタとして理想的である。ここで、ログフィルタは、パラメータが0個であり、計算量の要件では満足するが、予測改善効果に乏しいという課題を持つ。
これに対し、パワーフィルタはパラメータが上述の通り実質1個であり0個より多いものの、予測改善効果は高い。これについて、以下説明する。
ソフトウェアメトリクスは、その多くが人工的に設計された測定量であり、値が大きいほど障害数や障害密度、難易度、工数などが増加するような意図を持って設計されている(まれに逆のものもある)。これは、自然界の測定量がある区間で最適となるものが多い(例えば、培養地のpHを説明変数とした生存予測問題においてpHが6.3から7.5の範囲で予測生存率が一定以上になる、など)ことに比べ特徴的である。すなわち、メトリクスの多くが予測値に対し単調増加性(まれに単調減少性)を持つことがソフトウェアの予測問題の特徴である。しかし、メトリクスと予測値が単調性を持つとは言え、比例関係を持つとまでは一般的に言えない。例えば、図3には、あるソフトウェアにおけるメトリクス「loc」と障害発生率(障害率)との関係が示され、図4には、メトリクス「uniq Op」と障害発生率(障害率)の関係が示されている。なお、図3、図4中の各点はソースコード1000本の平均を示し、図中の曲線は全点の平滑曲線を示す。これらの曲線は、ともに単調増加の傾向を持つが、図3では、「loc」が増加するとともに障害率の増加傾向は低下し、図4では、「uniq Op」が増加するとともに障害率の増加傾向は増大していくという異なる非線形な関係を持つ。
上式(1)のように回帰分析の多くは説明変数の線形式を構成要素として含み、予測値または予測値の変形に対し線形関係にあることが仮定される。例えば、ロジスティック回帰では説明変数は対数オッズ比と線形関係にあることが仮定される。これは、この線形関係から外れると予測モデルの性能が低下することを意味する。そのため、説明変数に適切な変換を施して線形関係からの逸脱を防ぐこととすれば、予測モデルの性能低下を抑える効果が期待できる。ここで、パワー変換の性質に注目する。図5はシフト係数αを0、正規化係数mを1に固定してパワー係数λを0,1,2の3種に変化させたパワー変換の関数プロットである。図5から明らかなように、λを変化させることで単調増加の性質を保ちながら自由に増加傾向を変化させることができる。この性質により、パワー変換は1パラメータでありながら線形関係からの逸脱を防ぐことを目的として適切な変換を表現できる潜在力を持つ。
ただし、パワーフィルタでは、説明変数ごとにパワー係数λを決定することが単純でないという課題がある。説明変数が複数になる場合は、ある説明変数のためのパワー係数が他の説明変数のためのパワー係数に相互に影響を及ぼすためである。
なお、パワー変換そのものは既知であり、本発明とは別の応用が既にある。パワー変換は数値の集合の分布の歪度を変化させる性質を持つため、そこに利用価値が見出される場合がある。例えば、特開2006−228181号公報には、製品のバラつきが正規分布に従っていない場合に、正規分布を用いた品質管理手法を適用するため、パワー変換を適用して歪度を0にし、正規分布に近づける技術が開示されている。
図2に戻り、予測モデル作成手段10及び予測手段20が有する各手段について、具体的に説明する。
<予測モデル作成手段10の各手段について>
まず、予測モデル作成手段10の各手段(第1メトリクス計測手段12、フィルタパラメータ決定手段14、第1パワーフィルタ適用手段16、予測モデル学習手段18)について詳細に説明する。
第1メトリクス計測手段12は、過去ソースコードDB30からソースコード情報を取得し、当該ソースコード情報からモジュール単位で各種メトリクスを計測する。
より具体的には、第1メトリクス計測手段12は、まず、過去ソースコードDB30から、モジュールに対応するソースコードを取得する。次いで、第1メトリクス計測手段12は、ソースコードの静的解析を行い、それぞれについてメトリクスを計測する。ここで、例えば、メトリクス「loc」は「コメント行と空行を取り除いたソースコード行数」と慣習的に定義されている。なお、各メトリクスの計測法は、それぞれ定められており、その詳細については、文献(T. J. McCabe, “A Complexity Measure,” IEEE Transactions on Software Engineering, Vol. 2, No. 4, pp 308-320, 1976. URL: http://dx.doi.org/10.1109/TSE.1976.233837)や、文献(M. H. Halstead, “Elements of Software Science,” Elsevier, 1977, ISBN:0444002057.)や、文献(S. R. Chidamber, and C. K. Kemerer, "A Metrics Suite for Object Oriented Design", IEEE Transactions on Software Engineering, Vol.20, No.6, June 1994. URL: http://dx.doi.org/10.1109/32.295895)に記載されている。また、第1メトリクス計測手段12は、モジュールに対して計測されたメトリクスごとの数値をメトリクスデータとして、フィルタパラメータ決定手段14及び第1パワーフィルタ適用手段16に対して出力する。
フィルタパラメータ決定手段14は、第1メトリクス計測手段12で計測された各種メトリクスと、予測モデル学習手段18の学習過程の中間結果とから、フィルタパラメータを決定する。フィルタパラメータ決定手段14では、フィルタパラメータを、第1パワーフィルタ適用手段16に随時出力するとともに、学習後の最終的なフィルタパラメータを予測手段20に対し出力する。
ここで、図6には、フィルタパラメータ決定手段14と予測モデル学習手段18の、より詳細な構成が示されている。図6に示すように、フィルタパラメータ決定手段14は、シフト係数決定手段40と、モデル追加変数探索手段44と、モデル除去変数探索手段46と、パワー係数決定手段48と、を有している。また、フィルタパラメータ決定手段14は、内部メモリとして、メトリクス情報72と、フィルタパラメータ74と、を有する。
ここで、メトリクス情報72は、図7に示すような表形式データである。具体的には、メトリクス情報72は、計測されたメトリクスの種類数の行数を有し、1行が計測されたメトリクスの名前の項目とそのメトリクスに対応するシフト係数の項目の2つの項を含む。なお、図7のメトリクス名「loc,vg,n,…」については、図8のような意味(説明の欄参照)を有している。
また、フィルタパラメータ74は、図9に示すような表形式のデータである。具体的には、フィルタパラメータ74は、メトリクス名、そのメトリクスに対応するパワー係数λ、及びシフト係数αの3項からなる行を、フィルタリング対象のメトリクスの数だけ並べた表形式のデータ構造で表現される。
シフト係数決定手段40は、第1メトリクス計測手段12から入力されるメトリクスデータを受け取ると、メトリクスごとのシフト係数(α)を決定し、メトリクス情報72を設定する。
より具体的には、シフト係数決定手段40は、入力されたメトリクスデータのメトリクスごとに、入力されたメトリクス値の値域集合をWとして、上式(4)にてシフト係数αを求める。また、シフト係数決定手段40は、メトリクス情報72(図7)に新しい行を追加する処理を実行する。
モデル追加変数探索手段44は、予測モデル学習手段18内の変数選択手段50からの要求により、予測モデルに追加することで予測モデルを改良可能な説明変数を探索する。また、モデル除去変数探索手段46は、予測モデル学習手段18内の変数選択手段50からの要求により、予測モデルから除去することで予測モデルを改良可能な説明変数を探索する。これら、説明変数の探索方法については、後に詳述する。
パワー係数決定手段48は、モデル追加変数探索手段44及びモデル除去変数探索手段46からの要求により、パワー係数λを決定する。なお、パワー係数λの決定方法については、後に詳述する。
図2に戻り、第1パワーフィルタ適用手段16は、各種メトリクスにフィルタを適用して説明変数とする。なお、第1パワーフィルタ適用手段16が用いるフィルタ(パワーフィルタ)は、フィルタパラメータ決定手段14で決定されたフィルタパラメータを利用したフィルタである。
ここで、第1パワーフィルタ適用手段16の処理について、具体的に説明する。まず、第1パワーフィルタ適用手段16は、フィルタパラメータ決定手段14からフィルタパラメータを受け取る。また、第1パワーフィルタ適用手段16は、第1メトリクス計測手段12から、各メトリクスにつき数値データを受け取る。このとき、メトリクスの数は任意個であり、メトリクスごとの数値データの個数はモジュールの数と等しいものとする。なお、計測されたメトリクスのデータの一例を図10に示す。図10においては、各行は過去ソースコードDB30のモジュール1つに相当する。各行にはモジュールのIDのほかに計測されたメトリクスの値がそれぞれ格納される。ここで、前述のように、メトリクスのデータ値はwで表すものとし、第1パワーフィルタ適用手段16の出力値である説明変数をxで表すものとする。
第1パワーフィルタ適用手段16は、フィルタパラメータの組<λ,α>が指定されているメトリクスについては、出力値xとして次式(6)(式(6)は、式(3)のmを1としたもの)のf(w)の値を説明変数として出力する。
Figure 2013065084
また、第1パワーフィルタ適用手段16は、フィルタパラメータが指定されていないメトリクスに関しては、出力値xとしてwの値をそのまま説明変数データとして、予測モデル学習手段18に対して出力するものとする。
予測モデル学習手段18は、過去障害情報DB32から取得した障害情報を応答変数とし、当該応答変数と、第1パワーフィルタ適用手段16から出力される説明変数とから予測モデルを学習する。なお、学習の過程においてはフィルタパラメータ決定手段14と連携するものとする。また、予測モデル学習手段18は、予測モデルの学習が完了した場合に、予測モデルパラメータを外部(予測手段20)に出力する。なお、この予測モデルパラメータの出力と同時に、フィルタパラメータ決定手段14からは、最終的なフィルタパラメータが外部(予測手段20)に出力される。
ここで、予測モデル学習手段18は、図6に示すように、モデルパラメータ決定手段52と、変数選択手段50と、を有している。また、予測モデル学習手段18は、内部メモリとして、予測モデルパラメータ76を有している。
モデルパラメータ決定手段52は、第1パワーフィルタ適用手段16から、メトリクスに対しフィルタが適用された出力値を説明変数データとして受け取る。また、過去障害情報DB32から、障害情報データ(図11)を応答変数データとして受け取る。図11の障害情報データはモジュールごとに1行、各行ごとにモジュールのIDの項目と障害の有無を示す項目の2項目を持つ表形式で表される。この図11の例では、「defects」の項目が障害の有無(TRUE=有り、FALSE=無し)を示している。
また、モデルパラメータ決定手段52は、フィルタパラメータ決定手段14内のパワー係数決定手段48からの要求により、偏回帰係数aiの決定を行う。そして、モデルパラメータ決定手段52は、学習後、最終的な予測モデルパラメータを予測手段20に対し出力する。
ここで、予測モデルパラメータ76は、予測モデルを特定するためのパラメータであり、説明変数の個数に1を加えた行数からなる表形式のデータ構造で表現される(図12参照)。図12の各行は、ID、説明変数の元となるメトリクスの名前、対応する説明変数の偏回帰係数の3項からなる。IDが0の行は特定の説明変数には割り付けられず、上式(2)のα0の値を格納するために設けられている(そのため、IDが0の行のメトリクス名の項目は使用されない)。それ以外の行は、IDがiの行は上式(2)の偏回帰係数αiの値を格納する。
変数選択手段50は、予測モデルに使用する説明変数を選択する。性能の高い予測を実現するためには、必ずしも全ての入力データを用いる必要は無い。すなわち、障害と相関が無く、予測に役立たないデータもあり、しばしば、用いると予測性能を落とすような悪影響を及ぼすデータもある。変数選択手段50はそのようなデータを取り除く。
<予測手段20の各手段について>
次に、図2に示す予測手段20の各手段(第2メトリクス計測手段22、第2パワーフィルタ適用手段24、予測モデル適用手段26)について詳細に説明する。
第2メトリクス計測手段22は、分析対象ソースコード34からソースコードを取得し、当該ソースコードからモジュール単位で各種メトリクスを計測する。ここで、第2メトリクス計測手段22の機能は、上述した第1メトリクス計測手段12と同様である。ただし、第2メトリクス計測手段22は、予測モデルパラメータで指定された説明変数として使用されるメトリクスのリストを参照することで、障害予測に使用しないメトリクスを測定しないようにしてもよい。使用されるメトリクスのリストは、予測モデルパラメータのうち、メトリクス名の項に含まれるメトリクス名のリストである。図13は図12に対応した使用メトリクスリストの一例を示す図である。
第2パワーフィルタ適用手段24は、予測モデル作成手段10から入力されたフィルタパラメータに基づいて、各種メトリクスにフィルタを適用して説明変数とする。
より具体的には、第2パワーフィルタ適用手段24は、予測モデル作成手段10からフィルタパラメータを取得すると、各メトリクスにつき数値データを受け取る。このとき、メトリクスの数は任意個であり、メトリクスごとのデータの数も任意個である。計測されたメトリクスのデータは図10の表と同様の形式である。また、第2パワーフィルタ適用手段24は、フィルタパラメータ<λ,α>が指定されているメトリクスに基づいて、式(6)の説明変数x(=f(w))の値を説明変数データとして出力する。なお、第2パワーフィルタ適用手段24は、フィルタパラメータが指定されていないメトリクスについては出力しないものとする。
予測モデル適用手段26は、予測モデル作成手段10から入力された予測モデルパラメータで表現される予測モデルに対し説明変数を適用し、計算された応答変数を障害予測結果36として出力する。
ここで、予測モデル作成手段10から取得される予測モデルパラメータで指定されたメトリクスの数をnとする。また、予測モデルパラメータのIDが0の行の偏回帰係数の値をa0と表記し、IDがkの行の偏回帰係数の値をakと表記する。また、予測モデル適用手段26が第2パワーフィルタ適用手段24から受け取る、モジュールSiに関して予測モデルパラメータで指定されたメトリクスごとの説明変数の値をx1 (i),x2 (i),…xn (i)と表記する。
この場合、予測モデル適用手段26は、上式(1)に基づく次式(7)を用いてy(i)を計算し、y(i)の値をモジュールSiの障害予測結果36の値として出力する。
Figure 2013065084
次に、フィルタパラメータ決定手段14及び予測モデル学習手段18の具体的な処理について、図14〜図17のフローチャートに沿って説明する。
図14のフローチャートは、既知の変数増減法にパワーフィルタのパラメータ決定を組み込めるよう改良した処理である。なお、既知の変数増減法については、文献(W. N. Venables, and B. D. Ripley, “Modern Applied Statistics with S. Fourth edition,” Springer, ISBN 0-387-95457-0, 2002.)に記載されている。
図14の処理では、まず、ステップS1401において、図6の変数選択手段50が、予測モデルパラメータの初期値を設定することで、初期予測モデルを設定する。この初期予測モデルは、既知のフィルタリングを施さないロジスティック回帰分析に対して定石的に行われる変数増減法を実施することで求めることができる。また、予測モデルパラメータの初期値の設定は、初期予測モデルに使用された説明変数のメトリクスを予測モデルパラメータのメトリクス名の項目に設定することで行うことができる。この場合、偏回帰係数の項目は未設定のままで構わない。なお、別の方法として、初期予測モデルとして説明変数を全く用いないモデルを用いても良い。また、別の方法として、初期予測モデルとして全てのメトリクスを説明変数として用いるモデルを用いても良い。
次いで、ステップS1402では、変数選択手段50が、モデル追加変数探索手段44に要求を送ることで、モデル追加変数探索手段44に、モデルを改良可能な、モデルに追加する説明変数の探索を行わせる。この場合、変数選択手段50は、モデル追加変数探索手段44からの応答を待つ。応答は変数のメトリクス名または「無し」のいずれかである。応答が「無し」でなければ改良されたモデルを表すデータ(予測モデルパラメータと同形式)も付加情報として応答に含まれる。
モデル追加変数探索手段44では、変数選択手段50からの要求を受けて、図15のフローチャートに沿った処理を実行する。
図15の処理では、まず、ステップS1501において、モデル追加変数探索手段44が、予測モデル学習手段18内の予測モデルパラメータ76で表されるモデルをコピーして「モデルA」とする。このコピーは、予測モデルパラメータと同じデータ形式(図12参照)で表現される。また、モデル追加変数探索手段44は、モデルAに追加する候補となるメトリクスの説明変数のリストLを作成する。この場合、モデル追加変数探索手段44は、内部メモリのメトリクス情報72を調べ、モデルAに含まれていない説明変数のメトリクスをリストLの要素とする。
次いで、ステップS1502では、モデル追加変数探索手段44が、メモリCを用意し、当該メモリCを空にする。更に、モデル追加変数探索手段44は、メモリEを用意し、当該メモリEに、フィルタパラメータ74をコピーする。
次いで、ステップS1503では、モデル追加変数探索手段44が、メモリDを用意し、当該メモリDにモデルAの評価値を格納する。ここで、本実施形態では、モデルの評価値として、AIC(赤池情報量基準)を用いることとする。モデルの最大尤度をL、モデルの自由度をfとした場合、AICは次式(8)で定義される。なお、モデルの自由度fは、(説明変数の数+1)である。
Figure 2013065084
次いで、ステップS1504では、モデル追加変数探索手段44が、リストLが空か否かを判断する。ここでの判断が否定された場合には、ステップS1505に移行する。
ステップS1505に移行すると、モデル追加変数探索手段44は、リストLから1つ説明変数を取り出し、当該説明変数をモデルAに加えて、モデルBを作成する。モデルBは予測モデルパラメータ76と同じデータ形式で表現されるものである。
次いで、ステップS1506では、モデル追加変数探索手段44が、パワー係数決定手段48に対してモデルBとともに要求を送る。これにより、パワー係数決定手段48において、パワー係数決定処理が実行される。モデル追加変数探索手段44では、パワー係数決定手段48からの応答を待つ。
以下、パワー係数決定手段48による処理(パワー係数決定処理)について、図17のフローチャートに沿って詳細に説明する。
図17の処理では、まず、ステップS1701において、パワー係数決定手段48が、フィルタパラメータ74を空に初期化する。また、パワー係数決定手段48は、送られてきたモデルBに含まれる説明変数のメトリクスごとにフィルタパラメータ74に行を追加し、メトリクス名の項を設定する。パワー係数λは仮の値として1に設定する。
次いで、ステップS1702では、送られてきたモデルBに含まれる説明変数のメトリクスごとにメトリクス情報72から該当するシフト係数αを取得し、フィルタパラメータ74の該当行に設定する。
次いで、ステップS1703では、パワー係数決定手段48が、パワー係数の算出処理を実行する。具体的には、以下の処理を行う。
(A) まず、パワー係数決定手段48は、フィルタパラメータ74を第1パワーフィルタ適用手段16に出力する。次いで、パワー係数決定手段48は、モデルパラメータ決定手段52に要求を送り、モデルパラメータを決定する。この際、モデル追加変数探索手段44から送信されてきたモデル(モデルB)のデータをモデルパラメータ決定手段52に送る。そして、パワー係数決定手段48は、モデルパラメータ決定手段52の応答を待つ。
ここで、モデルパラメータ決定手段52は、以下の処理を行う。
(a) モデルパラメータ決定手段52は、パワー係数決定手段48から、モデルBを表現するデータ(予測モデルパラメータ76と同形式のデータ)を受け取る。
(b) 次いで、モデルパラメータ決定手段52は、第1パワーフィルタ適用手段16から、メトリクスに対しフィルタが適用された出力値を説明変数データとして受け取る。
(c) 次いで、モデルパラメータ決定手段52は、過去障害情報DB32から、障害情報データを応答変数データとして受け取る。
(d) 次いで、モデルパラメータ決定手段52は、予測モデルのパラメータを決定する。この場合、式(1)について、説明変数がn個あるとして、それらをx1〜xnで表し、それに対応する偏回帰係数をa1〜anで表し、切片をa0で表すとする。そして、モデルパラメータ決定手段52は、与えられた説明変数データと応答変数データから式(1)の偏回帰係数a0〜anを既知の技術で求める。既知の技術としては、最尤推定法を用いることができる。すなわち、モデルの仮定の下で、応答変数の実測値が発生する確率(尤度)を最大にするよう、偏回帰係数a0〜anを推定することができる。なお、最尤推定法の実施には反復再重み付け最小二乗法(Iteratively Reweighted Least Square method;IRLS法)を用いるものとする。なお、IRLS法の詳細については、文献(P. J. Green, "Iteratively reweighted least squares for maximum likelihood estimation, and some robust and resistant alternatives", Journal of Royal Statistical Society B46, 149-192, 1984. URL: http://www.jstor.org/pss/2345503)に記載されている。
(e) 次いで、モデルパラメータ決定手段52は、上記において定まる値(各偏回帰係数a0〜anの値を含む予測モデルパラメータ76と同形式のデータと、予測モデルの最大尤度)を応答として、フィルタパラメータ決定手段14に返す。
以上のようにして、モデルパラメータ決定手段52からの応答を受け取ると、パワー係数決定手段48は、次の処理に移行する。
(B)パワー係数決定手段48は、受け取った応答に基づいて、モデルBの評価値を計算する。この場合、パワー係数決定手段48は、モデルの評価値として、AIC(赤池情報量基準)を用いることとする。AICは前述のように上式(8)で定義される。
(C) 次いで、パワー係数決定手段48は、パワー係数の変更によりモデルを改良可能であるか否かを判断する。ここでの判断方法について、以下説明する。
フィルタパラメータ74にメトリクスがn個格納されているとし、i番目のメトリクスのパワー係数をλi(=λ1〜λn)とする。このλ1〜λnは、ステップS1703によりモデルパラメータ決定手段52の説明変数データに影響を及ぼし、上記(B)の処理において得られるモデルの評価値に影響を及ぼす。すなわち、モデルの評価値をVとすると、上記(A),(B)の処理の系においてVは次式(9)で表されるようなλ1〜λnの関数となる。
Figure 2013065084
すなわち、「パワー係数の変更によりモデルを改良可能か判定する」とは、上記評価値Vが、λ1〜λnを変更することにより、より小さくできるかどうか、という意味である(評価値が小さいほど予測モデルが良いことを示す場合を想定)。したがって、評価値Vを小さくできる間は上記(A)、(B)の処理を反復することになる。これは、すなわち、多変数関数最適化(最小化)問題である。つまり、ステップS1703は、収束判定と逐次更新を表しており、これには既知の多変数関数最適化アルゴリズムを使用することができる。なお、基本的には、λ1〜λnの範囲に制約を与えない最適化アルゴリズムを用い、例えばBFGS法を用いて最適なλ1〜λnを求める。なお、BFGS法の詳細については、例えば、文献(J. C. Nash, “Compact Numerical Methods for Computers. Linear Algebra and Function Minimisation,” Adam Hilger, 1990. ISBN-13: 978-0852743195)に記載されている。
上記(C)の判断が肯定された場合、すなわち、パワー係数の変更によってモデルが改良できると判断された場合には、フィルタパラメータを更新し、上述した(A),(B)の処理を再度実行する。一方、上記(C)の判断が否定された場合、すなわち、パワー係数の変更によってモデルが改良できないと判断された場合には、ステップS1704に移行する。
なお、パワーフィルタリングの挙動を安定させたい場合には、パワー係数λ1〜λnの範囲に制約を課すことが有効である。例えば、本実施形態では、−3≦λi≦3という制約を課してその制約内で最適なλ1〜λnを求めることができる。この目的のためには、本実施形態では、L-BFGS-B法を用いることができる。なお、L-BFGS-B法の詳細については文献(R. H. Byrd, P. Lu, J. Nocedal, and C. Zhu, “A limited memory algorithm for bound constrained optimization,” SIAM Journal on Scientific Computing, 16, pp. 1190?1208, 1995. URL: http://dx.doi.org/10.1137/0916069)に記載されている。
なお、計算量を低減するためには、さらに強い制約を課す方法を採用しても良い。例えば、λの値の選択肢を−1,0,1,2の4つに絞ってその制約内で最適なλ1〜λnを求める方法を採用しても良い。
上記ステップS1703を経て、ステップS1704に移行すると、パワー係数決定手段48は、モデル追加変数探索手段44に対して、応答を返し、図17の全処理を終了する。なお、応答には、モデルBに対応する予測モデルパラメータ76と同形式のデータ、及びモデルBの評価値が含まれる。
図15に戻り、次のステップS1507では、モデル追加変数探索手段44が、モデルBの評価値がメモリDの値より良い(良いモデルの場合に小さい値となるモデル評価値の場合には、比較して小さい)か否かを判断する。ここでの判断が否定された場合には、ステップS1504に戻るが、肯定された場合には、ステップS1508に移行する。
ステップS1508に移行した場合、モデル追加変数探索手段44は、ステップS1505で取り出した変数のメトリクス名をメモリCに格納するとともに、モデルBの評価値(AIC)をメモリDに格納する。また、モデル追加変数探索手段44は、モデルBをモデルAにコピーするとともに、フィルタパラメータ74をメモリEにコピーする。その後は、ステップS1504に戻る。
一方、ステップS1504の判断が肯定された場合、すなわち、全説明変数についてのステップS1505〜S1508の処理が終了した場合、ステップS1509に移行する。ステップS1509では、モデル追加変数探索手段44は、メモリCが空か否かを判断する。ここでの判断が肯定された場合、すなわち、ステップS1508の処理が一度も行われなかった場合には、ステップS1511に移行するが、否定された場合には、ステップS1510に移行する。
ステップS1510に移行した場合、モデル追加変数探索手段44は、メモリCの指す説明変数を改良可能な追加変数として付加情報(モデルB)とともに、変数選択手段50に対して、応答する。
一方、ステップS1511に移行した場合には、モデル追加変数探索手段44は、改良可能な追加変数は「無し」であることを、変数選択手段50に対して、応答する。
上記のようにステップS1510又はステップS1511を経た後は、モデル追加変数探索手段44は、ステップS1512において、メモリEの内容をフィルタパラメータ74にコピーし、図15の全処理を終了する。
なお、変数選択手段50は、モデル追加変数探索手段44からの応答を受け取った段階で、図14のステップS1403に移行する。
ステップS1403では、変数選択手段50は、ステップS1402で得られた応答でモデルを改良可能な追加変数があれば、モデルに追加する。このモデルの追加は、具体的には、応答の付加情報のモデルを表すデータを予測モデルパラメータ76にコピーすることにより行われる。
次いで、ステップS1404では、変数選択手段50が、モデル除去変数探索手段46に要求を送ることで、モデルを改良可能なモデルから除去する説明変数を探索する。そして、変数選択手段50は、モデル除去変数探索手段46からの応答を待つ。この場合の応答は、変数のメトリクス名又は「無し」のいずれかである。応答が「無し」でなければ、応答には、改良されたモデルを表すデータ(予測モデルパラメータ76と同形式)も付加情報として含まれる。また、応答には、偏回帰係数一式(上式(1)のa0〜an)も含まれる。
モデル除去変数探索手段46では、図16のフローチャートに沿った処理が実行される。なお、図16の処理は、図15の処理とほぼ同一の処理である(図16において太線で示す処理が異なっている)。より具体的には、ステップ1501の「モデルAに追加する候補となる変数のリストLを作成」が、ステップ1601において「モデルAに含まれる変数のリストLを作成」となっている点、ステップS1505の「リストLから1つ変数を取り出し、モデルAに加えたモデルBを作成」が、ステップS1605において「リストLから1つ変数を取り出し、モデルAから除去したモデルBを作成」となっている点、及び、ステップS1510、S1511の「追加変数」が、ステップS1610、S1611において「除去変数」となっている点が異なっている。
図16の処理において、モデル除去変数探索手段46から変数選択手段50に対して応答が出されると、図14の次のステップS1405に移行する。ステップS1405では、変数選択手段50が、ステップS1404で得られた応答においてモデルを改良可能な除去変数があった場合に、その除去変数をモデルから除去する。
次いで、ステップS1406では、変数選択手段50は、ステップS1403、S1405のいずれかまたは両方でモデルが変更されたか否かを判断する。ここでの判断が肯定された場合には、ステップS1402に戻り、上記と同様の処理を繰り返す。一方、ステップS1406の判断が否定された場合には、図14の全処理を終了する。このように、本実施形態では、モデルが改良できる間は、説明変数の追加又は削除を行い(ステップS1402〜S1405の処理を繰返し)、モデルが改良できなくなった段階で、図14の全処理を終了する。この図14の処理が終了した時点で、予測モデル学習手段18による学習が終了したことになる。
このようにして学習が終了した段階で、予測モデル学習手段18からは、予測モデルパラメータが予測モデル適用手段26に対して出力される。また、フィルタパラメータ決定手段14からは、フィルタパラメータが第2パワーフィルタ適用手段24に対して出力される。そして、予測手段20においては、これら予測モデルパラメータとフィルタパラメータを用いた障害予測が実行されることになる。以上により、フィルタパラメータ決定手段14と予測モデル学習手段18の処理の説明を終了する。
ここで、本第1の実施形態による障害予測の効果について、本第1の実施形態を用いた実際のデータに対する障害予測結果と、既存技術を用いた障害予測結果とを比較しつつ説明する。
ここでは、評価データとして、実際のソフトウェアプロジェクトである、NASA MDP (Metrics Data Program) リポジトリに収められたデータセット「CM1」を用いることとする。なお、NASA MDPについては文献(NASA IV&V Facility, “Metrics Data Program,” http://mdp.ivv.nasa.gov/)や、文献(G. Boetticher, T. Menzies, and T. Ostrand, “PROMISE Repository of empirical software engineering data,” http://promisedata.org/ repository, West Virginia University, Department of Computer Science, 2007.)から入手することが可能である。ここで、「CM1」はC言語で記述された機器制御アプリケーションである。モジュール数496からなるソフトウェアプロジェクトであり、それぞれのモジュールにつき21種のメトリクスが計測され、障害の有無の情報が与えられている。
本比較では、第1の実施形態の障害予測方法を用いて、10分割交差検定を、異なる分割にて10回行った。その平均の結果を図18(a)に示す。また、比較対象の既存技術として、メトリクス「loc」に対しログフィルタリングを施したロジスティック回帰分析に対しても同様に行った。その平均の結果を図18(b)に示す。
図18(a)では、実際に障害があったモジュールのうち、予測で「障害あり」とされたものは42.5個、予測で「障害無し」とされたものが5.5個であったことを示す。同様に、実際に障害が無かったモジュールのうち、予測で「障害あり」とされたものは151.1個、予測で「障害無し」とされたものが296.9個であったことを示す。図18(b)も同様の内容のデータである。
ここで、予測性能を示す指標として一般的に用いられるものに、精度(Precision)と再現率(Recall)がある。精度は「障害あり」と予測されたもののうち、実際に障害であったものの割合であり、予測の正確さを示す指標である。再現率は、実際に障害であったもののうち、「障害あり」と予測されたものの割合であり、予測漏れの少なさを示す指標である。図18(c)に、図18(a)、図18(b)の結果から算出した、第1の実施形態と既存技術の精度と再現率を示し、また第1の実施形態による上昇倍率を示す。
本第1の実施形態によれば、既存の障害予測技術の前段にパワーフィルタを挿入することにより、精度が1.13倍、再現率が1.10倍上昇していることが判る。
以上、詳細に説明したように、本第1の実施形態によると、障害予測装置100では、第2パワーフィルタ適用手段24が、フィルタパラメータに基づいて、ソフトウェアメトリクスの値にパワー変換を適用して、説明変数を生成し、予測モデル適用手段26が、説明変数と予測モデルとを用いて、二値の判別又は数値を予測する。また、障害予測装置100では、フィルタパラメータ決定手段14が、ソフトウェアメトリクスの過去の値に基づいて、フィルタパラメータを決定し、予測モデル学習手段18が、予測モデルの評価値を求め、当該評価値に基づいて、予測モデル適用手段26で用いる予測モデルパラメータを決定する。この場合、フィルタパラメータ決定手段14は、予測モデルの評価値が適正な方向に変化するように(予測モデルが改良されるように)フィルタパラメータ(パワー係数λ)を更新する処理を繰り返す。また、第2パワーフィルタ適用手段24では、評価値が適正な方向に変化しなくなったとき(これ以上予測モデルが改良されなくなったとき)のフィルタパラメータ(パワー係数λ)を用いる。このように、本第1の実施形態では、パワーフィルタを用いることとしているので、ソフトウェアメトリクスの障害との相関が向上し、これにより、予測性能を向上することができる。また、フィルタパラメータを評価値が適正な方向に変化するように更新する処理を繰り返すので、ある説明変数のためのパワー係数が他の説明変数のためのパワー係数に対して影響を及ぼすような場合でも、現実的な時間で適切なフィルタパラメータの計算が可能となる。また、パワーフィルタを用いることで、過学習に対して頑健で、解釈が容易になるという効果も生じる。
また、本第1の実施形態では、第1メトリクス計測手段12が、ソフトウェアの各種情報からソフトウェアメトリクスの値を計測し、予測モデル学習手段18が、ソフトウェアメトリクスの値にパワー変換を適用したものを説明変数とし、過去障害情報を応答変数として予測モデルパラメータを決定する。これにより、本第1の実施形態では、パワーフィルタを考慮した適切な予測モデルパラメータの決定(予測モデルの学習)が可能となる。
なお、上記第1の実施形態では、評価値が小さいほど予測モデルが良いことを示す場合を例にとり説明したが、これに限られるものではない。評価値としては、予測モデルが良いほど大きい値となるような評価値を採用することとしてもよい。この場合、ステップS1703において、「パワー係数の変更によりモデルを改良可能か判定する」際には、λ1〜λnを変更することにより、評価値がより大きくなるか否かを判定することとすればよい。
《第2の実施形態》
以下、第2の実施形態について説明する。本第2の実施形態は、工数予測を行うための工数予測装置100’に関するものである。図19には、工数予測装置100’の構成(機能ブロック図)が概略的に示されている。
図19の工数予測装置100’は、上述した第1の実施形態の障害予測装置100と比較して、以下の(A)〜(C)の差異を有している。
(A)予測モデル学習手段に入力する応答変数のためのデータとして、外部の過去工数情報DB32’から工数情報データを受け取る。工数情報データは、図20に示すように、モジュールごとに1行、各行ごとにモジュールのIDの項目と工数の実数値(man-hour)の項目の2項目を持つ表形式で表される。
(B)予測モデルが異なる。上記第1の実施形態では式(1)に示すようなロジスティック回帰分析を用いたが、本第2の実施形態では対数線形回帰分析を用いる。すなわち、式(1)を次式(10)に、式(2)を次式(11)に、式(7)を次式(12)に置き換える。
Figure 2013065084
Figure 2013065084
Figure 2013065084
(C)予測結果が異なる。工数予測では、工数予測結果(man-hour)36’が出力される。
その他については、第1の実施形態と同一となっている。
以上説明したように、本第2の実施形態では、上記第1の実施形態と同様の構成を有しているため、工数予測において上記第1の実施形態と同様の効果(予測性能の向上等)を得ることができる。
なお、上記各実施形態では、説明変数となるメトリクスをソースコードに対して計測する場合について説明したが、これに限られるものではない。メトリクスは、例えば、ソフトウェアを構成するデータやそのソフトウェアを開発・保守しているプロジェクトの活動情報に対しても計測することができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) フィルタパラメータに基づいて、ソフトウェアメトリクスの値にパワー変換を適用して、説明変数を生成するパワーフィルタ適用工程と、
前記説明変数と予測モデルとを用いて、二値の判別又は数値を予測する予測モデル適用工程と、
前記フィルタパラメータを決定するフィルタパラメータ決定工程と、
前記予測モデルの評価値を求め、当該評価値に基づいて、前記予測モデル適用工程で用いる予測モデルパラメータを決定する予測モデル学習工程と、をコンピュータが実行し、
前記フィルタパラメータ決定工程では、前記予測モデルの評価値が適正な方向に変化するようにフィルタパラメータを更新する処理を繰り返し、
前記パワーフィルタ適用工程では、前記評価値が適正な方向に変化しなくなったときのフィルタパラメータを用いることを特徴とする予測方法。
(付記2) ソフトウェアの各種情報からソフトウェアメトリクスの値を計測するメトリクス計測工程を、前記コンピュータが更に実行し、
前記予測モデル学習工程では、ソフトウェアメトリクスの値にパワー変換を適用したものを説明変数とし、前記二値又は数値の過去の値を応答変数として予測モデルパラメータを決定することを特徴とする付記1に記載の予測方法。
(付記3) 前記フィルタパラメータ決定工程では、前記フィルタパラメータのとりうる値に制限をかけて前記フィルタパラメータを決定することを特徴とする付記1又は2に記載の予測方法。
(付記4) 前記二値は、障害の有無を示す二値を含むことを特徴とする付記1〜3のいずれかに記載の予測方法。
(付記5) 前記数値は、前記ソフトウェアを変更する工数を含むことを特徴とする付記1〜3のいずれかに記載の予測方法。
(付記6) 前記予測モデルとして回帰分析を用いることを特徴とする付記1〜5のいずれかに記載の予測方法。
(付記7) 前記予測モデルの評価値として、赤池情報量基準(AIC)を用いることを特徴とする付記1〜6のいずれかに記載の予測方法。
(付記8) フィルタパラメータに基づいて、ソフトウェアメトリクスの値にパワー変換を適用して、説明変数を生成し、
前記説明変数と予測モデルとを用いて、二値の判別又は数値を予測し、
前記説明変数を生成する処理で用いる前記フィルタパラメータを決定し、
前記予測モデルの評価値を求め、当該評価値に基づいて、前記予測する処理で用いる予測モデルパラメータを決定する、処理をコンピュータに実行させ、
前記フィルタパラメータを決定する処理では、前記予測モデルの評価値が適正な方向に変化するようにフィルタパラメータを更新する処理を繰り返し、
前記パワー変換では、前記評価値が適正な方向に変化しなくなったときのフィルタパラメータを用いることを特徴とする予測プログラム。
(付記9) ソフトウェアの各種情報からソフトウェアメトリクスの値を計測する処理を、前記コンピュータに更に実行させ、
前記予測モデルパラメータを決定する処理では、ソフトウェアメトリクスの値にパワー変換を適用したものを説明変数とし、前記二値又は数値の過去の値を応答変数として予測モデルパラメータを決定することを特徴とする付記8に記載の予測プログラム。
(付記10) 前記フィルタパラメータを決定する処理では、前記フィルタパラメータのとりうる値に制限をかけて前記フィルタパラメータを決定することを特徴とする付記8又は9に記載の予測プログラム。
(付記11) 前記二値は、障害の有無を示す二値を含むことを特徴とする付記8〜10のいずれかに記載の予測プログラム。
(付記12) 前記数値は、前記ソフトウェアを変更する工数を含むことを特徴とする付記8〜10のいずれかに記載の予測プログラム。
(付記13) 前記予測モデルとして回帰分析を用いることを特徴とする付記8〜12のいずれかに記載の予測プログラム。
(付記14) 前記予測モデルの評価値として、赤池情報量基準(AIC)を用いることを特徴とする付記8〜13のいずれかに記載の予測プログラム。
12 第1メトリクス計測手段
14 フィルタパラメータ決定手段
18 予測モデル学習手段
24 第2パワーフィルタ適用手段
26 予測モデル適用手段
90 CPU(コンピュータ)

Claims (8)

  1. フィルタパラメータに基づいて、ソフトウェアメトリクスの値にパワー変換を適用して、説明変数を生成するパワーフィルタ適用工程と、
    前記説明変数と予測モデルとを用いて、二値の判別又は数値を予測する予測モデル適用工程と、
    前記フィルタパラメータを決定するフィルタパラメータ決定工程と、
    前記予測モデルの評価値を求め、当該評価値に基づいて、前記予測モデル適用工程で用いる予測モデルパラメータを決定する予測モデル学習工程と、をコンピュータが実行し、
    前記フィルタパラメータ決定工程では、前記予測モデルの評価値が適正な方向に変化するようにフィルタパラメータを更新する処理を繰り返し、
    前記パワーフィルタ適用工程では、前記評価値が適正な方向に変化しなくなったときのフィルタパラメータを用いることを特徴とする予測方法。
  2. ソフトウェアの各種情報からソフトウェアメトリクスの値を計測するメトリクス計測工程を、前記コンピュータが更に実行し、
    前記予測モデル学習工程では、ソフトウェアメトリクスの値にパワー変換を適用したものを説明変数とし、前記二値又は数値の過去の値を応答変数として予測モデルパラメータを決定することを特徴とする請求項1に記載の予測方法。
  3. 前記フィルタパラメータ決定工程では、前記フィルタパラメータのとりうる値に制限をかけて前記フィルタパラメータを決定することを特徴とする請求項1又は2に記載の予測方法。
  4. 前記二値は、障害の有無を示す二値を含むことを特徴とする請求項1〜3のいずれか一項に記載の予測方法。
  5. 前記数値は、前記ソフトウェアを変更する工数を含むことを特徴とする請求項1〜3のいずれか一項に記載の予測方法。
  6. 前記予測モデルとして、回帰分析を用いることを特徴とする請求項1〜5のいずれか一項に記載の予測方法。
  7. 前記予測モデルの評価値として、赤池情報量基準(AIC)を用いることを特徴とする請求項1〜6のいずれか一項に記載の予測方法。
  8. フィルタパラメータに基づいて、ソフトウェアメトリクスの値にパワー変換を適用して、説明変数を生成し、
    前記説明変数と予測モデルとを用いて、二値の判別又は数値を予測し、
    前記説明変数を生成する処理で用いる前記フィルタパラメータを決定し、
    前記予測モデルの評価値を求め、当該評価値に基づいて、前記予測する処理で用いる予測モデルパラメータを決定する、処理をコンピュータに実行させ、
    前記フィルタパラメータを決定する処理では、前記予測モデルの評価値が適正な方向に変化するようにフィルタパラメータを更新する処理を繰り返し、
    前記パワー変換では、前記評価値が適正な方向に変化しなくなったときのフィルタパラメータを用いることを特徴とする予測プログラム。
JP2011202102A 2011-09-15 2011-09-15 予測方法及び予測プログラム Expired - Fee Related JP5803469B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011202102A JP5803469B2 (ja) 2011-09-15 2011-09-15 予測方法及び予測プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011202102A JP5803469B2 (ja) 2011-09-15 2011-09-15 予測方法及び予測プログラム

Publications (2)

Publication Number Publication Date
JP2013065084A true JP2013065084A (ja) 2013-04-11
JP5803469B2 JP5803469B2 (ja) 2015-11-04

Family

ID=48188557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011202102A Expired - Fee Related JP5803469B2 (ja) 2011-09-15 2011-09-15 予測方法及び予測プログラム

Country Status (1)

Country Link
JP (1) JP5803469B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018186090A1 (ja) * 2017-04-06 2018-10-11 テンソル・コンサルティング株式会社 モデル変数候補生成装置および方法
CN110033113A (zh) * 2017-12-18 2019-07-19 株式会社日立制作所 信息处理系统及信息处理系统的学习方法
KR20200107392A (ko) * 2019-03-07 2020-09-16 남서울대학교 산학협력단 비선형 회귀 모형 기반 소프트웨어 고장 시간의 예측 방법 및 컴퓨터 판독 가능 기록 매체
CN112231127A (zh) * 2020-09-22 2021-01-15 深圳市裕展精密科技有限公司 电子装置及用于分析设备可靠度的方法
JP2022037107A (ja) * 2017-12-11 2022-03-08 日本電気株式会社 障害分析装置、障害分析方法および障害分析プログラム
US11586981B2 (en) 2017-12-11 2023-02-21 Nec Corporation Failure analysis device, failure analysis method, and failure analysis program

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
CSNG201000116012; 片山真一他: 'ソフトウェアタグを用いた設計文書メトリクスからの低品質モジュールの予測' 電子情報通信学会技術研究報告 Vol.109 No.343 第109巻 第343号, 20091210, 67〜72頁, 社団法人電気情報通信学会 *
CSNG201000186011; 藤本達也他: 'メトリクス値の標準化によるfault-proneモジュール判別モデルの精度向上' 情報処理学会研究報告 平成21年度▲4▼ [CD-ROM] , 20091215, 1〜6頁, 社団法人情報処理学会 *
CSNG201000774021; 門田 暁人 Akito Monden: 'ソフトウェア開発工数予測における線形重回帰モデル再考 Revisiting Multivariate Liner Regression Model' レクチャーノート/ソフトウェア学35 ソフトウェア工学の基礎XVI , 20091130, 237〜244頁, 株式会社近代科学社 *
CSNG201300263002; 宮崎浩一: 'Box-Cox変換とオプション評価' 応用統計学 第34巻 第2号 第34巻 第2号, 20051225, 75〜97頁, 応用統計学会 *
JPN6015002019; 門田 暁人 Akito Monden: 'ソフトウェア開発工数予測における線形重回帰モデル再考 Revisiting Multivariate Liner Regression Model' レクチャーノート/ソフトウェア学35 ソフトウェア工学の基礎XVI , 20091130, 237〜244頁, 株式会社近代科学社 *
JPN6015002020; 片山真一他: 'ソフトウェアタグを用いた設計文書メトリクスからの低品質モジュールの予測' 電子情報通信学会技術研究報告 Vol.109 No.343 第109巻 第343号, 20091210, 67〜72頁, 社団法人電気情報通信学会 *
JPN6015002021; 藤本達也他: 'メトリクス値の標準化によるfault-proneモジュール判別モデルの精度向上' 情報処理学会研究報告 平成21年度▲4▼ [CD-ROM] , 20091215, 1〜6頁, 社団法人情報処理学会 *
JPN6015002022; 宮崎浩一: 'Box-Cox変換とオプション評価' 応用統計学 第34巻 第2号 第34巻 第2号, 20051225, 75〜97頁, 応用統計学会 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018186090A1 (ja) * 2017-04-06 2018-10-11 テンソル・コンサルティング株式会社 モデル変数候補生成装置および方法
JP2018180712A (ja) * 2017-04-06 2018-11-15 テンソル・コンサルティング株式会社 モデル変数候補生成装置および方法
CN110462651A (zh) * 2017-04-06 2019-11-15 天瑟咨询有限公司 模型变量候补生成装置及方法
US11562262B2 (en) 2017-04-06 2023-01-24 Tensor Consulting Co. Ltd. Model variable candidate generation device and method
JP2022037107A (ja) * 2017-12-11 2022-03-08 日本電気株式会社 障害分析装置、障害分析方法および障害分析プログラム
JP7173273B2 (ja) 2017-12-11 2022-11-16 日本電気株式会社 障害分析装置、障害分析方法および障害分析プログラム
US11586981B2 (en) 2017-12-11 2023-02-21 Nec Corporation Failure analysis device, failure analysis method, and failure analysis program
CN110033113A (zh) * 2017-12-18 2019-07-19 株式会社日立制作所 信息处理系统及信息处理系统的学习方法
CN110033113B (zh) * 2017-12-18 2023-06-20 株式会社日立制作所 信息处理系统及信息处理系统的学习方法
KR20200107392A (ko) * 2019-03-07 2020-09-16 남서울대학교 산학협력단 비선형 회귀 모형 기반 소프트웨어 고장 시간의 예측 방법 및 컴퓨터 판독 가능 기록 매체
KR102172120B1 (ko) 2019-03-07 2020-10-30 남서울대학교 산학협력단 비선형 회귀 모형 기반 소프트웨어 고장 시간의 예측 방법 및 컴퓨터 판독 가능 기록 매체
CN112231127A (zh) * 2020-09-22 2021-01-15 深圳市裕展精密科技有限公司 电子装置及用于分析设备可靠度的方法

Also Published As

Publication number Publication date
JP5803469B2 (ja) 2015-11-04

Similar Documents

Publication Publication Date Title
US10846643B2 (en) Method and system for predicting task completion of a time period based on task completion rates and data trend of prior time periods in view of attributes of tasks using machine learning models
US11281969B1 (en) Artificial intelligence system combining state space models and neural networks for time series forecasting
US11036483B2 (en) Method for predicting the successfulness of the execution of a DevOps release pipeline
JP5803469B2 (ja) 予測方法及び予測プログラム
US10318874B1 (en) Selecting forecasting models for time series using state space representations
US11599740B2 (en) Computer-based systems, computing components and computing objects configured to implement dynamic outlier bias reduction in machine learning models
US11037096B2 (en) Delivery prediction with degree of delivery reliability
US20210117839A1 (en) Proactively predicting transaction dates based on sparse transaction data
TWI598812B (zh) 判定用於軟體開發之經推薦之最佳化策略
Idowu et al. Asset management in machine learning: A survey
CN107516148B (zh) 系统建模优化方法及存储介质
Yang et al. Designing fuzzy supply chain network problem by mean-risk optimization method
Becker Big data usage
JP2020149693A (ja) 生成装置、生成方法および生成プログラム
Sanyal et al. Simulation and big data challenges in tuning building energy models
US20200050982A1 (en) Method and System for Predictive Modeling for Dynamically Scheduling Resource Allocation
Kossmann et al. Self-driving database systems: a conceptual approach
CN104182489A (zh) 一种文本大数据的查询处理方法
US10896388B2 (en) Systems and methods for business analytics management and modeling
US20220027739A1 (en) Search space exploration for deep learning
CA3119351A1 (en) Extending finite rank deep kernel learning to forecasting over long time horizons
Hung et al. Garch models in forecasting the volatility of the world’s oil prices
JPWO2009011057A1 (ja) アプリケーション解析プログラム、アプリケーション解析方法およびアプリケーション解析装置
Miller et al. Supporting a modeling continuum in scalation: from predictive analytics to simulation modeling
JP2016532949A (ja) 従来の予測子の将来的変化を予測するためにある期間にわたって精選され、分析されたデータシグナルから重大変化属性を導出するためのシステム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150326

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: 20150804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150817

R150 Certificate of patent or registration of utility model

Ref document number: 5803469

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees