find

Найдите элементы модели архитектуры с помощью запроса

Описание

пример

[paths] = find(object,constraint,Name,Value) находит все пути к элементу, начинающие с корневой архитектуры модели, которые удовлетворяют constraint запросите с дополнительными опциями, заданными одними или несколькими аргументами name-value.

пример

[paths, elements] = find(___) возвращает элементы компонента elements и их paths это удовлетворяет constraint запрос. Следуйте за синтаксисом выше для входных параметров. Если rootArch не обеспечивается, затем функция находит элементы модели в корневой архитектуре модели. Выходной аргумент paths содержит полностью определенный именованный путь для каждого компонента в elements от данной корневой архитектуры.

пример

[elements] = find(___) находит весь компонент, порт или элементы коннектора elements, это удовлетворяет constraint запросите с дополнительными опциями, заданными одними или несколькими аргументами name-value, которые должны включать 'Port' или 'Connector' для 'ElementType'.

пример

[paths] = find(object,constraint,rootArch,Name,Value) находит все пути к элементу, начинающие с заданной корневой архитектуры rootArch это удовлетворяет constraint запросите с дополнительными опциями, заданными одними или несколькими аргументами name-value.

Примеры

свернуть все

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

import systemcomposer.query.*;
scKeylessEntrySystem
modelObj = systemcomposer.openModel('KeylessEntryArchitecture');
find(modelObj,HasStereotype(IsStereotypeDerivedFrom('AutoProfile.BaseComponent')),...
 'Recurse',true,'IncludeReferenceModels',true)

Создайте запрос, чтобы найти компоненты, которые содержат букву 'c' в их 'Name' свойство.

constraint = contains(systemcomposer.query.Property('Name'),'c');
find(modelObj,constraint,'Recurse',true,'IncludeReferenceModels',true)

Найдите элементы в архитектуре основанными на модели на запросе System Composer™.

Создайте модель

Создайте модель архитектуры с двумя компонентами.

m = systemcomposer.createModel('exModel');
comps = m.Architecture.addComponent({'c1','c2'});

Создайте профиль и стереотипы

Создайте профиль и стереотипы для вашей модели архитектуры.

pf = systemcomposer.profile.Profile.createProfile('mProfile');
b = pf.addStereotype('BaseComp','AppliesTo','Component','Abstract',true);
s = pf.addStereotype('sComp','Parent',b);

Примените профиль и стереотипы

Примените профиль и стереотипы к вашей модели архитектуры.

m.Architecture.applyProfile(pf.Name)
comps(1).applyStereotype(s.FullyQualifiedName)

Найдите элемент

Найдите элемент в своей архитектуре основанным на модели на запросе.

import systemcomposer.query.*
[p, elem] = find(m, HasStereotype(IsStereotypeDerivedFrom('mProfile.BaseComp')),...
'Recurse',true,'IncludeReferenceModels',true)
p = 1x1 cell array
    {'exModel/c1'}

elem = 
  Component with properties:

     IsAdapterComponent: 0
           Architecture: [1x1 systemcomposer.arch.Architecture]
                   Name: 'c1'
                 Parent: [1x1 systemcomposer.arch.Architecture]
                  Ports: [0x0 systemcomposer.arch.ComponentPort]
             OwnedPorts: [0x0 systemcomposer.arch.ComponentPort]
      OwnedArchitecture: [1x1 systemcomposer.arch.Architecture]
               Position: [15 15 65 76]
                  Model: [1x1 systemcomposer.arch.Model]
         SimulinkHandle: 2.0032
    SimulinkModelHandle: 0.0032
                   UUID: '6ce48729-66ad-46cc-85ac-383ef0c147c5'
            ExternalUID: ''

Очистка

Не прокомментируйте, чтобы удалить модель и профиль.

% m.close('force')
% systemcomposer.profile.Profile.closeAll

Создайте модель, чтобы запросить и создать два компонента.

m = systemcomposer.createModel('exModel');
comps = m.Architecture.addComponent({'c1','c2'});
port = comps(1).Architecture.addPort('cport1','in');

Создайте запрос, чтобы найти порты, которые содержат букву 'c' в их 'Name' свойство.

constraint = contains(systemcomposer.query.Property('Name'),'c');
find(m,constraint,'Recurse',true,'IncludeReferenceModels',true,'ElementType','Port')
import systemcomposer.query.*;
scKeylessEntrySystem
modelObj = systemcomposer.openModel('KeylessEntryArchitecture');
find(modelObj,HasStereotype(IsStereotypeDerivedFrom('AutoProfile.BaseComponent')),...
 modelObj.Architecture,'Recurse',true,'IncludeReferenceModels',true)

Входные параметры

свернуть все

Модель в виде systemcomposer.arch.Model возразите, чтобы запросить использование constraint.

