exponenta event banner

найти

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

Описание

пример

[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' и числовой или логический 1 (true) рекурсивного поиска или 0 (false) для поиска только по определенному слою.

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

Подробнее

свернуть все

Определения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Порты компонента - это точки взаимодействия компонента с другими компонентами.

  • Порты архитектуры - это порты на границе системы, независимо от того, находится ли граница в пределах компонента или общей модели архитектуры.

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

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

Для представления системы можно использовать различные типы ракурсов:

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

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

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

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

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

Представлен в R2019a