de_DEen_USes_ESfa_IRfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

Язык системного моделирования версии 2 (SysML v2) означает масштабный сдвиг в инженерии систем. Отказавшись от жестких графических ограничений на основе UML версии SysML v1, SysML v2 вводитязыковую, текстовую синтаксическую структуру. Эта синтаксическая структура рассматривает структуру, поведение, требования и анализ как глубоко интегрированные текстовые элементы.

Это всестороннее руководство разбирает основные принципы, концепции и синтаксис SysML v2, используя конкретный примерАвтономныйДрон проектирования.

The core pillars, concepts, and syntax of SysML v2 using a concrete AutonomousDrone example


1. Основная концепция: определения против использования

Самым важным архитектурным понятием в SysML v2 является строгое разделение междуопределениями (чертежами) ииспользованием (контекстными экземплярами).

  • Такdef ключевое слово: указывает на повторно используемое определение, тип или чертеж элемента. Оно не существует как физический объект до момента использования.

  • Нетdef ключевое слово: указывает на использование. Оно представляет собой фактическое появление или экземпляр компонента в конкретной родительской системе.

// ОПРЕДЕЛЕНИЕ: Повторно используемый чертеж для любого аккумулятора
part def Battery;

// ИСПОЛЬЗОВАНИЕ: Конкретный экземпляр аккумулятора внутри нашей системы дрона
part powerSource : Battery;

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


2. Структурная архитектура: части, элементы и порты

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

Части и элементы

  • part def (Блок / Компонент): определяет структурный, физический или логический компонент системы.

  • item def (Элемент потока): Определяет нефиксированные элементы — такие как потоки данных, жидкости, сила или электричество, которые течь между частями.

Порты и интерфейсы

  • порт опр (Спецификация интерфейса): Определяет границу интерфейса, явно указывая, какие данные или элементы могут входить (вход) или выходить (выход).

Вот как эти компоненты объявляются и вложены внутри пространства имен системы:

пакет DroneSystemExample {
    приватный импорт ScalarValues::*;
    приватный импорт SI::*;

    // Основные чертежи (определения)
    элемент опр Power; 

    порт опр PowerOutPort {
        выход элемент powerElec : Power;
    }
    
    порт опр PowerInPort {
        вход элемент powerElec : Power;
    }

    часть опр FlightController;
    часть опр PropulsionSystem;
    часть опр Battery;

    // Интегрированный контекст системы
    часть опр AutonomousDrone {
        // Атрибуты / свойства значений
        атрибут enduranceActual : Реальный;

        // Использование подчастей (инстанцирование определений)
        часть flightController : FlightController;
        часть propulsionSystem : PropulsionSystem;
        часть powerSource : Battery;

        // Использование портов (инстанцирование интерфейсов)
        порт pBatteryOut : PowerOutPort;
        порт pPropulsionIn : PowerInPort; 
    }
}


3. Структурный столп (проблемное пространство)

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

требование опр RangeRequirement {
    doc /* Дрон должен поддерживать непрерывное время полета не менее 45 минут. */
    атрибут enduranceTarget : Реальный = 45.0; 
}

Следуемость с удовлетворять

Чтобы замкнуть цикл между проблемным пространством (требованиями) и пространством решения (структурой), SysML v2 использует явные ключевые слова отношений, такие как удовлетворять непосредственно внутри контекста части:

часть опр AutonomousDrone {
    // Инстанцирует использование требования для удовлетворения определения с чистым сопоставлением
    удовлетворять требование : RangeRequirement;
}


4. Столп поведения (пространство выполнения)

SysML v1 вынуждала чёткое разделение между структурой (внутренние блочные диаграммы) и поведением (диаграммы деятельности). SysML v2 полностью устраняет эту границу, делая действия и потоки управления встроенными, доступными в рамках структурных элементов.

Последовательные действия и поток управления

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

