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, которая подверглась модификации. Добавлены четыре расширения:
- поток управления дополнен управляющим оператором;
- с помощью непрерывных потоков объектов стало возможно моделировать непрерывные системы;
- с потоками можно ассоциировать вероятности;
- расширены правила моделирования деятельности.
- - единственная поведенческая диаграмма UML, которая подверглась модификации. Добавлены четыре расширения:
- Диаграммы вариантов использования
- Диаграммы состояний
- Диаграммы последовательностей
- Диаграммы деятельности
- Требования
- Параметрия - ограничения параметров, накладываемых на систему.
- Параметрическая диаграмма
Диаграммы требований
Основное назначение — поставить текстовые описания требований в соответствие элементам архитектурных описаний, интегрировать требования в архитектурную модель.
Определены виды таких соответствий (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:
- 3SL Cradle
- Ansys SCADE System
- Artisan Studio
- ChangeVision Astah SysML
- ConceptDraw SysML Solution
- Eclipse Papyrus
- IBM Rational Rhapsody
- Innoslate
- Lattix Architect
- Modelio
- No Magic Cameo Systems Modeler
- Polarsys Capella
- Polarsys Topcased
- Software Ideas Modeler
- Sparx Systems Enterprise Architect
- SysML Designer
- Vitech CORE
- Vitech GENESYS
- Visual Paradigm for UML