このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
プログラムによるモデル メトリクスの収集
モデル メトリクス API を使用して、モデルのアーキテクチャ、複雑度、可読性を評価するのに役立つモデル メトリクスをプログラムによって収集できます。これらのメトリクスの結果は、業界標準やガイドラインに準拠しているかどうかを検証するのに役立ちます。メモ: メトリクス ダッシュボードは将来のリリースで削除される予定です。サイズ、アーキテクチャ、複雑度のメトリクスについては、代わりにモデル保守性ダッシュボードを使用します。詳細については、モデル保守性ダッシュボードを使用して設計の複雑度を監視するを参照してください。
この例では、モデル メトリクス API を使用して、モデルのサブシステムおよびブロックのカウントのメトリクスをプログラムにより収集する方法を説明します。モデルのメトリクスの収集後、結果にアクセスしてファイルにエクスポートできます。
モデル例
vdp
モデルを開きます。
model = 'vdp';
open_system(model);
メトリクスの収集
モデルのメトリクス データを収集するには、slmetric.Engine
オブジェクトを作成して execute
を呼び出します。
metric_engine = slmetric.Engine(); setAnalysisRoot(metric_engine,'Root','vdp','RootType','Model'); execute(metric_engine);
結果へのアクセス
getMetrics
メソッドを使用して、収集するメトリクスを指定します。この例では、vdp
モデルのブロックおよびサブシステムのカウントのメトリクスを指定します。getMetrics
は、slmetric.metric.ResultCollection
オブジェクトの配列を返します。
res_col = getMetrics(metric_engine,{'mathworks.metrics.SimulinkBlockCount',... 'mathworks.metrics.SubSystemCount'});
結果の保存と表示
metricData
という cell 配列を作成し、メトリクス結果の MetricID
プロパティ、ComponentPath
プロパティおよび Value
プロパティを格納します。MetricID
プロパティはメトリクスの識別子です。ComponentPath
プロパティはメトリクスが計算されたコンポーネントへのパスです。また、Value
プロパティはメトリクス値です。結果を表示するループを記述します。
metricData ={'MetricID','ComponentPath','Value'}; cnt = 1; for n=1:length(res_col) if res_col(n).Status == 0 results = res_col(n).Results; for m=1:length(results) disp(['MetricID: ',results(m).MetricID]); disp([' ComponentPath: ',results(m).ComponentPath]); disp([' Value: ',num2str(results(m).Value)]); metricData{cnt+1,1} = results(m).MetricID; metricData{cnt+1,2} = results(m).ComponentPath; metricData{cnt+1,3} = results(m).Value; cnt = cnt + 1; end else disp(['No results for:',res_col(n).MetricID]); end disp(' '); end
MetricID: mathworks.metrics.SimulinkBlockCount
ComponentPath: vdp
Value: 12
MetricID: mathworks.metrics.SubSystemCount
ComponentPath: vdp
Value: 0
結果のエクスポート
MetricID
、ComponentPath
および Value
をスプレッドシートにエクスポートするには、writetable
を使用して metricData
の内容を MySpreadsheet.xlsx
に書き込みます。
filename = 'MySpreadsheet.xlsx';
T=table(metricData);
writetable(T,filename);
メトリクス結果を XML ファイルにエクスポートするには、exportMetrics
メソッドを使用します。各メトリクス結果について、XML ファイルには ComponentID
、ComponentPath
、MetricID
、Value
、AggregatedValue
および Measure
が含まれます。
filename='MyMetricResults.xml';
exportMetrics(metric_engine,filename)
vdp
モデルを閉じます。
bdclose(model);
制限
メトリクス データを収集するときに、そのデータはシミュレーション キャッシュ フォルダー内のデータベース ファイル Metrics.db
に格納されます。あるプラットフォームのメトリクス データを収集し、データベース ファイルを別のプラットフォームに移行し、引き続きそのデータベース ファイルに追加のメトリクス データを収集することはできません。たとえば、Windows マシンでメトリクス データを収集してからデータベース ファイルを Linux マシンに移行する場合、追加のメトリクス データをそのデータベース ファイルに収集および格納することはできません。ただし、そのデータをメトリクス ダッシュボードに表示することはできます。
参考
slmetric.Engine
| slmetric.metric.Result
| slmetric.metric.ResultCollection