メインコンテンツ

Polyspace デスクトップ ユーザー インターフェイスでの大きなプロジェクトのモジュール化

Polyspace® デスクトップ ユーザー インターフェイスでプロジェクトにソース ファイルを追加するとき、既定では、すべてのファイルが 1 回の実行で解析されます。1 つのアプリケーションのコード ベース全体の解析には、アプリケーションのサイズによっては時間がかかることがあります。

大きなアプリケーションの場合、Polyspace では次のように対応できます。

  • アプリケーションを、検証に要する時間がそれぞれ短い複数のモジュールに分割する。

  • 検証にかかる時間と検証の精度のトレードオフを考慮して、モジュールの数を指定する。

多数の小さなモジュールを使用すると、分析を高速に実行できます。分割中は、クロスモジュール参照が自動的に最小限に抑えられます。ただし、モジュールの数が増えると、検証中に必要なクロスモジュール参照が増加し、その結果として精度が低下することになります。

アプリケーションをモジュールに分割するには、次のようにします。

  1. 初期検証を実行します。この検証での解析は限定的ですが、アプリケーションのすべてのファイルが処理されます。たとえば、以下の [精度] ペインの設定を使用して検証を実行します。

    • 精度レベル0

    • 検証レベルSoftware Safety Analysis level 0

  2. [プロジェクト ブラウザー] ビューで、結果フォルダーを選択します。

  3. [ツール][モジュール化の実行] を選択します。アプリケーション コードが解析され、新しい [Modularization choices] ウィンドウに 2 つのプロットが表示されます。

    Plot that allows you to pick a number of modules.

    プロットには、次の情報が表示されます。

    • 赤 — モジュールの数に対するモジュールの最大複雑度。これは、アプリケーションの総複雑度の割合として表されます。

    • 青 — モジュールが特定の複雑度によって限定されている場合のパブリック変数とパブリック関数の数。

  4. プロットから、アプリケーションをいくつのモジュールに分割しなければならないかを特定します。この例では、2 または 4 が適切な数です。

    分割するモジュールの数を選択する際は、以下のトレードオフを考慮します。

    • 時間 — 最大複雑度が小さいほど、検証に要する時間は短くなります。異なるモジュールを並行して検証することで、この時間をさらに短縮できます。

    • 精度 — パブリック変数やパブリック関数の数が少ないほど、検証の精度は高くなります。

    最大複雑度が大きく下がった直後、かつ、パブリック関数やパブリック変数の数が大きく増える前の数値を選択します。モジュール検証の精度は、パブリック変数の数に応じて大きく変化することがあります。青い水平方向の線の上昇が非常に緩やかで、明確に選択できる数値がない場合は、次のようにします。

    1. ツール バーで、[Public Entities][Separate functions and variables] を選択します。パブリック変数とパブリック関数の数が個別に表示されます。

      Plot showing number of public variables and functions separately.

    2. パブリック変数の数が大きく増加する直前のポイントを選択します。この例では、2 に関連する灰色の領域をクリックする必要があります。

  5. 選択するモジュール数 (たとえば 2) に関連する垂直方向のグレーの領域をクリックします。ダイアログ ボックスが開きます。

    Popup dialog asking whether to overwrite the existing modular configuration.

  6. [Yes] をクリックします。分割されたコードを含む 2 つのモジュールからなる新しいプロジェクトが生成されます。