鳥取環境大学紀要
第 4 号（2006.2）pp.129 −137

オープンソースソフトウェア開発における信頼性評価：モデルと応用
Reliability Assessment in Open Source Software Development:
Model and Application

田村慶信

山田

TAMURA Yoshinobu

茂＊

YAMADA Shigeru

最近のソフトウェア開発は、クライアント／サーバ・システムや Web プログラミング、オブジェクト指向開発、ネットワーク環境での分散開発といったネットワーク技術を基盤とする新しい開発形態が多用されるようになってきている。ネットワーク型開発形態の代表的な成功例として、オープンソースソフトウェア（open source software、以下 OSS と略す）が挙げられる。これは、世界中の誰もが開発に参加でき、ソースコードが公開され、誰でも自由に改変することが可能なソフトウェアであり、組込みシステムやサーバ用途として広く採用されている。本論文では、オープンソースプロジェクトの下で開発されたオープンソースソフトウェアに対する信頼性評価法について議論する。特に、AHP またはニューラル
ネットワークとソフトウェア信頼度成長モデルを融合した信頼性評価法について議論する。さらに、実際のオープンソースソフトウェアに対する本手法の適用可能性と今後の課題について考察する。
信頼性、オープンソースソフトウェア、AHP、ソフトウェア信頼度成長モデル
Abstract

Recent software development environment has been changing into new development paradigms such asconcurrent distributed development environment and the so-called open source project by using network computing
technologies. In order to consider the effect of each software component on the reliability of an entire system undersuch open source project, we discuss a new approach to software reliability assessment by creating a fusion of AHP
and neural network with a software reliability growth model. Moreover, we consider the effeciency and effectivenessof the software reliability assessment method for an actual open source project.
Keywords Software reliability, open source project, AHP, reliability growth model

めにも必須である。特に、近年はインターネットの普及１．はじめに21 世紀は情報技術（IT）の世紀であると言われている。

により世界中が同時に新しい情報を得ることができるよ

環境に負荷の少ない社会経済を実現するためには、企業うになっている。こうした状況から、ネットワーク技術

内通信網によるペーパーレス化、企業活動での生産・調を基にしたソフトウェア製品の分散開発、およびソフト達・運用支援統合情報システムの導入による生産・流通ウェアそのものの分散化がさらに拡大してきた。特に、の効率化など、環境改善に向け様々な分野で情報システ

最近のソフトウェア開発は、クライアント／サーバ・シムの開発が重要となる。このように、ネットワーク技術

ステムや Web プログラミング、オブジェクト指向開発、を基盤とする情報システムは持続可能な社会の実現のた

ネットワーク環境での分散開発といった新しい開発形態が＊ 鳥取大学工学部社会開発システム工学科

教授− 129 −

鳥取環境大学紀要第4号

多用されるようになってきている 1, ,2)。現在、分散ソフト製のソフトウェア商品までが市場を失うことにならない

ウェア共同開発は、同一企業内における開発形態から、か、といった開発者側の不安である 4)。特に、サポートや複数のソフトウェアハウスや同一企業内、複数の企業間品質上の問題については、OSS の普及を妨げる大きな要での遠隔地間共同開発、さらには、多くの開発者が協調因として考えられている。本論文では、こうしたオープしながら開発を行うオープンソースプロジェクトなどのンソースプロジェクトの下で開発されている OSS に対し

3)様々な形態が存在する 。こうしたソフトウェアの分散化て、テスト管理に関する問題の 1 つとして信頼性評価法が進む一方で、現在のところ分散開発されたソフトウェについて議論するとともに、実際に公開されている OSS

アシステムに対する有効なテスト管理方法は提案されてに対する信頼性評価法の適用可能性と、その有効性についない。

いて考察する。

特に、ネットワーク環境を利用して開発されたオープ

本論文では、信頼性評価を実施する際に、システム全ンソースソフトウェア（open source software、以下 OSS体を構成する複数のコンポーネントいわゆるモジュールと略す）は、世界中の誰もが開発に参加でき、ソースコの重要度を推定するにあたり、AHP（Analytic Hierarchyードが公開され、誰でも自由に改変することが可能なソProcess） 7)およびニューラルネットワーク 8)を適用する。

フトウェアであることから、組込みシステムやサーバ用

