安全文化・品質文化の確立
2006年11月に宇宙航空研究開発機構(JAXA)が開催した『第6回クリティカルソフトウェアワークショップ』で、JAXAの片平真史氏が「ソフトウェア安全確保のための重要な要素」として以下のような図を紹介しています(図1)。
このピラミッドは、ソフトウェアの安全確保のためには、まず、組織の中にSafety Culture(安全文化)が存在し、そのSafety Culture(安全文化)に立脚してRules/Regulations(規定/規則)を作り、Rules/Regulations(規定/規則)のもとでMethodologies & Techniques(方法論と技術)が検討され、Methodologies & Techniques(方法論と技術)に基づいてDesign & Verification(設計と検証)が実施されるべきであるというソフトウェア安全確保の原則を示しています。
Design & Verification(設計と検証)やMethodologies & Techniques(方法論と技術)やRules/Regulations(規定/規則)にほころびがあってもSafety Culture(安全文化)が安全ソフトウェアの開発者に伝わっていれば、リスクにつながる穴は小さくなります。逆に、Safety Culture(安全文化)が確立されていない状態でRules/Regulations(規定/規則)やMethodologies & Techniques(方法論と技術)を技術者に押しつけると、それらは簡単に形骸化してしまいます。
「なぜ、安全を確保する必要があるのか」「安全はその商品の中でどのような価値を担っているのか」を理解することを含めたSafety Culture(安全文化)が組織や安全ソフトウェア設計者の中に育まれていなければ、安全につながる有効性の高いアーキテクチャを設計することはできません。
日本人には安全に対する熱意や消費者としての厳しい目がもともと備わっているため、日本のエンジニアは安全文化をベースにドメインに最適化した安全設計、安全アーキテクチャを作り出す能力が高いのではないかと感じます。
安全ソフトウェアの実現と維持に向けた取り組みとして、「ソフトウェア安全確保のための重要な要素」をバランスよく組織の中に取り入れていくことが重要です。
最後に
これまで4回に渡って「安全ソフトウェアの設計」について解説してきました。安全の実現を担っている組込みソフトウェア技術者のみなさんが、これを機会に安全ソフトウェアの設計について再考され、記事を組織の安全文化の確立に役立てていただければ幸いです。

