機能
セキュリティへのチェック強化
自動車業界をはじめ、組み込みソフトウェア開発において要求されるセキュリティルール「MISRA-C(Amendment1も含む)」や「CERT C」のカバー率が向上しました。
お客様のセキュアコーディングを強力に支援します。
ツール | MISRA:2012(ルール数) MISRA-C:2012 Amendment1も含む |
CERT C(ルール数) (注1)(注2) |
---|---|---|
Agile⁺ Relief | 100%(156/156) | 70%(213/303) |
ツールA | 100%(156/156) | 58%(177/303) |
ツールB | 100%(156/156) | 28%(84/303) |
ツールC | 60%(94/156) | 30%(90/303) |
(注1) 自社2019年7月8日調べ。
(注2) Agile⁺ Reliefについては標準パッケージ+CERTオプション導入時。他社ツールのCERT Cルールカバー率に関しては「CERT C Coding Standard」を参照ください。
豊富な指摘機能
C/C++のソースプログラムを解析し、単純なコーディングミスから論理的な誤りまで的確に指摘します。また、不当なメモリーアクセス、メモリーリーク、誤ったメモリー開放や性能を悪化させる記述なども指摘します。
無駄な指摘を抑え、障害原因とはならない箇所については指摘しない工夫を施していますので、開発者に余分な負担を掛けません。
各指摘メッセージについてその意味や対処方法を例を交えて詳細に解説したドキュメントを用意していますので、指摘箇所の修正が容易です。
指摘種別 | C指摘数 | C++指摘数 |
---|---|---|
合計 | 650 | 570 |
障害の可能性 | 162 | 140 |
移植性・保守性・可読性の向上 | 373 | 314 |
堅牢性(セキュリティ関連)の向上 | 63 | 57 |
効率性の向上 | 5 | 8 |
命名規約違反 | 5 | 5 |
その他(構文の誤りなど) | 42 | 46 |
(注3) すべてのオプションを導入した場合の指摘数です。
<指摘観点>
Agile⁺ Relief は、指摘の「多重化」を実現。お客様の開発プログラムのさらなる品質向上に貢献します。
2.ESCRコーディング作法ガイドの適合性チェック
3.MISRA ルール適合性をチェック(オプション)
4.ISO 26262コーディングガイドライン適合性の検証
5.CERT C コーディングスタンダード適合性評価(オプション)
6.複数プログラム間の問題検出(広域探索オプション)
1. Agile⁺ Relief 独自のノウハウでチェック
富士通の社内開発におけるバグ事例などから、開発者が陥りがちなパターンをデータベース化しチェックします。
2. ESCRコーディング作法ガイドの適合性チェック
ソースプログラムが、IPA/ESCRコーディング作法に沿って記述されているかどうかをチェックし、違反している記述箇所を指摘します。規約に準拠してコーディングを行うことにより、信頼性、移植性、保守性の向上を図ることができます。
チェック可能なガイドライン
- ESCR C V1
- ESCR C V2
- ESCR C V3
- ESCR C++ V1
- ESCR C++ V2
3. MISRA ルール適合性をチェック(オプション)
ソースプログラムが、MISRA-C、MISRA-C++プログラミングガイドラインに沿って記述されているかどうかをチェックし、違反している記述箇所を指摘します。このガイドラインに沿ってソースプログラムを記述することにより、基本的なプログラム品質の底上げを図ることができます。「MISRA-C:2012 」のルールは、「MISRA-C:2012 Amendment1」も含め、すべてのルールにチェックできます。
チェック可能なガイドライン
- MISRA-C:1998
- MISRA-C:2004
- MISRA-C:2012
- MISRA-C++:2008
4. ISO 26262コーディングガイドライン適合性の検証
ISO 26262で要求されている組織で定めた設計規則を判断するためのコーディングガイドライン(Part6-5)および不具合の混入を防止するためのコーディングガイドライン(Part6-8)の検証に活用できます。
Agile⁺ Reliefでチェック可能な項目をまとめた資料をご希望の方は、お問い合わせフォームよりご連絡ください。
5. CERT C コーディングスタンダード適合性評価(オプション)
ソースプログラムが、CERT C コーディングスタンダード(以下、CERT C)に沿って記述されているかどうかをチェックし、違反している記述箇所を指摘します。
CERT Cは、ソフトウェア業界全般のセキュリティを確保するコーディングガイドラインです。
Agile⁺ Reliefは、CERT Cの適用が先行している車載や電機業界のお客様からの要望が多いルールに対応しています。これにより開発現場で採用されているルールのほとんどが、目視ではなくAgile⁺ Reliefで自動的にチェックできるため、漏れなく短時間で適合性評価が可能になります。
Agile⁺ Reliefでチェックできるルール一覧をご希望の方は、お問い合わせフォームよりご連絡ください。
6. 複数プログラム間の問題検出(広域探索オプション)
メモリーリークやバッファーオーバーランなどの重大な問題は、関数間に潜んでいる場合が多くあります。問題箇所の検出範囲を関数内から関数間に拡大し、重大な問題箇所を検出することができるフローティングライセンス版のオプション製品です。
たとえば、複数の開発者で分散開発を行っている場合、パラメーターで渡されたアドレスが「0でない」と信じてアクセスし、0番地参照となる危険性がありました。そこで、広域探索オプションを用いて、ソースプログラムを纏めて解析し、プログラム連結部分の品質を検証することをお奨め致します。
解析イメージ
解析結果イメージ
指摘メッセージ毎に、指摘位置からその原因となる問題箇所への経路情報を表示します。- エラーの内容/発生箇所を表示
- エラーの原因となった変数名を表示
- エラーの原因の変数名が宣言された場所を特定
- 呼び出し元の場所を特定
- 引数として使用された変数名を表示
- 問題と断定した根拠となる箇所を表
検出可能な指摘
- メモリーリーク
領域の獲得/解放を別々の関数で実施している場合、解放漏れの危険性を指摘します。 - バッファーオーバーラン
別の関数で用意された領域に対し、そのサイズを超えて処理する危険性を指摘します。 - 0番地参照
パラメーターで渡されたアドレスが「0でない」と信じてアクセスする危険性を指摘します。
レビュー支援機能
使いやすいユーザーインターフェイスで、各種指摘の検証作業を効率よく行うことができます。 例えば指摘種別(信頼性、保守性、移植性、効率性)や指摘メッセージごとにフィルタリングを行い、着目したい指摘メッセージのみを表示させることなどが行えます。 また、検査指摘設定機能により、予め設定したグループや番号の指摘メッセージのみを出力することも可能です。該当するソース記述や指摘の意味、対処方法までを簡単操作で表示しますので、効率的に検証できます。
確認済指摘の抑制機能
過去に検出されたチェック結果を、次回ソースコードのチェック時に、再検出されないよう抑止することが可能です。
指摘メッセージ抑止による効果
- 新規チェック結果の、絞り込み作業の効率化
- 新規チェック結果の見逃し防止
- チーム内での抑止状態の共有のしやすさ
複雑さ計測機能
プログラム記述の問題だけでなく、プログラムの制御構造の数などを計測することもできます。
この計測結果から「McCabeの複雑度」を計算し、プログラム開発の指標とすることにより、品質の高いソフトウェア開発を推進することができます。
コマンド解析機能(フローティングライセンスのみ提供)
コマンドラインでの解析が可能です。
ソースコード別にチェック結果をレポーティング(診断レポート機能)
個々のソースコードのチェック結果をプロジェクトや機能単位でまとめ上げ、全体品質をレポートとして生成します。
レポートされる問題箇所と改善方法より品質監査が確実に行え、的確かつ効果的な対策が行えます。
(日々の遷移や複数のプロジェクトを俯瞰して確認したい場合は、Agile⁺ Reliefフローティングライセンス(C/C++解析込み)の「品質データ可視化」機能をご利用ください。)
活用シーン
- コーディング時の進捗資料として
ソースメトリクスと指摘の相関関係をレポートします。 ステップ数では判断できない品質/構造的な問題が明確になります。 - レビュー/納品時の資料として
検証状況とルール適用状況をレポートします。コーディングガイドライン通りに全て検証されていることが明確になります。 - テスト時の分析資料として
品質特性や問題特性の観点で、ソースコード上の問題点をレポートします。優先的に対処すべき問題や箇所が明確になります。
CI/CD(注)パイプラインへの組込み(ソースコードチェックの自動化)
Jenkinsプラグインを使用し、CI/CDパイプラインにAgile⁺ Reliefを組み込むことができます。
短いサイクルで繰り返し実行することで、ソースコードの欠陥を早期に検出して修正することが可能です。
ソースコード変更のタイミングで自動的にソースコードをチェックすることにより、重大な欠陥を含んだソフトウェアがリリースされることを防ぎます。
Jenkins ならびにJenkins CIは、Jenkins(https://jenkins.io/)に帰属します。
(注) CI/CD(継続的インテグレーション/継続的デリバリー)とは、ビルド・テスト・デプロイなどの開発付帯作業を自動化することにより開発サイクルを速め、早い段階から頻繁に繰り返し実行することで問題を早期発見しトラブルを未然に防ぐ手法です。
英語モード
メニューや指摘メッセージを日本語から英語に切り替えて利用できます。
また、各種説明書の英文ドキュメントをご用意しています。
(英語OS、日本語OS、中国語OS上でご利用いただけます)
ライセンス
開発体制や予算に合ったライセンスを提供
ISO 26262
Agile⁺ Relief C/C++は第三者認証機関によりISO 26262認証を取得(注)していますので、お客様自身がAgile⁺ Relief C/C++の妥当性を証明する必要はありません。
Agile⁺ Relief C/C++は、お客様の機能安全に向けたソフトウェア開発に貢献いたします。
(注)最も厳しい安全度水準であるASIL-D (Automotive Safety Integrity Level -D)に対応しています。