Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

依存関係アナライザーの範囲と制限

解析範囲

依存関係アナライザーは、プロジェクトまたはモデルに必要なファイルとツールボックスを特定します。解析は、モデル参照、サブシステム参照、リンクされたライブラリ、MATLAB® および C/C++ コード、Stateflow® チャート、データ ファイル、S-Function、要件ドキュメントといった、幅広い依存関係をカバーします。

依存関係アナライザーは、モデルまたはブロックのコールバック、.m ファイルの S-Function などに MATLAB コードを検出すると、参照するファイルを識別しようとします。詳細については、解析の制限を参照してください。

MATLAB ルート フォルダー配下にあるファイルについては、依存関係アナライザーには必要な製品のみが表示されます。依存関係の解析は行いません。

依存関係アナライザーは、ユーザー定義のツールボックス内の依存関係を特定するほか、コード生成によって、またはモデル パラメーター内の MATLAB コードによって導入された依存関係を特定します。これらのオプションは、大規模な設計では時間がかかることがあるため、既定でオフになっています。

解析の範囲を指定するには、依存関係アナライザー ツールストリップで、[解析] をクリックし、以下のオプションを 1 つ以上選択します。

オプション既定の設定説明
C/C++ コードオンC/C++ コード ファイルによって導入された依存関係を解析します。
外部ツールボックスオフユーザー定義のツールボックス内の依存関係を解析します。
モデル パラメーターオフモデル ブロック パラメーターの MATLAB コードによって導入された依存関係を解析します。
生成されたコードのトレーサビリティオフモデルから生成されたコードによって導入された依存関係を解析します。

解析の制限

  • 依存関係アナライザーには、MATLAB コード解析に固有の次のような制限があります。

    • 依存関係アナライザーは、関数の入力引数を、それがリテラル文字ベクトルまたは string であるときにのみ特定します。

      load("mydatafile")
      load mydatafile

      ファイル名を変数として定義して関数に渡した場合、依存関係アナライザーはその依存関係を特定できません。次の例では、コードが実行されないため、依存関係アナライザーは str の値を持っていません。依存関係アナライザーは、依存関係が見つからないと報告する場合があります。

      str = "mydatafile";
      load(str);
      この制限は、load に似た関数、たとえば、fopenxlsreadimportdatadlmreadeval、または imread などにも適用されます。

    • 依存関係アナライザーは、常に自動的にタイプを判別するとは限りません。オブジェクト メソッドの呼び出し方法によっては、依存関係アナライザーがメソッドと関数を混同し、依存関係が見つからないと報告する場合があります。

      MATLAB では、オブジェクト メソッドを 2 つの異なる方法で呼び出すことができます。たとえば、オブジェクト p についてメソッド addFile を呼び出す場合、次のように関数表記を使用できます。

      p = currentProject;
      addFile(p, "myfile");
      また、次のようにドット表記を使用することもできます。
      p = currentProject;
      p.addFile("myfile");
      p のタイプを明示的に宣言しない場合、依存関係アナライザーは、関数表記を使用したメソッドの呼び出しを、関数呼び出しと混同することがあります。アナライザーは addFile を依存関係がないものとして報告します。

      この制限を回避するには、メソッドの呼び出しにドット表記を使用するか、関数内で arguments を使用して変数のタイプを明示的に宣言します。

      function myfunction(p)
      
         arguments
            p matlab.project.Project
         end
      
         addFile(p, "myfile");
      end

  • 依存関係アナライザーでは、モデルが要求した特定のブロックセットまたはツールボックスをレポートしない可能性があります。

    依存関係アナライザーは、Fixed-Point Designer™ など、どのファイルにも依存関係を導入しないブロックセットを検出できません。

    解析で検出できない依存関係を含めるには、プロジェクトに依存関係を導入するファイルを追加します。モデルからプロジェクトを作成するには、モデルからのプロジェクトの作成を参照してください。

  • 依存関係アナライザーは、マスクされたブロック内の動的なコンテンツをレポートしない可能性があります。

    マスクされたブロックのパラメーターに基づき、動的なマスクによってマスク サブシステムが変更され、ブロックの依存関係が変化することがあります。このような動的なマスクがライブラリ内にある場合、依存関係アナライザーは動的な変更を検出することができません。

  • 依存関係アナライザーは、MATLAB をアクション言語として使用する Stateflow チャートをサポートしません。

  • 一部の製品やツールボックスでは、コードおよび Simulink® ライブラリを共有しています。依存関係アナライザーは、それらすべてにおける依存関係をレポートすることがあります。

関連するトピック