147

数理解析研究所講究録
第2078巻 2018年 147-153

ソフ トウェア信頼性評価と最適リ リース時刻推定のためのNW.js に基づくアプリケーションソフ トウェアの開発

東京都市大学

知識工学部田村慶信 (Yoshinobu Tamura)$\dag er$$\dag er$Faculty of Knowledge Engineering, Tokyo City University
烏取大学大学院 工学研究科山田茂 (Shigeru Yamada) \uparow$\dag er$\mathrm{i}\upar ow
Graduate School of Engineering, Tottori University

1

はじめに
一般的に,ウォーターフォールモデルに代表されるように,要求仕様定義設計

トコーディング

テス

運用保守の流れでソフトウェアの開発および保守が行われている.特に,ソフトウェア開発のテス

ト工程は,ソフトウェア品質を定量的に評価するだけでなく,ユーザに対するリ リース (出荷) 時期の決定にも関係することから,非常に重要な工程となる.従来から,テスト工程におけるソフトウェアの信頼性を評価するための数理モデルとして,これまでに数百におよぶソフトウェア信頼性モデルが提案されてきた [1−3]. 本論文では,ソフトウェア信頼度成長モデル (software reliability growth model, 以下SRGM と略す) に基づくソフトウェアツールの開発を通して,NWjsを適用したアプリケーションソフトウエアの実装事例について紹介する.同様の Web アプリケーション開発フレームワークとして統計言語 \mathrm{R} による Shiny が存在する.しかしながら,Shiny の場合には,\mathrm{R} のソースコード部分にグラフ描画に必要なコードを記載する必要がある.さらに,大規模なデータを扱うような場合においては,処理速度などの問題からネイティブアプリケーションとして実行する方が望ましいケースもある.NWjsは,オープンソースソフトウエア (open source software, 以下 OSS と略す) [4] のアプリケーション開発フレームワークとして知られており,HTML, CSS, およびJavaScriptで書かれた Web アプリケーションを,Windows Mac Linux をターゲットとしたデスクトップ向けにパッケージングし,ネイティブアプ\cdot\cdotリケーションとして実行するためのクロスプラットフォーム実行環境である.本開発ツールの紹介を通して,研究において利用してきた統計言語 \mathrm{R} のソースコードを有効かつ迅速に再利用できることを示す.

特に,ソフトウェア開発のテスト工程を動的に評価するための数理モデルとして,数多くのソフトウェ

ア信頼性モデルが提案されてきた [2]. また,ソフトウェア開発支援ツールも , いくつか提案されている.
本論文では,SRGMに基づくソフトウェアツールの開発を通して,最新のアプリケーション開発技術である NW js と,統計言語 \mathrm{R} のggplot2およびplotly ライブラリを利用したソフトウェアツールの実装事例について議論する.さらに,実際のフォールトデータを利用したソフトウェアツールの実行例を示す.

2

SRGMに基づくソフ トウエア信頼性評価と最適リ リース問題の概要
非同次ボアソン過程 (nonhomogeneous Poisson process, 以下 NHPP と略す) モデルは,実利用上極めて有効でありモデルの簡潔性が高いゆえにその適用性も高く,実際に企業組織などにおけるソフトウェ
ア信頼性評価に広く応用されている.このNHPPモデルは,所定の時間区間内に発見されるフォールト数や発生するソフトウェア故障数を観測して,これらの個数を数え上げる計数過程 \{N(t), t\geq 0\} を導入

148

し,以下の式で与えられる確率過程すなわちボアソン過程を仮定するSRGMである [2].

