Main Content

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

カスタム メトリクスをもつレイアウトを作成する

この例では、カスタム メトリクスを作成し、メトリクス ダッシュボードのレイアウトを変更して、モデルに関する情報、カスタム メトリクスからの結果、および他のカスタム ウィジェットのみを表示する方法について説明します。

カスタム メトリクスを作成する

新しいメトリクス クラスを作成し、そのメトリクス クラスの関数 algorithm 内でメトリクスが何を計算するかを指定することで、カスタム メトリクスを定義できます。

1.nonvirtualblockcount という名前の新しいメトリクス クラスを作成します。

slmetric.metric.createNewMetricClass('nonvirtualblockcount');

関数 createNewMetricClassnonvirtualblockcount.m という名前のクラスを現在の作業フォルダー内に作成します。

2.この例では、nonvirtualblockcount_orig.m で定義されているサンプルのカスタム メトリクスの内容を、メトリクス クラス ファイル nonvirtualblockcount.m にコピーします。

copyfile nonvirtualblockcount_orig.m nonvirtualblockcount.m f

クラス定義内の関数 algorithm は、カスタム メトリクスが何を計算するかを定義します。この例のファイル nonvirtualblockcount_orig.m には、現在のモデルで非バーチャル ブロックをカウントするメトリクスのアルゴリズムが含まれています。

3.カスタム メトリクスをモデル メトリクス リポジトリに登録します。メトリクス ダッシュボードで使用できるのはモデル メトリクス リポジトリから使用可能なメトリクスのみです。

[id_metric,err_msg] = slmetric.metric.registerMetric('nonvirtualblockcount');

カスタム メトリクスは、関数 slmetric.metric.unregisterMetric を使用してそのメトリクスを登録解除するまで、モデル メトリクス リポジトリに存在し続けることに注意してください。

カスタム ウィジェットを使用してレイアウトを作成する

メトリクス ダッシュボード レイアウト

最低限、メトリクス ダッシュボードでは、レイアウトに 1 つの 'SystemInfo' ウィジェットと、少なくとも 1 つの slmetric.dashboard.Widget タイプまたは slmetric.dashboard.CustomWidget タイプのウィジェットが含まれている必要があります。

'SystemInfo' ウィジェットは、現在のシステムについての情報を表示するウィジェットです。これには、次の事項が含まれます。

  • 現在のシステムの名前。

  • モデルの作成者。

  • 現在のモデルのリビジョン。

  • メトリクス結果をいつ収集したか。

1.新しい構成オブジェクトを作成します。構成には、メトリクス ダッシュボードがウィジェットを配置するために使用するレイアウトが含まれています。この例では、新しい構成の Name"Minimal" として指定します。構成オブジェクトの詳細については、slmetric.dashboard.Configurationを参照してください。

dashboardconfig = slmetric.dashboard.Configuration.new(Name='Minimal')
dashboardconfig = 
  Configuration with properties:

        Name: 'Minimal'
    FileName: ''
    Location: ''

2.構成からダッシュボード レイアウトを取得します。

layout = getDashboardLayout(dashboardconfig);

3.関数 addWidget を使用して 'SystemInfo' ウィジェットをレイアウトに追加します。

addWidget(layout,'SystemInfo')
ans = 
  Widget with properties:

    Title: ''
     Type: 'SystemInfo'
       ID: 'd32c10e1-51fd-490c-ae00-463d043e4f2f'

単一の値の表示

既定では、カスタム ウィジェットは、ウィジェットのタイトルの隣に単一の整数値を表示します。

1.widgetType'Custom' に指定して、カスタム ウィジェット customWidget をレイアウトに追加します。

customWidget = addWidget(layout,'Custom');

既定では、カスタム ウィジェットは VisualizationType 'SingleValue' を指定して、単一の整数値をダッシュボードに表示します。

2.カスタム メトリクス 'nonvirtualblockcount' をカスタム ウィジェットに割り当てます。

customWidget.setMetricIDs('nonvirtualblockcount');

3.カスタム ウィジェットのタイトルを指定します。

customWidget.Title = 'Nonvirtual Block Count'
customWidget = 
  CustomWidget with properties:

    VisualizationType: 'SingleValue'
               Labels: {0×1 cell}
                Title: 'Nonvirtual Block Count'
                 Type: 'Custom'
                   ID: 'cf85635e-a467-4c13-a7e5-6813001e3123'

メトリクス ダッシュボードで新しいレイアウトを使用する

1.更新された構成 dashboardconfig を XML ファイルとして保存します。XML ファイルには、ダッシュボードの新しい、最小限のレイアウトが含まれています。

save(dashboardconfig,'Filename','DashboardConfig.xml');

2.XML ファイルをメトリクス ダッシュボードのアクティブな構成として設定します。

slmetric.dashboard.setActiveConfiguration(fullfile(pwd,'DashboardConfig.xml'));

3.モデル vdp のメトリクス ダッシュボードを開きます。

metricsdashboard vdp
Warning: The Metrics Dashboard and slmetric.Engine API will be removed in a future release.
For size, architecture, and complexity metrics, use the Model Maintainability Dashboard and metric.Engine API instead.
The Model Maintainability Dashboard and metric.Engine API can identify outdated metric results, analyze dependencies between files, and aggregate metrics across software units and components.
For more information, see <a href="matlab:helpview([docroot '/slcheck/collect-model-metric-data-1.html'])">Collect Model and Testing Metrics</a>

4.[すべてのメトリクス] をクリックしてダッシュボードで各メトリクスを実行します。

