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 описывают четыре различные области:

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

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

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

Привязки этих текстов (dependency relationships) вполне определенные:

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

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

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

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

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