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品質ゲートを組み合わせます。
事例紹介:組み込み医療機器におけるIEC 62304コンプライアンスとコード保守性の達成
業界:医療機器顧客プロフィール:植込み型および診断機器を専門とする米国のMedTech企業領域:患者モニタリングおよびワイヤレステレメトリ向け組み込みソフトウェアチーム規模:35名の組み込みソフトウェアエンジニア言語:C、C++主要規格:IEC 62304、FDAガイダンス、MISRA C/C++、CERT C
課題
顧客は心臓ケアで使用されるクラスIII患者モニタリングデバイス向けの組み込みファームウェアを開発していました。生命に関わる性質上、ソフトウェアはIEC 62304(安全クラスC)とFDAガイドラインに準拠し、移植性、堅牢性、トレーサビリティに関する厳格な社内基準を満たす必要がありました。
チームは開発中にいくつかの障害に遭遇しました:
手動検証は持続不可能でした:安全性と移植性ルール(MISRA、CERT)の手動コードレビューはエラーが発生しやすく、開発時間の約30%を消費していました。 社内安全ルール適用の困難さ:デバイス起動ルーチンなどの重要なロジックは厳格な制御フローとリソース割り当てパターンに従う必要がありましたが、適用が一貫していませんでした。 監査用ドキュメントはツール間に分散し、大規模な整理が必要で、コード変更に遅れがちでした。 レガシーコードのリスク:古いモジュール(10年以上前のものも)が再利用されており、現代の安全基準に合致していませんでした。
彼らは、正式な安全プロセスをサポートし、ルール適用を自動化し、IEC 62304の5.5および5.7項の要件(検証およびアーキテクチャ設計ドキュメント)に沿ったトレーサビリティ成果物を提供できる静的解析ソリューションを必要としていました。
ソリューション:CppDepend
CppDependは、プロジェクトがプロトタイプから規制申請へ移行する間に、中核的な品質ゲートツールとして導入されました。主な目標は次のとおりです:
MISRA、CERT、社内コーディングポリシーのコンプライアンスチェックを自動化 認証機関への提出用コードメトリクスとドキュメントを生成 継続的なアーキテクチャ検証による長期的な保守性の確保 リスク管理をサポートするための技術的負債の可視化
CppDependのカスタマイズ可能なCQLinqルールエンジンと強力な依存関係分析により、規制要件と社内要件の両方にプラットフォームを適合させることが可能になりました。
導入戦略
フェーズ1 – 安全ベースライン(1〜3週目)
組み込みコードベース全体(約40万LOC)をスキャンし、次を特定: 約950件のMISRA違反 循環的複雑度の閾値を超える40以上の関数 200を超えるリスクの高い構造(動的メモリ、深いネストなど)
フェーズ2 – 規格統合(4〜6週目)
リソース管理制約、起動シーケンスガイドライン、エラー処理ロジックを適用するカスタムCQLinqルール群を開発しました。 レポートをIEC 62304検証ステップとFDAソフトウェアドキュメントガイダンスに整合させました。
フェーズ3 – 自動化とトレーサビリティ(7〜10週目)
CppDependをCI/CDパイプライン(Jenkinsベース)に統合し、ナイトリーレポートを生成。 ソフトウェアリスク分析ドキュメントに添付する視覚的なアーキテクチャ図を作成(準拠: ISO 14971 ). QAおよびV&Vチーム向けに社内Confluenceへサマリーダッシュボードを追加。
10週間後の結果
指標 CppDepend導入前 10週間後 MISRA/CERT違反 950+ < 120 複雑度閾値超過の関数 40+ 8 監査ドキュメントの準備時間 4〜5日 < 6時間 技術的負債の見積もり(SQA) ~17% 8.3% リリース前に検出されたリグレッション問題 約60%が手動 95%が自動化
成果とメリット
IEC 62304検証の効率化:CppDependは検証とアーキテクチャに関連するIEC 62304の条項を直接満たすために使用され、監査が簡素化されました。 コード品質の向上:チームは欠陥の減少、コードの明瞭さの向上、再利用モジュールへの信頼の向上を報告しました。 開発者の有効化:解析を日常開発に統合することでフィードバックループが短縮され、ルール違反がQAに到達する前に防止されました。 将来の製品へのスケーラビリティ:CppDependのテンプレートとルールは顧客のパイプラインの他のデバイスに再利用され、安全プロセスの再利用が加速しました。
なぜCppDependか?
CppDependは、規格ベースのルールチェック、カスタムルールの拡張性、規制に沿ったレポーティングの独自の組み合わせを提供しました。単純なリンターとは異なり、アーキテクチャ設計、リスク露出、長期的なコードの持続可能性についてチームが考察するのを支援し、医療機器開発ライフサイクルに理想的です。
まとめ
CppDependにより、MedTechチームはコードコンプライアンスを大幅に改善し、レビュー工数を削減し、安全ドキュメントを効率化しました。その結果、クラスIIIデバイスをより強力な根拠と迅速な監査対応で申請でき、コードを将来の保守と後継モデルでの再利用に備えることができました。
← 医療機器の概要に戻る
CppDependがコードベースで何を明らかにするかをご覧ください
独自のプロジェクトで解析を実行:コーディング規格、アーキテクチャ検証、技術的負債、品質ゲート — 数分で。