exponenta event banner

Управление пользовательскими атрибутами для требований с помощью API Simulink ® Requirements™

В этом примере показано, как использовать API Simulink ® Requirements™ для создания пользовательских атрибутов для наборов требований и задания пользовательских значений атрибутов для требований.

Установка набора требований

Загрузить файл требований crs_req_func_spec, которая описывает систему круиз-контроля и присваивает ее переменной.

rs = slreq.load('crs_req_func_spec');

Добавление пользовательского атрибута каждого типа

Добавьте пользовательский атрибут каждого типа в набор требований. Создание Edit пользовательский атрибут с описанием.

addAttribute(rs,'MyEditAttribute','Edit','Description',...
    'You can enter text as the custom attribute value.')

Создать Checkbox введите атрибут и задайте его DefaultValue свойство для true.

addAttribute(rs,'MyCheckboxAttribute','Checkbox','DefaultValue',true)

Создать Combobox пользовательский атрибут. Потому что первый параметр должен быть 'Unset', добавьте параметры 'Unset', 'A', 'B', and 'C'.

addAttribute(rs,'MyComboboxAttribute','Combobox','List',{'Unset','A','B','C'})

Создать DateTime пользовательский атрибут.

addAttribute(rs,'MyDateTimeAttribute','DateTime')

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

rs.CustomAttributeNames
ans = 1x4 cell
  Columns 1 through 3

    {'MyCheckboxAttr...'}    {'MyComboboxAttr...'}    {'MyDateTimeAttr...'}

  Column 4

    {'MyEditAttribute'}

atrb = inspectAttribute(rs,'MyComboboxAttribute')
atrb = struct with fields:
           name: 'MyComboboxAttribute'
           type: Combobox
    description: ''
           list: {'Unset'  'A'  'B'  'C'}

Задание значения пользовательского атрибута для требования

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

req = find(rs,'Type','Requirement','SID',3);
setAttribute(req,'MyEditAttribute','Value for edit attribute.');
setAttribute(req,'MyCheckboxAttribute',false);
setAttribute(req,'MyComboboxAttribute','B');

Набор MyDateTimeAttribute с требуемым языковым стандартом для обеспечения установки даты и времени в правильном формате в системах других языковых стандартов. Дополнительные сведения см. в разделе Языковой стандарт.

localDateTimeStr = datestr(datetime('15-Jul-2018 11:00:00','Locale','en_US'),'Local');
setAttribute(req,'MyDateTimeAttribute',localDateTimeStr);

Просмотрите значения атрибутов.

getAttribute(req,'MyEditAttribute')
ans = 
'Value for edit attribute.'
getAttribute(req,'MyCheckboxAttribute')
ans = logical
   0

getAttribute(req,'MyComboboxAttribute')
ans = 
'B'
getAttribute(req,'MyDateTimeAttribute')
ans = datetime
   15-Jul-2018 11:00:00

Изменить пользовательские атрибуты

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

Добавление описания к MyCheckboxAttribute и MyComboboxAttributeи измените список опций для MyComboboxAttribute. Поскольку вы не можете обновить значение по умолчанию Checkbox атрибуты, вы можете только обновить описание MyCheckboxAttribute. Просмотр изменений.

updateAttribute(rs,'MyCheckboxAttribute','Description',...
    'The checkbox value can be true or false.');
updateAttribute(rs,'MyComboboxAttribute','Description',...
    'Choose an option from the list.','List',{'Unset','1','2','3'});
atrb2 = inspectAttribute(rs,'MyCheckboxAttribute')
atrb2 = struct with fields:
           name: 'MyCheckboxAttribute'
           type: Checkbox
    description: 'The checkbox value can be true or false.'
        default: 1

atrb3 = inspectAttribute(rs,'MyComboboxAttribute')
atrb3 = struct with fields:
           name: 'MyComboboxAttribute'
           type: Combobox
    description: 'Choose an option from the list.'
           list: {'Unset'  '1'  '2'  '3'}

Найти требования, соответствующие значению настраиваемого атрибута

Поиск набора требований по всем требованиям, где 'MyEditAttribute' имеет значение 'Value for edit attribute.'

req2 = find(rs,'Type','Requirement','MyEditAttribute','Value for edit attribute.')
req2 = 
  Requirement with properties:

            Type: 'Functional'
              Id: '#3'
         Summary: 'Avoid repeating commands'
     Description: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">...'
        Keywords: {}
       Rationale: ''
       CreatedOn: 27-Feb-2017 10:15:38
       CreatedBy: 'itoy'
      ModifiedBy: 'batserve'
             SID: 3
    FileRevision: 46
      ModifiedOn: 23-Apr-2021 10:46:08
           Dirty: 1
        Comments: [0x0 struct]
           Index: '1.2'

Поиск набора требований по всем требованиям, где 'MyCheckboxAtribute' имеет значение true.

reqsArray = find(rs,'Type','Requirement','MyCheckboxAttribute',true)
reqsArray=1×69 object
  1x69 Requirement array with properties:

    Type
    Id
    Summary
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedBy
    SID
    FileRevision
    ModifiedOn
    Dirty
    Comments
    Index

Поиск набора требований по всем требованиям, где 'MyComboboxAttribute' имеет значение 'Unset'.

reqsArray2 = find(rs,'Type','Requirement','MyComboboxAttribute','Unset')
reqsArray2=1×70 object
  1x70 Requirement array with properties:

    Type
    Id
    Summary
    Description
    Keywords
    Rationale
    CreatedOn
    CreatedBy
    ModifiedBy
    SID
    FileRevision
    ModifiedOn
    Dirty
    Comments
    Index

Удалить пользовательские атрибуты

Вы можете использовать deleteAttribute для удаления атрибутов. Однако, поскольку пользовательские атрибуты, созданные в этом примере, присвоены требованиям, необходимо задать 'Force' кому true для удаления атрибутов. Удалить 'MyEditAttribute' и подтвердите изменение.

deleteAttribute(rs,'MyEditAttribute','Force',true);
rs.CustomAttributeNames
ans = 1x3 cell
    {'MyCheckboxAttri...'}    {'MyComboboxAttri...'}    {'MyDateTimeAttri...'}

Добавьте новый пользовательский атрибут, но не устанавливайте значения пользовательских атрибутов требований.

addAttribute(rs,'NewEditAttribute','Edit');
rs.CustomAttributeNames
ans = 1x4 cell
  Columns 1 through 3

    {'MyCheckboxAttr...'}    {'MyComboboxAttr...'}    {'MyDateTimeAttr...'}

  Column 4

    {'NewEditAttribute'}

Поскольку 'NewEditAttribute' не используется никакими требованиями, его можно удалить с помощью deleteAttribute путем установки 'Force' кому false. Подтвердите изменение.

deleteAttribute(rs,'NewEditAttribute','Force',false);
rs.CustomAttributeNames
ans = 1x3 cell
    {'MyCheckboxAttri...'}    {'MyComboboxAttri...'}    {'MyDateTimeAttri...'}

Очистка

Очистите открытые наборы требований без сохранения изменений и закройте открытые модели без сохранения изменений.

slreq.clear;
bdclose all;

См. также

| | | | | |

Связанные примеры

Подробнее