これにより、システム全体に与える各コンポーネントの途として広く採用されている。また、OSS の代表格とも信頼性に関する影響度合いを推定することが可能となる。

いうべき Linux は市場でサーバ用途として有効であるとまた、システム全体に対しては従来からのソフトウェア

4)認められ、この数年急激に普及してきている 。特に、ク信頼度成長モデル（software reliability growth model、以下ライアント用途では商用ソフトウェアが市場シェアの多SRGM と略す）に基づいた信頼性評価法を適用する。こくを占めているが、サーバ用途に限ってみると OSS が圧れにより、実際のオープンソースプロジェクトに対して、倒的な市場シェアを占めている。その一例として、開発リーダまたはユーザの立場に立った信頼性評価法と1

GNU/Linux オペレーティングシステム や Apache ウェブして利用できるものと考える。

2

サーバなど が挙げられる。2005 年 7 月の活動的ウェブ
サーバの市場シェアの統計では、Apache72.1%、Microsoft

２. 開発者指向に基づく各コンポーネントに対する信頼性評価

22.26%、Zeus 0.79%、Netscape 0.62%、WebSTAR 0.34%、
WebSite 0.10%、その他 3.78% と、Apache が支配的であ

2−15)

SRGM に基づく信頼性評価

ると示されている 。さらに、組込みシステム用 OS のシ

従来から、ソフトウェアの信頼性を定量的に評価する

ェアについては、トロン協会 ITRON 部会により実施され手法として、SRGM による方法がとられている。中でもているリアルタイム OS の利用動向と ITRON に関するア

非同次ポアソン過程（nonhomogeneous Poisson process、以ンケート調査結果によれば、自社用の OS（半数弱が下 NHPP と略す）モデルは、実利用上極めて有効でありITRON 仕様 OS）が 22.4%、半導体メーカ製の OS（大半モデルの簡潔性が高いゆえにその適用性も高く、実際のが ITRON 仕様 OS）が 9.0%、その他（主にソフトウェアソフトウェア信頼性評価のために広く応用されている。

メーカ製の OS であり、その大半が ITRON 仕様 OS）がこの NHPP モデルは、所定の時間区間内に発見される19.8% となっている。オープンソース OS として知られフォールト数や発生するソフトウェア故障数を観測して、ている ITRON が、組込みシステムの分野において多くのこれらの個数を数え上げる計数過程{N(t), t ≥ 0}を導入し、6)市場シェアを占めていることが分かる 。現在、OSS は以下の式で与えられる確率関数すなわちポアソン過程をサーバ用途や組込みシステムとして利用されているだけ仮定する SRGM である 9)。

ではなく、アプリケーションソフトウェアなどの様々な分野で広く利用されている。
一方、OSS の利用に関しては、未だに多くの不安が残されている。まず第 1 に、システム導入後のサポートおよび品質上の問題といった利用者側の一般的な不安である。第 2 に、OSS は本当にビジネスになるのか、オープンソースのソフトウェアを事業化することによって自社
1 Linux は、Linus Torvalds の米国およびその他の国における登録商標あるいは商標である。
2 その他記載している会社名、商品名は一般に各社の商標または登録商標である。
− 130 −

田村・山田オープンソースソフトウェア開発における信頼性評価

ここで、Pr{・}は確率を表し、H (t)は時間区間 (o,t)におにより求めることができる。

いて発見される総期待フォールト数、すなわち N (t)の期待値を表し、NHPP の平均値関数と呼ばれる。
本論文では、各コンポーネントについて累積発見フォールト数データの成長曲線の形状により、以下に示す
NHPP モデル 9)のうち最適なモデルを適用する。
以上のことから、各評価基準に対するウエイトは、▲

指数形 SRGM▲

習熟 S 字形 SRGMにより与えられる。

さらに、モデルに含まれる未知パラメータの推定方法として最尤法を適用する。上記の NHPP モデルから、ソフトウェア信頼性評価のために有用な種々の定量的尺度を導出できる。
2−2

このβi は各評価基準同士のウエイトを表す。同様にして、式(4)のウエイトβi から、各コンポーネントの重要度を表す重み係数 pi を推定することができる 10)。

AHP に基づく重み係数の推定

1970 年代に開発された AHP は、主観的判断による意
思決定支援に有効な方法として、欧米を中心に経営問題、3.

