Keywords
As part of a long term project developed, initially during work for a client, Webel IT Australia in partnership with GreenSoft Pty Ltd is developing a very complex Mathematica application with substantial SysML modelling support.
There is currently no digital binding (reverse/forward engineering) between Mathematica and the MagicDraw/Cameo tool, it is managed manually, but this it is already very worthwhile!
The long term plan is to achieve a high level of direct model and code communication between SysML and Mathematica Wolfram Language code, which is a spin-off project and not featured otherwise here.
Because of commercial confidence and IP concerns, the public examples here are so far relatively limited, but some client-non-specific examples will eventually be offered.
The key parts to the recipe so far are:
- A way of Wolfram Language coding for the contributed MTools OO package/paclet that admits easy representation as SysML Blocks.
- A way of representing code, data, Associations, and object flow in Activity Diagrams that largely respects the functional approach of Mathematica.
That second aspect (the SysML modeling side) is now handled as a set of SysML modeling recipes and conventions explained under:
You can list aspects of the recipe using this tag, including Note pages cross-linked to examples: Webel:MathematicaSysML.
Notes
[ANTI-PATTERN, GOTCHA, ISSUE, LIMITATION, WARNING]{INFORMATIVE} Mathematica: MTools: Argument Pattern strong type matching does not intrinsically respect inheritance (makes implementing design-by-contract and some Design Patterns less convenient). But you can use PatternTests with Webel MAll extensions.