機能

セキュリティへのチェック強化

自動車業界をはじめ、組み込みソフトウェア開発において要求されるセキュリティルール「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++のソースプログラムを解析し、単純なコーディングミスから論理的な誤りまで的確に指摘します。また、不当なメモリーアクセス、メモリーリーク、誤ったメモリー開放や性能を悪化させる記述なども指摘します。
無駄な指摘を抑え、障害原因とはならない箇所については指摘しない工夫を施していますので、開発者に余分な負担を掛けません。
各指摘メッセージについてその意味や対処方法を例を交えて詳細に解説したドキュメントを用意していますので、指摘箇所の修正が容易です。

指摘項目(注3)
指摘種別 C指摘数 C++指摘数
合計 650 570
障害の可能性 162 140
移植性・保守性・可読性の向上 373 314
堅牢性(セキュリティ関連)の向上 63 57
効率性の向上 5 8
命名規約違反 5 5
その他(構文の誤りなど) 42 46

(注3) すべてのオプションを導入した場合の指摘数です。

<指摘観点>
Agile⁺ Relief は、指摘の「多重化」を実現。お客様の開発プログラムのさらなる品質向上に貢献します。

1.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
ESCRコーディング作法ガイドの適合性チェック

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でチェックできるルール一覧をご希望の方は、お問い合わせフォームよりご連絡ください。

CERT C コーディングスタンダード適合性評価

6. 複数プログラム間の問題検出(広域探索オプション)

メモリーリークやバッファーオーバーランなどの重大な問題は、関数間に潜んでいる場合が多くあります。問題箇所の検出範囲を関数内から関数間に拡大し、重大な問題箇所を検出することができるフローティングライセンス版のオプション製品です。
たとえば、複数の開発者で分散開発を行っている場合、パラメーターで渡されたアドレスが「0でない」と信じてアクセスし、0番地参照となる危険性がありました。そこで、広域探索オプションを用いて、ソースプログラムを纏めて解析し、プログラム連結部分の品質を検証することをお奨め致します。

解析イメージ

解析イメージ

解析結果イメージ

指摘メッセージ毎に、指摘位置からその原因となる問題箇所への経路情報を表示します。

  • エラーの内容/発生箇所を表示
  • エラーの原因となった変数名を表示
  • エラーの原因の変数名が宣言された場所を特定
  • 呼び出し元の場所を特定
  • 引数として使用された変数名を表示
  • 問題と断定した根拠となる箇所を表
解析結果イメージ

検出可能な指摘

  • メモリーリーク
    領域の獲得/解放を別々の関数で実施している場合、解放漏れの危険性を指摘します。
  • バッファーオーバーラン
    別の関数で用意された領域に対し、そのサイズを超えて処理する危険性を指摘します。
  • 0番地参照
    パラメーターで渡されたアドレスが「0でない」と信じてアクセスする危険性を指摘します。

レビュー支援機能

使いやすいユーザーインターフェイスで、各種指摘の検証作業を効率よく行うことができます。 例えば指摘種別(信頼性、保守性、移植性、効率性)や指摘メッセージごとにフィルタリングを行い、着目したい指摘メッセージのみを表示させることなどが行えます。 また、検査指摘設定機能により、予め設定したグループや番号の指摘メッセージのみを出力することも可能です。該当するソース記述や指摘の意味、対処方法までを簡単操作で表示しますので、効率的に検証できます。

指摘メッセージ表示機能
指摘メッセージ表示機能
(拡大イメージ)
ビューア機能
ビューア機能
(拡大イメージ)
指摘詳細機能
指摘詳細機能
(拡大イメージ)

確認済指摘の抑制機能

過去に検出されたチェック結果を、次回ソースコードのチェック時に、再検出されないよう抑止することが可能です。

指摘メッセージ抑止による効果

確認済指摘の抑制機能

複雑さ計測機能

プログラム記述の問題だけでなく、プログラムの制御構造の数などを計測することもできます。
この計測結果から「McCabeの複雑度」を計算し、プログラム開発の指標とすることにより、品質の高いソフトウェア開発を推進することができます。

複雑さ計測機能

コマンド解析機能(フローティングライセンスのみ提供)

コマンドラインでの解析が可能です。

ソースコード別にチェック結果をレポーティング(診断レポート機能)

個々のソースコードのチェック結果をプロジェクトや機能単位でまとめ上げ、全体品質をレポートとして生成します。
レポートされる問題箇所と改善方法より品質監査が確実に行え、的確かつ効果的な対策が行えます。
(日々の遷移や複数のプロジェクトを俯瞰して確認したい場合は、Agile⁺ Reliefフローティングライセンス(C/C++解析込み)の「品質データ可視化」機能をご利用ください。)

活用シーン

品質向上に向けた診断レポートの活用例

CI/CD(注)パイプラインへの組込み(ソースコードチェックの自動化)

Jenkinsプラグインを使用し、CI/CDパイプラインにAgile⁺ Reliefを組み込むことができます。
短いサイクルで繰り返し実行することで、ソースコードの欠陥を早期に検出して修正することが可能です。
ソースコード変更のタイミングで自動的にソースコードをチェックすることにより、重大な欠陥を含んだソフトウェアがリリースされることを防ぎます。

CIツール連携

Jenkins ならびにJenkins CIは、Jenkins(https://jenkins.io/)に帰属します。

(注) CI/CD(継続的インテグレーション/継続的デリバリー)とは、ビルド・テスト・デプロイなどの開発付帯作業を自動化することにより開発サイクルを速め、早い段階から頻繁に繰り返し実行することで問題を早期発見しトラブルを未然に防ぐ手法です。

英語モード

メニューや指摘メッセージを日本語から英語に切り替えて利用できます。
また、各種説明書の英文ドキュメントをご用意しています。
(英語OS、日本語OS、中国語OS上でご利用いただけます)

ライセンス

開発体制や予算に合ったライセンスを提供

安価なノードロックライセンスを提供。複数の事業所でライセンスを共有可能。委託先との解析結果(CSV・診断レポート)の共有が可能。

ISO 26262

Agile⁺ Relief C/C++は第三者認証機関によりISO 26262認証を取得(注)していますので、お客様自身がAgile⁺ Relief C/C++の妥当性を証明する必要はありません。
Agile⁺ Relief C/C++は、お客様の機能安全に向けたソフトウェア開発に貢献いたします。

(注)最も厳しい安全度水準であるASIL-D (Automotive Safety Integrity Level -D)に対応しています。