find

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

Описание

пример

[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)

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

свернуть все

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

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

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

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

Корневая архитектура модели в виде вектора символов.

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

Аргументы в виде пар имя-значение

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

Больше о

свернуть все

Определения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Введенный в R2019a