性評価

エネルギー問題、政策決定、都市計画学など様々な分野で広く活用されている 7)。
ソフトウェアの信頼性評価手法の開発において、各コンポーネントでのデバッグの状況やその良し悪しが、システム全体の信頼性に与える影響を考慮しようとする場
合、プログラムパス、コンポーネントの規模、フォールト報告者のスキルなどの、様々に絡み合った要因を把握する必要があると考えられる。しかしながら、これは困難であることが予想される。したがって本論文では、こうした複雑な状況下でシステム全体の信頼性に対する各コンポーネントの影響度合いを推定するために、一般には主観的判断の合理的合成方法として知られている AHPを利用し、システム全体の信頼性に対する各コンポーネントの重要度を表す重み係数の推定を行う。特に、適用される評価基準としては、各コンポーネントに対して発見されたフォールトの重要度、コンポーネントの規模、フォールト報告者のスキルといった要因が考えられる。
各コンポーネントにおける AHP の評価基準に対するウェイトをそれぞれωi (i=1,2,・・・ , n)とすれば、一対比較行列は、となる。各評価基準に対するウエイトを次式の幾何平均

ユーザ指向に基づく各コンポーネントに対する信頼
2 − 2 で議論した AHP を使用することによりソフトウェア開発者の主観を考慮した信頼性評価法 10) は、オー
プンソースプロジェクトにおいては、実質上のリーダが特定しづらいことから、主観的判断に基づく信頼性評価結果が曖昧となり、実利用上において適用し難いことが考えられる。
本論文では、こうした複雑な状況下において、システ
ム全体の信頼性に対する各コンポーネントの影響度合いを考慮するために、ニューラルネットワークを適用した信頼性評価法を提案する。これにより、バグトラッキン
グシステム上から採取されたデータのみに基づいた信頼性評価が可能となることから、実利用上においても容易に適用できるものと考える。すなわち、各コンポーネントの状態がシステム全体の信頼性に影響を及ぼすことを前提として、各コンポーネント間の相互作用をブラックボックスとして捉える。つまり、入力と出力の関係から、その内部構造をニューラルネットワークにより学習させることによって、各コンポーネントのシステム全体の信頼性に関する影響度合いを推定する。
本論文においては簡単のために図 2 に示すような 3 層ニューラルネットワークを適用する。まず、ω1ij (i = 1, 2,・・・, I ; j =1, 2,・・・, J)を入力層と中間層の結合係数、またω2ij (j =1, 2, ・・・, J ; k = 1, 2,・・・,K)は中間層と出力層の結合係数とし、xi (i = 1, 2,・・・, I)は正規化された入力データを表す。

− 131 −

鳥取環境大学紀要

第4号

図 1 本論文における 3 層ニューラルネットワークの構造
ここで、入力データ xi には、バグトラッキングシステ法を用いる。ニューラルネットワークの出力層におけるムから採取されたデータを適用する．バグトラッキング

値を yk(k = 1, 2, ・・・ ,K) とし、教師パターンを dk(k = 1,システム上に登録されている内容としては、フォールト2, ・・・ ,K) とすると、式(6) の yk の評価は報告の日付、フォールトレベル、フォールト修正者、フォールト報告者、フォールトの修正状態、各フォールトに対するコンポーネント名、バージョン情報、障害内容がある。本論文では、この中でも特にシステム全体の信頼により評価される。ここで、教師パターン d k (k = 1, 2,性に関して影響を与えるとともに、データとしての取り・・・,K) には、各コンポーネントにおける累積発見フォ扱いやすさの観点から、致命的であると判断されたフォールト数データの正規化された値を採用する。すなわち、ールト数、フォールト発見時における特定 OS の数、シ各コンポーネントにおける累積フォールト発見数データ

ステムの内部構造に習熟した修正者のフォールト修正数、に基づいて、各ソフトウェアコンポーネントの重み係数システムの内部構造に習熟した発見者のフォールト発見とそれに影響を及ぼす要因の結合状態の特徴をニューラ数とした。

ルネットワークの結合係数に蓄積させ、ある時点におけここで、入力層、中間層、出力層におけるユニットのる各コンポーネントの結合状態の推定・予測が可能なモ数を、各々 I 個、J 個、および K 個とする。また、各々デルを考える。式(8) の条件のもとに、結合係数が最急降の層のユニットを示すインデックスを i , j および k とす下法にて決定される。

