Поиск элементов модели архитектуры с помощью запроса
[
находит все пути элемента, начиная с корневой архитектуры модели, которые удовлетворяют paths
] = find(object
,constraint
,Name,Value
)constraint
запрос с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".
[
возвращает компонент paths
, elements
] = find(___)elements
и их paths
которые удовлетворяют constraint
запрос. Если rootArch
не предусмотрено, тогда функция находит элементы модели в корневой архитектуре модели. Выходной аргумент paths
содержит полный именованный путь для каждого компонента в elements
из заданной корневой архитектуры.
[
находит все компоненты, порты или коннекторы elements
] = find(___)elements
которые удовлетворяют constraint
запрос с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение", которые должны включать 'Port'
или 'Connector'
для 'ElementType'
.
[
находит все пути элемента, начиная с заданной корневой архитектуры, которые удовлетворяют paths
] = find(object
,constraint
,rootArch
,Name,Value
)constraint
запрос с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".
Импортируйте модель и запустите запрос, чтобы выбрать элементы архитектуры, которые имеют стереотип, основанный на заданном подграфике.
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)
Найти элементы в модели архитектуры на основе запроса.
Создайте модель
Создайте модель архитектуры с двумя компонентами.
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)
Поиск элемента
Найдите элемент в модели архитектуры на основе запроса System Composer.
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.0027 SimulinkModelHandle: 0.0027 UUID: 'a9e74d08-304a-4d4a-9759-65cbaa4dab95' 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)
object
- МодельМодель, заданная как systemcomposer.arch.Model
объект для запроса с помощью constraint
.
constraint
- ЗапросЗапрос, заданный как systemcomposer.query.Constraint
объект, представляющий конкретные условия. Ограничение может содержать вложенное ограничение, которое можно соединить с другим ограничением с помощью AND
или OR
. Ограничение может быть отменено с помощью NOT
.
Запрос объектов и условий для ограничений
Объект запроса | Состояние |
---|---|
Property | Не оцененное значение для данного свойства или свойства стереотипа. |
PropertyValue | Значение оцененного свойства из объекта System Composer или свойства стереотипа. |
HasPort | Компонент имеет порт, который удовлетворяет заданному подграфику. |
HasInterface | Порт имеет интерфейс, который удовлетворяет заданному подграфику. |
HasInterfaceElement | Интерфейс имеет элемент интерфейса, который удовлетворяет заданному подграфику. |
HasStereotype | Элемент архитектуры имеет стереотип, который удовлетворяет заданному подграфику. |
IsInRange | Значение свойства находится в заданной области значений. |
AnyComponent | Элемент является компонентом, а не портом или соединителем. |
IsStereotypeDerivedFrom | Стереотип вытекает из данного стереотипа. |
rootArch
- Корневая архитектура моделиКорневая архитектура модели, заданная как вектор символов.
Типы данных: char
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
find(model,constraint,'Recurse',true,'IncludeReferenceModels',true)
'Recurse'
- Опция рекурсивного поиска моделиtrue
или 1 (по умолчанию) | false
или 0Опция рекурсивного поиска модели или только поиска определенного слоя, заданная как разделенная разделенными запятой парами, состоящая из 'Recurse'
и числовой или логический 1 (true
) для рекурсивного поиска или 0 (false
) для поиска только по конкретному слою.
Пример: find(model,constraint,'Recurse',true)
Типы данных: logical
'IncludeReferenceModels'
- Опция поиска ссылочных архитектурfalse
или 0 (по умолчанию) | true
или 1Опция поиска ссылочных архитектур или отсутствия ссылок на архитектуры, заданная как разделенная разделенными запятой парами, состоящая из 'IncludeReferenceModels'
и логический 0 (false
), чтобы не включать ссылку на архитектуры или 1 (true
) для поиска ссылочных архитектур.
Пример: find(model,constraint,'IncludeReferenceModels',true)
Типы данных: logical
'ElementType'
- Опция поиска по типу'Component'
(по умолчанию) | 'Port'
| 'Connector'
Опция поиска по типу, заданная как разделенная разделенными запятой парами, состоящая из 'ElementType'
и 'Component'
чтобы выбрать компоненты, которые будут удовлетворять запросу, 'Port'
чтобы выбрать порты, чтобы удовлетворить запрос, или 'Connector'
чтобы выбрать соединители, чтобы удовлетворить запрос.
Пример: find(model,constraint,'ElementType','Port')
Типы данных: char
paths
- Пути к элементамПути элемента, возвращенные как массив ячеек из векторов символов, которые удовлетворяют constraint
.
Типы данных: char
elements
- ЭлементыЭлементы, возвращенные как systemcomposer.arch.Element
объекты, которые удовлетворяют constraint
.
Термин | Определение | Приложение | Дополнительная информация |
---|---|---|---|
архитектура | Архитектура System Composer™ представляет систему компонентов и то, как они взаимодействуют друг с другом структурно и поведенчески. Представлять определенные архитектуры можно с помощью альтернативных представлений. | Различные типы архитектур описывают различные аспекты систем:
| Составьте архитектуру визуально |
модель | Модель System Composer является файлом, содержащим архитектурную информацию, включая компоненты, порты, соединители, интерфейсы и поведение. | Выполните операции над моделью:
Модели System Composer хранятся как | Создайте модель Архитектуры |
компонент | Компонент является нетривиальной, почти независимой и заменяемой частью системы, которая удовлетворяет функцию clear в контексте архитектуры. Компонент определяет элемент архитектуры, такой как функция, система, оборудование, программное обеспечение или другая концептуальная сущность. Компонент может также быть подсистемой или подфункцией. | Представленный как блок, компонент является частью модели архитектуры, которая может быть разделена на переиспользуемые программные продукты. | Компоненты |
порт | Порт является узлом компонента или архитектуры, который представляет точку взаимодействия с его окружением. Порт разрешает поток информации к другим компонентам или системам и из них. | Существуют различные типы портов:
| Порты |
соединитель | Коннекторы являются линиями, которые обеспечивают соединения между портами. Коннекторы описывают, как информация переходит между компонентами или архитектурами. | Соединитель позволяет двум компонентам взаимодействовать, не определяя характер взаимодействия. Установите интерфейс на порте, чтобы определить, как взаимодействуют компоненты. | Связи |
Термин | Определение | Приложение | Дополнительная информация |
---|---|---|---|
посмотреть | Представление показывает настраиваемый подмножество элементов в модели. Представления могут фильтроваться на основе стереотипов или имен компонентов, портов и интерфейсов, а также имени, типа или модулей элемента интерфейса. Конструкция видов путем втягивания элементов вручную. Представления создают упрощенный способ работы со сложными архитектурами, ориентируясь на определенные части проекта архитектуры. | Для представления системы можно использовать различные типы представлений:
Точка зрения представляет перспективу заинтересованных сторон, которая задает содержимое представления. | |
группа элементов | Группа элементов является группировкой компонентов в виде. | Используйте группы элементов для программного заполнения вида. | Создание архитектурных представлений программно |
вопрос | Запрос является спецификацией, которая описывает определенные ограничения или критерии, которые должны удовлетворяться элементами модели. | Используйте запросы для поиска элементов с критериями ограничений и для фильтрации представлений. | Поиск элементов в модели с использованием запросов |
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.