Main Content

厳密クローンをサブシステム参照に置換

厳密クローンは、ブロックのタイプ、接続、パラメーター値が同一であるモデル化パターンです。クローン検出器は参照モデルの境界を越えてこれらのクローンを特定します。厳密クローンをライブラリ リンクおよびサブシステム参照ブロックに置き換えることで、コンポーネントを再利用できます。厳密クローンをライブラリ リンクに置き換えるには、クローン検出を使用したコンポーネント再利用の有効化を参照してください。この例では、サブシステム クローンをサブシステム参照ブロックに置き換える方法を示します。

厳密クローンの特定

  1. モデル ex_detect_clones を開きます。

    openExample("ex_detect_clones");

    Simulink canvas for ex_detect_clones model

  2. モデルを作業フォルダーに保存します。アプリにアクセスするには、モデルが開かれていなければなりません。

  3. [アプリ] タブで、[クローン検出器] をクリックします。または、MATLAB® コマンド ラインで次のように入力します。

    clonedetection("ex_detect_clones")
  4. アプリによって [クローン検出器] タブが開きます。この例では、各セクションについて説明します。

    Clone Detector toolstrip with sections for View, Prepare, Detect, Refactor, and Verify

クローン検出のためのペインの設定

アプリによって 3 つのペインに情報が表示されます。ペインを開くには、[表示] メニューを使用します。ペインには次のものがあります。

  • ヘルプ - クローン検出ワークフローの概要を含むヘルプ ペインにアクセスする場合に選択します。

  • 結果 - [クローン検出の結果とアクション] ペインを表示する場合に選択します。

  • プロパティ - [検出されたクローン プロパティ] ペインを表示する場合に選択します。

クローン検出のためのパラメーターの設定

[設定] ドロップダウン メニューを使用して、クローン検出のためのパラメーターを設定できます。

  • [厳密クローンからサブシステム参照への置き換え] を選択します。

  • [コンポーネントの除外] をクリックして [モデル参照の除外][ライブラリ リンクの除外]、および [非アクティブ領域とコメントアウト領域の除外] オプションにアクセスします。[非アクティブ領域とコメントアウト領域の除外] オプションを有効にすると、モデル内の Variant Source ブロックが原因で、厳密クローン SS1 が識別されなくなります。詳細については、クローン検出からのコンポーネントの除外を参照してください。[非アクティブ領域とコメントアウト領域の除外] オプションをクリアされたままにします。

  • [モデル全体でのクローンの検出] をクリックし、モデル全体の任意の場所でのクローンの検出を有効にします。[最小領域サイズ][最小クローン グループ サイズ] の値を選択して、これらと一致するブロックをもつクローンを検出できます。[最小領域サイズ] はクローンあたりのブロック数であり、[最小クローン グループ サイズ] はそのクローン グループ内に存在するクローンの数です。それぞれの既定のサイズは 2 です。

モデルのクローンの特定

  1. [クローンの検索] をクリックしてクローンを特定します。

  2. サブシステム SS1 および SS4 の色が赤に変更され、それらが厳密クローンであることが示されます。

クローン検出の結果の解析

クローンを特定した後、結果を解析して、必要に応じてモデルに変更を加えることができます。結果を解析するには次のようにします。

  1. [クローン検出の結果とアクション] パネルで、[クローンの結果] タブにクローン グループ Exact Clone Group 1 が表示されます。

  2. Exact Clone Group 1 の横の > 記号をクリックすると、厳密クローンであるすべてのサブシステムと、クローンごとのブロック数が表示されます。

  3. [クローン検出の結果とアクション] ペインで、[ログ] タブをクリックします。[ログ] ペインで、ハイパーリンクをクリックします。

    クローン検出レポートが HTML で生成され、MATLAB の現在のフォルダーに保存されます。レポートが新しい Web ブラウザー ウィンドウで開き、クローンの概要、クローン グループ、クローン タイプ、検出パラメーター、およびモデルに適用された対象外指定構成に関する詳細情報を含む個別の検出結果が示されます。

  4. [モデルの階層構造] タブをクリックして、ex_detect_clones を展開します。ハイパーリンクをクリックしてモデルに存在しているサブシステムを強調表示します。

  5. [検出されたクローン プロパティ] ペインの [リファクタリングの利点] セクションでは、存在する厳密クローンの確率を考慮することができます。

    モデルをリファクタリングすることで、モデルの再利用が 6.4516% 削減されます。

    Refactor Benefits section showing potential reuse percentage

クローンの置換

  1. [クローン検出器] タブで、[クローンの置換] をクリックします。厳密クローンがサブシステム参照ブロックに置き換えられます。サブシステム参照の .slx ファイルが作業フォルダーに表示されます。

  2. [クローン検出の結果とアクション] ペインの [クローンの結果] タブで [元に戻す] ボタンをクリックすることで、モデルをクローンのある元の構成に復元できます。

モデルの同一性のチェック

Simulink Test™ をお持ちの場合は、[同一性のチェック] をクリックすることで、新しいモデルと元のモデルとの等価性を [クローン検出] タブで確認できます。

Equivalency Check window with button to View Results

関連するトピック