る。ここで、中間層と出力層のユニットの出力を hj , yk
4. システム全体に対する信頼性評価とすると、本論文では、検出可能フォールト数が無限であると仮定された非同次ポアソン過程に基づく対数型ポアソン実行時間モデルを適用する 9)。本モデルは、OSS に対する信頼性評価法に適用した結果から、短期的な予測精度に関して良好な結果を得ている 11)。本論文の数値例では、開発期間の短く歴史の浅い OSS を取り上げることから、となる。但し、f (・) はシグモイド型関数であり、システム全体に対する信頼性評価法について対数型ポアソン実行時間モデルを採用することとした。故障強度はテストにおいて発生するソフトウェア故障数に関して指数関数的に減少するものと仮定すると、として表される。ここで、θ はしきい値と呼ばれる定数である。ネットワークの学習を行うために、誤差逆伝播− 132 −

田村・山田オープンソースソフトウェア開発における信頼性評価と表される。ここで，パラメータλ0 は初期故障強度，パよびθの最尤推定値を求めるために、λ0 およびθについラメータθはソフトウェア故障 1 個当りの故障強度の減て式(12) を偏微分する。このとき、少率を表す。式(9) から、初期条件μ(0) = 0 の下でμ(t) に関して解くと、時間区間(0; t] で発見される総期待フォールト数を表す平均値関数μ(t) は、とおいて数値的に解くことにより、最尤推定値 ＾λおよび＾θを得る。具体的には、φ = λ (θ− P) とおくと、式0(12) は、により与えられる。ここで、パラメータ P はシステム全体に及ぼすコンポーネントの影響率を表す。これは、開発者指向に基づく場合には、各コンポーネントに対して推定されたパラメータ bi と 2-2 の AHP 手法により推定された重みパラメータ pi との重み付き平均により表されるものとし、となる。ゆえに、式(14) から求めたφを使って、λ0= φ/(θ− P)と、により定義する。ここで、n はソフトウェアシステムのコンポーネント数を表す。さらに、pi は各コンポーネンの関係から、モデルパラメータλ0 およびφを求めることトに対する重みパラメータを表し、システム全体に対すができる。

る各コンポーネントの重要度を表す。また、b i は i 番目のコンポーネントに対する指数形 SRGM および習熟 S 字

4 − 2 ソフトウェア信頼性評価尺度

形 SRGM に含まれるフォールト発見率を表す定数パラメ

式(10) の平均値関数をもつ NHPP モデルから、種々のータを表す。一方、ユーザ指向に基づく場合には、各コソフトウェア信頼性評価のための定量的尺度を導出できンポーネントに対してニューラルネットワークにより推る。

定された重みパラメータ pi(= yk) の平均値により表される

瞬間フォールト発見率は強度関数により表すことができる。これは、単位時間当りに発見されるフォールト数ものとする。

として定義される。瞬間フォールト発見率は、式(10)から以下のように導出できる。

4 − 1 モデルパラメータの推定モデルに含まれる未知パラメータλ0 およびθの推定法として最尤法を適用する。このとき、一定の時刻 tk までに発見された累積フォールト数 yk に関する K 組のフォー

平均ソフトウェア故障発生時間間隔（mean time be-

ルト発見数データ(tk, yk)(k = 1, 2, ・・・,K) が観測されてtween software failures: MTBF）は、ソフトウェア故障の発いるとすると、平均値関数μ(t) をもつ NHPP モデルの対生頻度を表すのに有益な尺度である。また、MTBF が大数尤度関数は、きな値を取ることは、それだけフォールトが発見し難くなり、ソフトウェア信頼性が向上したと判断できることになる。任意の時刻 t における瞬間 MTBF（instantaneousMTBF: MTBF I）および累積 MTBF（cumulative MTBF:MTBFC）は、以下のように導出できる。
任意の時刻 t における瞬間的なフォールト発見間隔の平均を意味する瞬間 MTBF は、となる。ここで、式(10) の平均値関数μ(t) をもつ対数型ポアソン実行時間モデルに含まれる未知パラメータλ0 お− 133 −鳥取環境大学紀要

表1第4号

