Polyspace® 製品の R2021a リリースでは、既存の多くのワークフローに改善が加えられています。たとえば、以下を行うことができます。

  • AUTOSAR RTE API を使用した C/C++ コードの解析の高速化と、より精度の高い結果の表示
  • C および C++ のソースファイルが混在するプロジェクトに対する Polyspace Code Prover™ 解析の実行
  • カスタマイズ可能な新しいガイドラインチェッカーによるコードのソフトウェア複雑度の軽減

これらをはじめとする機能について、以下で詳しくご紹介します。

AUTOSAR 統合およびコンポーネントベース解析のサポートを改善

Polyspace Code Prover の R2021a リリースでは、AUTOSAR RTE API を使用した C/C++ コードの解析が高速化され、より精度の高い結果を表示できるようになりました。(通常の Polyspace Code Prover 実行時チェックに加えて) AUTOSAR 規格への準拠のみを確認する必要がある場合は、AUTOSAR の仕様に準拠した C/C++ コードに特別な設定を行う必要はありません。

以下を行って、統合解析を AUTOSAR 対応にすることができます。

  • 新しい [使用するライブラリ] (-library) オプションで autosar を選択します。この解析では、汎用スタブの代わりに AUTOSAR ライブラリの関数のスマートスタブが使用され、関数実装のチェックが試行されることはありません。このオプションを使用すると、精度を落とさずに高速で解析できるようになり、関数呼び出しに対するライブラリ固有のチェックがトリガーされるようになります。
使用するライブラリ - autosar
  • RTE API から関数に渡される引数が AUTOSAR 規格の仕様に準拠しているかを判断します。新しい実行時チェック [AUTOSAR 仕様に非準拠] を使用して、解析時にこれらの違反にフラグを設定します。たとえば、ある関数で初期化されたバッファーが想定される場合、初期化されていないバッファーをポインターで渡すとレッドチェックが表示されます。

また、Polyspace for AUTOSAR を使用してコンポーネントベースの解析を実行した場合、解析結果に認識された RTE API 関数とイベントのリストが含まれるようになりました。リストを表示するには、左側のナビゲーションにある [ReleaseNote] リンクをクリックします。

ReaseNote ナビゲーション

このリストを利用すると、以下を行うことができます。

  • 解析により、指定された RTE API 関数が正確にエミュレートされ、関数の引数が AUTOSAR 規格および関連する設計仕様に準拠しているかを判断
  • RTE API 関数またはイベント名から AUTOSAR 規格の関数記述に移動

新しいガイドライン チェッカーを使用したソフトウェア複雑度の軽減

R2021a では、Polyspace Bug Finder™ にガイドラインという新しいカテゴリのチェッカーが導入されています。このカテゴリには、パス数や循環的複雑度など、定量化可能なさまざまなコードの複雑度のメトリクスをチェックする、カスタマイズ可能なソフトウェア複雑度チェッカーが含まれます。これらのチェッカーを使用すると、開発サイクルの早い段階で複雑なモジュールを検出し、後にリファクタリングを行う労力を軽減できます。

コーディング規約およびコードメトリクス

C と C++ のソースファイルが混在するプロジェクトの解析

R2021a の Polyspace Code Prover では、C と C++ のソースファイルが混在するプロジェクトの解析をサポートします。[ソースコードの言語 (-lang)] オプションに [C-CPP] を指定した場合、Polyspace はプロジェクトの C ファイルを C で、C++ ファイルを C++ でコンパイルします。コンパイル後、Polyspace はこのような混合プロジェクトを C++ プロジェクトとして検証します。そのため、プロジェクトをコンパイルするために C++ プロジェクトから C ファイルを分離する必要がなくなりました。

C と C++ のソースファイルが混在するプロジェクトの解析

Simulink との統合の改善

R2021a では、以前のリリースの Simulink® で生成されたコードを、Polyspace のそれ以降のリリースを使用して解析できます。関数 pslinkrunCrossRelease を使用すると、このリリース間のワークフローを有効にできます。Polyspace のバージョンは Simulink より後のバージョン、Simulink は R2020b 以降である必要があります。

参考:

Polyspace Access Web インターフェイスの改善

R2021a では、Polyspace Access Web インターフェイスに、インストールとレビューのワークフローを改善する新機能が導入されています。

Polyspace Access でのレビュー

  • カスタムフィルターの定義と共有:

    フィルターのカスタムファミリーを作成し、レビューの範囲を自分のプロジェクトや組織のみに関連する結果に合わせてカスタマイズできます。その後、カスタマイズしたフィルターを他の Polyspace Access ユーザーと共有できます。

カスタムフィルターの定義と共有

詳細については、次を参照してください。Polyspace Access Web インターフェイスでのカスタム フィルター グループの作成

  • 現在の実行で修正済みの以前の調査結果を表示:

    2 つのプロジェクトの実行を比較する場合、現在の実行で修正済みのベースライン実行での調査結果について、ソースコードと結果の詳細をフィルター処理して表示できます。このフィルターを使用すると、現在の実行には含まれないベースライン実行での以前の調査結果の詳細を確認できます。

以前の実行との解析結果の比較

以前の実行との解析結果の比較を参照してください。

Polyspace Access のインストール

  • LDAP サーバー使用時のページネーション設定:

    一般的に、LDAP サーバーでは、結果セットで返されるエントリの数が制限されます。エントリ数がその上限を超えた場合、結果セットは切り捨てられます。LDAP のページネーションを有効にすると、大規模なユーザーセットのクエリを実行する際に、LDAP サーバーからすべてのエントリを取得できます。

    組織の LDAP サーバーからのユーザー認証を参照してください。

  • ライセンス管理の簡略化:

    解析結果を Polyspace Access データベースにアップロードする場合、Polyspace Access ライセンスのチェックアウトがトリガーされることはありません。自動スクリプトの一環として結果をアップロードする場合、スクリプトの実行時にライセンスを消費することはなくなりました。

その他の機能

これらの主要な機能以外にも、R2021a には次のような改善点があります。

  • Visual Studio 2019 および GCC バージョン 8.x コンパイラのサポート
  • AUTOSAR C++ 14、CERT C++ ルール、および MISRA C++ の追加ルールのサポート
  • 以前より少ない手順での Polyspace と現行リリースまたは旧リリースの MATLAB® および Simulink との統合
  • 最初に明示的なコードの生成を行うことなく、生成されたコードの Polyspace 解析を開始する機能
  • 管理者ユーザー インターフェイスにおける Polyspace Access サービスのログの改善

詳細については、以下のリリースノートを参照してください。