Язык моделирования систем ( SysML ) [1] — это универсальный язык моделирования для приложений системной инженерии . Он поддерживает спецификацию, анализ , проектирование , верификацию и валидацию широкого спектра систем и систем-систем .
SysML изначально был разработан в рамках проекта спецификации с открытым исходным кодом и включает лицензию с открытым исходным кодом для распространения и использования. [2] SysML определяется как расширение подмножества унифицированного языка моделирования (UML), использующего механизм профилей UML . Расширения языка были разработаны для поддержки деятельности по системной инженерии.
SysML предлагает несколько улучшений, связанных с системной инженерией, по сравнению с UML , который был разработан как язык моделирования программного обеспечения. Эти улучшения включают следующее:
SysML повторно использует семь из четырнадцати " номинативных " типов диаграмм UML 2 [4] и добавляет две диаграммы (диаграммы требований и параметрические диаграммы), что в общей сложности дает девять типов диаграмм. SysML также поддерживает таблицы распределения, табличный формат , который может быть динамически получен из отношений распределения SysML. Таблица, сравнивающая диаграммы SysML и UML 2, доступна в разделе часто задаваемых вопросов SysML.
Рассмотрим моделирование автомобильной системы: с помощью SysML можно использовать диаграммы требований для эффективного захвата функциональных, эксплуатационных и интерфейсных требований, тогда как с помощью UML приходится накладывать ограничения диаграмм вариантов использования для определения высокоуровневых функциональных требований. Аналогично, с помощью SysML можно использовать параметрические диаграммы для точного определения производительности и количественных ограничений, таких как максимальное ускорение , минимальная масса снаряжённого автомобиля и общая мощность кондиционирования воздуха . UML не предоставляет простого механизма для захвата такого рода существенной производительности и количественной информации.
Что касается остальной части автомобильной системы, расширенные диаграммы активности и диаграммы конечных автоматов могут использоваться для указания встроенной логики управления программным обеспечением и информационных потоков для бортовых автомобильных компьютеров. Другие структурные и поведенческие диаграммы SysML могут использоваться для моделирования заводов, которые строят автомобили, а также интерфейсов между организациями, которые работают на заводах.
Инициатива SysML возникла в январе 2001 года в решении рабочей группы по проектированию систем на основе моделей Международного совета по системной инженерии (INCOSE) с целью настройки UML для приложений системной инженерии. После этого решения INCOSE и Object Management Group (OMG), которая поддерживает спецификацию UML, совместно учредили в июле 2001 года OMG Systems Engineering Domain Special Interest Group (SE DSIG). SE DSIG при поддержке INCOSE и рабочей группы ISO AP 233 разработала требования к языку моделирования, которые впоследствии были выпущены OMG в UML for Systems Engineering Request for Proposal (UML for SE RFP; OMG document ad/03-03-41) в марте 2003 года. [5]
В 2003 году Дэвид Оливер и Сэнфорд Фриденталь из INCOSE обратились к Крису Кобрину , который успешно руководил командами по разработке языков UML 1 и UML 2, с просьбой возглавить их совместные усилия по ответу на запрос предложений UML для SE. [6] Будучи председателем SysML Partners, Кобрин придумал название языка «SysML» (сокращение от «Systems Modeling Language»), разработал оригинальный логотип SysML и организовал команду по разработке языка SysML в качестве проекта по разработке спецификации с открытым исходным кодом. [7] Фриденталь был заместителем председателя и помог организовать первоначальную команду SysML Partners.
В январе 2005 года SysML Partners опубликовали проект спецификации SysML v0.9. Позже, в августе 2005 года, Фриденталь и несколько других первоначальных SysML Partners ушли, чтобы создать конкурирующую SysML Submission Team (SST). [6] SysML Partners выпустили спецификацию SysML v1.0 Alpha в ноябре 2005 года.
После ряда конкурирующих предложений по спецификации SysML в апреле 2006 года OMG было предложено создать SysML Merge Team. [8] Это предложение было вынесено на голосование и принято OMG в июле 2006 года как OMG SysML, чтобы отличить его от исходной спецификации с открытым исходным кодом, из которой оно было получено. Поскольку OMG SysML получено из SysML с открытым исходным кодом, оно также включает лицензию с открытым исходным кодом для распространения и использования.
Спецификация OMG SysML v. 1.0 была выпущена OMG в качестве доступной спецификации в сентябре 2007 года. [9] Текущая версия OMG SysML — v1.6, выпущенная OMG в декабре 2019 года. [10] Кроме того, SysML был опубликован Международной организацией по стандартизации (ISO) в 2017 году в качестве полного международного стандарта (IS), ISO/IEC 19514:2017 (Информационные технологии — Язык моделирования групповых систем управления объектами). [11]
OMG работает над следующим поколением SysML и выпустила Запрос предложений (RFP) для версии 2 8 декабря 2017 года, после своего открытого процесса стандартизации. [12] [13] Полученная спецификация, которая будет включать улучшения языка из опыта применения языка, будет включать профиль UML, метамодель и сопоставление между профилем и метамоделью. [12] Второй RFP для интерфейса прикладного программирования (API) SysML v2 и RFP услуг был выпущен в июне 2018 года. Его цель — улучшить совместимость инструментов системной инженерии на основе моделей .
SysML включает 9 типов диаграмм, некоторые из которых взяты из UML .
Есть несколько поставщиков инструментов моделирования, предлагающих поддержку SysML. Списки поставщиков инструментов, которые поддерживают SysML или OMG SysML, можно найти на сайте SysML Forum [14] или SysML [15] соответственно.
Как профиль OMG UML 2.0 , модели SysML предназначены для обмена с использованием стандарта XML Metadata Interchange (XMI). Кроме того, ведутся работы по архитектурному выравниванию для поддержки стандарта ISO 10303 (также известного как STEP, Стандарт обмена данными модели продукта) AP-233 для обмена и совместного использования информации между программными приложениями и инструментами системной инженерии .