Запросите в виде systemcomposer.query.Constraint объект, представляющий особые условия. Ограничение может содержать подограничение, к которому можно соединить с другим ограничением с помощью AND или OR. Ограничение может отрицаться с помощью NOT.

Запросите объекты и условия для ограничений

Объект запросаУсловие
PropertyНеоцененное значение для данного свойства или стереотипного свойства.
PropertyValueОцененное значение свойства от объекта System Composer или стереотипного свойства.
HasPortКомпонент имеет порт, который удовлетворяет данному подограничению.
HasInterfaceПорт имеет интерфейс, который удовлетворяет данному подограничению.
HasInterfaceElementИнтерфейс имеет интерфейсный элемент, который удовлетворяет данному подограничению.
HasStereotypeЭлемент архитектуры имеет стереотип, который удовлетворяет данному подограничению.
IsInRangeЗначение свойства в данной области значений.
AnyComponentЭлементом является компонент и не порт или коннектор.
IsStereotypeDerivedFrom Стереотип выведен из данного стереотипа.

Корневая архитектура модели в виде systemcomposer.arch.Architecture возразите или Architecture свойство systemcomposer.arch.Model объект.

Пример: modelObj.Architecture

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: find(model,constraint,'Recurse',true,'IncludeReferenceModels',true)

Опция, чтобы рекурсивно искать модели или только искать определенный слой в виде 1 (true) рекурсивно искать или 0 (false) только искать определенный слой.

Пример: find(model,constraint,'Recurse',true)

Типы данных: логический

Опция, чтобы искать эталонные архитектуры или не в виде 0 (false) не искать архитектуры, на которые ссылаются, или 1 (true) искать архитектуры, на которые ссылаются.

Пример: find(model,constraint,'IncludeReferenceModels',true)

Типы данных: логический

Опция, чтобы искать типом в виде 'Component' найти, что компоненты удовлетворяют запросу, 'Port' найти, что порты удовлетворяют запросу или 'Connector' найти, что коннекторы удовлетворяют запросу.

Пример: find(model,constraint,'ElementType','Port')

Типы данных: char

Выходные аргументы

свернуть все

Пути к элементу, возвращенные как массив ячеек из символьных векторов, которые удовлетворяют constraint.

Типы данных: char

Элементы, возвращенные как systemcomposer.arch.Element объекты, которые удовлетворяют constraint.

Больше о

свернуть все

Определения

ТерминОпределениеПриложениеБольше информации
архитектураАрхитектура System Composer™ представляет систему компонентов и как они взаимодействуют через интерфейс друг с другом структурно и поведенчески. Можно представлять определенные архитектуры с помощью альтернативных представлений.

Различные типы архитектур описывают различные аспекты систем:

  • Функциональная архитектура описывает поток данных в системе.

  • Логическая архитектура описывает намеченную операцию системы.

  • Физическая архитектура описывает платформу или оборудование в системе.

Составьте архитектуру визуально
модельМодель System Composer является файлом, который содержит архитектурную информацию, включая компоненты, порты, коннекторы, интерфейсы и поведения.

Выполните операции на модели:

  • Извлеките архитектуру корневого уровня, содержавшуюся в модели.

  • Примените профили.

  • Соедините интерфейсные словари данных.

  • Сгенерируйте экземпляры от архитектуры модели.

Модели System Composer хранятся как файлы SLX.

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

Существуют различные типы портов:

  • Порты компонента являются точками столкновения на компоненте к другим компонентам.

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

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

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

Можно использовать различные типы представлений, чтобы представлять систему:

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

  • Функциональные представления фокусируются на том, что система должна сделать, чтобы действовать.

  • Физические представления показывают, как система создается и конфигурируется.

Точка зрения представляет перспективу заинтересованной стороны, которая задает содержимое представления.

Моделирование архитектуры системы системы записи без ключа
группа элементаГруппа элемента является группировкой компонентов в представлении.Используйте группы элемента, чтобы программно заполнить представление.
запросЗапрос является спецификацией, которая описывает определенные ограничения или критерии, которым удовлетворят элементы модели.Используйте запросы, чтобы искать элементы с ограничительными критериями и отфильтровать представления.Найдите элементы в модели Используя запросы
диаграмма компонентовДиаграмма компонентов представляет представление компонентами, портами и коннекторами на основе того, как модель структурирована.Диаграммы компонентов позволяют вам программно или вручную добавляют и удаляют компоненты из представления.Смотрите компоненты в пользовательских представлениях архитектуры
иерархическая схемаМожно визуализировать иерархическую схему как представление с компонентами, портами, ссылочными типами, стереотипами компонента, и стереотипировать свойства.

Существует два типа иерархических схем:

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

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

Отобразите иерархию иерархии компонентов и архитектуры Используя представления

Введенный в R2019a