Requirements Management Interface (RMI) предоставляет инструменты для создания и просмотра ссылок между объектами Simulink и документами требований. Этот пример иллюстрирует связывание объектов модели с требованиями, хранящимися в IBM RATIONAL DOORS. Для получения дополнительной информации об использовании RMI см. Пример с документами Microsoft Office.
Убедитесь, что ваша установка DOORS настроена для связи с RMI. Запустите MATLAB в качестве администратора и выполните rmi('setup')
. Если обнаружена установка клиента DOORS, RMI предложит установить необходимые файлы API. Это необходимо сделать только один раз после переустановки DOORS или MATLAB. Для получения дополнительной информации см. раздел «Настройка RMI для взаимодействия с Microsoft Office и IBM Rational DOORS».
В целях этого примера является примером модели отказоустойчивой системы управления топливом, называемой slvnvdemo_fuelsys_doorsreq.slx
включено. Используйте его для упражнений, представленных ниже.
Откройте модель Simulink вручную или путем оценки следующего кода.
open_system('slvnvdemo_fuelsys_doorsreq');
Можно использовать любой временный модуль DOORS для основных упражнений создания ссылки ниже, и можно использовать включенный DemoRMI .dpa
архив для более продвинутого упражнения синхронизации суррогатного модуля.
На вкладке Приложения откройте Диспетчер требований.
На вкладке «Требования» убедитесь, что выбрано «Размещение» > «Браузер требований».
В браузере требований в раскрывающемся меню View выберите Ссылки.
В этом примере вы работаете исключительно на вкладке Requirements, и все ссылки на кнопки панели инструментов находятся на этой вкладке.
Если в течение этого примера в раскрывающемся меню «Вид» браузера требований в любой момент можно изменить значение параметра «Требования», это приведет к изменению кнопок, которые можно увидеть, и, возможно, вы не сможете правильно следовать инструкциям без возврата на «Ссылки».
Можно связать объект модели с требованиями, хранящимися в базе данных DOORS (объекты DOORS). Изменение документов DOORS при создании ссылок не требуется. Самый практический способ создать новые ссылки - это диалоговое окно Outgoing Link. Для этого необходимо вручную заполнить поля атрибутов ссылки. Более легкий автоматизированный способ см. в следующем подразделе.
Перейдите к Metered Fuel
Блок Scope.
rmidemo_callback('locate','slvnvdemo_fuelsys_doorsreq/Metered Fuel');
Щелкните правой кнопкой мыши блок и выберите Requirements > Open Outgoing Links диалоговое окно... из контекстного меню. Откроется диалоговое окно Outgoing Link.
Щелкните Создать, чтобы создать новое требование.
Выберите DOORS Элемента в раскрывающемся списке Типа документа.
Укажите уникальный идентификатор целевого модуля в поле вход или используйте кнопку Browse, чтобы выбрать целевой модуль в базе данных DOORS.
Введите идентификатор целевого объекта в поле Location Identifier или используйте вкладку Document Index, чтобы выбрать целевой объект в выбранном модуле.
Нажмите Применить или ОК, чтобы сохранить новую ссылку требования.
Еще раз щелкните правой кнопкой мыши тот же блок Simulink, чтобы увидеть новую метку ссылки, перечисленную в верхнем фрагменте контекстного меню.
Более легкий способ установить новые ссылки - с помощью ярлыков Selection Linking. Щелкните правой кнопкой мыши блок и выберите «Требования» > «Ссылкой на выбор» в DOORS.
Создание ссылок с помощью ярлыков контекстного меню не требует ручного ввода. Конечный объект ссылки определяется текущим выбором в DOORS, и в поле Description устанавливается значение соответствующего заголовка объекта или текста объекта DOORS, если заголовка нет. Поскольку Описание используется для ярлыков навигации в контекстных меню, применяется предел на количество символов.
RMI поддерживает двунаправленное связывание с требованиями в DOORS, но вы начнете с однонаправленных ссылок. Отключите двунаправленное связывание на вкладке Requirements модели, щелкнув Link Settings > Linking Options и сняв флажки Modify destination для двунаправленного связывания в разделе При создании ссылок на основе выбора.
Также можно оценить следующий код.
rmipref('BiDirectionalLinking', false);
Мы рассмотрим двунаправленное связывание позже. Теперь попробуйте это:
Выберите любой объект в тестовом модуле в DOORS.
Перейдите к throttle sensor
блок.
rmidemo_callback('locate','slvnvdemo_fuelsys_doorsreq/throttle sensor');
Щелкните правой кнопкой мыши блок и выберите Requirements > Link to Selection in DOORS в контекстном меню, чтобы создать ссылку.
Щелкните правой кнопкой мыши по throttle sensor
снова заблокировать и найти метку ссылки в верхней части контекстного меню Requirements, чтобы подтвердить, что ссылка была добавлена. Диалоговое окно «Исходящая ссылка» можно использовать позже, чтобы настроить метку описания или ключевые слова тега пользователя.
Кнопка Use current в диалоговом окне Outgoing Link обеспечивает комбинированный подход:
Щелкните правой кнопкой мыши блок в модели и выберите Requirements > Open Outgoing Links диалоговое окно... из контекстного меню.
Нажмите кнопку Создать, чтобы добавить другой элемент ссылки.
Выберите DOORS Элемента в раскрывающемся списке Типа документа.
В окне модуля ДВЕРИ щелкните на объекте, который необходимо связать.
Нажмите кнопку Использовать текущий, чтобы автоматически заполнить все входные поля данными из текущего выбранного объекта DOORS.
Отрегулируйте описание по мере необходимости.
Сохранить изменения можно нажав кнопку ОК или Применить.
Вы также можете использовать кнопку Использовать текущий для перенаправления существующей ссылки:
Выберите необходимый новый целевой объект в DOORS.
В диалоговом окне «Исходящая ссылка» щелкните на элементе списка, который необходимо обновить.
Нажмите кнопку Использовать текущий для обновления атрибутов ссылки.
Ссылки DOORS подсвечиваются и перемещаются так же, как и с другими типами ссылок, см. пример Microsoft Office для получения дополнительной информации.
На вкладке Требования (Requirements) щелкните Подсветить связи (Highlight Links), чтобы выделить все требования в модели примера. Можно также вычислить следующее, чтобы подсветить ссылки.
rmi('highlightModel', 'slvnvdemo_fuelsys_doorsreq');
Убедитесь, что DOORS работает и зарегистрирован.
Щелкните правой кнопкой мыши один из подсвеченных объектов, используемых для создания новых ссылок в предыдущем разделе.
Выберите Requirements в контекстном меню. Метки созданных вами ссылок должны быть видны на верхнюю часть.
Щелкните на метке ссылки. Ваш тестовый модуль откроется в DOORS с выбранным объектом.
Будьте осторожны, чтобы попробовать это только со ссылками, которые вы создали. В модели есть и другие ссылки, которые пока не будут работать. Мы рассмотрим исправление этих ссылок в разделах ниже.
Рабочий процесс суррогатного модуля поддерживается для DOORS, чтобы разрешить двухстороннее связывание без необходимости изменения модулей требований DOORS. Следующий рисунок иллюстрирует рабочий процесс.
Simulink автоматически генерирует новый формальный модуль DOORS, называемый суррогатным модулем, для использования в качестве представления DOORS модели Simulink. Можно выбрать сопоставление всех объектов модели или только объектов со ссылками на DOORS, или выбрать одну из промежуточных опций, как описано в документации.
Можно создать прямые ссылки на требования в DOORS, как показано в предыдущих разделах (отмеченных 3 на рисунке) и необязательные совпадающие прямые ссылки из документов DOORS на объекты Simulink, как показано в последнем разделе этого примера (отмеченные 2 на рисунке).
Кроме того, с суррогатным модулем, присутствующим в DOORS, можно установить связи в DOORS между элементами в суррогатных модулях и требованиями, хранящимися в DOORS (отмеченными 1 на изображении), в то время как навигация к Simulink и из него обеспечивается ссылками на суррогатные предметы (отмеченные 4 на изображении).
Рабочий процесс суррогатного модуля обеспечивает следующие преимущества:
Двунаправленное связывание возможно без необходимости изменения документов в DOORS или моделях в Simulink. Вся необходимая информация хранится в суррогатных модулях и соответствующих модулях ссылки.
Вы можете управлять и анализировать ссылки в окружении DOORS без обязательного запуска Simulink, включая использование собственных возможностей отчетов DOORS.
Ниже приведен пример снимка экрана автогенерированного модуля Surrogate. Обратите внимание, что иерархия DOORS отражает структуру исходной модели Simulink, а заголовки объектов DOORS совпадают с именами объектов Simulink:
Как правило, вы переходите на вкладку Requirements в модели Simulink и используете Share > Synchronize with DOORS, чтобы создать новый суррогатный модуль DOORS для модели Simulink.
В целях этого примера существующий проект DOORS предоставляется в качестве архива, включая суррогатный модуль со ссылками на другие модули. Чтобы опробовать интерактивные функции этого примера, восстановите проект в базе данных DOORS, а затем повторно синхронизируйте модель примера, как объяснено ниже. Обратите внимание, что этот архив был создан в DOORS версии 9.1 и может не работать с более ранними версиями DOORS.
Используйте функцию File > Restore в DOORS и укажите его на архив DemoRMI.dpa, представленный в настоящей рабочей директории. Если у вас уже есть проект с именем DemoRMI в базе данных DOORS, DOORS добавляет номер к имени проекта. Как показано на скриншоте ниже, проект включает в себя один модуль ссылки и три формальных модуля. Один формальный модуль является суррогатом DOORS для slvnvdemo_fuelsys_doorsreq
модель; другие два являются примерами модулей, созданных путем импорта документов Microsoft Word из примера Microsoft Office.
Извлеките все включенные модули и откройте суррогатный модуль.
Обратите внимание на красные и оранжевые навигационные треугольники ссылки в двух извлеченных модулях. Щелкните правой кнопкой мыши для перехода между модулями. Эти ссылки сохраняются с помощью процедуры резервного копирования-восстановления.
Попробуйте перейти от извлеченного суррогатного модуля к соответствующему объекту в Simulink из DOORS:
Щелкните 1.11.4.1 расход топлива в slvnvdemo_fuelsys_doorsreq суррогатном модуле.
В главном меню окна модуля выберите MATLAB > Select Item. Откроется правильная схема подсистемы, и соответствующий вход будет подсвечен.
Переход от объектов Simulink к суррогатному модулю нарушен, поскольку извлеченные модули имеют новые числовые идентификаторы в базе данных DOORS, попытка перейти по ссылке DOORS Surrogate Item на любом объекте приведет к ошибке. Для восстановления ссылок DOORS Surrogate Item на все объекты в slvnvdemo_fuelsys_doorsreq model
после успешного восстановления проекта DemoRMI повторно синхронизируйте модель Simulink с восстановленным образцом суррогата.
В окне модели перейдите на вкладку Требования и щелкните Поделиться > Синхронизировать с DOORS, чтобы открыть диалоговое окно Параметры синхронизации.
Введите следующие настройки, используя правильный путь DOORS для в поле DOORS surrogate module path и name input, в зависимости от местоположения восстановленного проекта, или просто сделайте его текущим проектом в DOORS и используйте. «/» обозначение «./slvnvdemo _ fuelsys _ doorsreq».
Не активируйте флажок Сохранить модель Simulink внизу, вы не сможете сохранить изменения в модели примера, если не используете копию с возможностью записи.
Simulink может предупредить вас о предыдущем пути синхронизации. Нажмите «Продолжить», чтобы продолжить поиск нового пути. Вы можете получить следующее сообщение в командном окне: «Не требуется обновление для суррогатного модуля». Ваш восстановленный суррогатный модуль верен как есть.
Повторите навигацию из любого объекта в модели в соответствующий объект DOORS в суррогатном модуле, щелкнув правой кнопкой мыши блок Simulink и выбрав Requirements > 1. «DOORS Surrogate Item» в контекстном меню. Теперь необходимо выделить соответствующий элемент DOORS в суррогатном модуле.
Пример модели поставляется с некоторыми ранее существующими ссылками на документ DOORS, модуль FuelSys Design Description. Подобно исходным ссылкам DOORS Surrogate Item, эти ссылки разрываются, поскольку восстановленная копия модуля имеет новый идентификатор в локальной базе данных. Для примера щелкните правой кнопкой мыши по Airflow calculation
подсистема в модель и выберите «1.2.1 Оценка массового воздушного потока» в контекстном меню Requirements. Появится сообщение об ошибке. Оцените следующий код, чтобы перейти к Airflow calculation
блок.
rmidemo_callback('locate',['slvnvdemo_fuelsys_doorsreq/fuel rate controller/' ... 'Airflow calculation']);
Теперь мы исправим эти ссылки, используя проверку согласованности RMI в Model Advisor.
В окне модели Simulink на вкладке Requirements щелкните Проверить согласованность (Check Consistency), чтобы открыть графический интерфейс Model Advisor.
Найдите Идентификация ссылок требования с отсутствующим элементом документов в разделе Проверка непротиворечивости требований и выберите его мышью.
Нажмите кнопку Run This Check в верхней левой части правой панели. Перечислены блоки с разорванными ссылками. Можно исправить перечисленные несоответствия один за другим или, на панели Model Advisor можно использовать ссылку Исправить все внизу. Мы будем использовать ярлык Fix All, потому что знаем, что все разорванные ссылки нужно перенаправить на ту же восстановленную копию исходного модуля.
На панели Model Advisor щелкните ссылку Исправить все внизу - появляется браузер базы данных DOORS.
Найдите восстановленный модуль FuelSys Design Description в базе данных и выберите его мышью.
Нажмите кнопку ОК, чтобы закрыть браузер базы данных DOORS.
Еще раз щелкните Запустить эту проверку. Теперь чек должен пройти.
Повторная попытка навигации: щелкните правой кнопкой мыши по Airflow calculation
в модель и выберите Requirements > «1.2.1 Mass Airflow estimation» из контекстного меню. Теперь будет выделен правильный объект в одном из модулей DOORS, которые вы восстановили из включенного архива.
Теперь, когда ваши прямые ссылки из Simulink в DOORS верны, можно использовать синхронизацию, чтобы скопировать информацию о ссылке в базу данных DOORS. Ссылки будут дублированы в проекте DOORS, где можно использовать собственные инструменты навигации, анализа и отчетности DOORS. Эти ссылки между суррогатным и другими модулями DOORS могут даже использоваться повторно с новой копией модели.
Откройте диалоговое окно «Совместное использование > Синхронизация с DOORS» и настройте следующие параметры. Убедитесь, что флажок Удалить несопоставленные в DOORS отключен, поскольку в восстановленном проекте есть несопоставленные ссылки, которые вам нужны позже.
Нажмите кнопку Синхронизировать внизу.
Дайте ему пару секунд и проверьте суррогатный модуль в DOORS. Теперь она должна отображать больше ссылок - некоторые, которые существовали в оригинальном восстановленном проекте (ссылки на модуль FuelSys Requirements Specification), и некоторые, которые только что были скопированы из Simulink (ссылки на модуль FuelSys Design Description).
Найдите Airflow calculation
подсистема.
rmidemo_callback('locate',['slvnvdemo_fuelsys_doorsreq/fuel rate controller/' ... 'Airflow calculation']);
Перейдите к соответствующему суррогатному объекту с помощью Requirements > 1. «DOORS Surrogate Item» в контекстном меню для этого блока.
Новый красный треугольник показывает исходящую ссылку для элемента вычисления воздушного потока 1.12.5 в DOORS. Щелкните правой кнопкой мыши, чтобы перейти по этой ссылке DOORS - это приведет вас к элементу 1.2.1 Оценка массового воздушного потока в модуле FuelSys Design Description.
Синхронизация через суррогатный модуль предоставляет удобный способ распространения обновлений системных требований в DOORS на соответствующие элементы реализации Simulink. Чтобы продемонстрировать этот рабочий процесс, восстановленный проект содержит ссылки DOORS от суррогатного модуля к модулю FuelSys Requirements Specifications DOORS, которые отсутствуют в модели Simulink. В DOORS перейдите назад к модулю, который вы восстановили в разделе «Синхронизация вашей модели Simulink с базой данных DOORS».
Начиная с модуля FuelSys Requirements Specification, найдите 2.1 Режим normal mode of Operation.
Перейдите по ссылке DOORS для перехода к элементу «1.11.3 fuel» в суррогатном модуле, щелкнув правой кнопкой по желтой ссылке в модуле DOORS и выбрав контекстное меню для перехода к элементу «1.11.3 fuel» в модуле slvnvdemo_fuelsys_doorsreq DOORS.
При выборе «1.11.3 fuel» нажмите MATLAB > Select Item в главном меню суррогатного модуля, чтобы найти соответствующий исходный объект в модели Simulink.
Щелкните правой кнопкой мыши по расположенному fuel
входной элемент в Simulink и проверить Requirements в контекстном меню. 1. «DOORS Surrogate Item» - единственная доступная ссылка: нет ссылок на документы.
Чтобы скопировать информацию о ссылке из DOORS в Simulink, повторно синхронизируйте со ссылками Update во время включения синхронизации и выберите из DOORS в Simulink.
Откройте диалоговое окно «Совместное использование» > «Синхронизация с DOORS».
Сконфигурируйте следующие опции синхронизации:
Теперь можно включить флажок Удалить несопоставленный в Simulink. После предыдущего шага синхронизации в Simulink нет несопоставленных ссылок.
Оставьте некоторые схемы открытыми и подсвеченными, чтобы визуализировать изменения при добавлении новых ссылок в Simulink.
Нажмите кнопку Синхронизировать. Окно суррогатного модуля может подойти спереди, но красных маркеров нет, потому что изменений в DOORS нет.
Перейдите назад к fuel
введите в Simulink, или оцените следующее.
rmidemo_callback('locate','slvnvdemo_fuelsys_doorsreq/engine gas dynamics/fuel');
Щелкните правой кнопкой мыши и разверните Трассируемость требований раздел контекстного меню. Обратите внимание на новую ссылку ниже ссылки DOORS Surrogate Item: «- > 2.1 Режим normal mode of Operation». Префикс стрелы указывает, что это требование не было создано в Simulink, а скопировано из DOORS.
Щелкните новую ссылку, чтобы перейти к соответствующему требованию в разделе DOORS - 2.1 Normal Mode of Operation (Нормальный режим работы) откроется в модуле FuelSys Requirements Specification.
Теперь для подтверждения изменений, внесенных в модель, применяется фильтр тегов пользователя. Все требования DOORS, которые существовали в исходной версии модели примера, были помечены как проект». Теперь вы используете этот факт, чтобы выборочно подсветить или скрыть эти ссылки:
Перейдите назад к fuel rate controller
и на вкладке Requirements нажмите Highlight Links.
rmidemo_callback('open_highlight','slvnvdemo_fuelsys_doorsreq/fuel rate controller');
На вкладке Requirements нажмите Link Settings > Linking Options, чтобы открыть диалоговое окно Requirements Settings.
Перейдите на вкладку Filters и настройте как показано ниже, проверяя ссылки Filter по ключевым словам при подсветке и создании отчетов о требованиях и вводе design
в поле Включить ссылки с любым из этих тегов.
Проверьте подсвеченные объекты в схемах. Это ссылки, которые существовали в исходной модели.
Теперь измените настройки Filters, как показано ниже, чтобы исключить проекты»:
Проверьте модель Simulink. Подсветка теперь указывает на только что скопированные ссылки из базы данных DOORS.
Синхронизация также позволяет поддерживать согласованность при удалении ссылок. Для примера:
Перейдите к fuel
снова введите.
rmidemo_callback('locate','slvnvdemo_fuelsys_doorsreq/engine gas dynamics/fuel');
Щелкните правой кнопкой мыши, выберите Requirements > Open Outgoing Links Dialog....
Выберите пункт «- > 2.1 Режим normal mode of Operation» в диалоговом окне.
Нажмите кнопку Удалить, чтобы удалить элемент из списка.
Нажмите кнопку ОК, чтобы применить изменения.
Еще раз проверьте контекстное меню, чтобы подтвердить, что ссылка исчезла.
Обратите внимание, что ссылка все еще присутствует в DOORS, соединяющем топливо 1.11.3 в суррогатном модуле с «2.1 Режим normal mode of Operation» в модуле FuelSys Requirements Specification.
Очистить удаленную ссылку от DOORS путем повторной синхронизации с опцией обновления ссылки, установленной на Simulink to DOORS и включенной опцией Удалить несопоставленные в DOORS.
Нажмите кнопку Синхронизировать. Наблюдайте исчезновение ссылки в DOORS.
Точно так же, когда в DOORS удаляются ссылки и необходимо распространить изменения на Simulink, повторно запустите синхронизацию с установленной опцией DOORS to Simulink и включенным флажком Удалить несопоставленные в Simulink.
При использовании связывания выделения с DOORS у вас есть опция автоматически вставить ссылку объектов в документы DOORS, чтобы включить прямую навигацию от DOORS до Simulink без необходимости в суррогатном модуле.
ВНИМАНИЕ: Документ DOORS изменяется при использовании этой функции RMI.
На вкладке Requirements нажмите Link Settings > Linking Options, чтобы открыть диалоговое окно Requirements Settings.
Включите флажок Изменить назначение для двунаправленного соединения.
Теперь, когда вы используете связывание выделения, Simulink создает объекты навигации. Существует два типа ссылок на выбор. Когда опция Использовать ActiveX для входящих ссылок в нижней части вкладки Привязка выбора (Selection Linking) ВКЛЮЧЕНА, RMI вставит новые объекты DOORS со значком Simulink и меткой целевого объекта в качестве текста объекта DOORS. С использованием ActiveX... опция OFF, RMI вставит External Link
гиперссылки. Для следующего упражнения попробуйте обеих опции и решите, что лучше всего работает для вас.
Найдите и выберите «2.2.6 Отказ датчика скорости» в модуле Спецификации требований FuelSys.
Найдите Speed Estimate
блок в модели Simulink.
rmidemo_callback('locate',['slvnvdemo_fuelsys_doorsreq/fuel rate controller/' ... 'Sensor correction and Fault Redundancy/Speed Estimate']);
Щелкните правой кнопкой мыши блок и выберите «Требования» > «Ссылкой на выбор» в DOORS.
Наблюдать новый объект, вставленный как первый дочерний объект целевого объекта в DOORS.
Щелкните только что вставленный объект навигации в DOORS или используйте MATLAB > Select Item в главном меню окна модуля DOORS.
При использовании External Link
гиперссылки, перемещайтесь по гиперссылке MATLAB в расширенном каскаде контекстного меню по щелчку правой кнопкой мыши.
Правильная схема откроется в Simulink, и связанный блок будет подсвечен.
Примечание: Вы только что включили навигацию от DOORS до модели Simulink, не нуждаясь в сохранении каких-либо изменений в модели. Рассмотрите этот рабочий процесс, когда необходимо избегать изменений моделей.
Обычно, когда модель Simulink сохраняется после создания ссылок, двухсторонняя навигация возможна в обход сложности процесса суррогатной синхронизации. Однако существует недостаток загромождения документов DOORS объектами навигации Simulink.
Чтобы избежать непреднамеренных изменений документов DOORS, повторно откройте диалоговое окно «Параметры требований» на вкладке «Привязка выбора» и отключите флажок Изменить место назначения для двунаправленного соединения.
Очистка
Команды очистки. Очищает открытые наборы требований без сохранения изменений и закрывает открытые модели без сохранения изменений.
slreq.clear;
bdclose all;