次世代ソフトウェア信頼性評価技術の開発 とその実装 - IPA · 2019. 4. 1. ·...

Preview:

Citation preview

次世代ソフトウェア信頼性評価技術の開発とその実装

広島大学大学院工学研究科

教授 土肥正(研究責任者)准教授 岡村寛之(研究分担者)助教 肖霄(研究分担者, H25.9月まで)RA 羅超, 鄭俊俊, 易志鵬,

斉藤靖洋 (研究分担者)

1

第2回産学連携のためのソフトウェア・シンポジウム

平成26年5月22日, IPA/SEC

2013年度ソフトウェア工学分野の先導的研究支援事業

2

1. 背景・課題

信頼性評価の意義

システム開発プロジェクト(システムライフサイクル)におけるプロダクト品質に関する管理項目

目に見えないシステム品質である「信頼性」を見える化 (定量化)

品質保証のためのベストプラクティス

定量的な信頼性評価の効果

定量的な品質測定(当たり前品質としての ``信頼性の役割’’ )

システム出荷判定・受け入れ判定

資源(人・金・物)配分の管理: 効率の良い開発労力(人員)の配分

保守プロセス計画: 保守(パッチなど)のリリース計画

テスト工程におけるソフトウェアの品質測定

ソフトウェア製品の信頼性を定量化

3

4

2. 研究目標

開発現場で獲得し得る情報水準に応じて信頼性評価の方法を分類する次世代のソフトウェア信頼性評価技術の体系化

信頼性評価の妥当性検証を可能にすること

管理技術,開発手法へフィードバック可能な情報を与えること

実証ソフトウェア信頼性工学 (Empirical Software Reliability Engineering)

信頼性と可観測な要因の因果関係の解明

開発情報とソフトウェア信頼度の相関のモデル化

確率・統計に基づいた要因分析

確率・統計に基づいた従来のソフトウェア信頼度の見積もり

ソフトウェア信頼性評価技術の啓蒙

モデルと推定手続きの標準化

ツール開発

5

委託研究における研究課題

開発現場で成し得る情報計測の様々な階層に対応して, 開発情報を信頼性評価に如何に利用するか?

開発規模,テスト労力,網羅度のような既に要約されたメトリクスデータが利用可能な場合

テストケースの詳細な情報が利用可能な場合

メトリクスを抽出することなく, ソースコードの静的分析結果が利用可能な場合

ツール化における基本方針 (2種類のツール開発)

汎用的な表計算ソフトウェア(Microsoft Excel) の拡張機能(AddIn)として開発

統計ソフト R の機能を活用することで安定した統計処理計算を実現

6

委託研究課題の俯瞰

3. ツール開発

ツール開発規模とアーキテクチャ

計算カーネル・C++による開発(約 6,500 LOC)・NHPPモデルに対する既存のEMアルゴリズム・GLM(一般化線形モデル)に対する重み付き最小二乗法・GLMに対する罰則付き最尤法・一般化線形モデルを適用した信頼性モデルに対する

EMアルゴリズム(罰則あり/なし)

Excelインタフェース (MSRATS)・C#による開発(約 14,500 LOC)・ユーザインタフェースとグラフ描画

Rインタフェース (Rsrat)・R言語による開発(約 1,000 LOC)・ユーザインタフェース・ランダムフォレスト,ABIC最適化をR言語により実装

Excelツール R

計算カーネル

DLL 動的リンク

7

ツールの基本的な機能

一般化線形モデル

NHPP, Poisson回帰,Logistic回帰, 統合化モデル (GLM)

最尤法・罰則付き最尤法によるパラメータ推定

情報量基準 (AIC) によるモデル選択

信頼性評価(平均値関数, 強度関数, FFP)尺度の算出

信頼性評価尺度の描画機能(Excelツール)

カーネル回帰モデル

カーネル値をデータとして入力(カーネル値の計算は外部ツールに依存)

罰則付き最尤法によるパラメータ推定

情報量基準 (ABIC) による正則化パラメータの推定(Rツール)

信頼性評価(平均値関数, 強度関数, FFP)尺度の算出

8

分析対象となるシステム構成とデータ構造

9

全体システム

モジュール 1 モジュール 2 モジュール 3

…..…

..

フォールトデータ

(時系列データ)

静的メトリクス

動的メトリクス

フォールトデータ

(時系列データ)

静的メトリクス

動的メトリクス

フォールトデータ(時系列データ)

静的メトリクス

動的メトリクス

データ構造

フォールト検出データ

メトリクスデータ

静的メトリクス

動的メトリクス

MSRATS (Metrics-based Software Reliability

Assessment Tool on Spreadsheet) の基本構成

フォールトデータのみの解析NHPP 信頼性モデル (SRATS) ~ 既存ツール ~11種類の典型的なNHPPモデル

フォールトデータと動的メトリクスのみの解析ロジスティック回帰 NHPP 信頼性モデル

フォールトデータと静的メトリクスのみの解析ポアソン回帰 NHPP 信頼性モデル

フォールトデータ, 静的メトリクス, 動的メトリクスの解析一般化線形 (GLM) ソフトウェア信頼性モデル (MSRATS)

10

フォールトデータ(時系列データ)

フォールトデータ(時系列データ)

動的メトリクス

フォールトデータ(時系列データ)

フォールトデータ(時系列データ)

静的メトリクス

静的メトリクス

動的メトリクス

MSRATS の機能

Microsoft ExcelのAddInとして作成したツール

Excelのスプレッドシートからのデータ入力 時刻データ・個数データの両方に対応するデータ入力形式 パラメータ推定および信頼性尺度計算の自動化 Excelのグラフ描画機能を利用した信頼度関数などのグラフ描画

