オープンソースソフトウェアに対する ユーザ指向の信頼性評...
TRANSCRIPT
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
1
Linux Conference 2006
オープンソースソフトウェアに対するユーザ指向の信頼性評価ツールの開発
田村田村 慶信慶信aa,肌附,肌附 康司康司bb,山田,山田 茂茂c c ,木村,木村 光宏光宏dd
aa広島工業大学情報学部情報工学科広島工業大学情報学部情報工学科
EE--mail: mail: [email protected]@cc.it--hiroshima.ac.jphiroshima.ac.jpbb
鳥取大学大学院工学研究科社会開発システム工学専攻鳥取大学大学院工学研究科社会開発システム工学専攻
EE--mail: [email protected]: [email protected]
鳥取大学工学部社会開発システム工学科鳥取大学工学部社会開発システム工学科
EE--mail: mail: [email protected]@sse.tottori--u.ac.jpu.ac.jpdd
法政大学工学部経営工学科法政大学工学部経営工学科
EE--mail: mail: [email protected]@k.hosei.ac.jp
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
2
Linux Conference 2006
【【発表の構成発表の構成】】
I.I. 研究の背景研究の背景
II.II. ソフトウェアの信頼性評価ソフトウェアの信頼性評価
III.III. オープンソースオープンソースソフトウェア(ソフトウェア(OSSOSS))
IV.IV. 各ソフトウェアコンポーネントの重要度推定各ソフトウェアコンポーネントの重要度推定
V.V. システム全体に対する信頼性評価システム全体に対する信頼性評価
VI.VI. 数値例数値例
VII.VII. 信頼性評価法のツール化と実行例信頼性評価法のツール化と実行例
VIII.VIII. 本研究のまとめ本研究のまとめと今後の課題と今後の課題
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
3
Linux Conference 2006
【【ソフトウェア開発を取り巻く環境ソフトウェア開発を取り巻く環境】】
同一企業内における開発形態同一企業内における開発形態
複数の複数のソフトウェアソフトウェアハウスや同一企業内ハウスや同一企業内複数の企業間での遠隔地間共同開発複数の企業間での遠隔地間共同開発オープンソースプロジェクトオープンソースプロジェクトなどの様々な形態が存在する.などの様々な形態が存在する.
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
4
Linux Conference 2006
【【ソフトウェアの信頼性評価ソフトウェアの信頼性評価】】
《企業組織におけるソフトウェア開発工程》
1. 要求仕様定義
2. 設計
3. コーディング
4.4. テストテスト
5. 運用・保守
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
5
Linux Conference 2006
【【ソフトウェアの信頼性評価ソフトウェアの信頼性評価】】
ソフトウェア開発工程の中でも,特に,テスト工程においては,総開発労力・総開発費用に占める割合が最も大きいことが知られている.
運用・保守
要求仕様定義
設計
コーディング
テスト工程
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
6
Linux Conference 2006
ソフトウェアを生産する場合のソフトウェア信頼性を動的かつ定量的に評価する数理モデルとして,従来より,数多くのソフトウェア信頼度成長モデル
(Software Reliability Growth Model,以下SRGMと略す)が提案されてきた.
【【ソフトウェアの信頼性評価ソフトウェアの信頼性評価】】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
7
Linux Conference 2006
【【Open Source Software Open Source Software ((OSSOSS))】】
なぜOSSを利用するのか?(利用者側)
フリーである無料で導入できる
ソースコードが公開されている自由にカスタマイズ可能
なぜOSSを開発するのか?(開発者側)
ソフトウェアの開発には「お金」がかかるため,オープンソースを利用して開発費を最小化するという戦略がとられている
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
8
Linux Conference 2006
【【Open Source Software Open Source Software ((OSSOSS))】】
Mozilla.orgFirefox(ウェブブラウザ)
OpenOffice.orgOpenOffice(オフィスソフト)
Fedora ProjectFedora Core Linux(Unix系OS)
GNOME ProjectGNOME(デスクトップ環境)
Samba.orgSmaba(ファイル共有サーバ)
GIMP.orgGIMP(グラフィックスソフトウェア)
代表的なオープンソースプロジェクト:
OSレベルからサーバ・デスクトップ環境・アプリケーションまで,広い範囲のOSSが開発・利用されている.
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
9
Linux Conference 2006
【【Open Source Software Open Source Software ((OSSOSS))】】
Client SoftwareFirefox(ウェブブラウザ)Thunderbird(メーラ)Mozilla Application SuiteCaminoCalendar(スケジューラ)Minimo
Server SoftwareBugzilla(バグトラッキングシステム)Update(自動アップデートツール)Webtools
Mozilla.orgプロジェクトだけをみても,その他Components, Client Supportなど,様々なOSSが開発されている.
代表的なOSS:Mozilla.orgプロジェクト
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
10
Linux Conference 2006
【【Open Source Software Open Source Software ((OSSOSS))】】
誰がOSSを開発するのか?(昔と今)
古典的なOSS開発(昔)
コア開発者が楽しいからプログラムを作る,あるいは,ある問題を解くために自前でプログラムを作って,それを公開したところ少なからずユーザがついて,いろいろ要求をとりいれていくうちに雪ダルマ式に機能(コンポーネント)が充実していく
ビジネスモデルとしてのOSS開発(今)
企業に雇用されたプログラマが仕事としてサラリー(金銭的な報酬)を受けて開発している
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
11
Linux Conference 2006
【【Open Source Software Open Source Software ((OSSOSS))】】
OSSの問題点
品質上の問題OSSの開発は世界中に分散する誰もが開発に参
加できる環境である一方,その信頼性向上に関する取り組みは,フォールト(バグ)報告に基づいて修正作業を行うのみといったのが現状であり,常にバージョンアップや不具合に対するバグフィックスが繰り返されている
サポートの問題OSSの利用にあたり,ユーザがどの程度,使用するOSSについて知識があるのかが問題となる
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
12
Linux Conference 2006
【【OSSOSSに対する信頼性評価(これまでの研究の一例)に対する信頼性評価(これまでの研究の一例)】】
ソフトウェア工学の基礎研究会第12回 ソフトウェア工学の基礎ワークショップFOSE 2005
オープンソース開発における障害報告とソフトウェアの変更コストとの関係分析岩田英丈,阿萬裕久,山田宏之→Eclipse.orgというプロジェクト
クラスの再利用とソースコードの変更率との関係に関する考察土居通夫,阿萬裕久,山田宏之→Javaのクラスファイルを対象
セキュリティ,開発手法,ネットワーク関連など,様々なOSSに関する研究が行われているが,信頼性(特
に動的解析)においては,ほとんど行われていない.
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
13
Linux Conference 2006
【【OSSOSSの開発サイクルの開発サイクル】】
OSSOSSの開発は世界中に分散する誰もが開発に参加できるの開発は世界中に分散する誰もが開発に参加できる
環境である一方,その信頼性向上に関する取り組みは,環境である一方,その信頼性向上に関する取り組みは,フォールト(バグ)報告に基づいて修正作業を行うのみといっフォールト(バグ)報告に基づいて修正作業を行うのみといったのが現状である.たのが現状である.
開発者(ソースコードの改良)
ユーザ(OSSの使用)
バグトラッキングシステム
開発・修正されたOSSをWeb上に公開
不具合内容の報告
不具合内容の確認
修正したOSSを登録
バージョンアップされたOSSの使用一般の企業組織において採用
されているテスト進捗度管理技術の適用
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
14
Linux Conference 2006
【【OSSOSSに対する信頼性評価に対する信頼性評価】】
OSSの信頼性を評価することに対する問題点
各コンポーネントに対する信頼性評価OSSにおいて,各コンポーネントの相互作用を考えた
場合,コンポーネントの規模,フォールト報告者のスキル,フォールト修正状態,コンポーネントの開発時間,コンポーネント間のパスの数,コンポーネント間の入出力データ量といった様々な要因を考慮する必要がある.
システム全体としての信頼性評価1つの企業組織内において,ある特定の使用目的に限
定されたソフトウェアの開発を対象としている従来のSRGMでは,OSSの信頼度成長現象を十分に包括で
きない.
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
15
Linux Conference 2006
【【OSSOSSに対する信頼性評価に対する信頼性評価】】
OSSの信頼性を評価のためのアプローチ
各コンポーネントに対する信頼性評価ニューラルネットワークを使用することにより,各コンポーネントの相互作用の状態をブラックボックスとして考え,入力と出力のデータのみから相互作用の状態を把握する.
システム全体としての信頼性評価OSS開発において重要なのは,バグトラッキング
システムへのフォールト登録数やユーザ数の状態によって信頼度成長曲線が大きく変化することであり,こうしたOSS開発の活動状況を把握するために既存のSRGMを拡張する.
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
16
Linux Conference 2006
【【各コンポーネントに対する信頼性評価各コンポーネントに対する信頼性評価】】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
17
Linux Conference 2006
【【各コンポーネントに対する信頼性評価各コンポーネントに対する信頼性評価】】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
18
Linux Conference 2006
【【各コンポーネントに対する信頼性評価各コンポーネントに対する信頼性評価】】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
19
Linux Conference 2006
【【各コンポーネントに対する信頼性評価各コンポーネントに対する信頼性評価】】
入力データ:• 致命的であると判断されたフォールト数• フォールト発見時における特定OSの数
• システムの内部構造に習熟した修正者のフォールト修正数• システムの内部構造に習熟した発見者のフォールト発見数
出力データ:• 各コンポーネントに対する累積発見フォールト数データ
教師信号:• 各コンポーネントに対する累積発見フォールト数データ
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
20
Linux Conference 2006
【【システム全体に対する信頼性評価システム全体に対する信頼性評価】】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
21
Linux Conference 2006
実際のオープンソースプロジェクトにおけるバグトラッキング実際のオープンソースプロジェクトにおけるバグトラッキングシステムから採取されたフォールトデータを適用した数値例システムから採取されたフォールトデータを適用した数値例を示す.本研究では,を示す.本研究では,1111の主要コンポーネントから構成されの主要コンポーネントから構成されるる ThunderbirdThunderbird と呼ばれると呼ばれるメーラのメーラのOSSOSSを取り上げる.を取り上げる.
20042004年年1212月時点におけるデータを使用した数値例を示す.月時点におけるデータを使用した数値例を示す.
Reported Date of Software FaultReported Date of Software Fault
Failure ContentsFailure Contents
Fault LevelFault Level
Name of Fault ReporterName of Fault Reporter
【【数値例数値例】】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
22
Linux Conference 2006
【【数値例数値例】】
ニューラルネットワークの入力層のデータとして利用
ニューラルネットワークの教師信号として利用
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
23
Linux Conference 2006
【【数値例数値例】】
信頼性に関する重要度が最も大きい(コンポーネントの成熟度が高い)
信頼性に関する重要度が最も小さい(コンポーネントの成熟度が低い)
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
24
Linux Conference 2006
【【数値例数値例】】19ヶ月目のフォールト数
は約3000個
18ヶ月目までの
データを使用して推定
実際のフォールト数
推定曲線
フォールト報告終了時点のフォールト数は
約2300個
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
25
Linux Conference 2006
【【数値例数値例】】
OSS開発の活動状態
が非常に活発な場合【ユーザ数が多い】
【OSSの人気がある】
OSS開発の活動状態
が安定している場合【ユーザ数が少ない】【OSSの人気ない】
【完成度の高いOSS】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
26
Linux Conference 2006
【【数値例数値例】】
使用したデータ
実際のフォールト数
推定されたフォールト数
1ヶ月の間にコン
ポーネントが増加しているため
に推定値と若干の違いが生じている
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
27
Linux Conference 2006
【【SRAT for OSSSRAT for OSS】】 メインメニューメインメニュー未知パラメータの推定やグラフの表示を行う.
重要度の計算重要度の計算各コンポーネントを特徴付けるデータからニューラルネットワークにより重みを計算する.
各コンポーネントの重要度の推各コンポーネントの重要度の推定結果定結果システム全体に対する各コンポーネントの重要度を表示.
モデルパラメータの推定結果モデルパラメータの推定結果推定されたモデルパラメータを表示.
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
28
Linux Conference 2006
【【SRAT for OSSSRAT for OSS】】対数型ポアソン実行時間モデ対数型ポアソン実行時間モデルに基づく累積発見フォールルに基づく累積発見フォールト数の推定値ト数の推定値先の実行例において推定されたモデルに含まれる未知パラメータの推定結果から,累積発見フォールト数の推定曲線が表示される.
バグトラッキングシステムからバグトラッキングシステムから採取された実際のフォールト採取された実際のフォールト発見数データ発見数データ横軸は,時間軸を表しており,この場合は単位は「日」.また,縦軸は,実際に発見された累積フォールト数を表している.
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
29
Linux Conference 2006
対数型ポアソン実行時間モデ対数型ポアソン実行時間モデルに基づく瞬間フォールト発ルに基づく瞬間フォールト発見率の推定値見率の推定値先の実行例において推定されたモデルに含まれる未知パラメータの推定結果から,瞬間フォールト発見率の推定曲線が表示される.
バグトラッキングシステムからバグトラッキングシステムから採取された実際の瞬間フォー採取された実際の瞬間フォールト発見率データルト発見率データ実際の瞬間フォールト発見率を表している.
【【SRAT for OSSSRAT for OSS】】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
30
Linux Conference 2006
対数型ポアソン実行時間モデ対数型ポアソン実行時間モデルに基づく瞬間フォールト発ルに基づく瞬間フォールト発見率の推定値見率の推定値先の実行例において推定されたモデルに含まれる未知パラメータの推定結果から,累積MTBFの推定曲線が表
示される.
バグトラッキングシステムからバグトラッキングシステムから採取された実際の累積採取された実際の累積MTBFMTBFデータデータ実際の累積MTBFを表してい
る.
【【SRAT for OSSSRAT for OSS】】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
31
Linux Conference 2006
実測データに対する対数型実測データに対する対数型ポアソン実行時間モデルの予ポアソン実行時間モデルの予測相対誤差の推定結果測相対誤差の推定結果実測値と推定値との予測誤差を比較するために使用される.特に,運用進捗率に対する適合性を確認するために有用である.
この結果から分かることこの結果から分かること進捗率20%までは実測データ
に対する適用モデルの推定値がばらついているが,20%以
降については推定値が安定している様子が確認できる.
【【SRAT for OSSSRAT for OSS】】
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
32
Linux Conference 2006
【【おわりにおわりに 11】】
OSSOSSのの品質上の問題に品質上の問題に焦点をあて,焦点をあて,OSSOSSのの信頼性評価法信頼性評価法
について議論したについて議論した実際に実際にOSSOSSを使用するユーザ側の立場に立った信頼性評価を使用するユーザ側の立場に立った信頼性評価
法として,ニューラルネットワークとソフトウェア信頼度成長モ法として,ニューラルネットワークとソフトウェア信頼度成長モデルを融合した信頼性評価法を提案したデルを融合した信頼性評価法を提案した実際の実際のオープンソースプロジェクトにおけるバグトラッキングオープンソースプロジェクトにおけるバグトラッキングシステムから採取されたシステムから採取されたフォールトデータに対するフォールトデータに対するツールのツールの実行実行例を示した例を示した提案された信頼性評価法をソフトウェア信頼性評価ツールと提案された信頼性評価法をソフトウェア信頼性評価ツールとして実装したして実装した
© Y. Tamura, K. Hadatsuki, S. Yamada and M. Kimura
33
Linux Conference 2006
【【おわりにおわりに 22】】
これまで,これまで,OSSOSSの開発工程ではソフトウェアの信頼性をの開発工程ではソフトウェアの信頼性を動動
的かつ定量的に的かつ定量的に評価するという試みが行われていなかっ評価するという試みが行われていなかったことから,たことから,本本研究研究において新たに提案されたにおいて新たに提案された信頼性評価信頼性評価法法をオープンソースプロジェクトに導入することによって,よをオープンソースプロジェクトに導入することによって,より高品質なり高品質なOSSOSSの開発に結びつくものと考える.の開発に結びつくものと考える.
本研究では,バグトラッキングシステム上に登録された限ら本研究では,バグトラッキングシステム上に登録された限られた情報だけに基づいた信頼性評価手法を提案しているれた情報だけに基づいた信頼性評価手法を提案しているが,その他にも,ユーザ数・人気度などを考慮した信頼性が,その他にも,ユーザ数・人気度などを考慮した信頼性評価法を提案する必要がある.評価法を提案する必要がある.