MISRA(自動車産業ソフトウェア信頼性協会)は、安全でセキュアな電子システムの開発を支援するためのガイドラインを提供しています。これらのガイドラインは、組み込み制御システム、ソフトウェア集約型アプリケーション、およびスタンドアロン型ソフトウェアに適用されます。
MISRAは、自動車メーカー、部品サプライヤー、およびエンジニアリングコンサルティング会社による共同プロジェクトです。その運営は、フォード・モーター・カンパニー、ベントレー・モーターズ、ジャガー・ランドローバー、ホリバ・ミラ、ZF TRW、およびリーズ大学で構成される運営委員会によって行われています。
MISRAは自動車業界で生まれた規格ですが、航空宇宙、バイオメディカル、金融などの他の市場でも広く受け入れられています。また、組み込みシステム、IoT、産業用制御システムにおいても広く採用されています。MISRAへの準拠が、ソフトウェアに品質やセキュリティ上の問題が一切ないことを保証するものではありませんが、より堅牢で、保守が容易であり、移植性の高いコードを生み出すことは確かです。
MISRAは、コーディングのセキュリティ基準に重点を置いています。 ISO 26262 機能安全対策に重点を置き、ASILと呼ばれるリスククラスを定めています。
MISRAガイドラインの中で最も代表的なものは、CおよびC++プログラミング言語を使用して開発されるプロジェクトを対象としたものです。これには、MISRA C 2004、MISRA C++ 2008、およびMISRA C 2012規格が含まれます。
MISRAガイドラインは、「必須」、「推奨」、「助言」の3つに分類されます。コンプライアンス上、「必須」のガイドラインに違反してはなりません。一方、「推奨」のガイドラインについては、文書化された正当な理由がある場合に限り、一定の違反が許容されます。こうした逸脱が許容されるのは、安全性およびセキュリティに影響が及ばず、かつ許容可能な回避策が存在しない場合に限りです。例としては、変更できないサードパーティ製のカスタムコードなどが挙げられます。
現在、アンチロックブレーキやパワーステアリングから、ナビゲーションやインフォテインメントシステムに至るまで、あらゆるものがソフトウェアによって制御されています。これらのシステムはすべて、異なるベンダーから提供されています。そして、ソフトウェアのサプライチェーンはますます長くなっており、各最終製品に組み込まれるコードには、複数のベンダーが関与しています。
MISRA C/C++は、自動車システムにおける事実上のコーディング標準となっています。しかし、この規格は、C++言語の最近の改良点を網羅しておらず、最新のセキュリティ侵害や脆弱性に関する知見も反映されていません。
2019年1月、MISRAは、安全関連のC++開発に向けた唯一の「標準的な」言語サブセットを策定するため、AUTOSARのガイドラインと自らが確立したベストプラクティスを統合すると発表した。MISRA主導のガイドラインには、言語の最新バージョン(AUTOSARのC++17)が組み込まれ、利用可能になり次第、その後継バージョン(AUTOSARのC++20)も組み込まれる予定である。
統合されたMISRA–AUTOSAR C++ルールセットは、サプライチェーン全体にわたるすべての開発者が共通のルールセットを参照する、統一された業界標準が実現するでしょう。
今日の自動車には、1億行以上のコードが組み込まれています。今後10年間で、1台の自動車に平均3億行のコードが組み込まれるようになる可能性があります。MISRAコーディングガイドラインは、次のようなコードの開発を促進します:
MISRAへの準拠は、単なるコーディングガイドラインにとどまらず、ソフトウェアがサプライヤーから購入者へと引き渡される際のソフトウェア品質に関する基準も定義しています。この準拠プロセスは、(C/C++コーディング標準に基づいた)堅牢なものであるだけでなく、実用的なものでもあり、必要に応じて規則の例外をどのように扱うべきかを説明しています。
ソフトウェア定義型車両の時代において、 シノプシス は、自動車分野におけるイノベーションを加速させるための鍵となります。