Управление требованиями без изменения файлов модели Simulink

Можно хранить данные ссылки для моделей Simulink путем хранения данных ссылки в модели Simulink .slx файл или хранение ссылок во внешней .slmx файл.

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

Этот пример показов, как работать с внешне сохраненными ссылками RMI. Нажмите Открыть пример, чтобы создать рабочую папку из файлов примера. Выполните следующие команды:

rmimap.map('slvnvdemo_powerwindowController', 'clear');
Nothing to clear for .../slrequirements-ex04732634/slvnvdemo_powerwindowController.slx
open_system('slvnvdemo_powerwindowController');
rmipref('UnsecureHttpRequests',true);

Настройка менеджера требований для работы со ссылками

  1. На вкладке Приложения откройте Диспетчер требований.

  2. На вкладке «Требования» убедитесь, что выбрано «Размещение» > «Браузер требований».

  3. В браузере требований в раскрывающемся меню View выберите Ссылки.

  4. В этом примере вы работаете исключительно на вкладке Requirements, и все ссылки на кнопки панели инструментов находятся на этой вкладке.

Этот пример использует представление ссылки. В браузере требований установите для параметра View значение Links.

Настройка RMI для внешнего хранения ссылок

  1. На вкладке Requirements выберите Link Settings > Default Link Storage. Откроется диалоговое окно «Параметры требований».

  2. Выберите Store externally (в отдельном файле * .slmx).

rmipref('StoreDataExternally', true);

Имя файла по умолчанию для сохранения требований связывает данные - ModelName .slmx. Файл ссылок должен быть в той же папке, что и модель, чтобы ссылки разрешались.

Создание и управление ссылками RMI

Создайте ссылку из модели в документ.

  1. Откройте PowerWindowSpecification.docx файл в текущей директории .

  2. Выберите вход пассажира подзаголовка состоит из вектора с тремя элементами в разделе High Level Discrete Event Control Specification.

  3. Найдите блок Mux4.

rmidemo_callback('locate','slvnvdemo_powerwindowController/Mux4');

Щелкните правой нажатие кнопки Mux4 и выберите Requirements > Link to Selection in Word.

Для создания ссылки можно также ввести следующее:

testReqLink = rmi('createEmpty'); 
testReqLink.description = 'testReqLink';
testReqLink.doc = 'PowerWindowSpecification.docx';
testReqLink.id = '?passenger input consists of a vector with three elements';

После ввода кода используйте: rmi('set', 'slvnvdemo_powerwindowController/Mux4', testReqLink) чтобы создать ссылку.

Если модель все еще подсвечена, Mux4 блочные подсветки для указания связанных данных требований. Информация о новой ссылке хранится отдельно от модели и экономит при сохранении модели.

Сохранение требований связывает данные с внешними файлами

При внешнем сохранении данных требований можно сохранить изменения требований следующим образом:

  • Щелкните Сохранить (Save) или Сохранить как модель Simulink, даже если модель не имеет несохраненных изменений.

  • Закрытие модели. Появится запрос на сохранение изменений ссылок.

  • Щелкните Параметры ссылки > Сохранить ссылки как.

Щелкните Параметры ссылки > Сохранить ссылки как и сохранить их с именем slvnvdemo_powerwindowController.slmx.

Закройте модель. close_system('slvnvdemo_powerwindowController',1)

Сохраните файл ссылок с именем ModelName по умолчанию .slmx имя в папке модели или выберите другое имя файла и/или местоположение.

Загрузка ссылок требований из внешних файлов

Когда вы открываете модель, RMI попытается загрузить требования ссылок данных из недавно использованного местоположения для этой модели. Можно также выбрать Загрузить ссылки, чтобы выбрать другое .slmx или .req файл. Таким образом, можно использовать несколько наборов ссылок с одной и той же моделью. Для примера можно использовать ссылки для описания изменений в проекте, которые отличаются от ссылок на исходные спецификации проекта.

Снова откройте модель и выберите Загрузить ссылки, чтобы открыть браузер файлов и указать на slvnvdemo_powerwindowRequirements.slmx в рабочей директории или оцените следующий код.

open_system('slvnvdemo_powerwindowController');
otherReqFile = fullfile('slvnvdemo_powerwindowRequirements.slmx');
rmimap.map('slvnvdemo_powerwindowController', otherReqFile);
Mapping .../slrequirements-ex04732634/slvnvdemo_powerwindowController.slx to slvnvdemo_powerwindowRequirements.slmx