Xfce の AHP に基づく各コンポーネントに対する重み係数の推定結果となる。
運用開始時点から考えたときの発見フォールト 1 個当μ(t)図 2 推定された累積フォールト発見数の期待値,＾りに要する発見時間の平均を意味する累積 MTBF は、により表すことができる。
5. 数値例
実際のオープンソースプロジェクトにおけるバグトラッキングシステムから採取されたフォールトデータを適用した数値例を示す。
5 − 1 開発者指向に基づく信頼性評価結果
Xfce12) と呼ばれる OSS のフォールトデータを適用した
図 3 推定された瞬間フォールト発見率,＾μd(t)数値例を示す。本論文で用いたデータは、6 つのコンポーネントから構成された Xfce におけるバグトラッキングシステムから採取されたものである。
2. の AHP に基づく各コンポーネントに対する重みパラ5−2

ユーザ指向に基づく信頼性評価結果

メータ pi(i = 1, 2, ・・・ , n) の推定結果を表 1 に示す。特11 個 の 主 要 コ ン ポ ー ネ ン ト か ら 構 成 さ れ るに、評価基準としては、各コンポーネントに対するフォ

Thunderbird 13) 3 と呼ばれる Mailer の OSS を取り上げる。

ールトの重要度を取り上げた。表 1 から、other コンポー

各コンポーネントに関して、システム全体の信頼性に影ネントに対する重要度が最も大きいことが分かる。一方、響を及ぼすと考えられる要因別データ一覧を表 2 に示す。

general コンポーネントに対する重要度は最小であること

ニューラルネットワークを適用するにあたり、表 2 におが確認できる。

けるデータを入力データとした。3.のニューラルネット

次に、式(10) における累積フォールト発見数の期待値

ワークに基づく各 OSS の各コンポーネントに対する重みの推定値＾
μ(t) を図 2 に示す。さらに、式(10) の平均値関パラメータ pi(i = 1, 2, ・・・ , n)の推定結果を表 3 に示数から導出される瞬間フォールト発見率の推定値＾
μd(t)、＾
瞬間 MTBF の推定値 MTBF (t) および累積 MTBF の推定す。表 3 から、Mail Window Front End コンポーネントに対する重要度が最も大きいことが分かる。一方、Help値＾
MTBFC(t) の推定結果を図 3 から図 5 に示す。これらのDocumentation コンポーネントに対する重要度は最小であ

結果から、瞬間 MTBF および累積 MTBF は両者ともに、ることが確認できる。

I

次に、システム全体に対する信頼性評価結果の一例を

時間の経過とともに平均故障発生時間間隔が小さくなり、今後もソフトウェア故障が頻繁に発生することが確認で3 Thunderbird と Thunderbird のロゴは Mozilla Foundation の米国きる。

及びその他の国における商標または登録商標です。

− 134 −

田村・山田オープンソースソフトウェア開発における信頼性評価

表 2 Thunderbird の各コンポーネントに対する要因別データ

図4

推定された瞬間図5推定された累積示す。式(10) における累積フォールト発見数の期待値のした。また、実際の OSS のバグトラッキングシステムか推定値μd(t)を図 6 に示す。さらに、式(10) の平均値関数

ら採取されたフォールト発見数データに対する数値例をから導出される瞬間フォールト発見率の推定値 c μd(t)、示した。

瞬間 MTBF の推定値 MTBFI (t) および累積 MTBF の推定

開発者指向の信頼性評価法の特徴としては、開発者し値 MTBFC(t) の推定結果を図 7 から図 9 に示す。これらのか知り得ない情報、すなわち開発者の主観を取り込んだ結果から、瞬間 MTBF および累積 MTBF は両者ともに、信頼性評価法として利用できることが挙げられる。しか時間の経過とともに平均故障発生時間間隔が小さくなり、しながら、OSS の開発では主要な開発メンバー（開発リ今後もソフトウェア故障が頻繁に発生することが確認でーダ）が複数いることから AHP の評価基準値の与え方がきる。

問題となる場合が多い。一方、ユーザ指向の信頼性評価法については、実際に OSS を使用するユーザ側の視点に6. おわりに立った信頼性評価法として、ニューラルネットワークを本論文では、オープンソースプロジェクトの下で分散使用することにより機械的かつ容易にコンポーネントの共同開発されている OSS に対する信頼性評価法について重要度を推定することが可能となる。しかしながら、ニ議論した。特に、開発者指向として意思決定手法の 1 つューラルネットワークの各ユニットにコンポーネント数である AHP 手法を適用し、ユーザ指向としてニューラルを割り当てているため、コンポーネント数が多くなると、ネットワークを適用することにより、各コンポーネント学習の収束に影響がある。