\displaystyle \mathrm{P}\mathrm{r}\{N(t)=n\} = \frac{\{ $\Lambda$(t)\}^{n} {n!}\exp[- $\Lambda$(t)](n=0,1,2, \cdots) .

(1)

ここで, \mathrm{P}\mathrm{r}\{. \} は確率を表し, $\Lambda$(t) は時間区間 (0, t ] において発見される総期待フォールト数,すなわちN(t) の期待値を表し,NHPP の平均値関数と呼ばれる.
本論文において開発されたアプリケーションソフトウェアに採用したSRGMを以下に示す.
. 指数形 SRGM$\Lambda$(t)\equiv E(t)=a(1-e^{-bt}) (a>0, b>0) .

(2)

ここで, \mathrm{E}(t) は時間区間 (0_{j}t ] において発見される累積フォールト数の期待値を表す.パラメータaは最終的に発見される総期待フォールト数,パラメータ b はフォールト 1個当りのソフトウェア故障発見率またはフォールト発見率を表す.
\bullet遅延 \mathrm{S} 字形 SRGM$\Lambda$(t)\equiv S(t)=a\{1-(1+bt)e^{-bt}\} (a>0, b>0) .

(3)

指数形 SRGM の場合と同様に, S(t) は時間区間 (0_{-}.t ] において発見される累積フォールト数の期待値を表す.
\bullet

対数型ボアソン実行時間モデル$\Lambda$(t)\displaystyle \equiv $\mu$(t)=\frac{1}{ $\theta$}\ln[$\lambda$_{0} $\theta$ t+1] (0< $\theta$, 0<$\lambda$_{0}) .

(4)

ここで,パラメータ $\lambda$_{0} は初期故障強度,パラメータ $\theta$ はソフトウェア故障1個当りの故障強度の減少率を表す.

上述したSRGMから,最適リ リース問題として,テスト工程におけるコスト評価基準に基づく最適リ リース時刻を推定することが可能となる [5, 6]. なお,モデルの性質上,総期待ソフトウェアコストについては,指数形SRGMおよび遅延 \mathrm{S} 字形SRGMについて議論する.まず,以下のようなコストパラメータを定義する.
c_{1} :

総合テスト工程におけるフォールト 1個当りの修正コスト,

c_{2} :

総合テスト工程における単位時間当りのテストコスト,

c_{3} :

リ リース後のフォールト 1個当りの修正コスト.

このとき,総合テスト工程におけるソフトウェアコストは,以下のように定式化できる.

C_{1}(t)=c_{1} $\Lambda$(t)+c_{2}t .

(5)

また,リ リース後におけるソフトウェアの修正コストは次式で与えられる.

C_{2}(t)=c_{3}\{a- $\Lambda$(t)\} .

(6)

上記から,総期待ソフトウェアコストは,以下のように定式化できる.

C(t)=C_{1}(t)+C_{2}(t) .

式(7) を最小にする時刻 t^{*} が最適リ リース時刻となる.

(7)

149

NW.js
\mathrm{R}html

index.html

I.html (figures)

ggplot2\downarow

ggp otly

図1 : アプリケーションソフトウェアの構造.

3

アプリケーションソフ トウエアの開発
本論文において開発されたソフトウェアツールの特徴は,研究成果を迅速に実社会における現場へ提供できる点にある.特に,様々な分野において利用されている研究用のツールとして,統計言語 \mathrm{R} が良く知られている.この統計言語 \mathrm{R} において提供されているグラフ描画のためのパッケージとして ggplot2がある.さらに,このggplot2の付属パッケージとして JavaScript グラフライブラリとして知られる plotlyが存在する.plotly は,ggplot2によって作成されたグラフを JavaScript を含む html 形式に出力する.
出力されたグラフには,拡大,縮小,特定項目の抽出,画像ファイルとしての出力など,様々なインタラクティブな機能を有している.この2種類のライブラリとNW.jsを組み合わせることにより,ネイティブアプリケーションを容易に開発することが可能となる.本論文におけるアプリケーションソフトウェ
アの概念図を図1に示す.

本論文において開発されたアプリケーションソフトウェアには,SRGMに基づく信頼性評価尺度および最適リリース問題を考慮するために,以下のような定量的評価尺度を採用する.
\bullet

期待累積発見フォールト数\bullet

期待残存フォールト数\bulletMTBF (平均ソフトウェア故障発生時間間隔)\bullet

総期待ソフトウェアコスト

また,SRGMの実測データに対する適合性を評価するために,赤池情報量規準 (Akaike’s informationcriterion, 以下 AIC と略す) を用いる.

4開発されたツールの実行例実際のソフトウェア開発プロジェク トにおけるフォールトデータ [7] に基づくアプリケーションソフトウェアの実行結果を示す.

本ツールのメイン画面を図2に示す.また,本ツールのメニュー画面を図3に示す.まず,実際のソフ トウェア開発プロジェク トにおけるフォールトデータを分析したアプリケーションソフトウェアの実行例として,AIC の推定結果を図4に示す.図4から,指数形SRGMの実測データに対する適合性が,他のSRGMと比較して良好であることが確認できる.また,ソフトウェア信頼性評価尺度および総期待ソフトウェアコストの推定例を図 5\sim 図8に示す.図5∼図7から,全てのモデルにおいて,テスト時間の経過とともに信頼度が成長している様子が確認できる.さらに,図8から,指数形SRGMにおける最適リ リース時刻はテスト開始から43 ケ月目であり,そのときの総期待ソフトウェアコストは6534.9であ150

図2 : 開発されたツールのメイン画面.

図3 : 開発されたツールのメニュー画面.

ることが分かる.同様に,遅延 \mathrm{S} 字形SRGMにおける最適リ リース時刻はテスト開始から22 ケ月目であり,そのときの総期待ソフトウェアコストは5567.1であることが分かる.

5

おわりに現在,多くのソフトウェア開発現場で,OSS が利活用されている.特に,OSS を利用することにより,コスト削減,単納期,標準化などが可能となることから,様々なソフトウェア開発プロジエクトにおいても OSS が積極的に採用されている.同様に,研究環境についても,OSS を利用することで,低コストで研究成果を実社会における現場へ迅速に提供することが可能となる.

151

図4: AIC の推定結果.
. \bullet \bullet

ulI $\varepsilon$ blĩ $\nu$ Assessment \mathrm{T}\infty \mathrm{I} Based on Seftvvir. RellablUty Growth MocSets

DATA
4000

-\mathrm{A}\propto \mathrm{u}\cdot \mathrm{I}= -- \lcornemathr{}\mathr{M}\mathr{o}M[\mathr{x}$\mu athrm{n}\cdotmahr{n}|_1\cdotmahr{M}\mathr{o}\subetqcdo\mathr{I}— 5 shaped \mathrm{M}\mathrm{o} $\omega$\per 3\lrconer$\mu$_{0 }oEucwo\mathr{z}supet\mahr{z}#\geq0 mathr{}\cupmathr{z}5_0\mathr{F} mu3>\spet02^{\cdot}010$\Pi$ ME

図5 : 推定された累積発見フォールト数.

本論文では,ソフトウェア開発プロジェクトのテスト工程において,ソフトウェア品質を定量的に評価するために広く応用されている SRGMに基づく信頼性評価ツールを,OSS に基づくアプリケーションソフトウェアとして実装した.特に,開発されたアプリケーションソフトウェアの実装手法には,統計言語 \mathrm{R} のggplot2およびplotly ライブラリが利用されており,これらのライブラリとNW js を組み合わせることで,統計言語 \mathrm{R} を利用した研究用資産を有効利用できるだけでなく,研究成果を迅速に実社会におけるソフトウェア開発現場へ提供できるものと考える.

本論文で実装されたアプリケーションソフトウェアには,NWjs, 統計言語 \mathrm{R}, \mathrm{g}\mathrm{g}\mathrm{p}\mathrm{l}\mathrm{o}\mathrm{t}2 , およびplotlyという JavaScript ライブラリが利用されている.これらは,OSS として開発および公開されており,無152

Rehobllity k\infty\ovalbox{\tt\small REJECT} \mathrm{T}\infty \mathrm{I} Based on Softwaĩe \mathrm{R}\mathrm{o}\triangleright u|\mathrm{t}\mathrm{y} Growth Models

DATA-\mathrm{A} $\alpha$([xp )— \mathrm{A}\propto\l corner \mathrm{a}\mathrm{I} ( \mathrm{S} sheped)— \mathrm{E}\mathrm{i}\mathrm{p}\mathfrak{m}\cdot \mathrm{n}\mathfrak{h}*\mathrm{I} Mode\mathr{L}\mathr{o}0\supetlrcone\vdash$\omega$— 5‐ \mathfrak{s} haped Moael《\mathr{z}supe\mathr{z}$vpi\mathr{u}$lp\ci0 orne

\displaytecu\m_{spet}xi\mahr{F}>tmu_0}

10\mathrm{T}\mathrm{M}\mathrm{E}

図6: 推定された残存フオールト数.
Rsbbl\mathrm{I}| $\phi$ k\infty\ovalbox{\t \small REJECT} \mathrm{T}\infty 1 Based on Software Rehbility Growth Models

DATAon 】00-\mathrm{E}\mathrm{p}\mathfrak{o}\mathrm{n}\mathrm{r}| \cdot| Mod.l— * $h.ped M0de |— LPET \mathrm{M}0\mathrm{d}\mathrm{e}|\displayte\cornfa{\lrcone}tiaglef}5)07\mathr{u}$\omega\tilde{mahrn}ovbxsREJCTu\tm{ahrz}ciE_n\mt{o50}geqralf$phu$\Sigma thr{u}\iangleftsm01\athrm{b} P=\mathr{u}
onooo