Щелкните Подсветить ссылки (Highlight Links) на панели инструментов, чтобы подтвердить, что альтернативный набор ссылок теперь связан с моделью, или оцените следующий код.

rmi('highlightModel', 'slvnvdemo_powerwindowController');

Figure Highlight Objects with Requirements contains an axes and another object of type uicontrol. The axes contains an object of type image.

Вы можете перемещаться и изменять эти ссылки так же, как вы работали бы со встроенными (в модели) ссылками.

Перемещение ссылок RMI из внутреннего хранилища во внешнее

Модель с существующими ссылками требований может быть преобразована во внешнее хранилище. Ссылки данные будут храниться не в файле .slx, а в новом .slmx файл. Попробуйте это с помощью следующих шагов.

Откройте другую модель, которая имеет внутренние данные RMI путем оценки следующего кода.

open_system('slvnvdemo_fuelsys_officereq');

Выберите меню «Параметры ссылки» > «Сохранить ссылки как файл набора ссылок», чтобы открыть браузер файлов. Выберите имя файла для нового внешнего .slmx файл и нажмите OK. Модель повторяется без встроенных ссылок и нового .slmx создается файл. Можно также оценить следующий код.

rmidata.saveAs('slvnvdemo_fuelsys_officereq','slvnvdemo_fuelsys_officereq.slmx');

Теперь ссылки требований зависят от внешнего файла.

Нажмите Highlight Links, чтобы подтвердить, что данные о ссылке доступны, или оцените следующий код.

rmi('highlightModel', 'slvnvdemo_fuelsys_officereq');

Закройте модель вручную и удалите внешнюю .slmx файл, или оценить следующий код.

close_system('slvnvdemo_fuelsys_officereq',1);

Используйте следующий код для удаления файла: rmidemo_callback('remove','slvnvdemo_fuelsys_officereq.slmx')

Вручную откройте модель или оцените следующий код.

open_system('slvnvdemo_fuelsys_officereq');

Нажмите Highlight Links или вычислите следующее, чтобы подсветить ссылки: rmi('highlightModel', 'slvnvdemo_fuelsys_officereq')

Ничего не подсвечивается, поскольку данные больше не доступны. Воссоздайте slvnvdemo_fuelsys_officereq.slmx Файлу и сопоставьте его с slvndemo_fuelsys_officereq Simulink модель путем оценки следующего кода.

rmimap.map('slvnvdemo_fuelsys_officereq','backup_reqs.slmx');
Mapping .../slrequirements-ex04732634/slvnvdemo_fuelsys_officereq.slx to backup_reqs.slmx
rmidata.saveAs('slvnvdemo_fuelsys_officereq','slvnvdemo_fuelsys_officereq.slmx');

Точки, которые нужно иметь в виду, прежде чем вы перемещаете внутренне сохраненные ссылки во внешний файл:

  • Вам нужно будет пронести дополнительную .slmx файл вместе с файлом модели.

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

  • Когда один пользователь сконфигурировал местоположение по умолчанию или имя для .slmx файл, сопоставленный с моделью, другие пользователи RMI должны будут вручную выбрать Загрузить ссылки, когда они откроют модель. Указанное расположение будет сохранено в настройках каждого пользователя и не должно изменяться, если файлы не перемещаются или не переименовываются снова.

Перемещение ссылок RMI из внешнего хранилища во внутреннее

Чтобы встраивать данные RMI в модель Simulink, так что вся информация находится в одном месте, и вам не нужно отслеживать дополнительные файлы, выберите Link Settings > Save Links in Model File. Внешний .slmx файл все еще существует, но он не считывается при повторном открытии модели, которая теперь имеет встроенные данные RMI. Вы можете попробовать это с slvnvdemo_fuelsys_officereq.slx модель из предыдущего раздела.

Кроме того, оцените следующий код.

rmipref('StoreDataExternally', false);
save_system('slvnvdemo_fuelsys_officereq');

Точки, которые нужно иметь в виду, прежде чем вы встраиваете данные RMI в файл модели:

  • Каждое изменение ссылок RMI изменит файл модели.

  • Внешние .slmx файлы игнорируются, когда .slx файл содержит данные о ссылках трассируемости.

Очистка

Следующие шаги очищают рабочую область и закрывают открытые модели Simulink.

slreq.clear;
bdclose 'all';