ソフトウェア信頼性とは? わかりやすく解説

Weblio 辞書 > 学問 > OR事典 > ソフトウェア信頼性の意味・解説 

ソフトウェア信頼性

読み方そふとうぇあしんらいせい
【英】:software reliability

概要

ソフトウェアが, 規定環境の下で, 意図する間中に, ソフトウェア故障引き起こすことなく動作することができる性質度合をいう. ソフトウェア故障 (software failure) とは, ソフトウェア期待どおり動作せずに正しく機能しないことであり, ソフトウェア内に潜在する欠陥誤り (ソフトウェアフォールト (software fault) あるいはソフトウェアバグ (software bug) と呼ばれる) により引き起こされる.

詳説

 現在, ソフトウェア開発方式については様々な議論なされているが, 要求仕様定義, 設計, コーディング, テストという一連の工程から成るウォーターフォール(water-fall)型の開発形態がよくとられている. この中でも, 最終段階テスト工程では大量開発資源投入され, 人的作業により作り込まれフォールト発見修正が行われ, ソフトウェア品質信頼性確認する重要な工程となっている. このテスト結果基づいて, 観測されたフォールトデータを使ってソフトウェア品質信頼性評価が行われる. また, より品質信頼性の高いソフトウェア実現するためには, できるだけテスト工程より前の上工程フォールト検出することも重要である.

 ソフトウェア信頼性 (software reliability)は, ソフトウェア品質考えるときに, 「当り前品質」として重要な品質特性である. また, ソフトウェア信頼性に関する問題を, 信頼性実際に作り込むための{信頼性改善}と, 信頼性実現効率化を図る{信頼性管理}とに大別して, これらの関連技術示したのが図1である. ソフトウェア信頼性の計測評価に関する問題は, 特にソフトウェア開発最終段階であるテスト工程における出荷品質や, 実際の運用段階におけるソフトウェア動作性能確認把握する際に生じる. そこで, テスト工程におけるフォールト発見事象運用段階におけるソフトウェア障害発生現象記述して, ソフトウェア信頼性を議論する上で必要な定義をまとめておく.


図1:ソフトウェアの信頼性技術

図1:ソフトウェアの信頼性技術


 まず, ソフトウェアとは 上記開発プロセス経て作成され製品としてのコンピュータプログラムを指すものとする. ソフトウェア実行中に発見修正される誤り欠陥フォールト (fault) と呼ばれ, それによりソフトウェア期待通り動作せず正しく機能しないときソフトウェア故障 (software failure) が発生したという. ソフトウェア信頼性を定量的評価するには, フォールト原因となって, 現象として生起するソフトウェア故障発生頻度その分布状態を知る必要がある. フォールトは, ソフトウェア開発の各段階作り込まれる人的誤り欠陥であり, いわゆるソフトウェアバグ (bug) と同義である. 具体的には, 要求仕様述べられ機能対応する処理パス欠落, 処理パス内の判定条件間違い, 処理パス内の演算間違いなどである. なお, ソフトウェアエラー (error) はフォールトとは区別され, ソフトウェア内にフォールトを含む原因となった開発作業中に犯した開発者誤りである. すなわち, ユーザ要求欠落誤解釈, あるいは設計仕様における要求仕様欠落誤解釈などである. したがって, ハードウェア信頼性同様に, ソフトウェア信頼性を次のように定義できる.


ソフトウェアが, 規定環境の下で, 意図する間中ソフトウェア故障発生することなく動作することができる性質度合


このソフトウェア信頼性を確率表現したのがソフトウェア信頼度である.

 これらの定義をもとに, ソフトウェア内に潜在する期待フォールト数や平均ソフトウェア故障発生時間間隔などのような, ソフトウェア信頼性の計測評価に関する定量的尺度(ソフトウェア信頼性メトリクス呼ばれることもある)が設定できる. このような定量的尺度は, ソフトウェア信頼性を評価管理し, ソフトウェア内の潜在フォールト数を予測する技術分野であるソフトウェア信頼性工学 (software reliability engineering) においては特に必要になる. この分野では, テスト実施結果過去のプロジェクト経験から, ソフトウェア使用形態定量的特性化した運用プロファイル (operational profile) を規定することが重要であり, ユーザ望まないソフトウェア運用特性, すなわちソフトウェア故障回避することの重要性強調して, ユーザ要求品質充足性を高めることを目的としている.

 プロジェクトチームにより信頼性の高いソフトウェア効率よく生産するためには, 品質, 納期, およびコスト観点からソフトウェア開発の各工程に対して検討加え管理技術が重要である. そのうち, ソフトウェア信頼性は, 品質管理問題として取り扱われることが多い. 特に, 近年のように複雑化多様化するソフトウェア対す開発効率化を図るための品質管理技術一つとして, ソフトウェア信頼性評価 (software reliability assessment) に関する技術は重要である. 近年, テスト工程開発後の運用段階におけるフォールト発見事象記述し, ソフトウェア信頼性を定量的計測評価するための数理モデルとしてソフトウェア信頼性モデル (software reliability model)が精力的に研究が行われている.


図2:ソフトウェア信頼性モデルの階層的分類

図2:ソフトウェア信頼性モデル階層的分類


 ソフトウェア信頼性モデルは, 様々な信頼性影響要因考慮して多岐にわたっている(図2). 開発管理立場からは, 潜在フォールト数をはじめとする出荷品質把握, 出荷時期見積り, 運用信頼性の評価, 保守コスト見積り, などのために, ソフトウェア実行結果に基づく動的信頼性推定予測が必要となる. 一般に, テスト工程及び運用段階におけるフォールト発見事象ソフトウェア故障発生現象確定的にとらえることはできないので, 確率・統計論に基づくソフトウェア信頼性モデル有用である. 特に, ソフトウェア開発テスト工程では, 工数などの大量テスト資源費やしてフォールトデバッギング (fault debugging) が行われるので, ソフトウェア内に残存するフォールト数はテスト時間の経過とともに減少していく. したがって, テスト時間の経過と共にソフトウェア故障発生する確率減少していき, ソフトウェア信頼度増加したり, ソフトウェア故障発生時間間隔長くなったりすることになる. このような事象現象記述し, ソフトウェア実行環境における挙動定式化する信頼性モデルは, ソフトウェア信頼度成長モデル (software reliability growth model)と呼ばれている.



参考文献

[1] M. R. Lyu (ed.), Handbook of Software Reliability Engineering, McGraw Hill, 1996.

[2] 山田茂, 『ソフトウェア信頼性モデル-基礎と応用-』, 日科技連出版社, 東京, 1994.

[3] 山田茂, 高橋宗雄, 『ソフトウェアマネジメントモデル入門-ソフトウェア品質可視化評価法』, 共立出版, 東京, 1993.




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ソフトウェア信頼性」の関連用語

ソフトウェア信頼性のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ソフトウェア信頼性のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本オペレーションズ・リサーチ学会日本オペレーションズ・リサーチ学会
Copyright (C) 2024 (社)日本オペレーションズ・リサーチ学会 All rights reserved.

©2024 GRAS Group, Inc.RSS