MBSE: Languages and tools: NoMagic/Dassault vs SysML

Gallery
Tutorial

Please don't be over-whelmed by all of the languages presented here, we are going to walk through them one-by-one, and you don't usually have to deal with them all at once when you commence your SysML/MBSE journey.

The following custom Stereotype keywords and icons are used for orientation:
  • «language» : May also indicate an 'organisation' and a verbose 'name' as tagged values.
  • «tool» : May also indicate a 'vendor' and related 'languages' as tagged values.
Click on the image to view it full size

The Systems Modeling Language (SysML®) is developed by the Object Management Group (OMG®) with frequent contributions from OMG member companies and individuals. It enjoys a very active specification community and user community. Some versions of OMG SysML are also ISO/IEC standards.

At of the time of writing, the current specification version of OMG Systems Modeling Language (SysML®) is SysMLv1.6, with work well on the way towards SysMLv1.7 (which will probably be the last one before SysMLv2).

SysML1.x is a "dialect" of the OMG Unified Modeling Language (UML®) - originally intended for software engineering - adapted for systems engineering. It leverages a subset of UML (called UML4SysML) and extends it with some additional diagram types, element types, notations, and capabilities, as well as further integrations with other languages and tools.

The Unified Modeling Language (UML®) leverages the OMG Object Constraint Language (OCL) in its specification, and users can also express many Constraints in OCL. Likewise, OCL can be used in SysML. If you are beginning with SysML, you probably won't have to deal with OCL directly for a while, but it's very powerful and definitely worth learning a bit as you progress.

Just as SysML v1.x is based on UML, the MagicDraw SysML Plugin plugin is based on MagicDraw® UML. The NoMagic suite happens to offer the SysML Requirements features as a separate Cameo Requirements Modeler Plugin. One can also purchase the Cameo Systems Modeler® product bundle, which includes all of these together (but has less flexibility for software engineering, so if you wish to do lots of UML-driven code engineering you might be better off assembling your own combination of plugins around MagicDraw® UML).

The Cameo Simulation Toolkit® is an additional plugin, and offers simulation of many aspects of UML and SysML. It is based (more or less) on the OMG fUML® (which stands for Semantics of a Foundational Subset for Executable UML Models), but it in fact does not cover every single bit of latest fUML-1.4, but does goes well beyond fUML-1.4 in some areas with some nice vendor-specific capabilities. See under the fUML zone and fUML zone for a quite comprehensive list of differences.

If you want to simulate StateMachines and/or Activities, or execute SysML Parametrics constraint calculations, Cameo Simulation Toolkit® is your friend, and learning how to use it will definitely help you take your SysML and MBSE to the next level.

UML has a concept opaque expression, which refers to code or maths expressed in a language other than UML. Such expressions can be used, for example, in an OpaqueBehavior, on guards on StateMachine transitions, and in Constraints on a ConstraintBlock in SysML Parametrics.

The MagicDraw/Cameo family of tools "recognise" at least the following languages for opaque expressions: Binary, Built-in Math, English, Groovy, JRuby, JavaScript, JavaScript Rhino, Jython, Maple, Mathematica, Matlab, Modelica, OCL2.0, SQL, StructuredExpression. And you may add additional languages such as 'sysphs' (at least as part of the expression specification). The degree to which the tool knows how to parse or leverage the listed languages varies somewhat.

Specifying low-level aspects of Behavior such as Activities graphically can sometimes be tedious. That's where the powerful Action Language for Foundational UML (Alf) comes in, supported by the Action Language for Foundational UML (Alf) plugin. This is a UML-friendly action language that can be used to specify many aspects of UML and SysML in code in a natural way. It requires some knowledge about the UML metamodel, but it's definitely worth learning about if you are doing a lot of simulation.

Some (not all) of what can be achieved with Alf can also be achieved with the vendor-specific Action Language Helper (ALH), which is handy, but not quite as elegant. It has the advantage that you don't need an additional plugin to use it.

If you are new to SysML, you probably won't need to learn about Alf or AHL for some time, but eventually it's good to at least know that they exist and what they basically do.

And last, but definitely not least, there is OMG SysPhS (the SysML Extension for Physical Interaction and Signal Flow Simulation), an extension of SysML that enables you to export SysML models to the powerful Modelica and Simulink languages, for simulation of signal flow and physical interaction.

The MagicDraw SysML Plugin and Cameo Systems Modeler® tools can export to Modelica and Simulink directly from most suitably-formed Blocks (including StateMachines and SysML Parametrics with mathematical constraints).

Up next
Notes
Snippets (quotes/extracts)
Visit also
Visit also (backlinks)
Related slides (other tutorials)
Related slides (other tutorials, backlinks)