Анализируйте архитектуру

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

Аналитический рабочий процесс состоит из этих шагов:

  • Задайте профиль, содержащий набор наборов свойств, которые описывают некоторые анализируемые свойства (например, стойте и вес),

  • Примените профиль к модели архитектуры и добавьте наборы свойств от того профиля до элементов модели (компоненты, порты или коннекторы)

  • Задайте значения для свойств на тех элементах

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

  • Запишите аналитическую функцию, чтобы вычислить значения, необходимые для исследования

  • Запустите аналитическую функцию

Установите теги и свойства для анализа

Включите анализ путем маркировки элементов модели и установки значений свойств. Загрузите эту модель:

systemWithProps

Импортируйте профиль

Включите анализ свойств первым импортом профиля. На модели выберите Architecture > Profile > Import и обзор к профилю.

Примените стереотипы к элементам модели

Примените стереотипы ко всем элементам модели, которые являются частью анализа. Используйте пункты меню, которые применяют стереотипы ко всем элементам определенного типа, таким как Architecture > Profile > Apply to all Components in this layer по мере необходимости. Убедитесь, что вы применяете стереотип к компоненту верхнего уровня, если совокупное значение должно быть вычислено.

Установите значения свойств

Установите значения свойств для каждого элемента модели.

  1. Откройте Property Inspector.

  2. Выберите элемент модели.

  3. Расширьте стереотипное имя и введите значения для свойств.

Создайте образцовый экземпляр для анализа

Создайте экземпляр модели архитектуры, которую можно использовать для анализа. Выберите Architecture > Create Analysis Model. Это диалоговое окно позволяет вам задавать все параметры, требуемые создать и просмотреть аналитическую модель.

Стереотипное дерево перечисляет стереотипы всех профилей, которые загрузились на текущем сеансе, и позволяет вам выбирать тех, свойства которых должны быть доступными в модели экземпляра. Можно просмотреть аналитическую функцию, создать новую или пропустить анализ в этой точке. Если аналитическая функция требует, чтобы входные параметры кроме элементов в модели (таких как обменный курс, чтобы вычислить стоимость) ввели ее в Function arguments. Выберите режим для итерации через элементы модели, например, Bottom-up, чтобы переместиться от листов дерева к корню.

Чтобы просмотреть экземпляр, нажмите Instantiate.

Аналитическое Средство просмотра показывает все компоненты, порты и коннекторы в первом столбце. Другие столбцы являются свойствами для всех стереотипов, выбранных для этого экземпляра. Если свойство не является частью стереотипа, применился к элементу, то поле отображается серым. Можно использовать кнопку Filter, чтобы скрыть свойства для определенных стереотипов. Когда вы выбираете элемент, Instance Properties показывает свои стереотипы и значения свойств. Можно сохранить экземпляр в MAT-файле и открыть его снова в Аналитическом Средстве просмотра. Если вы вносите изменения в модели, в то время как экземпляр открыт, можно синхронизировать экземпляр с моделью путем нажатия на Update. Несинхронизируемые изменения отображают различным цветом.

Запишите аналитическую функцию

Запишите функцию, чтобы анализировать модель архитектуры использование API экземпляра. Аналитическими функциями являются функции MATLAB, которые вычисляют значения, необходимые, чтобы оценить свойства использования архитектуры каждого элемента в образцовом экземпляре.

Можно добавить аналитическую функцию, когда вы настраиваете аналитический экземпляр. После того, как вы выбираете стереотипы интереса, создаете функцию шаблона путем нажатия кнопки рядом с полем Analysis function. Сгенерированный M-файл включает код, чтобы получить все значения свойств из всех стереотипов, которые подвергаются анализу. Аналитическая функция работает с одним элементом — итоговые значения сгенерированы путем итерации этой функции по всем элементам в модели, когда вы запускаете анализ от Аналитического Средства просмотра.

function ex_zcRobot_props_analysis(instance,varargin)
% ex_zcRobot_props_analysis Example Analysis Function

if instance.isComponent()
    sysComponent_unitPrice = instance.getValue("sysComponent.unitPrice");
    for child = instance.Components
        comp_price = child.getValue("sysComponent.unitPrice");
        sysComponent_unitPrice = sysComponent_unitPrice + comp_price;
    end
    for child = instance.Connectors
        unitPrice = child.getValue("sysConnector.unitPrice");
        length = child.getValue("sysConnector.length");
        sysComponent_unitPrice = unitPrice*length + comp_price;
    end
  instance.setValue("sysComponent.unitPrice",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 компонента верхнего уровня.

Запустите аналитическую функцию

Запустите аналитическую функцию использование Аналитического Средства просмотра.

  1. Выберите или измените аналитическую функцию использование меню Analyze.

  2. Выберите метод итерации.

    • Preorder: Запустите с верхнего уровня, переместитесь в дочерний компонент, обработайте субкомпоненты того компонента рекурсивно прежде, чем переместиться в одноуровневый компонент.

    • Topdown: Как предзаказ, но процесс все одноуровневые компоненты прежде, чем переместиться в их субкомпоненты.

    • Postorder: Запустите с компонентов без субкомпонентов, процесс каждый одноуровневый элемент и затем переместитесь в родительский элемент.

    • Bottomup: Как постпорядок, но процесс все субкомпоненты на той же глубине прежде, чем переместиться в их родительские элементы.

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

  3. Нажмите анализировать кнопку.

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

Смотрите также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте