SysMLv1.x: Limitation: The 'body' (maths formula) of an OpaqueBehavior can't be synchronised (shared) with the 'constraint' of a ConstraintBlock (directly in the SysML model). Can lead to a WET (not DRY) model and breaks Single Source of Truth!

Webel IT Australia promotes the amazing Mathematica tool and the powerful Wolfram Language and offers professional Mathematica services for computational computing and data analysis. Our Mathematica tips, issue tracking, and wishlist is offered here most constructively to help improve the tool and language and support the Mathematica user community.
DISCLAIMER: Wolfram Research does not officially endorse analysis by Webel IT Australia.
Icon class
icon_class
far fa-sticky-note
icon_class_computed
far fa-sticky-note
Note kind
Policy level
UML keywords
SysMLv1.x keywords
Keywords
Click on the image to view it full size
The 'body' of an OpaqueBehavior and the 'constraint' of a ConstraintBlock can't share their maths directly in the SysML model

In the example, the formula qSen = m$da * (hda2 - hda1) appears in two separate elements, which is "WET" and thus breaks the Single Source of Truth (SSOT) and Don't Repeat Yourself (DRY) policy.

TIP: You can use an Abstraction between the OpaqueBehavior and the corresponding ConstraintBlock (hopefully with exactly the same maths) for traceability
However, there is a solution. In Magic Model Analyst® (Cameo Simulation Toolkit®) you can use Mathematica as an external maths engine and then indeed share the maths via a custom function defined and auto-loaded in Mathematica:
Relates to
Related notes
Related notes (backlinks)
Related snippets (extracts)
Visit also
Visit also (backlinks)