# ソフトウェア信頼性成長モデル ## 定義 ソフトウェア信頼性成長モデル(Software Reliability Growth Model、SRGM)とは、テストの進行に伴うソフトウェアの障害プロセスを確率論的モデルで記述し、信頼性の推定と予測を可能にするモデル群の総称である。「成長」という名称は、テストが進むにつれて残存する障害数が減少し、信頼性が向上する現象を反映している(Source: [[@2007__FOSE__Software Reliability Engineering - A Roadmap]])。 1972 年に Jelinski と Moranda が最初の SRGM を提案して以来、100 以上のモデルが一形態または別の形態で提案されてきた。モデルの数の多さは技術的な豊かさを示す一方で、実務者が適切なモデルを選択するうえでの困惑の源にもなっている。 ### 基本原理 時間領域アプローチの基本原理は、観測された時間ベースの障害データに対してあらかじめ指定されたモデル関数をカーブフィッティングし、最小二乗法または最尤法などの統計手法でモデルをパラメータ化することである。モデルはその後、現在の信頼性の推定または外挿による将来の信頼性予測に使用される。 ### モデルの共通仮定 - (1) 信頼性を測定する運用環境はモデルがパラメータ化されたテスト環境と同一である - (2) 故障発生後、原因となった障害は即座に除去される - (3) 障害除去プロセスは新たな障害を導入しない - (4) 障害の数とそれが故障として顕在化するメカニズムは、少なくとも統計的に、一定の数式に従う ### モデルの主要カテゴリ - **指数関数型故障時間モデル**: Jelinski-Moranda モデル(1972)をはじめとする基本的なモデル群 - **Weibull・ガンマ型故障時間モデル**: 非定常的な障害率を表現するモデル - **無限故障カテゴリモデル**: 潜在的に無限の障害を仮定するモデル - **非同次ポアソン過程(NHPP)モデル**: 最もよく使われるカテゴリ。コードカバレッジなどの追加因子を取り込んだ調整版 NHPP モデルは時間と障害データ両方を使用し、より精度の高い予測を実現する - **ベイジアンモデル**: 事前知識をベイズ更新で取り込むモデル ### 操作プロファイルとの関係 SRGM は操作プロファイルと密接に関係する。テスト担当者が操作プロファイルに従ってテストを行わない場合(現場でよく見られる)、テスト中に観測されるデータは運用での障害パターンとずれる。この問題に対処するのが**テスト圧縮因子**である。テスト圧縮因子は、操作フェーズで入力空間をカバーするのに要する実行時間とテストフェーズで要する実行時間の比として定義され、テスト中に観測した信頼性からフィールドでの信頼性を推定するための補正係数として機能する。 ### モデル選択の実際 モデルの数が多いことは実務適用の障壁となる。しかし経験的に、いくつかのガイドラインと統計的手法を用いることでモデル選択は管理可能であり、実際には 10〜12 のモデルを検討すれば十分な場合が多い(Lyu 1996)。 ## 横断的知見 - **SRGM の 100 以上のモデルという状況は、産業採用の障壁の一因である**: Lyu 2007 は「モデル選択の問題が管理可能だとはいえ、実務者はモデルの多さに圧倒されて信頼性数値そのものを疑う傾向がある」と指摘する。現段階では SRGM とその後の機械学習ベースの信頼性予測モデルとの比較は手元のソース(Lyu 2007)のみでは判断できない。(Source: [[@2007__FOSE__Software Reliability Engineering - A Roadmap]]) ## 未解決の問い - Jelinski-Moranda (1972)から 2007 年までの 35 年間で 100 以上のモデルが生まれたが、2007 年以降にはどのような展開があったか。機械学習・深層学習ベースの信頼性予測は SRGM の系譜を変えたか、それとも補完的な位置づけか。 - NHPP モデルにコードカバレッジを取り込む調整 NHPP モデルは、CI/CD パイプラインにおける継続テストの環境でどのように適用されるか。テスト圧縮因子の概念は継続デプロイ文脈で意味をなすか。 - SRGM の共通仮定(特に「即時障害除去」「障害除去によって新障害は生じない」)は、モダンな開発プロセスでどの程度成立するか。技術的負債やリグレッションが常態化した大規模システムでは仮定違反が深刻になるか。 - モデル選択の問題:統計的モデル選択基準(AIC、BIC など)や機械学習による自動選択は SRGM の産業適用をどの程度改善したか。 ## 関連 - [[ソフトウェア信頼性工学]] — SRGM が属する大枠の工学体系 - [[ソフトウェア耐障害性]] — SRGM の予測と並行して用いられる冗長性ベースの耐性技法 - [[Michael R. Lyu]] — SRGM の研究と ISSRE の体系化の中心人物 - [[structures/SRE - MOC]] — 運用信頼性の MOC への一方向参照 ## 出典 - [[@2007__FOSE__Software Reliability Engineering - A Roadmap]]