に対する相互作用を包括した信頼性評価法について議論− 135 −

このように、各手法に関してメリットとデメリットが鳥取環境大学紀要

表3第4号

Thunderbird の各コンポーネントに対する重み係数

図6

推定された累積フォールト発見数の期待値

図7

推定された瞬間フォールト発見率，

図8

推定された瞬間あるが、両者ともにシステム全体の信頼性に与える各コンポーネントの重要度を定量的に導出することが可能となり、導出された各コンポーネントのウエイトから各コンポーネントに対する発見フォールト数の推定が可能となることから、OSS の信頼性を定量的に把握するための手法として有効であると考える。
ソフトウェアは、その内容の質の高低によって採否が決められるべきものであり、オープンソースであるか否かによってその優劣が決まるものではない。しかしながら、ソフトウェアが、開発者やユーザなどの様々な立場

図 9 推定された累積を超えて知見を結集する必要があるものであることを考えると、オープンソースという開発スタイルは、今後、将来的には、本手法をソフトウェアツールとして実装何らかの形で市場で大きな流れを作っていくものと考えすることにより、多くのユーザに対して容易に扱うことられる 4)。この流れを阻害する大きな要因として、サポーが可能な信頼性評価ツールとして提供していくことが重トや品質上の問題が挙げられる。本論文では、こうした問要であると考える。これまで、OSS では信頼性を定量的題を解決するために、オープンソースプロジェクトの下でに評価するという試みが行われていなかったことから、開発された OSS に対する信頼性評価法の 1 例を示した。

本論文において新たに提案された信頼性評価手法を OSS− 136 −

田村・山田オープンソースソフトウェア開発における信頼性評価

org/TRON/ITRON/ home-j. htmlに適用することによって、より高品質な OSS の開発に結びつくものと考える。

7)

T. Satty(1980) The Analytic Hierarchy Process, McGraw-

謝辞

8)

E. D. Karnin(1990) “A simple procedure forpruning back-Hill, New York.
propagation trained neural net-works,” IEEE Trans.

本論文の一部は、文部科学省科学研究費基盤研究(C)(2)

Neural Networks., vol. 1, pp. 239-242.

（課題番号 15510129）および若手研究(B)（課題番号9)17700039）の援助を受けたことを付記する。

山田茂(1994)『ソフトウェア信頼性モデル−基礎と応用−』日科技連出版社

10) 田村慶信、 山田茂、 木村光宏(2005)「オープンソー参考文献
1)
2)

A. Umar(1993), Distributed Computing andClient-Server

ス共同開発環境に対するソフトウェア信頼性評価法

Systems, Prentice Hall, New Jersey.

に関する考察」『電子情報通信学会論文誌』vol. J88-A,
11) Y. Tamura and S. Yamada(2005) “Comparison of

ェア開発検証技法」『電子情報通信学会』
3)
4)

5)

no. 7，pp. 840-847.

松本正雄、 小山田正史、 松尾谷徹(1997)「ソフトウ赤羽豊和(1998)「クライアント/サーバ・システムのsoftware reliability assessment methods for open source

テスト技法」『ソフト・リサーチ・センター』

software,” Proceedings of the 11th IEEE International「オープンソースソフトウェアの利用状況調査／導Conference on Parallel and Distributed Systems

入検討ガイドラインの公表について」『ソフトウェア(ICPADS2005)-Volume II, Fukuoka, Japan, July 20-22,

情報センター研究会報告書』(2004)

pp. 488-492.
12) Olivier FOURDAN, Xfce - Desktop Environment,

E-Soft Inc., Internet Research Reports,

http://www.xfce.org/

http://www.securityspace.com/s survey/data/index.html
6)13) The Mozilla Thunderbird Mail Project, Thunderbird,

トロン協会 ITRON 仕様検討グループ
ITRON Project Archive, http : //www. sakamura-lab.

http://www.mozilla.org/projects/thunderbird/（2006 年 1 月 11 日受理）

− 137 −