IPA過去問ドリル

平成25年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問22

テクノロジ/開発技術

JIS X 0180 では,組込みシステムのソフトウェアコード品質を信頼性,保守性,移植性及び効率性の四つの品質特性に分類して作法を定めている。作法に基づいて作成した組込みシステム開発プロジェクトのコーディング規約のうち,信頼性を意識したものとして適切なものはどれか。ここで,信頼性とは“ソフトウェアとしての誤った動作をしない,誤動作をしてもソフトウェア全体及びシステム全体の機能動作に影響を及ぼさない,誤動作が発生しても正常動作に速やかに復帰できる性質”を指す。

出典:平成25年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問22

正解:イ

解説

設問の信頼性の定義(誤動作をしない,誤動作してもソフトウェア全体・システム全体に影響を及ぼさない,誤動作から速やかに復帰できる)に該当するのは,除算前にゼロ除算を防ぐ確認を行う規約です。ゼロ除算はプログラムの異常終了や誤動作を引き起こす典型的な原因であり,除算前に除数が0でないことを確認することは,誤った動作の発生自体を防ぐ,信頼性に直結したコーディング規約です。他の選択肢は,それぞれ効率性,移植性,保守性など,信頼性以外の品質特性に関連する規約です。

選択肢ごとの解説

  • 誤り。1か所だけから呼び出されるサブルーチンをインライン展開する規約は,主に実行効率(効率性)に関する規約であり,誤動作の防止に直接関係する信頼性の規約ではありません。
  • 正しい。除算前に除数(ハードウェアレジスタから読み出した値)が0でないことを確認することは,ゼロ除算による誤動作の発生そのものを防ぐための規約であり,信頼性を意識した規約です。
  • 誤り。ハードウェアレジスタのビット位置を言語処理系に依存しない記法で定義する規約は,異なる言語処理系間でのコードの移植性を高めるための規約です。
  • 誤り。仕様変更が予想される数値をマクロ表記で記述する規約は,値の変更時にコードの該当箇所を容易に修正できるようにするための保守性に関する規約です。
エンベデッドシステムスペシャリストの過去問を演習モードで解く