工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> 埋め込み

組み込みコーディングの極意:エラー削減と安全性向上の実証済み習慣

過去10年間で、組み込みソフトウェアは典型的な車両において数十万行から1億行以上へと増大しました。32ビットプロセッサへの移行と豊富なメモリは、前例のない機能を解き放ちましたが、同時に安全性とセキュリティを脅かす巧妙なバグのリスクも増幅させました。

先手を打つためには、エラーがコードベースに入り込む前に防止する体系的なアプローチを採用する必要があります。特に注意すべき2つの主要なエラーカテゴリがあります:

MISRA C/C++のような厳格なコーディング標準の導入と、要件駆動型テストの組み合わせは、強力な「予防の一オンス」を提供します。この戦略はデバッグ時間を短縮し、スケジュールを引き締め、最終的にROIを保護します。

予防が重要な理由

人間のミスは避けられません。エンジニアは急ぎ、詳細を見落とし、複雑なデータフローを誤解釈します。しかし、ソフトウェアが規模と相互接続性を増すにつれ、これらの単純なミスが連鎖し、重大な障害を引き起こす可能性があります。規律正しいコーディング標準は、これらの落とし穴の多くを表面化する前に検出し、排除するのに役立ちます。

C/C++エコシステムでは、欠陥の約80%が言語のわずか20%の誤用に起因します。問題のある構文を禁止または制限することで、標準はコード品質を劇的に向上させます。

符号付き整数を右シフトしたときに生じる未定義動作を考えてみましょう。コンパイラによって結果が異なるため、プログラムの動作が一貫性を欠くことになります。同様に、循環バッファを読み取る関数が、あるコンパイラでは予期しない順序で値を返すことがあります。これらのニュアンスは以下の図で強調されています。

組み込みコーディングの極意:エラー削減と安全性向上の実証済み習慣
図1. C/C++構文におけるコンパイラ依存の動作. 出典: LDRA

組み込みコーディングの極意:エラー削減と安全性向上の実証済み習慣
図2. 循環バッファ例における未規定動作. 出典: LDRA

MISRA C/C++の活用

1998年に自動車業界向けに初めて公開されたMISRAは、組み込みC/C++コーディングのゴールドスタンダードであり続けています。これには以下が規定されています:

2016年には、セキュリティクリティカルなコードに対応するためMISRAが拡張され、14の新しい指令が追加されました。例えば、指令4.14は未定義動作につながる構文を明示的に禁止し、セキュリティ態勢を強化しています。

組み込みコーディングの極意:エラー削減と安全性向上の実証済み習慣
図3. 未定義および未規定動作に関するMISRAのガイダンス. 出典: LDRA

組み込みコーディングの極意:エラー削減と安全性向上の実証済み習慣
図4. 指令4.14による未定義動作防止の役割. 出典: LDRA

コードからアプリケーションへ:要件とテストの役割

完璧なコードでも、意図した目的を果たさなければ失敗します。要件トレーサビリティとユニットレベルのテストは、ソフトウェアが設計通りに振る舞うことを検証するために不可欠です。

双方向トレーサビリティは、各機能を低レベル要件に遡らせ、システムレベルの目標まで紐づけます。このマッピングにより、不足や過剰な機能を早期に露見させます。

組み込みコーディングの極意:エラー削減と安全性向上の実証済み習慣
図5. 機能からシステム要件への双方向トレーサビリティ. 出典: LDRA

低レベル要件が定義されれば、テストケースが自然に導き出されます。これらのテストを実行することで、理想的には自動ユニットテストツールを用いて、コードが契約を果たしていることを確認します。

組み込みコーディングの極意:エラー削減と安全性向上の実証済み習慣
図9. 自動ユニットテスト結果. 出典: LDRA

新しいコーディング習慣の採用

現代の組み込み開発には包括的なアプローチが求められます:

これらの実践は、よりクリーンで保守しやすいコードを生み、機能追加をシンプルにし、長期的なメンテナンスコストを削減します。これは安全クリティカルおよび非クリティカルの両分野でメリットをもたらします。

競争優位性を目指すなら、これらの習慣の採用は選択肢ではありません。常に火消しに追われるコードベースと、スムーズに進化するコードベースの差は、往々にして規律あるプロセスだけなのです。

原文はEDN掲載記事。

埋め込み

  1. GEデジタル、予知資産管理ソフト発表:保全を事後からプロアクティブへ転換
  2. CMMSトレーニングをマスター:チームを惹きつけ定着させる方法
  3. セイリグ、Impact-D 100AL発表──15年長寿命・豊富なI/O搭載の高性能コンパクト組み込みPC
  4. ソフトウェアサプライチェーンを守る3つの実証済みステップ
  5. テキスト文字列:組み込みソフトウェアに潜む脆弱性
  6. SOAFEE:ソフトウェア定義自動車プラットフォームを強化するクラウドネイティブアーキテクチャ
  7. Pixus、構造剛性を強化した堅牢6U OpenVPXフェイスプレートを発表
  8. Kontron、新しい高性能組み込みコンピューティング標準「COM HPC」を発表
  9. Congatec、インテルCoffee Lake H搭載COM Express Type-6モジュール10製品を発表
  10. IoTにおけるオープンソースソフトウェアの保護:ソフトウェアリスクの軽減
  11. DevOpsで組み込みソフトウェア開発の課題を克服する