2005 年 27 巻 7 号 p. 425-438
過去10年間, 長期間稼動するソフトウェアシステムに対して, hang/crash障害の発生率が増加したり, 徐々にシステムの性能が劣化する現象であるソフトウェアエージング(経年劣化)について, 数多くの研究がなされてきた.本論文では, 例えプログラムコード上にフォールトが作り込まれていなかったとしても, ソフトウェアシステムが経年劣化を引き起こすことについて考察する.まず最初に, ソフトウェアバグの分類について議論し, それらの定義と相互関係について明らかにする.特に, ソフトウェアエージングに起因するバグがここで提案する分類方法に適合していることを示す.ソフトウェアエージングに関する問題を解決するために, ソフトウェア若化(レジュビネーション)と呼ばれる予防的な方法が提案されている.具体的には, 稼働中のソフトウェアシステムを一旦停止し, 累積エラーの原因を除去した後にシステムを再始動するといったものである.ソフトウェア若化によって生じるオーバーヘッドにより, システムの初期化を行う最適なタイミングを求める問題が考えられる.本論文では, 上記のような重要な問題を取扱うために開発された種々のアプローチについて概説する.