メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Polyspace 製品およびソフトウェア開発ワークフロー

Polyspace® グループの製品は、ソフトウェア開発サイクル全体にわたって C/C++ コードの品質を管理、測定、監視するための統合ソリューションを提供します。

静的解析製品である Polyspace Bug Finder™ および Polyspace Code Prover™ は、C/C++ コードのランタイム エラー、コーディング規約違反、セキュリティの脆弱性などの問題をチェックします。

  • Polyspace Code Prover は、プログラムのあらゆる実行パスをカバーし、特定の数学的ルールに従い、それらのパスに沿ってデータ フローを追跡できます。包括的制御とデータ フロー解析では補足的な動的テストを行い、通常のロバスト性テストでは見つけることができない可能性がある潜在的なランタイム エラーを発見できることがあります。

  • Polyspace Bug Finder は、プログラムをスキャンして、より明白な欠陥、セキュリティの脆弱性、コーディング規約違反、およびランタイム エラーまたは予期しない結果につながる可能性があるその他の問題を検出できます。

動的テスト製品である Polyspace Test™ は、組み込みシステムでの C および C++ コードの単体テストと統合テストを開発、管理、実行するためのツールを提供します。Polyspace Test を使用すると、C/C++ xUnit ベースの API を使用したテスト作成、グラフィカル ユーザー インターフェイスでのテスト作成、ホスト コンピューターまたは組み込みターゲットでのテスト実行、テスト実行の自動化、およびトレーサビリティのための、要件へのテストのリンクが可能になります。コード カバレッジ メトリクスを計算することでテストの完全性を測定し、手動テスト オーサリングを補完するテストを自動的に生成することもできます。

ソフトウェア開発における Polyspace 製品の使用

Polyspace 製品スイートはソフトウェア開発プロセスのすべての段階をサポートします。

  • コード送信前:

    開発者は、Polyspace デスクトップ製品または IDE をターゲットにした製品を実行して、開発中または送信直前にコードをチェックし、事前定義された品質目標を満たすことができます。

    製品は Visual Studio Code、Visual Studio®、Eclipse™ などの IDE と統合したり、コンパイル時にスクリプトを使用して実行したりできます。解析結果は、IDE またはデスクトップ製品のグラフィカル ユーザー インターフェイスでレビューできます。

    Polyspace では、デスクトップ用に以下の製品を提供しています。これらの製品は、完全なプロジェクト、またはより小さなコード モジュール (単一のソース ファイルまで) に対して実行することを目的としています。

    • Polyspace Bug Finder は C および C++ ソース コードにおける、コンパイラでは検出できないセマンティック エラー (=== の代わりに使用しているなど)、同時実行の問題、セキュリティの脆弱性などの欠陥をチェックします。

    • Polyspace Code Prover は、より深いチェックを実行し、C および C++ ソース コード内のオーバーフロー、ゼロ除算、配列の範囲外へのアクセス、およびその他のランタイム エラーの有無を証明します。

    • "Polyspace Test" はホスト コンピューターまたは組み込みターゲットで C/C++ テストを作成および実行します。

  • コード送信後:

    Polyspace サーバー製品は、Jenkins® などのツールを使用し、継続的インテグレーション プロセスのビルド ステップとして、新しくコミットされたコードに対して自動的に実行させることができます。解析はサーバー上で実行され、結果はコラボレーション レビューのために Web インターフェイスにアップロードされます。

    Polyspace では、サーバー用に以下の製品を提供しています。

    • "Polyspace Bug Finder Server™" は、サーバー上で Bug Finder を自動的に実行し、レビューのために結果を Web インターフェイスにアップロードします。"Polyspace Access™" はアップロードされた結果をレビューします。

    • "Polyspace Code Prover Server" は、サーバー上で Code Prover を自動的に実行し、レビューのために結果を Web インターフェイスにアップロードします。"Polyspace Access" はアップロードされた結果をレビューします。

    • "Polyspace Test" は、サーバー上でテストを自動的に実行し、レビューのために結果を Web インターフェイスにアップロードします。"Polyspace Access" はアップロードされたテスト結果をレビューします。

通常、サーバー製品は数台のビルド サーバー上で実行され、ソフトウェアのビルドとテストの一環として、新しくコミットされたコードをチェックします。各レビュー担当者 (開発者、品質保証エンジニア、または開発マネージャー) は Polyspace Access のライセンスを持ち、アップロードされた解析結果をレビューします。

さらに、開発者に送信後解析結果の Web レビューを行うための "Polyspace Access" へのアクセス権がある場合、送信前解析のため IDE に "Polyspace as You Code" をインストールすることもできます。IDE 拡張機能としてインストールすると Polyspace as You Code はファイル スコープで Bug Finder と同様の解析を実行し、コーディング中にほぼ即時のフィードバックを開発者に提供します。

次の図に、Polyspace 製品で "考えられる 1 つの展開例" を示します。

A flow diagram of a typical software development workflow. Polyspace products can be used both prior to submission and after submission.

デスクトップ製品とサーバー製品の両方を使用すると、送信前ワークフローから送信後ワークフローに円滑に遷移できます。

送信前および送信後での Polyspace の使用の連係

ソフトウェア開発ワークフローの個別の段階で複数の Polyspace 製品を実行する場合、その製品を早い段階で使用すると、それより後の段階の実行でメリットがあります。逆に、後の段階で使用することにしても、それより早い段階の実行に対してメリットがあります。特に以下に注意してください。

  • IDE で Polyspace as You Code を使用する開発者は、単一ファイル内で検出および解決可能な欠陥やコーディング規約違反を、簡単に修正できます。その後に実行される、コード送信後の Polyspace Bug Finder Server 解析では、それらの問題が表示されなくなります。

  • Polyspace Bug Finder Server 解析の結果は Polyspace as You Code 実行のベースラインとして機能します。最新の Polyspace Bug Finder Server の結果を IDE 実行のベースラインとして使用すれば、開発者はコード変更の結果として生じた問題のみに集中できます。

Polyspace Products for Ada コード

Polyspace では、Ada コードの検証用に以下の製品を提供しています。

  • デスクトップ上で Ada コードのランタイム エラーをチェックするための Polyspace Client™ for Ada

  • サーバー上で Ada コードのランタイム エラーをチェックするための Polyspace Server for Ada

デスクトップ製品を使用してデスクトップ上で解析を実行するか、デスクトップ製品とサーバー製品の組み合わせを使用してサーバー上で解析を実行できます。解析結果はレビューのためにデスクトップにダウンロードされます。

Polyspace Code Prover Access のライセンスがあり、Polyspace Code Prover Access の Web インターフェイスを設定した場合、Ada デスクトップ製品から、個々の Ada の結果をコラボレーション レビュー用に Web インターフェイスにアップロードできます。

https://www.mathworks.com/products/polyspace-ada.htmlも参照してください。

参考

トピック