SysML

SysML (англ. The Systems Modeling Language, язык моделирования систем) — предметно-ориентированный язык моделирования систем. Поддерживает определение, анализ, проектирование, проверку и подтверждение соответствия широкого спектра систем. SysML изначально разрабатывался в рамках проекта спецификации с открытым исходным кодом, и имеет открытую лицензию для распространения и использования. Как язык, SysML является расширением части языка UML.

Возможности

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

  • Большая гибкость и выразительность. SysML убирает программно-ориентированные ограничения UML за счёт введения двух дополнительных типов диаграмм:
    • диаграммы требований - для сбора требований
    • параметрическая диаграмма - для количественного анализа и анализа производительности.
    В результате становится возможным моделирование широкого спектра систем, которые могут включать оборудование, ПО, информацию, процессы, персонал и площади.
  • SysML более компактный язык, его легче изучать и применять, так как он избавлен от многих программно-ориентированных особенностей UML.
  • Конструкции языка для управления моделью поддерживают модели, представления (англ. views), и точки зрения (англ. viewpoints) (используются для создания представлений). Эти конструкции расширяют возможности UML и архитектурно стоят в одном ряду с IEEE-Std-1471-2000 (Рекомендованная IEEE практика для архитектурного описания программно-нагруженных систем) англ. (IEEE Recommended Practice for Architectural Description of Software Intensive Systems).

Диаграммы SysML

Диаграммы SysML описывают четыре различные области:

  • Структура - архитектурные элементы (логические и физические), т.н. "блоки", а также их взаимосвязи.
    • Диаграммы определений блоков
      по сути блоки - это классы в языке UML, названные так для простоты и ухода от парадигмы ООП.
      SysML-block-associations.png
    • Диаграммы внутренних блоков
    • Диаграммы пакетов
  • Поведение - то, как ведет себя система, включая смену состояний, последовательности активностей, функции и взаимодействия
    • Диаграммы деятельности
      - единственная поведенческая диаграмма UML, которая подверглась модификации. Добавлены четыре расширения:
      • поток управления дополнен управляющим оператором;
      • с помощью непрерывных потоков объектов стало возможно моделировать непрерывные системы;
      • с потоками можно ассоциировать вероятности;
      • расширены правила моделирования деятельности.
      SysML-activity-diagram.png
    • Диаграммы вариантов использования
    • Диаграммы состояний
    • Диаграммы последовательностей
  • Требования
    • Диаграммы требований
      SysML-requirements-diagram.png
  • Параметрия - ограничения параметров, накладываемых на систему.
    • Параметрическая диаграмма

Диаграммы требований

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

Определены виды таких соответствий (dependency relationships):

  • verify (например, к тестовому сценарию или другому элементу, что может определить соответствие),
  • satisfy (к элементу, который уже определяет соответствие),
  • refine
  • trace
  • copy
  • и т.д.

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

Требования в SysML могут быть собраны в таблицы — главным образом для удобства восприятия.

Важна идея повторноиспользуемости требований: поэтому вводится отношение копирования — требования-хозяева (master, т.е. "оригиналы") и требования-рабы (slave, т.е. "копии"), которые суть случаи повторного использования требований-хозяев.

Главное использование требований в SysML — это аннотация требованиями архитектуры, выраженной в SysML. Конечно, при этом есть опыт мэппинга требований SysML в RIF, ибо мало кого устраивает иметь требования привязанными именно к SysML-представлению всех остальных архитектурных, дизайнерских, тестировочных артефактов. Впрочем, OMG ведет активные согласования RIF (старое название ReqIF), SysML и AP 233 — и при этом приходится дополнять SysML, чтобы удовлетворить RIF (о чем и рассказывается в статье по ссылке). Все это одно и то же по большому счёту: аннотация архитектуры обрывками текста и контроль конфигурации этих обрывков.

Привязка

Привязка (allocation) - механизм SysML, позволяющий соединять элементы разных моделей. В сам язык встроены три типа привязок:

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

Привязки обычно рисуют пунктирной линией.

Инструменты

Перечень программных продуктов, позволяющих моделировать на SysML:

Ссылки