メトリクス ダッシュボードには 'SystemInfo' ウィジェットとカスタム メトリクス 'nonvirtualblockcount' のためのカスタム ウィジェットのみが表示されます。

ウィジェットがメトリクス結果を表示する方法を変更する

既定では、カスタム ウィジェットは VisualizationType 'SingleValue' を使用します。

'SingleValue' ウィジェットのメトリクスを実行すると、ウィジェットは単一の整数値のみをウィジェットの Title の隣に表示します。

ただし、カスタム ウィジェットの可視化の種類を、棒グラフ、放射状ゲージ、または分布ヒートマップに変更できます。詳細については、slmetric.dashboard.CustomWidgetを参照してください。

棒グラフの表示

bar chart.png

カスタム ウィジェットでメトリクス結果を棒グラフで表示させるには、次のようにします。

  • VisualizationType'BarChart' として指定します。

  • Labels プロパティを使用して、棒グラフのそれぞれのバーにラベルを指定します。ラベルは cell 配列で指定する必要があり、ラベルの数がウィジェットに関連付けられているメトリクス ID の数と等しくなければなりません。

  • 関数 setHeight を使用してウィジェットの高さを設定し、ウィジェットがレイアウトに表示されるようにします。

新しいカスタム ウィジェット barChartWidget をレイアウトに追加します。

barChartWidget = addWidget(layout,'Custom');
barChartWidget.VisualizationType = 'BarChart';
barChartWidget.Title = 'Bar Chart';
barChartWidget.setMetricIDs({'nonvirtualblockcount','mathworks.metrics.SimulinkBlockCount'})
barChartWidget.Labels = {'Nonvirtual Block Count','Block Count'};
barChartWidget.setHeight(220);

この例では、カスタム ウィジェットは各メトリクス ID について 1 つのバーを表示します。棒グラフは、カスタム メトリクス 'nonvirtualblockcount' のメトリクス ID と Simulink® Check™ メトリクス 'mathworks.metrics.SimulinkBlockCount' のメトリクス ID を使用します。使用できるメトリクスの一覧を表示するには、関数 slmetric.metric.getAvailableMetrics を使用します。詳細については、モデル メトリクスを参照してください。

放射状ゲージの表示

カスタム ウィジェットでメトリクス結果を放射状ゲージで表示させるには、次のようにします。

  • VisualizationType'RadialGauge' として指定します。

  • メトリクス結果を 0 と 1 の間の値で指定します。放射状ゲージでは、0 と 1 の間の値のみがサポートされます。

randomnumber という名前の新しいメトリクス クラスを作成します。

slmetric.metric.createNewMetricClass('randomnumber');

この例では、randomnumber_orig.m で定義されているサンプルのカスタム メトリクスの内容を、メトリクス クラス ファイル randomnumber.m にコピーします。

copyfile randomnumber_orig.m randomnumber.m f

サンプルのカスタム メトリクスを登録します。カスタム メトリクスの定義内の関数 algorithm は、0 と 1 の間の乱数であるメトリクス値 res.Value を指定します。

slmetric.metric.registerMetric('randomnumber');

新しいカスタム ウィジェット gaugeWidget をレイアウトに追加します。

gaugeWidget = addWidget(layout,'Custom');
gaugeWidget.VisualizationType = 'RadialGauge';
gaugeWidget.Title = 'Radial Gauge';
gaugeWidget.setMetricIDs('randomnumber');

分布ヒートマップの表示

heat_map.png

カスタム ウィジェットでメトリクス結果を分布ヒートマップで表示させるには、次のようにします。

  • VisualizationType'DistributionHeatmap' として指定します。

  • メトリクス結果の値を正の整数値の配列として指定します。分布ヒートマップでは、正の整数値の配列のみがサポートされます。

新しいカスタム ウィジェット heatmapWidget をレイアウトに追加します。

heatmapWidget = addWidget(layout,'Custom');
heatmapWidget.VisualizationType = 'DistributionHeatmap';
heatmapWidget.Title = 'Distribution Heat Map';
heatmapWidget.setMetricIDs('mathworks.metrics.SimulinkBlockCount');

たとえば、カスタム ウィジェットはメトリクス 'mathworks.metrics.SimulinkBlockCount' のメトリクス結果を表示します。メトリクス 'mathworks.metrics.SimulinkBlockCount' は、モデルとモデル サブシステムのブロックの数を返します。

更新されたレイアウトの保存とメトリクス ダッシュボードの表示

更新されたレイアウトを保存してメトリクス ダッシュボードを表示するには、次のように入力します。

save(dashboardconfig,'Filename','DashboardConfig.xml');
slmetric.dashboard.setActiveConfiguration(fullfile(pwd,'DashboardConfig.xml'));
metricsdashboard vdp
Warning: The Metrics Dashboard and slmetric.Engine API will be removed in a future release.
For size, architecture, and complexity metrics, use the Model Maintainability Dashboard and metric.Engine API instead.
The Model Maintainability Dashboard and metric.Engine API can identify outdated metric results, analyze dependencies between files, and aggregate metrics across software units and components.
For more information, see <a href="matlab:helpview([docroot '/slcheck/collect-model-metric-data-1.html'])">Collect Model and Testing Metrics</a>

カスタム メトリクスの登録解除

カスタム メトリクスは、関数 slmetric.metric.unregisterMetric を使用してそのメトリクスを登録解除するまで、モデル メトリクス リポジトリに存在し続けることに注意してください。

slmetric.metric.unregisterMetric('nonvirtualblockcount');
slmetric.metric.unregisterMetric('randomnumber');

参考

| | | |

関連するトピック