Cameo Systems Modeler
MagicDraw/Cameo v19SP3: The display of units can't be disabled on the initialValues compartment for context-specific values, which can lead to inconsistencies when an OpaqueExpression that references value property names is used.
MagicDraw/Cameo v19SP3: vs SysPhS-1.1: OpaqueExpression for Slot value exports to Modelica as 'null' if only uses a single variable. WORKAROUND/HACK prefix the variable with '1 *' [FIXED in v2021x]
MagicDraw/Cameo v19SP3: vs SysPhS-1.1: Modelica export: Direct binding from a PhSVariable value property within a FlowProperty of a Port to an inner value property does not flatten. WORKAROUND: Use an intermediate constraint property.
MagicDraw/Cameo v19SP3: Does not support display of context-specific values on a FlowProperty symbol within a Port in an IBD
MagicDraw/Cameo v19SP3+SysPhS-1.1: On export to Modelica sometimes repeats parts of an equation into an extending model.
MagicDraw/Cameo v19SP3+SysPhS-1.1: Does not cleanly export INLINE Modelica 'if/then/else' statements (a.k.a. "switching" form)
MagicDraw/Cameo v19SP3+SysPhS-1.1: Does not cleanly export Modelica 'when/then' statements
SysPhS: MagicDraw/Cameo v19SP3: Export to Modelica does not interpret as 'start' the default on a PhSVariable assigned via ElementValue to a PhSConstant
MagicDraw/Cameo: GOTCHA: When applying a numerical default to a value property make sure the value property has already been typed by Real or Integer (or a ValueType that extends one of them) otherwise it will assign a LiteralString as default.
MagicDraw/Cameo v19SP3: SysPhS: If you have a custom ValueType it MUST extend Real either directly or indirectly or it will not be seen on export to Modelica.
Q: What types of simulation, execution, and calculation are available for SysML with MagicDraw/Cameo?
There are a number of ways of simulating and executing various aspects of Systems Modeling Language (SysML®), and they are not just novelties! They also really help your models become more robust, logical, and organised.
There is "internal" tool simulation of Activities and StateMachines based on fUML (or variations of it).
Screencast: SysML/MBSE: An air conditioner refrigerant cycle in Cameo Simulation Toolkit
Video style
© Copyright 2021 Darren R C Kelly (Webel IT Australia). All rights reserved.
Cameo Simulation Toolkit v19SP3: The "hover" feature for showing values of objects may show duplicates if there are redefined value properties.
MagicDraw/Cameo v19SP3 vs SysML&SysPhS: Export to Modelica: The exported layout annotations appear to be completely broken (at least vs Wolfram SystemModeler) just de-select generation of them on export.
GOTCHA: MagicDraw SysML/Cameo 19SP3: Export to Modelica: The name of a redefining Property must be exactly the same as the Property it redefines or it will not export properly!
MagicDraw SysML/Cameo 19SP3: Sometimes on application of an ItemFlow to a Connector with Ports typed by Blocks or InterfaceBlocks that have a FlowProperty of the same type (but different direction) it shows two ItemFlow arrows
MagicDraw/Cameo v19SP3 vs SysML&SysPhS: The sample project for the Humidifier example uses DEPRECATED FlowPorts (and sets values directly on them in the StateMachines).
MagicDraw/Cameo v19SP3 vs SysML&SysPhS: GOTCHA: Will NOT correctly export a SysML-1.6 «~interfaceBlock» to Modelica (but does cope with a tilde ~ prefix in the name of a plain InterfaceBlock)
MagicDraw/Cameo vs SysML&SysPhS: GOTCHA: Will NOT export a non-normative System «system» block to Modelica, it only recognises a plain Block «block»!
MagicDraw/Cameo: v19SP3: Property created by dragging onto a Class or Block a symbol of a Classifier named with a single letter capital name 'N' has a poor name 'N:N'
MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: RealVectorSignalIn2Element extends RealVectorSignalElement not RealVectorSignalInElement, RealVectorSignalOut2Element extends RealVectorSignalElement not RealVectorSignalOutElement (and so on)
MDSysML/Cameo 19SP3: Showing stereotype keywords on FlowProperty rows is UNSUPPORTED
MDSysML/Cameo 19SP3: The SysPhS versions of Conductance, Frequency, siemens, and hertz, are not explicitly provided in the MagicDraw/Cameo model library
MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: Does not represent the elements in 'Figure 32: Elements for signal flows of electrical quantities'
SysPhS-1.1: Use of 'Criteria = u2~=0' for Simulink for Real.Routing.Switch::u2 inconsistent with BooleanInput of control port Modelica.Blocks.Logical.Switch::u2
SysPhS-1.1 (and MDSysML/Cameo 19SP3 SysPhSLibrary): Use of RealSignalInElement for Real.Routing.Switch::u2 inconsistent with BooleanInput of control port Modelica.Blocks.Logical.Switch::u2
MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: SourceAndSink.Constant: Wrong Real (UML version not SysML version) has been used for 'k', so sorts in the 'properties' compartment instead of the 'values' compartment
MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: Mathematical.Subtraction: Wrong Real (UML version not SysML version) has been used for 'k2', so sorts in the 'properties' compartment instead of the 'values' compartment
MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: Mathematical.Gain: Wrong Real (UML version not SysML version) has been used for 'gain', so sorts in the 'properties' compartment instead of the 'values' compartment
MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: SPELLING/TYPO: VariableDelay: parameter 'maxDelay' should be 'delayMax'
MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: Continuous.Integrator is missing the 'init' PhSConstant (maps to y_start in Modelica)
MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: NonLinear.Saturation: Wrong Real (UML version not SysML version) has been used for 'lower' and 'upper', so sorts in the 'properties' compartment instead of the 'values' compartment
MDSysML/Cameo 19SP3 vs SysPhS-1.1: The Continuous.TransferFunction and Discrete.TransferFunction have Ports 'u : RealVectorSignalInElement [1]' or '[*]' and 'y : RealVectorSignalInElement [1]' or '[*] instead of RealSignalInElement/RealSignalOutElement
GOTCHA: MagicDraw SysML/Cameo 19SP3: Export to Modelica: 'entry', 'doActivity', or 'exit' Behaviors of a State must be directly owned (not just "wrapped") or they won't be seen on export!
MDSysML/Cameo: 19SP3: SysPhSLibrary: Has value properties with aggregation kind 'none'
MDSysML19SP3: Validation engine does not report value properties with AggregationKind other than composite
MagicDraw SysML/Cameo: 19SP3: Does not seem to support export to Modelica from a Package [use a SysML Block as root instead]
Figure 2: Association block with internal structure and connector properties in SysML (and Figure 3)
SysPhS-1.1 specification body figures in MagicDraw SysML (or Cameo Systems Modeler) vs Modelica
Sections
MagicDraw SysML/Cameo: 19SP3: Export to Modelica from TestBed (for SignalProcessor) sample does not validate in Wolfram SystemModeler
MagicDraw SysML/Cameo: 19SP3: Export to Modelica from SysPhS sample for HumidifierSystem does not execute in Wolfram SystemModeler Simulation Centre
Screencast: UML/SysML: HOWTO Consume a SignalEvent message in a StateMachine Transition 'effect' or State 'entry' or 'exit' Activity
Video style
© Copyright 2020 Darren R C Kelly (Webel IT Australia). All rights reserved.
Screencast: UML/SysML StateMachines: How a completion transition works (and why you should avoid them)
Video style
Explains what a completion transition is and how to simulate and explore it in Cameo Simulation Toolkit for MagicDraw UML, MagicDraw SysML, or Cameo Systems Modeler.
© Copyright 2020 Darren R C Kelly (Webel IT Australia). All rights reserved.
BUG: Cameo Simulation Toolkit 19SP3: StateMachine: Crashes with an irrelevant "memory error" report if you fire a signal Trigger during execution of an 'entry' Activity with a timer
UML-2.5.1 does NOT permit a trigger or guard on a Transition from an initial pseudostate in a StateMachine but Cameo/MagicDraw does (please avoid).
Screencast: HOWTO: Send and receive a Signal via Ports in SysML and Cameo Simulation Toolkit
Video style
© Copyright 2020 Darren R C Kelly (Webel IT Australia). All rights reserved.
MagicDraw/Cameo: The tagged values HTML editor can't handle overlines or all macrons.
MagicDraw/Cameo: HOWTO share a "Block-to-Block" ItemFlow - that was created by 'Between Part Types' mode - between two Connectors. (FYI only, not a Webel-recommended technique.)
MagicDraw/Cameo: If you use ItemFlow mode 'Between Part Types', on application again of a Classifier as ItemFlow to a Connector in a 2nd context Block it may tell you an ItemFlow exists between Blocks that type parts connected elsewhere.
MagicDraw/Cameo: If redisplay of an Association with an InformationFlow or ItemFlow creates a strange extra dashed line with «ItemFlow» keywords (separate from the Association) just remove (only) that extra dashed line from the diagram.
Topic outline for full 5-day workshop course version: Model-based systems engineering with the OMG's Systems Modeling Language (SysML®) and the SysML Plugin for MagicDraw® and Cameo™
Topic outline for full 5-day work
Topic outline for 3-day overview course version: Model-based systems engineering with the OMG's Systems Modeling Language (SysML®) and the SysML Plugin for MagicDraw® and Cameo™
Topic outline for 3-day overview
MagicDraw/Cameo: The ordering of feature in a SysML IBD :features compartment may differ from that in its defining Block (and there are no corresponding display options for controlling sorting).
MagicDraw/Cameo: BUG: Sometimes the 'Show Inherited' display feature does not work immediately on Class and Block compartments or SysML IBD :features compartments unless you toggle a compartment (close then re-open it).
MagicDraw/Cameo: The display option 'Show Value Type Units' does not seem to work on the Slots of an InstanceSpecification in a BDD
MagicDraw/Cameo v19SP3: uses the Block compartment name 'signal receptions' instead of just 'receptions'. [CLAIMED FIXED in v2021x]
MagicDraw/Cameo 19SP3: Stakeholder: Has 'concern' NOT derived and /concernList derived; SysML-1.6 has /concern derived and concernList NOT derived.
MagicDraw/Cameo: The apparent grouping of member elements under an ElementGroup node in the model tree can cause complications for searching and for the Cameo Collaborator exports.
MagicDraw/Cameo 19SP3: The property path in callout does always correspond to the SysML spec examples.
MagicDraw/Cameo 19SP3: uses PascalCase instead of lowerCamelCase on some SysML compartment names
MagicDraw/Cameo 19SP3: Validation of required and provided Interfaces proxied between a ProxyPort and a part with a compatible contract fails
MagicDraw/Cameo 19SP3: Does not yet handle Property-wise Type compatibility validation of FlowProperty contracts (it only handles them at the level of entire Block types). Webel asserts the spec is inconsistent w.r.t. ProxyPort connection compatibility.
MagicDraw/Cameo: HOWTO get back an InformationFlow or ItemFlow when it vanishes from a redrawn Connector
MagicDraw UML/SysML/Cameo 19SP3: Sometimes on application of a named Association as the Type of a Connector that already has an InformationFlow (or ItemFlow) applied, the direction of the InformationFlow (or ItemFlow) indicator swaps.
MagicDraw/Cameo does not seem to offer the display option Apply SysML Callout Style on CentralBufferNode
MagicDraw/Cameo: DOES NOT support the Namespace compartment on Block
MagicDraw/Cameo 19SP3: can't assign Statemachine submachine as principal of AdjunctProperty via validation warning dialog (confirmed bug). WORKAROUND: Set principal using the specification dialog.
MagicDraw/Cameo 19SP3: Can't seem to show {control} notation on control Pin
MagicDraw/Cameo: Has ControlValue not ControlValueKind (due to known SysML spec issue)
MagicDraw/SysML 19SP3: does not support ObjectNode notation shown in SysML-1.6 in Figure 11-6 and Figure 11-7 because does not support ObjectNode notation properly
MagicDraw/Cameo 19SP3: enumeration 'FeatureDirection' should be 'FeatureDirectionKind' (reflects known error in older SysML specification versions)
MagicDraw/Cameo: the keyword for PropertySpecificType is «PropertySpecificType» not «pst»
MagicDraw/Cameo: 19SP3: Callout of allocatedFrom on Connector vs ObjectFlow shows «decisionInputFlow» not «objectFlow» keyword
MagicDraw/Cameo 19SP3: Can't callout from ItemFlow on Connector, the Note handle pulls from the Connector not the ItemFlow
MagicDraw/Cameo: HOWTO redisplay the name and type of a SysML ItemFlow on a Connector if it vanishes (such as when the Connector is redrawn)
MagicDraw/Cameo 19SP3: If Continuous or Discrete are applied to the underlying Parameter of an InputPin or an OutputPin the keywords «continuous» or «discrete» can't be displayed
In the Webel trail versions of the SysML-1.6 spec sample Figure D.38, the alignment of ObjectNode symbols over the ActivityParameterNode boundaries is completely contrived, please DO NOT mimic it; please use explicit Pins instead!
MagicDraw/Cameo 19SP3: Continuous and Discrete have metaclass [ActivityEdge, ObjectNode, Parameter] not just [ActivityEdge, Parameter] (via Rate), so may be applied directly to Pin and ActivityParameterNode
Webel recommends when using MagicDraw/Cameo: AVOID the "elided Pin" abstract ObjectNode notation on Activity Diagrams, use explicit Pins!
MagicDraw/Cameo: DO NOT use the ObjectNode menu item on Activity Diagrams ever!
MagicDraw/Cameo SP193: Offers the display option to show the name and type label inside a Pin symbol, but it does not seem to work.
MagicDraw/Cameo: ERROR: Incorrectly uses 2 ObjectFlow edges and a CentralBufferNode in place of "elided Pin notation" instead of an abstract ObjectNode symbol and 2 arrow symbols (that are supposed to represent together 2 Pins and 1 ObjectFlow edge)
MagicDraw/Cameo 19SP3: Does not seem to directly support compartment for decomposition of Views as properties of Views (but one can create properties in an IBD and they will show in the 'attributes compartment')
MagicDraw/Cameo 19SP3: Does not yet handle Feature-wise validation of provided/required DirectedFeature contracts (it only handles them at the level of entire Block types). Webel asserts the spec is inconsistent w.r.t. ProxyPort connection compatibility.
MagicDraw/Cameo derived relationships and metachain navigation are very powerful and worth exploring
MagicDraw/Cameo: There are lots of spelling mistakes in the ISO-80000 ModelLibrary
MD SysML and Cameo 19SP3 can't yet validate provided/required Feature subsets (such as Features of one Block against Features of multiple Ports)
Webel's Best Practice policy notes for UML and SysML and the MagicDraw/Cameo tools
Screencast: Mini tutorial: UML/SysML: Cameo Simulation Toolkit: Send and receive a Signal using a SendSignalAction and an AcceptEventAction
Video style
A very simple demonstration of sending a Signal using a SendSignalAction and receiving it with an AcceptEventAction within Activities. Uses SysML but the same applies to UML.
Uses Cameo Simulation Toolkit for MagicDraw SysML and Cameo System Modeler.
© Copyright 2020 Darren R C Kelly (Webel IT Australia). All rights reserved.
Screencast: Mini tutorial: UML/SysML: Cameo Simulation Toolkit: StateMachine with doActivity and a Transition with a ChangeEvent trigger
Video style
A very simple demonstration of a StateMachine with a doActivity and a Transition that uses a trigger with a ChangeEvent for checking a value. Uses SysML but the same applies to UML.
Uses Cameo Simulation Toolkit® for MagicDraw SysML and Cameo System Modeler Enterprise Edition.
Screencast: Mini tutorial: UML/SysML: Cameo Simulation Toolkit: StateMachine with entry Activity and Transition guard
Video style
A very simple demonstration of a StateMachine with an entry Activity and Transitions that use guards to check a value. Uses SysML but the same applies to UML.
Uses Cameo Simulation Toolkit for MagicDraw SysML and Cameo System Modeler.
Screencast: MagicDraw SysML/Cameo analysis: Possible "gotchas" when extending the SysML Block stereotype
Video style
Audience: Users of MagicDraw SysML or Cameo Systems Modeler who are experimenting with creating custom stereotypes that extend Block.
This screencast video has been created to demonstrate some issues that can arise if you "naively" create a custom stereotype that extends Block without: (1) closing then re-opening your project; (2) creating an appropriate MD Customization. It is not about any actual "bug" in MagicDraw/Cameo (as long as you follow the recommended procedure). If you watch it, please do watch it to the end to find how to handle such stereotypes properly.
Screencast: MagicDraw SysML/Cameo: Pros and Cons of custom stereotypes in combination with Block inheritance and Part Property structures
Video style
Audience: Users of MagicDraw SysML or Cameo Systems Modeler who are experimenting with creating custom stereotypes for SysML.
This screencast video has been created to illustrate some pros and cons of using custom stereotypes in combination with Block inheritance and Part Property structures, and demonstrates some possible "gotchas". It concerns especially use of custom stereotypes to indicate: (1) cross-cutting aspects such as model layer membership; (2) use of tagged values to carry per-Element metadata.
Screencast: The LogicalWrapper: A proposal for a new element for UML and SysML
Video style
This 4K narrated screencast video accompanies the white paper of the same name by Darren Kelly of Webel IT Australia available here.
Course: Model-based systems engineering with the OMG's Systems Modeling Language (SysML®) and the SysML Plugin for MagicDraw® and Cameo™
Cameo Systems Modeler zone
The Webel Parsing Analysis recipe for UML
This zone is about a version of the Webel Parsing Analysis recipe for document-driven, model-based, graphical software engineering with Unified Modeling Language (UML®).