1020

TIME

図7: 推定されたMTBF.

料で迅速に実装することが可能となる.特に,本実装方法により,研究による提案手法などの内容を詳細に理解していなくとも,誰でも利用可能な形式で頒布することができる.本論文における実装方法は,研究者にとっても,GUI のみの実装を行うだけで済むことから,研究成果を社会へ迅速に還元することが可能となる参考例として役立つものと考える.なお,開発されたアプリケーションソフトウエアは以下のサイ トから利用できる.

http: / \mathrm{t}\mathrm{a}\mathrm{m} .ims.tcu. ac.jp/

153\mathrm{R}$\varepsilon$\mathrm{I}4\mathrm{b}\mathrm{l}\mathrm{I}\mathrm{i}$\phi$ Assessment \mathrm{T}\infty \mathrm{I} Based on Seftw.re \mathrm{R}9\mathrm{I}*u| \mathrm{t}\mathrm{y} Growth Models

DATA-\mathrm{E}\mathrm{p}0\cap\cdot m|\cdot|\mathrm{M}\mathrm{M}\cdot|-*\cdot n9000\cup mathrm{a}_\mathrm{o}\mathrm{o}\mathrm{o}\vdash.

\tilde{$omgacrvbxsREJCT}nf\lph$mt{u7000\overline{\circ}.025

フ5\mathfrak{n}\mathrm{M}\mathrm{E}

図8: 推定された総期待ソフトウェアコスト.

謝辞
本研究の一部は,JSPS科研費基盤研究 (C) (課題番号 15\mathrm{K}00102 および 16\mathrm{K}01242 ) の援助を受けたことを付記する.

参考文献[1] M.R. Lyu, ed., Handbook of Soflware Reliability Engineering, IEEE Computer Society Press, LosAlamitos, CA, 1996.

[2] S. Yamada, Software Reliability Modeling: Fundamentals and Applications, Springer‐Verlag,
Tokyo/Heidelberg, 2014.

[3] P.K. Kapur, H. Pham, A. Gupta, and P.C. Jha, Software Reliability Assessment uyith OR Appli‐
cations, Springer‐Verlag, London, 2011.

[4] S. Yamada and Y. Tamura, OSS Reliability Measurement and Assessment, Springer‐Verlag, Lon‐don, 2016.

[5] S. Yamada and S. Osaki, Cost‐reliability optimal software release policies for software systems(IEEE Transactions on Reliability, vol. R‐34, no. 5, pp. 422‐424, 1985.

[6] S. Yamada and S. Osaki, “Optimal software release policies with simultaneous cost and reliability
requirements,” European Journal of Operational Research, vol. 31, no. 1, pp. 46‐51, 1987.

[7] W.D. Brooks and R.W. Motley, Analysis of Discrete Software Rehabihty Models, Technical Report
RADC -\mathrm{T}\mathrm{R}-80-84 , Rome Air Development Center, Berlin, 1980.