Проектирование На Уровне Системы. Часть 2. Детализация Архитектуры

В первая часть учебник Я получил архитектуру системы контроля доступа.

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

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

Компонентные интерфейсы Давайте еще раз посмотрим на систему из первой части.

Мы видим, что компоненты соединены стрелками.

Эти связи пока еще абстрактны и представляют собой простые информационные связи.

Однако мы можем немного снизить уровень абстракции.

Рассмотрим вывод компонента ДБхандлер .



Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

Этот компонент имеет вывод AccessStatus. Попробуем описать это.

Итак, AccessStatus — это связь, содержащая информацию о статусе доступа.

Доступ может быть предоставлен, а может и не быть предоставлен.

То есть это явно булева переменная! Уточним тип этого вывода.

Чтобы сделать это в System Composer, сначала необходимо создать соответствующий интерфейс :

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

А затем указываем, что созданный интерфейс назначен порту AccessStatus:

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

Данную операцию необходимо провести на всех необходимых портах.

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

Еще одним преимуществом System Composer является возможность просмотра потока данных с использованием представлений пользовательской архитектуры.

Архитектурные виды .

Мы можем фильтровать нашу архитектуру по определенным критериям.

В качестве примера возьмем ранее созданный интерфейс.

Давайте создадим представление потока данных AccessStatus. Сначала нужно нажать Моделирование -> Представления архитектуры .

А затем создайте фильтр:

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

Здесь указывается имя представления и создается фильтр: выбрать все компоненты, имеющие интерфейс с именем Статус доступа .

После нажатия кнопки Применить мы получим следующую картину:

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

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

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

Однако есть очень большая проблема — система состоит как из аппаратных средств, то есть физических компонентов, так и из программного обеспечения.

Что это значит? Это значит, что система неоднородна и нам нужно как-то отобразить эту неоднородность.

В System Composer есть специальные функции – это профили И стереотипы .

Для простоты понимания стереотип — это абстрактное описание класса компонентов со свойствами, а профиль — набор стереотипов.

Простой пример — допустим, у нас есть стереотип, описывающий микроконтроллер.

У любого микроконтроллера есть общие свойства: ядро, TDP, напряжение питания, частота и т. д. Именно эти свойства и должны отражаться в стереотипе.

Создадим профиль и необходимые стереотипы:

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

Например, я создал стереотип GenericComponent. Вот как это выглядит:

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

Здесь важны несколько настроек:

  1. Applies To - к чему применяется стереотип - к компоненту, интерфейсу, порту или соединению (да, сами соединения, эти стрелочки, тоже можно описать с помощью стереотипа)
  2. Базовый стереотип – родительский стереотип.

    Стереотипы наследуют свойства родительских стереотипов.

  3. Таблица свойств – здесь задаются пользовательские свойства.

    Например, у меня свойство называется Workload, то есть трудозатраты на внедрение.

На этом стереотипе основаны еще 2 стереотипа Аппаратный Компонент – для железа и Программный Компонент – для программного обеспечения.

После того, как мы создали профиль и стереотипы, мы импортируем их в архитектуру и можем начать распределять их по ее элементам:

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

В результате у меня получилась вот такая картина:

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

Для наглядности я сделал следующее представление:

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

Давайте посмотрим на механизм наследования свойств компонентов в действии.

Выделим компонент DoorLock и посмотрим на его свойства:

Проектирование на уровне системы.
</p><p>
 Часть 2. Детализация архитектуры

Свойство Workload было унаследовано от GenericComponent, но свойство Cost относится к стереотипу HardwareComponent. Подведем итог этой части: Детализация архитектуры позволяет более полно описать разрабатываемую систему и избежать несогласованности интерфейсов и взаимодействия компонентов.

Использование стереотипов для детализации помогает понять природу компонентов и получить более полное представление о разрабатываемой системе.

В следующей части руководства я расскажу об интеграции System Composer с MATLAB, Simulink и инструментом управления требованиями Simulink Requierements. Теги: #matlab #simulink #simulink #Системная инженерия

Вместе с данным постом часто просматривают: