CppDepend
自動車 — 事例紹介

事例紹介:自動車組み込みシステムにおけるコード品質とMISRAコンプライアンスの向上

エンジン管理と先進運転支援システム(ADAS)向けソフトウェアを構築する大手自動車サプライヤーは、C/C++コードベースの複雑さの増大に直面していました。その組み込みシステムは…

CppDependが標準でサポートする規格は? 組み込みルールセットの対象 MISRA C/MISRA C++, CWE, CERT C/CERT C++ および AUTOSAR C++14 — 他の規格は対象外です。このページで言及されているその他の規格(ISO 26262、DO-178C、IEC 62304、IEC 61508、JSF++ AV、NIST SSDF、ASPICE…)への準拠は、次によって実施されます カスタムCQLinqルール プロジェクト用に作成され、さらにアーキテクチャ検証とCI品質ゲートを組み合わせます。

事例紹介:自動車組み込みシステムにおけるコード品質とMISRAコンプライアンスの向上

業界:自動車顧客プロフィール:欧州のTier-1自動車サプライヤー(非公開)領域:パワートレインおよびADAS制御ユニット向け組み込みソフトウェアチーム規模:3大陸にわたる約60名のエンジニア言語:C、C++主要規格:MISRA C、MISRA C++、 ISO 26262

課題

エンジン管理と先進運転支援システム(ADAS)向けソフトウェアを構築する大手自動車サプライヤーは、C/C++コードベースの複雑さの増大に直面していました。その組み込みシステムはMISRAとISO 26262の要件に厳密に準拠する必要がありましたが、

  • 手動のMISRAコンプライアンスチェックは時間がかかり、チーム間で一貫性がありませんでした。
  • アーキテクチャのレイヤリングが頻繁に侵害され、リグレッションとデバッグサイクルの長期化につながっていました。
  • 開発者は技術的負債とシステムの長期的な保守性に関する可視性を欠いていました。
  • ISO 26262ドキュメントの監査には、準備に数日かかる臨時の手動レポートが必要でした。

ソフトウェアチームは、開発速度を低下させることなく、ルールコンプライアンスを確保し、アーキテクチャの規律を適用し、監査までの時間を短縮できる自動化された統合ソリューションを必要としていました。

ソリューション:CppDepend

CppDependは、組み込みソフトウェアスタックのすべての重要コンポーネントにわたる静的解析プラットフォームとして展開されました。このツールはチームのCI/CDパイプラインに直接統合され、社内の開発ワークフローと安全目標に合わせて構成されました。

使用された主な機能:

  • カスタマイズ可能なCQLinqルールによるMISRA CおよびC++の適用
  • アーキテクチャドリフトを防ぐためのレイヤリングおよび依存関係チェック
  • 早期フィードバックのためのJenkinsおよびGitLabとのCI統合
  • 技術的負債の追跡とビジュアルダッシュボード
  • マージリクエスト時に非準拠コードをブロックするカスタム品質ゲート

導入戦略

  • フェーズ1:初回スキャンで2,000件以上のMISRA違反と150件以上のアーキテクチャルール違反がモジュール全体で判明しました。「ソフトフェイル」ポリシーにより、トレンドを追跡しながらチームを段階的に導入しました。
  • フェーズ2:ルールはMISRAだけでなく、社内のパフォーマンス、移植性、セキュリティ制約も反映するように改良されました。
  • フェーズ3:チームリードが品質の変化を監視するためのダッシュボードが作成され、Jenkinsビルドでトレンドアラートが有効化されました。
  • フェーズ4:CppDependが生成したレポートは、監査時に提出されるISO 26262ドキュメントに直接含まれました。

12週間後の結果

指標CppDepend導入前12週間後
MISRA違反2,030270
アーキテクチャ違反15827
監査準備時間3〜5日< 4時間
マージリクエストの手戻り高約35%削減

成果とメリット

  • コンプライアンスの自動化:コーディング規格適用の85%以上が自動化されました。
  • レビューの短縮:手動コードレビューはフォーマットや構造ではなくロジックに集中できるようになりました。
  • 監査対応可能:安全要件に沿った最新のメトリクスとレポートに即座にアクセス。
  • コラボレーションの向上:視覚的な依存関係グラフにより、新しいエンジニアがサブシステムの境界をより早く理解できるようになりました。
  • 計画の改善:トレンドデータと技術的負債メトリクスにより、チームはリファクタリング作業を戦略的に優先順位付けできました。

なぜCppDependか?

CppDependは、深いコード解析、カスタマイズ可能なルール、アーキテクチャ管理を単一のソリューションに統合し、チームの開発ワークフローに直接組み込める点で際立っていました。基本的なリンターやチェッカーとは異なり、コードベースの戦略的なビューを提供しました。これは自動車組み込みソフトウェアのような安全性重視で長期ライフサイクルの環境では不可欠です。

まとめ

CppDependを開発ワークフローに統合することで、この自動車サプライヤーはコーディング規格の適用、アーキテクチャ管理、ISO 26262監査の準備方法を変革しました。かつて手動で時間のかかるプロセスだったものが、自動化され、測定可能で一貫したものになりました。

CppDependは開発チームが問題を早期に発見し、レビューの負担を減らし、安全性重視の品質基準を大規模に維持する力を与えました。その結果、生産性が向上し、技術的リスクが低減し、最も厳しい自動車安全規格に準拠しながら、次世代組み込み車両システムの開発を自信を持って進めることができました。

← 自動車の概要に戻る

CppDependがコードベースで何を明らかにするかをご覧ください

独自のプロジェクトで解析を実行:コーディング規格、アーキテクチャ検証、技術的負債、品質ゲート — 数分で。