Main Content

execute

メトリクス結果を収集する

R2020b 以降

説明

execute(metricEngine,metricIDs) は、metricIDs で指定したメトリクスについて、指定した metric.Engine オブジェクト内に結果を収集します。

なお、関数 execute (Fixed-Point Designer) は Fixed-Point Designer™ ドキュメンテーションにもあります。

execute(metricEngine,metricIDs,'ArtifactScope',scope) は、指定した scope のアーティファクトのメトリクス結果を収集します。たとえば、scope をプロジェクト内のユニットに指定できます。

すべて折りたたむ

プロジェクト内の設計アーティファクトに関するメトリクス結果を収集します。

解析するモデルを含むプロジェクトを開きます。この例では、MATLAB® コマンド ウィンドウで次のように入力します。

openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample");
openProject("cc_CruiseControl");

metric.Engine オブジェクトを作成します。metric.Engine オブジェクトを使用して、現在のプロジェクトについてのメトリクス結果を収集できます。

metric_engine = metric.Engine();

メトリクス エンジンを実行してメトリクス slcomp.OverallCyclomaticComplexity の結果を収集します。メトリクスの詳細については、モデル保守性メトリクスを参照してください。

execute(metric_engine,'slcomp.OverallCyclomaticComplexity');

関数 getMetrics を使用して結果にアクセスします。結果オブジェクトの配列を変数 results に代入します。

results = getMetrics(metric_engine,'slcomp.OverallCyclomaticComplexity');

results 配列内の metric.Result オブジェクトのプロパティを使用してメトリクスの結果データにアクセスします。

for n = 1:length(results)
    disp(['Model: ',results(n).Scope.Name])
    disp(['  Overall Design Cyclomatic Complexity: ',num2str(results(n).Value)])
end
Model: cc_DriverSwRequest
  Overall Design Cyclomatic Complexity: 9
Model: cc_ThrottleController
  Overall Design Cyclomatic Complexity: 4
Model: cc_ControlMode
  Overall Design Cyclomatic Complexity: 22
Model: cc_CruiseControl
  Overall Design Cyclomatic Complexity: 1
Model: cc_LightControl
  Overall Design Cyclomatic Complexity: 4

設計アーティファクトのメトリクスを収集する方法の詳細については、プログラムによるモデル保守性メトリクスの収集を参照してください。

プロジェクト内の要件ベースのテスト アーティファクトに関するメトリクス結果を収集します。

モデルとテスト アーティファクトを含むプロジェクトを開きます。この例では、MATLAB コマンド ウィンドウで次のように入力します。

openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample");
openProject("cc_CruiseControl");

metric.Engine オブジェクトを作成します。metric.Engine オブジェクトを使用して、現在のプロジェクトについてのメトリクス結果を収集できます。

metric_engine = metric.Engine();

metric_engine のトレース情報を更新して、アーティファクト情報が確実に最新の状態になるようにします。

updateArtifacts(metric_engine)

metric.Engine オブジェクトに対して関数 execute を使用してメトリクス 'RequirementsPerTestCase' の結果を収集します。

execute(metric_engine,'RequirementsPerTestCase');

関数 getMetrics を使用して結果にアクセスします。結果オブジェクトの配列を変数 results に代入します。

results = getMetrics(metric_engine,'RequirementsPerTestCase');

配列内の metric.Result オブジェクトのプロパティを使用してメトリクスの結果データにアクセスします。

for n = 1:length(results)
    disp(['Test Case: ',results(n).Artifacts(1).Name])
    disp(['  Number of Requirements: ',num2str(results(n).Value)])
end

プロジェクト内の 1 つのユニットに関するメトリクスを収集します。モデルを指定し、そのモデルまでトレースするアーティファクトのみのメトリクスを収集します。

モデルが含まれるプロジェクトを開きます。この例では、MATLAB コマンド ウィンドウで次のように入力します。

openExample("slcheck/ExploreTestingMetricDataInModelTestingDashboardExample");
openProject("cc_CruiseControl");

プロジェクトの metric.Engine オブジェクトを作成します。

metric_engine = metric.Engine();

metric_engine のトレース情報を更新して、アーティファクト情報が確実に最新の状態になるようにします。

updateArtifacts(metric_engine)

モデル db_DriverSwRequest のパスを表す変数を作成します。

modelPath = fullfile(pwd, 'models', 'db_DriverSwRequest.slx');

エンジン オブジェクトに対して関数 execute を使用し、スコープを db_DriverSwRequest モデルに制限して、メトリクス 'RequirementsPerTestCase' の結果を収集します。

execute(metric_engine,'RequirementsPerTestCase',...
'ArtifactScope',{modelPath,'db_DriverSwRequest'});

関数 getMetrics を使用して結果にアクセスします。

results = getMetrics(metric_engine,'RequirementsPerTestCase');
for n = 1:length(results)
    disp(['Test Case: ',results(n).Artifacts(1).Name])
    disp(['  Number of Requirements: ',num2str(results(n).Value)])
end

入力引数

すべて折りたたむ

メトリクス結果を収集するメトリクス エンジン オブジェクト。metric.Engine オブジェクトとして指定します。

収集するメトリクスのメトリクス識別子。文字ベクトル、文字ベクトルの cell 配列、string、または string 配列として指定します。

関数getAvailableMetricIdsを使用して、使用可能なメトリクス識別子のリストを返すことができます。

メトリクスおよびその識別子の詳細については、以下を参照してください。

例: 'slcomp.OverallCyclomaticComplexity'

例: {'slcomp.OverallMATLABeLOC', 'slcomp.OverallSignalLines'}

例: 'TestCasesPerRequirementDistribution'

例: {'slcomp.mt.TestStatus', 'slcomp.mt.CoverageBreakdown'}

メトリクス結果を収集するプロジェクト ファイルのパスおよび識別子。文字ベクトルの cell 配列または string 配列として指定します。1 番目のエントリはプロジェクト ファイルの絶対パス、2 番目のエントリはプロジェクト ファイル内のオブジェクトの識別子です。

ユニット モデルでは、1 番目のエントリはモデル ファイルの絶対パス、2 番目のエントリはブロック線図の名前です。この引数を使用すると、メトリクス エンジンは、指定したプロジェクト ファイルまでトレースするアーティファクトの結果を収集します。

例: {'C:\work\MyModel.slx', 'MyModel'}

代替機能

アプリ

ダッシュボード ユーザー インターフェイスを使用してメトリクス結果を収集することもできます。

バージョン履歴

R2020b で導入