Поиск элементов модели архитектуры с помощью запроса
[ находит все пути элементов, начиная с корневой архитектуры модели, которые удовлетворяют 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 хранятся как | Создание модели архитектуры |
| компонент | Компонент является нетривиальной, почти независимой и заменяемой частью системы, которая выполняет четкую функцию в контексте архитектуры. Компонент определяет элемент архитектуры, такой как функция, система, аппаратное обеспечение, программное обеспечение или другой концептуальный объект. Компонент также может быть подсистемой или подфункцией. | Представленный в виде блока компонент является частью архитектурной модели, которую можно разделить на многократно используемые артефакты. | Компоненты |
| порт | Порт - это узел компонента или архитектуры, представляющий собой точку взаимодействия с его средой. Порт разрешает поток информации в другие компоненты или системы и из них. | Существуют различные типы портов:
| Порты |
| соединитель | Соединители - это линии, обеспечивающие соединения между портами. Соединители описывают потоки информации между компонентами или архитектурами. | Соединитель позволяет двум компонентам взаимодействовать без определения характера взаимодействия. Задайте интерфейс порта для определения способа взаимодействия компонентов. | Связи |
| Термин | Определение | Приложение | Дополнительные сведения |
|---|---|---|---|
| посмотреть | Вид показывает настраиваемое подмножество элементов в модели. Представления можно фильтровать на основе стереотипов или имен компонентов, портов и интерфейсов, а также имени, типа или единиц элемента интерфейса. Создание видов путем извлечения элементов вручную. Представления создают упрощенный способ работы со сложными архитектурами, фокусируясь на определенных частях дизайна архитектуры. | Для представления системы можно использовать различные типы ракурсов:
Точка зрения представляет перспективу стейкхолдеров, которая определяет содержание представления. | |
| группа элементов | Группа элементов - это группировка компонентов на виде. | Группы элементов используются для программного заполнения вида. | Программное создание архитектурных представлений |
| вопрос | Запрос - это спецификация, описывающая определенные ограничения или критерии, которые должны удовлетворяться элементами модели. | Используйте запросы для поиска элементов с критериями ограничения и фильтрации представлений. | Поиск элементов в модели с помощью запросов |
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.