Запишите исследования на основе свойств элемента выполнить управляемые данными торговые исследования и проверить системные требования. Рассмотрите электромеханическую систему, где существует компромисс между стоимостью и весом, и более легкие компоненты имеют тенденцию стоить больше. Процесс принятия решений включает анализ общей стоимости и веса системы на основе свойств ее элементов и итерации на свойствах найти решение, которое приемлемо и от стоимости и от перспективы веса.
Аналитический рабочий процесс состоит из этих шагов:
Задайте профиль, содержащий набор наборов свойств, которые описывают некоторые анализируемые свойства (например, стойте и вес),
Примените профиль к модели архитектуры и добавьте наборы свойств от того профиля до элементов модели (компоненты, порты или коннекторы)
Задайте значения для свойств на тех элементах
Создайте экземпляр модели архитектуры, которая является деревом элементов, соответствуя иерархии модели со всей разделяемой расширенной архитектурой и различная примененная настройка
Запишите аналитическую функцию, чтобы вычислить значения, необходимые для исследования
Запустите аналитическую функцию
Включите анализ путем маркировки элементов модели и установки значений свойств. Загрузите эту модель:
systemWithProps
Включите анализ свойств первым импортом профиля. В разделе Profiles панели инструментов нажмите Manage> Import и обзор к профилю.
Примените стереотипы ко всем элементам модели, которые являются частью анализа. Используйте пункты меню, которые применяют стереотипы ко всем элементам определенного типа. Выберите Apply Stereotypes> Apply to и затем Components> This layer. Убедитесь, что вы применяете стереотип к компоненту верхнего уровня, если совокупное значение должно быть вычислено.
Установите значения свойств для каждого элемента модели.
Выберите элемент модели.
В Property Inspector расширьте стереотипное имя и введите значения для свойств.
Создайте экземпляр модели архитектуры, которую можно использовать в анализе. В разделе Views выберите Analysis Model> Analysis Model. В этом диалоговом окне задайте все параметры, требуемые создать и просмотреть аналитическую модель.
Стереотипное дерево перечисляет стереотипы всех профилей, которые загрузились на текущем сеансе, и позволяет вам выбирать тех, свойства которых должны быть доступными в модели экземпляра. Можно просмотреть аналитическую функцию, создать новую или пропустить анализ в этой точке. Если аналитическая функция требует, чтобы входные параметры кроме элементов в модели (таких как обменный курс, чтобы вычислить стоимость) ввели ее в Function arguments. Выберите режим для итерации через элементы модели, например, Bottom-up
перемещаться от листов дерева к корню.
Чтобы просмотреть экземпляр, нажмите Instantiate.
Аналитическое Средство просмотра показывает все компоненты, порты и коннекторы в первом столбце. Другие столбцы являются свойствами для всех стереотипов, выбранных для этого экземпляра. Если свойство не является частью стереотипа, применился к элементу, то поле отображается серым. Можно использовать кнопку Filter, чтобы скрыть свойства для определенных стереотипов. Когда вы выбираете элемент, Instance Properties показывает свои стереотипы и значения свойств. Можно сохранить экземпляр в MAT-файле и открыть его снова в Аналитическом Средстве просмотра. Если вы вносите изменения в модели, в то время как экземпляр открыт, можно синхронизировать экземпляр с моделью путем нажатия на Update. Несинхронизируемые изменения отображают различным цветом.
Запишите функцию, чтобы анализировать модель архитектуры использование API экземпляра. Аналитическими функциями являются функции MATLAB, которые вычисляют значения, необходимые, чтобы оценить свойства использования архитектуры каждого элемента в экземпляре модели.
Можно добавить аналитическую функцию, когда вы настраиваете аналитический экземпляр. После того, как вы выбираете стереотипы интереса, создаете функцию шаблона путем нажатия кнопки рядом с полем Analysis function. Сгенерированный M-файл включает код, чтобы получить все значения свойств из всех стереотипов, которые подвергаются анализу. Аналитическая функция работает с одним элементом — итоговые значения сгенерированы путем итерации этой функции по всем элементам в модели, когда вы запускаете анализ от Аналитического Средства просмотра.
function systemWithProps_1(instance,varargin) % systemWithProps_1 Example Analysis Function if instance.isComponent() sysComponent_unitPrice = instance.getValue("PhysicalElement.unitCost"); for child = instance.Components comp_price = child.getValue("PhysicalElement.unitCost"); sysComponent_unitPrice = sysComponent_unitPrice + comp_price; end instance.setValue("PhysicalElement.unitCost",sysComponent_unitPrice); end
В сгенерированном файле, instance
экземпляр элемента, на котором анализ функционируют запуски в настоящее время. Можно выполнить эти операции для анализа:
Доступ к свойству экземпляра: instance.getValue("<stereotype>.<property>")
Установите свойство экземпляра: instance.setValue("<stereotype>.<property>",value)
Доступ к субкомпонентам компонента: instance.Components
Доступ к коннекторам в компоненте: instance.Connectors
getValue
функция генерирует ошибку, если свойство не существует. Необходимо использовать функции обработки ошибок, такие как try-catch
операторы, если возможно, что некоторые элементы в модели не используют стереотипы.
Как пример, этот код вычисляет вес компонента как сумма весов ее субкомпонентов.
if instance.isComponent() weight = 0; for child=instance.Components subcomp_weight = child.getValue("PhysicalElement.weight"); weight = weight + subcomp_weight; end instance.setValue("PhysicalElement.weight",weight) end
Если аналитическая функция завершена, добавьте его в анализ. Аналитическая функция может взять дополнительные входные параметры, например, преобразование, постоянное, если веса находятся в различных модулях в различных стереотипах. Когда этот код запускается для всех компонентов рекурсивно, начинающий с самых глубоких компонентов в иерархии к верхнему уровню, полный вес системы присвоен weight
свойство компонента верхнего уровня.
Запустите аналитическую функцию использование Аналитического Средства просмотра.
Выберите или измените аналитическую функцию использование меню Analyze.
Выберите метод итерации.
Preorder
: Запустите с верхнего уровня, переместитесь в дочерний компонент, обработайте субкомпоненты того компонента рекурсивно прежде, чем переместиться в одноуровневый компонент.
Topdown
— Как предзаказ, но процесс все одноуровневые компоненты прежде, чем переместиться в их субкомпоненты.
Postorder
— Запустите с компонентов без субкомпонентов, процесс каждый одноуровневый элемент и затем переместитесь в родительский элемент.
Bottomup
— Как постпорядок, но процесс все субкомпоненты на той же глубине прежде, чем переместиться в их родительские элементы.
Метод итерации зависит от того, какой анализ должен быть запущен. Например, для анализа, где вес компонента является суммой весов ее компонентов, необходимо убедиться, что веса субкомпонента вычисляются сначала, таким образом, метод итерации должен быть восходящим.
Нажмите кнопку Analyze.
System Composer запускает аналитическую функцию по каждому элементу модели и вычисляет результаты. Вычисленные свойства показывают в различном цвете в Аналитическом Средстве просмотра.
systemcomposer.analysis.Instance