予測総バグ数:単一のソフトウェアモジュール(プログラム単位 or システム単位)に内在する総バグ数の予測値

予測残存バグ数:単一のソフトウェアモジュール(プログラム単位 or システム単位)に現時点で残存しているバグ数の予測値

ソフトウェア信頼度関数:一定期間中にバグが発見されない確率 FFP (fault-free probability):現在のモジュールにバグがない確率 各種MTTF(mean time to failure),累積MTTF,瞬間MTTF,条件付きMTTF:

バグ発見までの平均時間 Median,Betenlife:信頼度が0.5, 0.1になるまでの時間

11

12

事例: Tomcat 6 (オープンソース・ソフトウェア)

一 般化線形モデルにおいて, ソフトウェアメトリクスの情報が信頼性評価に与

える影響について評価

実際のオープンソースプロジェクトデータを対象に, NHPP モデル, Poisson

回帰モデル, Logistic 回帰モデル, 統合モデルを比較

4. ツールの実行例

Tomcat 6

Catalina Connectors Jasper Manager Servlet

Java 言語254,180 行5 モジュール

Files(Fl): ファイル数Lines(Ln): コード行数Statements(St): ステートメント数%Branches(Br): 分岐の出現率Calls(Ca): メソッドの呼び出し回数%Comments(Cm): コメントの出現率Classes(Cl): クラス数Methods/Class(Me/Cl): 単一クラスあたりのメソッド数AvgStmts/Method(St/Me): 単一メソッドあたりのステートメント数MaxComplexity(MCx): 最大複雑度MaxDepth(MDp): 最大のネストの深さAvgDepth(ADp): 平均のネストの深さAvgComplexity(ACx): 平均複雑度

「Source Monitor」: ソースコードから行数やコメントの割合、複雑度などを計測するツール

事例で用いる静的メトリクス

13

time: テスト日数ctime: 累積テスト日数comments: Bugzilla 上での該当モジュールに対するコメント数votes: Bugzilla 上での該当モジュールに対する投票回数wokers: コメントを投稿した人の数(Tomcat5のみ)

その他の動的メトリクス

累積実行テストケース数累積テスト労力 (person hr)バグレポート枚数・・

事例で用いる動的メトリクス

14

フォールトデータと動的メトリクスのみの解析ロジスティック回帰 NHPP 信頼性モデル (LSRATS)

連接関数:• Logit• CLogLog

• 推定• 初期化• 報告出力

動的メトリクス

15

出力形式(信頼性評価結果)

16

ソフトウェア強度関数の推定結果

17

平均値関数の推定結果

18

フォールトデータ, 静的メトリクス, 動的メトリクスの解析一般化線形 (GLM) ソフトウェア信頼性モデル (MSRATS)

19

フォールトデータと動的メトリクスのデータ入力

20

静的メトリクスに対する回帰係数の推定

回帰係数 AIC

21

出力形式(信頼性評価結果)

22

推定結果

23

24

従来の信頼性評価ツールと比べてどのように優れた信頼性評価が可能になるか?

既存の信頼性評価ツールは,有料ツールと無償ツールの種類に拘わらず, フォールト検出数データなど極めて限定された統計情報しか取り扱えない

ソフトウェアメトリクス,テスト入出力情報,ソースコード情報からソフトウェアの信頼性を特徴づける情報を抽出し,極めて精度の高い定量的信頼性評価を実現することが可能

各テスト工程で観測されたテスト実績や開発データに基づいて, 製品の信頼性を高い精度で推定することが可能

モデル選択に要する労力はほとんど必要なく,自動的かつ手軽に信頼性評価が行える

5. 開発現場における適用性

25

企業のソフトウェア開発者は、どのようなデータを収集し、何をする必要があるか?

テストにおいて計測されるフォールト数データ(グループデータ)

プログラムの規模や複雑性を表すソフトウェアメトリクス(静的メトリクス)

テスト進捗状況や管理状況の推移を表すソフトウェアメトリクス(動的メトリクス)

プログラムの正誤判定を規定するテストケース(入力値と期待出力の組)の距離

ソースコード自体からソースコード分析を通じて得られる各種情報(コードクローン)

Contd.-

26

企業におけるソフトウェア開発にどのように活用できるか?

テスト作業者が定量的信頼性評価の観点からテストの進捗状況を手軽に把握することが可能

開発管理の立場から, 製品の出荷判定の根拠となる説明資料として定量的信頼性評価結果を用いることができる

ソフトウェア信頼性がどのように可視化できるのか?

テスト工程で観測される総期待累積発見フォールト数,各テスト時間単位で発見される期待フォールト数(ソフトウェア強度),ソフトウェアMTBF(Mean Time Between Failures),累積MTBF,FFP(Fault Free Probability) などの定量的信頼性評価尺度を推定

回帰係数の推定結果から,設計上の問題点や開発管理上の問題点の所在を統計的に推論することができ, どのメトリックが製品の信頼性に影響を及ぼすかを統計的に判定することが可能である

Contd.-

27

6. 成果概要

ソフトウェアメトリクス情報を活用した信頼性評価技術の確立

一般化線形モデル(Poisson 回帰, Logistic 回帰, 統合モデル)の開発

EM アルゴリズムの開発と実装

Excel (表計算ツール)とR(統計解析ツール)に基づいたツールの開発

テストケースの入力の距離を信頼性評価技術に適用する試み

テストケースの距離情報とカーネル回帰による信頼性評価技術の開発

Excel とRに基づいたツールの開発

ソースコード分析結果を信頼性評価技術に適用する試み

コードクローンによるファイル間類似度を考慮した信頼性評価技術の開発

Excel とRに基づいたツールの開発

Recommended