В этом примере показано, как найти требования, которые не прослеживаемы к элементам Модельно-ориентированного проектирования, и как проследить те требования путем создания ссылок с матрицей трассируемости.
Матрица трассируемости отображается, ссылки между элементами в артефактах Модельно-ориентированного проектирования, таких как Simulink® Requirements™ возражает, элементы модели Simulink, объекты Simulink Test™ и строки кода MATLAB®. Можно применить фильтры и фокусироваться только на элементах, которые вы хотите видеть. Можно использовать матрицу, чтобы идентифицировать расцепляемые элементы и реализовать их в проекте.
Чтобы читать больше о том, как использовать матрицу трассируемости, смотрите Ссылки Требования Дорожки с Матрицей Трассируемости.
Откройте Определение Требований для проекта Модели Круиз-контроля. Загрузите crs_req_func_spec
требование установлено.
slreqCCProjectStart;
slreq.load('crs_req_func_spec');
Откройте окно Traceability Matrix.
slreq.generateTraceabilityMatrix;
В окне Traceability Matrix нажмите Add. В Выбрать диалоговом окне Artifacts, набор, Оставленный crs_req_func_spec.slreqx
и Верхняя часть набора к crs_controller.slx
. Затем нажмите Generate Matrix. Матрица трассируемости сгенерирована с заданным набором требования слева и моделью Simulink на верхней части.
Чтобы идентифицировать расцепляемые элементы, нажмите Highlight Missing Links. Расцепляемые требования подсвечены в желтом в левом столбце, и расцепляемые элементы модели подсвечены в верхней строке.
Прокрутите к System Interface
> Inputs
родительское требование. Нажмите Scope, чтобы фокусировать матричное представление о той иерархии. Дочерние требования под Inputs
не имейте ссылок на блоки в модели Simulink. Однако матрица трассируемости, которую вы создали только, показывает ссылки между crs_req_func_spec
набор требования и crs_controller
модель. crs_req_func_spec
набор требования может иметь больше ссылок на другие артефакты в рамках вашего проекта.
Чтобы просмотреть ссылки между несколькими артефактами одновременно, можно создать матрицу мультиартефакта. Нажмите Configure Matrix, чтобы добавить больше артефактов в вашу матрицу. В диалоговом окне Configure Matrix, в Доступной панели Артефактов, выбирают crs_req_func_spec.slreqx
. Артефакты, которые имеют ссылки между выбранным артефактом, подсвечены в Доступной панели Артефактов. В этом случае каждый артефакт содержит ссылки между crs_req_func_spec
набор требования, за исключением crs_req_func_spec.slreqx
самостоятельно. Перетащите все подсвеченные артефакты к главному списку артефактов. Расширять значок () в матричном предварительном просмотре указывает, что существуют ссылки между элементами в этих артефактах.
Нажмите Update Matrix, чтобы добавить артефакты в вашу матрицу трассируемости. При запуске с крайне левого столбца в верхней строке выберите каждый артефакт и нажмите Collapse All. Синие линии в матрице указывают, где концы артефакта и другой начинают.
Выберите Inputs
родительское требование и нажимает Scope, чтобы фокусироваться на Inputs
дочерние требования. Нажмите Highlight Missing Links. Теперь вы видите что некоторые дочерние требования под Inputs
соединитесь с элементами в crs_plant
модель.
Inputs
к элементам моделиcrs_controller
и crs_plant
модели содержат элементы модели, которые связаны с Inputs
дочерние требования, однако не весь Inputs
соединяются дочерние требования. Соедините весь Inputs
дочерние требования к элементам модели для полной трассируемости. Во-первых, нажмите Configure Matrix и удалите все артефакты из Матрицы Трассируемости за исключением crs_req_func_spec
слева, и crs_controller
и crs_plant
на верхней части путем щелчка правой кнопкой по артефактам и выбора Remove Artifacts. Нажмите Update Matrix. В обновленной матрице выберите Inputs
родительское требование и нажимает Scope, чтобы фокусироваться на Inputs
дочерние требования.
Некоторые дочерние требования соединяются с элементами в crs_plant
. Соедините остающийся расцепляемый Inputs
дочерние требования к элементам модели в crs_controller
. Выберите ячейку, соответствующую crs_controller
и нажмите Scope.
Чтобы фокусироваться на расцепляемых требованиях, примените фильтр Недостающих звеньев. В Панели Фильтра, под Левым, под Ссылкой, нажимают Missing Links. Фильтр не использует строки с соединенными элементами. Можно проверить это путем нажатия на Highlight Missing Links.
Сверните CruiseControlMode
, DriverSwRequest
и TargetSpeedThrottle
подсистемы выбором каждая подсистема и нажатие Collapse All. Создайте ссылку между Enable Switch
требование и enbl
блок путем выбора ячейки, соответствующей тем двум элементам и нажатия по Create. В диалоговом окне Create Links, Типе набора к Implements
, затем нажмите Create, чтобы создать ссылку между этими двумя элементами.
Можно создать несколько ссылок в то время, когда вы содержите Ctrl, выберите ячейки, где вы хотите создать ссылки и нажать Create Links. Создайте ссылки между остающимися требованиями и соответствующим элементом модели:
Cancel Switch
требование и cncl
блок
Set Switch
требование и set
блок
Resume Switch
требование и resume
блок
Increment Switch
требование и inc
блок
Decrement Switch
требование и dec
блок
Key Position
требование и key
блок
В Создать диалоговом окне Ссылок, Типе набора к Implements
для всех ссылок.
Очистите фильтр Недостающих звеньев путем нажатия на Clear Filter в главном списке артефактов. Нажмите Show All, чтобы показать все артефакты. Весь Inputs
дочерние требования соединяются, чтобы спроектировать элементы, таким образом, они больше не подсвечиваются. Сверните иерархии под crs_controller
и crs_plant
. Расширять значок () указывает что весь Inputs
соединяются дочерние требования.
Вы можете открытые позиции в строках и столбцах в их контексте артефакта путем двойного клика по ячейке, соответствующей элементу. Например, двойной клик по ячейке, соответствующей блоку Simulink, открывает модель Simulink и подсистему, в которой находится блок.
Откройте Enable Switch
требование в Редакторе Требований путем двойного клика по нему. Добавьте дополнительный текст в Описание требования: "The
Cruise
button enables the cruise control as long as all other conditions are met."
Затем нажмите Save.
В Редакторе Требований сводные данные требования и связанная ссылка (перечисленный в Панели, под Ссылками) подсвечены в красном, потому что ссылка, сопоставленная с этим требованием, имеет проблему изменения.
Когда вы изменяете требование, которое соединяется с другим элементом, требование подсвечено в красном, чтобы указать, что существует проблема изменения, сопоставленная со ссылкой. Ссылка имеет проблему изменения, потому что вы изменили описание для Enable Switch
требование.
Возвратитесь к Матрице Трассируемости. Нажмите Update, чтобы обновить матрицу. Выберите Inputs
родительское требование и нажимает Scope, чтобы фокусироваться на Inputs
дочерние требования. Нажмите Highlight Missing Links> Highlight Changed Links, затем нажмите Highlight Missing Links> Show Changed Links Only. Ссылки, которые сопоставили проблемы изменения, показывают, и требование, соединенный элемент, и ссылка подсвечена в красном.
Поскольку вы изменили только описание, изменение не влияло на реализацию требования или верификацию. Очистите проблему изменения путем выбора ячейки, содержащей ссылку, затем нажмите Clear Change Issue. В соответствии с Комментарием, введите "Added additional information to the requirement description.
"Затем нажмите Clear All.
Можно просмотреть комментарий, когда вы выбираете ссылку в Редакторе Требований, в Панели, в соответствии с Комментариями.
Обновите матрицу, чтобы отразить очищенные проблемы изменения путем нажатия на Update. Выберите Inputs
родительское требование и нажимает Scope. Расширьте все ссылки путем выбора ячейки, содержащей расширять значок () и нажатия по Expand All. Сверните любые иерархии, которые не содержат ссылки путем нажатия на Collapse All. Это представление показывает ссылки на Inputs
дочерние требования. Сгенерируйте отчет HTML, который содержит статический снимок состояния текущего представления матрицы трассируемости путем нажатия на Export> Generate HTML Report. Выберите местоположение, чтобы сохранить файл и нажать Save.
Очистите открытые наборы требования и наборы ссылки и закройте окно Traceability Matrix. Закройте все открытые модели.
slreq.clear;
bdclose all;
slreq.generateTraceabilityMatrix
| slreq.getTraceabilityMatrixOptions