Можно использовать Simulink, чтобы смоделировать конструктивные требования. Например, можно использовать блоки верификации, чтобы задать желаемые системные свойства и смоделировать конструктивные требования. Requirements Management Interface (RMI) позволяет вам создавать навигационные ссылки между требованиями, смоделированными в Simulink, связанных объектах Simulink и связанных тестах. Этот пример показывает, как использовать RMI, чтобы создать и просмотреть ссылки на требования, смоделированные в Simulink.
Откройте Модели контроллеров Окна со стеклоподъемником путем ввода команды:
open_system('slvnvdemo_powerwindowController');
Откройте модель верификации, 'Контроллер Окна со стеклоподъемником Временная Спецификация Свойства'. Эта модель задает свойства и требования модели slvnvdemo_powerwindowController
.
Рассмотрите следующие конструктивные требования для контроллера:
Требование 1 (Ответ Препятствия) - Каждый раз, когда препятствие обнаруживается, контроллер, должно дать вниз команда в течение одной секунды. Это требование моделируется в Верификации Subsystem2.
Требование 2 (Автовниз функция) - Если драйвер нажимает вниз кнопка меньше 1 секунды, контроллер, продолжает выходить вниз команда, пока конец не был достигнут, или драйвер нажимает кнопка. Это требование моделируется в Верификации Subsystem3
Дополнительную информацию см. в примере Design Verifier Temporal Properties.
open_system('slvnvdemo_powerwindow_vs');
Создайте ссылку RMI из Верификации Subsystem2 к состоянию emergencyDown в модели slvnvdemo_powerwindowController
.
Щелкните правой кнопкой по emergencyDown, утверждают и выбирают Requirements Traceability> Select для соединения с Simulink.
Щелкните правой кнопкой по Verification Subsystem2 и выберите Requirements Traceability>, добавляют ссылку к выбранному объекту.
Щелкните правой кнопкой по Верификации Subsystem2. Новая ссылка RMI появляется наверху подменю Requirements Traceability.
Щелкните правой кнопкой по Verification Subsystem2. Переместитесь по новой ссылке наверху подменю Requirements Traceability. Модель открывается, и состояние emergencyDown
подсвечено.
Можно соединиться с выбором кратного объектов Simulink. Используйте ключ Shift
, чтобы выбрать все следующие объекты как в фигуре ниже.
Щелкните правой кнопкой по этой группе объектов, выберите Requirements Traceability> Select для соединения с Simulink. Старайтесь не потерять выборы, когда вы щелкнете правой кнопкой.
Щелкните правой кнопкой по Verification Subsystem3 и выберите Requirements Traceability> Link к 4 выбранным объектам.
Щелкните правой кнопкой по блоку NAND в Global Assumptions
и выберите Requirements Traceability> Select для соединения с Simulink.
Перетащите мышь через endstop и входные параметры препятствия в slvnvdemo_powerwindowController
, чтобы выбрать оба входных параметров.
Щелкните правой кнопкой по этой группе объектов и выберите, добавляют ссылку к выбранному объекту. Старайтесь не потерять выбор.
Нажмите на фон slvnvdemo_powerwindowController
, чтобы очистить выбор группы.
Щелкните правой кнопкой по каждому входу и выберите Requirements Traceability, чтобы отобразить новые ссылки. Щелкните по новой ссылке, подтвердите, что NAND подсвечен.
Создать ссылки для навигации в обоих направлениях:
Открытое диалоговое окно Requirements Settings.
Выберите вкладку Selection Linking.
Включите Изменяют место назначения для двунаправленного соединения.
Теперь, когда вы создаете ссылку от одного объекта Simulink до другого, соответствующая ссылка "возврата" также создается.
Создайте ссылки RMI на объекты Simulink таким же образом как ссылки на внешние документы:
В slvnvdemo_powerwindow_vs окне модели выберите Analysis> Requirements Traceability> Highlight Model, чтобы подсветить все ссылки RMI в модели, включая ссылки на объекты Simulink.
В slvnvdemo_powerwindow_vs окне модели выберите Analysis> Requirements Traceability> Generate Report.
В сгенерированном отчете кликните по гиперссылке в любой таблице требований. Это перешло к соответствующему объекту в схеме Simulink.
Закройте все открытые модели. Не сохраняйте изменения.
close_system('slvnvdemo_powerwindowController', 0); close_system('slvnvdemo_powerwindow_vs', 0);