研究実績の概要 |
本研究では, ブースティングやランダムフォレスト等のデータマイニング技術を応用することでリポジトリに格納される情報をランダムに分割し, 分割されたデータを並列的に統計処理することで,複数のリポジトリに埋蔵されている情報を発掘し,それらを有効に活用したソフトウェア信頼性評価の体系を構築することを目指している.同時に,そのようなソフトウェア信頼性評価の体系を実現するためのアルゴリズム開発とそれを実装したツールの開発を行った. 具体的に,ランダムなデータ分割後に,それぞれのデータに対して NHPP (非定常ポアソン過程) を仮定した一般化線形回帰モデルを適用し,その結果を集約することで,信頼性評価モデルの同定を行った.このような,ランダムなサンプリングに基づくデータ分割は,大規模な組合せ最適化問題に帰着される要因選択を排除できることが知られている.また,個々の回帰係数を理論的に推定する方法としては,最尤推定法だけでなく, ベイズ推定法, ウェーブレット縮小推定法の適用を考え,各々の推定作業の計算コストを削減するために EM (Expectation-Maximization) アルゴリズム, 変分ベイズアルゴリズム, MCMC (Markov Chain Monte Carlo) 法の導入を行った.さらに,並列計算における各スロットからのアウトプットを平均化することで,未知変数の予測分布やその推定値を精度良く求めるための理論的な枠組みを新たに構築した. 現在, オープンソースプロジェクトのリポジトリを対象にして有効性を検証するための実証分析を行うための準備を実施中であり、研究計画の最終年度に向けて準備を行った.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
(1)信頼性評価尺度の算出とアラーム・判定機能の設計: ソフトウェア信頼性モデルを特徴づけるパラメータが推定されると, その結果を定量的信頼性評価尺度の評価(ソフトウェア信頼度, ソフトウェアMTTF, 期待残存フォールト数, フォールトフリー確率, 他)に適用し, リリース判定と前工程のフィードバック評価を行った. 特に大規模ソフトウェアのリポジトリ活用では多くの回帰パラメータの推定値が求まるので, 各々のパラメータと工程の評価項目(開発労力, テストケース数, プログラム複雑性などに関する複数項目)を合致させる必要があった. これを分析結果に応じて逐次検討することは大変コストがかかるため, 予め選択されたメトリクス情報の集合と評価項目のマッチングを自動的に行い, 前工程のフィードバック評価を実現するツールの開発を行った. (2)未踏プロジェクトへの対応: 類似開発プロジェクトや同質的な種別や規模のシステムに対しては, 過去の開発情報を利用したプラグイン推定を行うことが可能であるが, これまでに開発経験のない未踏プロジェクトにおける定量的信頼性評価を行うためには, 過去の開発情報から推定された回帰パラメータをそのまま利用することは出来ない. このような統計的予測推論では統計量の予測分布を導出しなければならないが, 一般的には技術的に困難な問題が数多く存在する. しかしながら, 本研究で提案したランダム分割の手法を用いることで, 各並列計算タスクから出力された推定量を独立で同一な確率変数として見なせるため, 統計的ブートストラップの方法を適用することが可能となった. これにより, 各種信頼性評価尺度やパラメータの予測分布を数値的に算出することが出来た.
|
今後の研究の推進方策 |
(1) 実証分析: 本研究で提案する大規模ソフトウェアリポジトリに対する定量的信頼性評価の方法を, いくつかの実在するオープンソースプロジェクトに適用し, その有効性を検証する. リポジトリに格納されているデータの種類によっては, アラーム・判定機能をそのまま適用することが困難である場合も予想される. また, ランダム分割や並列計算のスロットを調整することで扱うことの出来るデータサイズを同定し, NHPPベースの一般化線形モデルの粒度を決定する必要がある. これには大規模なデータ解析を試行錯誤的に行う予定である. (2) プロトタイプ開発: H27とH28の各研究フェーズで開発したツールを結合し, ソフトウェア信頼性評価のためのビッグデータアナリシス基盤整備のための基本ツールの開発を行う. 今年度に開発を予定しているバグトラッキングシステムとの互換性やリポジトリのデータ構造の統一化作業を行い, 実験ベースで利用可能なプロトタイプ開発を目指す. リポジトリのサイズが大きくなればなる程, ツールのテストケースの数は膨大となることが予想されるため, 2か月間のテスト期間を準備する予定である. 開発ツールは, 従前までに開発した各種信頼性評価ツール (SRATS, RSRATS) を特別な場合として含むため, これらの評価結果との整合性を確認しながら, 開発ツールの問題点を洗い出す作業を行う. また, 企業におけるシステム開発者との懇談の機会を設け, 実務の観点から改良点等の指摘事項を検討する予定である.
|