自動車業界におけるC++コーディングガイドラインの動向
先進運転支援システム(ADAS)の高度化が進み、高度自動運転システムの実現に向けたさまざまな取り組みが行われているなか、自動車の環境性能・安全性・利便性のさらなる向上が求められています。それに伴い、車載ソフトウェアも厳しさを増す要件に対応するため、複雑化・大規模化の様相を呈しています。複雑かつ大規模なソフトウェアの高速性・正確性を損なうことなく、できる限り簡潔にコードを記述しようとする場合、C++言語を活用する必要が出てきます。その理由として、C++言語を利用することで、C言語よりも高い抽象度でプログラミングを行うことができること、C++言語がマルチスレッドなどの高度な処理を標準ライブラリでサポートしていることなどが挙げられます。
安全関連システム(Safety-Related System)の開発には、安全に動作するプログラムを記述するためのルールと品質を確保するための枠組みが必要になります。そのルールに該当するのが、コーディングガイドラインです。
C言語を用いた車載ソフトウェア開発に対しては、MISRA Cコーディングガイドラインがすでにデファクトスタンダードとして存在し、長年に亘り自動車業界で広く使われてきました。しかしながら、C++言語を用いた車載ソフトウェア開発に対しては、2008年にMISRA C++コーディングガイドラインが策定されたものの、以下に示すようなC++言語を取り巻くさまざまな状況の変化を受けて、その有効性が低下したために、デファクトスタンダードとはなりえませんでした。
C++言語を取り巻くさまざまな変化
- C++言語に対するISO国際標準規格の大幅改定 (2011年)
- 機能安全規格ISO 26262の発行 (2011年)
- コンパイラや解析ツールの進化
- セキュリティが考慮されたコーディングガイドラインの発行
このデファクトスタンダード不在の隙間を埋めるために、自動車業界のグローバルな開発パートナーシップであるAUTOSAR(AUTomotive Open System ARchitecture)は、C++言語の新仕様C++14(ISO/IEC 14882:2014)に対応する、車載ソフトウェア開発向けのコーディングガイドラインとして、2017年3月にAUTOSAR C++コーディングガイドラインの初版を発行しました。
このAUTOSAR C++コーディングガイドラインでは、MISRA C++コーディングガイドラインをベースにしつつ、その他のコーディングガイドラインも参考にすることで、機能安全とセキュリティを考慮したルールを補強しています。また、MISRA C++コーディングガイドラインにおける動的メモリ/例外処理/テンプレート/継承/仮想関数の扱いに対する過剰な制約が除去されています。
参照されているコーディングガイドライン
- C++ Core Guidelines(CPP CG)
- CERT C++(CERT)
- Joint Strike Fighter Air Vehicle C++(JSF)
- High Integrity C++(HICPP)
- MISRA C++(MCPP)
2017年3月に初版が発行されてから、AUTOSARC++コーディングガイドラインはすでに二度改訂されています。MISRAコーディングガイドラインなど、その他のガイドラインの改訂が数年ごとであることを考えると、これは非常に頻繁であると言えるでしょう。自動車業界では多くの企業がこのガイドラインの動向を注視しており、導入を見据えた調査を開始しています。
東陽テクニカの「AUTOSAR C++コンプライアンスモジュール」に関して
東陽テクニカでは、C++言語を用いた車載ソフトウェアのAUTOSAR C++コーディングガイドラインに対する適合度を評価することができる「AUTOSAR C++コンプライアンスモジュール」を販売しています。
製品についてのお問い合わせは、東陽テクニカ ソフトウエア・ソリューション(TEL:03-3245-1248 MAIL: ss_sales@toyo.co.jp)までお気軽にお問い合わせください。
関連ソリューション
SOLUTION
関連トピックス
キーワード
試験計測のお困りごとがございましたらなんでもお気軽にご相談ください。
試験計測のお困りごとがございましたら
なんでもお気軽にご相談ください。