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

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

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

Рабочий процесс анализа состоит из следующих шагов:

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

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

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

  4. Создайте образец модели архитектуры, которая является деревом элементов, соответствующим иерархии модели с развернутыми всеми общими архитектурами и применённым вариантным строением.

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

  6. Запустите функцию анализа.

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

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

Загрузка модели

Откройте systemWithProps модель.

systemWithProps

Импорт профиля

Включите анализ свойств путем первого импорта профиля. В Profiles разделе панели инструментов щелкните Manage > Import и перейдите к профилю.

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

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

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

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

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

  2. В Property Inspector разверните имя стереотипа и значения типов для свойств.

Robot component stereotype displayed from the property inspector called Physical Component with properties named: unit cost 5000 dollars, volume 0 meters cubed, and weight 3 kilograms.

Создайте образец модели для анализа

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

В Views разделе выберите Analysis Model > Analysis Model. В этом диалоговом окне задайте все параметры, необходимые для создания и просмотра модели анализа.

Instantiate Architecture Model window with stereotypes listed on the left and configure analysis on the right with analysis function, iteration order bottom-up, and instance model name system with props. Options are to cancel or instantiate.

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

Примечание

Строгий режим обеспечивает получение образцами свойств только в том случае, если в спецификации образца применен стереотип.

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

Analysis output chart.

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

Select an interface element in the analysis viewer to see the drop down option under Update to Update Element.

Если вы вносите изменения в модель, пока образец открыт, можно синхронизировать образец с моделью. Update перемещает изменения из образца в модель. Refresh обновляет образец из модели. Несинхонизированные изменения отображаются в другом цвете. Выбор одного элемента позволяет Update Element опцию.

Запись функции анализа

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

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

function systemWithProps_1(instance,varargin)

if instance.isComponent()
    if instance.hasValue('SystemProfile.PhysicalElement.unitCost')
        sysComponent_unitPrice = instance.getValue('SystemProfile.PhysicalElement.unitCost');
    end
    for child = instance.Components
        comp_price = child.getValue('SystemProfile.PhysicalElement.unitCost');
        sysComponent_unitPrice = sysComponent_unitPrice + comp_price;
    end
   instance.setValue('SystemProfile.PhysicalElement.unitCost',sysComponent_unitPrice);
end

В сгенерированном файле instance является образцом элемента, на котором в настоящее время работает функция анализа. Для анализа можно выполнить следующие операции:

  • Доступ к свойству образца: instance.getValue('<profile>.<stereotype>.<property>')

  • Установите свойство образца: instance.setValue('<profile>.<stereotype>.<property>',value)

  • Доступ к подкомпонентам компонента: instance.Components

  • Доступ к коннекторам в компоненте: instance.Connectors

The getValue функция генерирует ошибку, если свойство не существует. Можно использовать hasValue чтобы запросить, имеют ли элементы модели свойства, прежде чем получать значение.

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

if instance.isComponent()
    if instance.hasValue('SystemProfile.PhysicalElement.weight')
        weight = instance.getValue('SystemProfile.PhysicalElement.weight');
    end
  for child = instance.Components
    subcomp_weight = child.getValue('SystemProfile.PhysicalElement.weight');
    weight = weight + subcomp_weight;
  end
  instance.setValue('SystemProfile.PhysicalElement.weight',weight)
end

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

Запуск функции анализа

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

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

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

    • Pre-order - Начните с верхнего уровня, перейдите к дочернему компоненту, обработайте подкомпоненты этого компонента рекурсивно перед переходом к одноуровневому компоненту.

    • Top-Down - Как и предварительный заказ, но обрабатывайте все компоненты одноуровневого типа перед переходом к своим подкомпонентам.

    • Post-order - Начните с компонентов без подкомпонентов, обработайте каждый родной брат и затем перейдите к родительскому элементу.

    • Bottom-up - Как постпорядок, но обрабатывать все подкомпоненты на одной глубине перед переездом к родительским элементам.

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

  3. Нажмите кнопку Analyze.

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

The unit cost is computed and shown in yellow.

См. также

| | | | | | | | | | |

Похожие темы