действие executeMission {
    вход targetCoordinates;
    выход missionStatus;
    
    действие sTakeoff;
    затем действие sNavigate;
    затем действие sLand;
}


5. Функциональное распределение: соединение поведения с архитектурой

Распределение отвечает на фундаментальный вопрос системной инженерии: Какой компонент выполняет какую функцию?

SysML v2 решает эту задачу чисто с использованием ключевого слова выполняетключевое слово в блоке использования компонентов. Используя нотацию точки (.), вы можете глубоко проникнуть в вложенные циклы действий, чтобы напрямую сопоставить операции с физическим оборудованием.

часть def AutonomousDrone {

    // Подкомпоненты распределяют поведение, явно 'выполняя' свои назначенные шаги
    часть flightController : FlightController {
        выполняет executeMission.sNavigate;
    }
    
    часть propulsionSystem : PropulsionSystem {
        выполняет executeMission.sTakeoff;
    }

    // Встроенное определение поведения
    действие executeMission {
        действие sTakeoff;
        затем действие sNavigate;
        затем действие sLand;
    }
}


 

Обзор основных ключевых слов

Ключевое слово Пространство Назначение
пакет Структурное Определяет контейнерное пространство имен для организации вашей модели.
частный импорт Структурное Вводит внешние стандартные библиотеки (например, Масштабные значения или СИ единицы) в область действия без их утечки вниз по потоку.
def Парадигма Обозначает повторно используемый чертеж или определение типа.
часть / элемент Структурный Объявляет физический/логический компонент или поток жидкости/данных, протекающий через систему.
порт Структурный Устанавливает границу интерфейса, определяя вход и выход потоки.
требование Проблема Определяет текстовый контракт, содержащий типизированные атрибуты и математические цели.
удовлетворить Связь Соединяет структурный элемент непосредственно с требованием, которое он выполняет.
действие Выполнение Определяет поведенческий шаг или операционную функцию.
затем Выполнение Принуждает к последовательному порядку выполнения действий.
выполнять Выделение Связывает поведенческое действие непосредственно с физической частью, ответственной за его выполнение.

 

Полный пример SysML V2: Три кита

пакет DroneSystemExample {

приватный импорт ScalarValues::*;

приватный импорт SI::*;

// ==========================================

// ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ ЧЕРТЕЖА

// ==========================================

элемент определить Мощность;

порт определить PowerOutPort {

выход элемент powerElec : Power;

}

порт определить PowerInPort {

вход элемент powerElec : Power;

}

часть определение FlightController;

часть определение PropulsionSystem;

часть определение Battery;

// ==========================================

// 1. ПИЛОТ ТРЕБОВАНИЙ (пространство проблемы)

// ==========================================

требование определение RangeRequirement {

документация /* Беспилотный летательный аппарат должен обеспечивать непрерывное время полета не менее 45 минут. */

атрибут enduranceTarget : Real = 45.0;

}

// ==========================================

// 2. ПИЛОТЫ СТРУКТУРЫ И ПОВЕДЕНИЯ

// ==========================================

часть определение AutonomousDrone {

атрибут enduranceActual : Реальный;

// Подкомпоненты выделяют поведение, явно «выполняя» свои назначенные шаги

часть flightController : FlightController {

выполнять executeMission.sNavigate;

}

часть propulsionSystem : PropulsionSystem {

выполнять executeMission.sTakeoff;

}

часть powerSource : Аккумулятор;

// Соединения интерфейсов

порт pBatteryOut : PowerOutPort;

порт pPropulsionIn : PowerInPort;

// ИСПРАВЛЕНИЕ 1: Создает использование требования для чистого удовлетворения сопоставления определений

удовлетворять требование : Требование диапазона;

// ==========================================

// 3. СТОЛП СОБЫТИЙ (пространство выполнения)

// ==========================================

// Чистые, последовательные определения действий нативно в области действия

действие executeMission {

в targetCoordinates;

out missionStatus;

action sTakeoff;

then action sNavigate;

then action sLand;

}

}

}