Включите повторное использование компонента при помощи обнаружения клонов

Клоны моделируют шаблоны, которые имеют идентичные типы блока и связи. Приложение Clone Detector идентифицирует клоны через модель или в подсистеме контуры. Можно использовать приложение Clone Detector или команды MATLAB программно к компонентам повторного использования путем создания библиотечных блоков шаблонов клона и заменяющий клоны на ссылки на те библиотечные блоки. Можно также использовать его, чтобы соединить клоны от существующей библиотеки.

Точные клоны и подобные клоны

Существует два типа клонов: точные клоны и подобные клоны. Точные клоны имеют идентичные типы блока, связи и значения параметров. Подобные клоны имеют идентичные типы блока и связи, но у них могут быть различные значения параметров блоков. Например, значение блока Gain может отличаться в подобных клонах, но должно быть тем же самым в точных клонах.

Точные клоны и подобные клоны могут иметь эти различия:

  • Два клона могут иметь различный отсортированный порядок.

  • Длина сигнальных линий и местоположения и размера блоков может отличаться, если связи блока являются тем же самым.

  • Блоки и сигналы могут иметь различные имена.

После того, как вы идентифицируете клоны, можно заменить их на ссылки на библиотечные блоки. Подобные клоны соединяются с подсистемами библиотеки маскированными.

Задайте, где обнаружить клоны

Поддержки приложений Clone Detector две опции для обнаружения клонов в модели. Можно искать клоны в подсистеме или где угодно в модели с помощью Настроек обнаружения клонов.

  • Клоны подсистемы: Идентифицирует клоны только в подсистемы.

  • Клоны где угодно: Идентифицирует клоны где угодно в модели.

Идентифицируйте точные и подобные клоны

В этом примере показано, как использовать приложение Clone Detector, чтобы идентифицировать точные и подобные клоны подсистемы, и затем заменить их на ссылки на библиотечные блоки.

  1. Откройте модель ex_clone_detection. В MATLAB® командная строка, введите:

    addpath(fullfile(docroot,'toolbox','simulink','examples'))
    ex_clone_detection

  2. Сохраните модель в свою рабочую папку. Модель должна быть открыта, чтобы получить доступ к приложению.

  3. На вкладке Apps нажмите Clone Detector. В качестве альтернативы на командной строке MATLAB войдите:

    clonedetection("ex_clone_detection")
  4. Приложение открывает вкладку Clone Detector. Этот пример берет вас через каждый раздел.

Настройте панели для Обнаружения клонов

Информация об отображениях приложения о нескольких панелях. Можно выбрать три из панелей в соответствии с меню View. Панели:

  • Справка. Выберите, чтобы получить доступ к панели справки, которая содержит обзор рабочего процесса обнаружения клонов.

  • Results. Выберите, чтобы просмотреть панель Действий и Результатов Обнаружения клонов.

  • Свойства. Выберите, чтобы просмотреть панель Detected Clone Properties.

Установите параметры для обнаружения клонов

Можно настроить параметры для обнаружения клонов при помощи Settings выпадающее меню.

  • Выберите Ignore differences in > Signal Names, чтобы идентифицировать и классифицировать клоны, когда имена сигнала будут отличаться.

  • Выберите Ignore differences in > Block Properties, чтобы идентифицировать и классифицировать клоны, когда свойства блока будут отличаться. Для получения дополнительной информации о свойствах блока, смотрите Specify Block Properties.

  • Нажмите Replace Exact Clones With Subsystem References, чтобы найти и заменить точные клоны с блоками ссылки подсистемы.

  • Нажмите Exclude Components, чтобы получить доступ к Exclude model references, Exclude library Links и опциям Exclude inactive and commented out regions. Включение опции Exclude inactive and commented out regions идентифицирует переменные клоны номера из-за блока Variant Source в модели. Для получения дополнительной информации смотрите, Исключают подсистемы и модели, на которые ссылаются, от обнаружения клонов. Включение Exclude model references и опций Exclude library Links приведет к идентификации меньшего количества клонов, в зависимости от модели.

  • Нажмите Match Patterns with Libraries и выберите внешнюю библиотеку, чтобы искать клоны. Для получения дополнительной информации смотрите, Идентифицируют и Клоны Замены в Библиотеках Модели.

  • Maximum number of unmatched block parameters является 50 по умолчанию. Это представляет количество параметров, которые могут варьироваться среди подсистем и все еще быть классифицированы как подобные клоны. Можно сократить это количество, чтобы идентифицировать и классифицировать меньше подобных клонов. При обнулении значения, идентифицирует только точные клоны.

  • Нажмите Detect Clones Across Model, чтобы включить обнаруживают клоны где угодно через модель. Можно выбрать значения Minimum Region Size и Minimum Clone Group Size, чтобы обнаружить клоны с этими блоками соответствия. Размер по умолчанию установлен в 2.

Идентифицируйте клоны подсистемы в модели

  1. Чтобы найти клоны в модели, нажмите на подсистему, которую вы хотите проанализировать. В разделе Detect выбранное имя подсистемы появляется под вкладкой Find Clones in System. Используйте контакт, чтобы помнить выбор.

  2. Нажмите Find Clones, чтобы идентифицировать клоны.

  3. Цвет подсистем изменяется, чтобы отразить подобные и точные идентифицированные клоны. Красное выделение представляет точные клоны, и различные оттенки синего выделения представляют подобные клоны.

Анализируйте результаты обнаружения клонов

После идентификации клонов можно анализировать результаты обнаружения клонов и внести изменения в модель по мере необходимости. Анализировать результаты:

  1. В панели Clone Detection Results and Actions, на вкладке Clone Results, отображен список групп клонов.

  2. Нажмите > символ рядом с Exact Clone Group 1 видеть все подсистемы, которые являются точными клонами, количеством блоков и различиями в блоке. Повторите то же самое для Similar Clone Group 1 и Similar Clone Group 2.

  3. В панели Clone Detection Actions and Results кликните по вкладке Logs. Кликните по гиперссылке на панели Logs.

    Новое окно открывает результаты обнаружения клонов с интегрированным отчетом относительно идентифицированных клонов, типов клонов, параметров обнаружения и исключений в обнаружении клонов.

  4. Кликните по вкладке Model Hierarchy. Кликните по гиперссылкам, чтобы подсветить конкретные подсистемы в модели. Чтобы вернуться к выделению всех клонов, на вкладке Clone Results, нажимают Highlight all clones.

  5. На вкладке Clone Results расширьте Similar Clone Group 1 и кликните по гиперссылке View Parameter Difference.

  6. На панели Detected Clone Properties нажмите ex_clone_detection/SS5/G9 гиперссылка, которая открывает блок G9 усиления в подсистеме SS5, где можно получить доступ к параметру, которые отличаются от базовой подсистемы.

  7. Измените значение параметра усиления от A к B и нажмите Find Clones. Это реклассифицирует Similar Clone Group 1 к Exact Clone Group 2 потому что вы разрешили различие в подсистемах и преобразовали его в точный клон.

  8. Под панелью Refactor Benefits можно считать процент различных типов клонов существующим.

    В панели Clone Detection Actions and Results, во вкладке Clone Results, выбирают клоны, которые требуется осуществить рефакторинг. Выберите все группы клонов для рефакторинга, чтобы уменьшать 22.5806% из повторного использования модели.

Замените клоны

  1. Можно использовать имя библиотеки по умолчанию или поменять имя файла библиотеки и его местоположения на вкладке Clone Results прежде заменяющий клоны.

  2. Нажмите Replace Clones.

    Модель пересмотрена, и клоны заменяются ссылками на newLibraryFile файл библиотеки в вашей рабочей директории.

  3. Можно восстановить модель к ее исходной настройке с клонами путем нажатия кнопки Restore, найденной в журнале детектора клона, который был сгенерирован на вкладке Logs панели Clone Detector Results and Actions.

Идентифицируйте и замените клоны в библиотеках модели

  1. Откройте библиотеку ex_clone_library. В командной строке MATLAB, введите:

    addpath(fullfile(docroot,'toolbox','simulink','examples'))
    ex_clone_library
    

  2. Нажмите Settings > Match Patterns with Libraries и выберите ex_clone_library.slx. Затем нажмите Find Clones.

    Примечание

    Идентификация и рефакторинг клонов, пользующихся внешними библиотеками, должны быть сделаны отдельно в модели. Во время модели, осуществляющей рефакторинг только точные клоны в библиотеках, будет заменен ссылками библиотеки.

  3. Нажмите Replace Clones.

    Модель пересмотрена с точными замененными клонами.

Проверяйте эквивалентность модели

Если у вас есть лицензия Simulink Test™, можно нажать Check Equivalency. Окно открывается и отображения, что текущая модель была успешно пересмотрена в эквивалентную модель.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте