エンベデッドシステムスペシャリスト 2012年 午前2 問24
問題文
MISRA-Cの説明として、適切なものはどれか。
選択肢
ア:可変長配列、複素数型などをサポートする、ISOが制定したC言語の規格
イ:協調設計(コデザイン)でシステムをシミュレートするために使用する、C++を利用したシステム記述言語
ウ:車載システムの品質向上を目的に制定された、C言語実装法のガイドライン(正解)
エ:スマートフォンの開発などに使用されている、オブジェクト指向の機能をもつC言語の上位互換言語
🔒 解説は解答すると表示されます
MISRA-Cの役割【午前2解説】
正解の理由
MISRA-Cは、車載システムなどのソフトウェアの品質・安全性・信頼性を高めるために定められた、C言語のコーディングガイドラインです。使用する言語を新たに定義するものではなく、C言語でプログラムを実装する際に守るべきルールを示します。
したがって、車載システムの品質向上を目的としたC言語の実装ガイドラインであるウが適切です。
解法ステップ
- 「MISRA-C」がC言語に関する用語であることを確認します。
- MISRA-CはC言語そのものの規格や別のプログラミング言語ではなく、コーディングルールをまとめたガイドラインです。
- 選択肢のうち、車載システムの品質向上を目的とするC言語の実装ガイドラインを選びます。
選択肢別の誤答解説
- ア:可変長配列や複素数型は、C言語の規格で扱われる機能です。MISRA-CはC言語の規格そのものではありません。
- イ:C++を用いたシステム設計・シミュレーション向けの言語を説明しています。MISRA-Cとは異なる概念です。
- ウ:車載システムなどの品質向上を目的とする、C言語のコーディングガイドラインです。
- エ:オブジェクト指向機能をもつC言語の上位互換言語という説明は、C++を指します。MISRA-Cは新しい言語ではありません。
よくある誤解
- MISRA-Cを、ISOが制定したC言語の規格と混同しないようにしましょう。MISRA-Cは、C言語の利用方法を定めたガイドラインです。
- MISRA-Cに従えば、どのようなプログラムでも自動的に安全になるわけではありません。設計・テストなどと組み合わせて品質を高めます。
- 「C言語の車載向け拡張言語」と考えるのも誤りです。MISRA-Cは言語ではなく、コーディングルールです。
補足コラム
C言語では、未定義動作や複雑な記述が不具合の原因になることがあります。MISRA-Cのルールに沿って、誤解を招きやすい機能や危険な記述を制限すると、コードのレビューや静的解析を行いやすくなります。特に、安全性や信頼性が重視される組込みソフトウェアで活用されています。
FAQ
MISRA-CはC言語の規格ですか?
いいえ。C言語の規格そのものではなく、C言語で安全性・信頼性の高いソフトウェアを実装するためのガイドラインです。
いいえ。C言語の規格そのものではなく、C言語で安全性・信頼性の高いソフトウェアを実装するためのガイドラインです。
MISRA-Cは車載システムだけで使われますか?
車載システムを目的として策定されましたが、品質や安全性が重視される他の組込みシステムでも利用されます。
車載システムを目的として策定されましたが、品質や安全性が重視される他の組込みシステムでも利用されます。
関連キーワード: C言語、コーディングガイドライン、車載システム、組込みソフトウェア、静的解析

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

