安全ライフサイクルとは、安全要件の開始と仕様策定から、セーフティクリティカルシステムの安全機能の設計と開発、そしてシステムの廃止に至るまでの一連のフェーズを指します。この記事ではソフトウェアを文脈として取り上げますが、安全ライフサイクルは建物の建設など他の分野にも適用されます。ソフトウェア開発ではプロセス(ソフトウェアライフサイクル)が使用され、このプロセスはいくつかのフェーズで構成され、通常は開始、分析、設計、プログラミング、テスト、実装が含まれます。焦点はソフトウェアの構築にあります。ソフトウェアによっては安全上の懸念があるものもありますが、そうでないものもあります。たとえば、休暇申請システムには安全要件がありません。しかし、飛行機のコンポーネントを制御するために使用されるソフトウェアに障害が発生した場合、安全性が懸念されます。そのため、後者の場合、非常に重要な安全性をソフトウェアライフサイクル内でどのように管理すべきかが問題となります。[ 1 ]
ソフトウェアの安全性、つまりソフトウェアの安全機能を構築する際の基本的な考え方は、ソフトウェアとシステムの安全特性と動作をシステム内に規定し、設計する必要があるということです。[ 2 ]
あらゆるシステム設計者にとっての課題は、リスクを許容レベルまで低減することです。もちろん、許容されるリスクはアプリケーションによって異なります。ソフトウェアアプリケーションを安全関連システムで使用する場合、ソフトウェアライフサイクルのあらゆる段階でこの点を念頭に置く必要があります。開発段階から運用段階まで、安全性の仕様策定と保証のプロセスは「安全ライフサイクル」と呼ばれることもあります。
ライフサイクルの最初の段階では、システムの潜在的な危険性を評価し、それらがもたらすリスクを推定します。そのような方法の一つがフォールトツリー分析です。
これに続いて、安全要求仕様が続き、これは安全性が極めて重要な機能(機能要求仕様)と各機能の安全度水準を特定することに関係している。 [ 3 ] 仕様では、リスクを最小限に抑えるためにソフトウェアがどのように動作すべきかを記述するか、または危険が決して発生しないことを要求する場合がある。
その後、「通常の」プロセスモデルに従い、システムの検証(検査、テストなど)に特に注意を払います。この検証には、明確な安全性検証活動が含まれる必要があります。
安全ライフサイクル - 実装の利点と現場機器への影響(PDF)、ISA.org、2012年3月31日時点のオリジナル(PDF)からアーカイブ