Webel's "super-relational" Note pages!

A Note is a short categorised statement, claim, policy, tip, or issue tracker Throughout this site, content is often related to supporting Notes, and each Note page links back to the content pages that reference it! The Note and Snippet concepts are very closely related and they support each other.
Look for "super-relational" Note page links at the bottom of most content pages!
Note kind Note Sort descending Spec tag UML keywords SysML keywords Keywords
ASSERTION "Everything now uses functional, nobody uses object-oriented anymore ... " WRONG: Grow up! Dr Darren (Webel IT) functional, functional programming, object-oriented
NAMING, POLICY "Trust the Namespace" - DO NOT repeat information in names of owned elements that can be gleaned from the owner or ancestor (and is usually easily shown using display options). It is WET, it breaks the DRY principle! Element::owner, NamedElement::name
NAMING, POLICY, STYLE "Trust the Port or Pin Type!" - Often the name of the Type of an anonymous Port or Pin is completely sufficient to indicate its role, unless a clear indication of its direction or unique role is required. NamedElement::name, Property, InstanceSpecification, Port Webel Best Practice
POLICY, STYLE A "staging" BDD for defining the flows, ports, and item properties on blocks to be used in an IBD does not have to be a "work of art" if it is not intended as a final presentation diagram. Port SysML Block Definition Diagram, Block, InterfaceBlock, ~InterfaceBlock, FlowProperty Webel Best Practice
A BindingConnector may optionally be indicated by an '=' sign or the keyword «equal» BindingConnector
A common interpretation of composite Aggregation of a part property in SysML domain modelling is that if the owner Block is "destroyed" so is the child part property. Webel adopts these semantics always. AggregationKind::composite, AggregationKind, Property::aggregation Block, part property, MD:PartProperty Webel Best Practice
CAVEAT A FinalState has no entry, doActivity, or exit Behavior, no outgoing Transitions, no Regions, and cannot reference a submachine FinalState
ASSERTION A FlowProperty need not have 'composite' AggregationKind, it can be 'shared' or 'none'. (The MagicDraw/Cameo default is 'none'). SysML-1.6 AggregationKind, AggregationKind::composite, AggregationKind::none, AggregationKind::shared FlowProperty Cameo Systems Modeler, MagicDraw SysML
TIP A SysML Enumeration is a UML Enumeration with ValueType applied (so properties typed by it will list as value properties in the 'values' compartment on a Block) SysML-1.6 Enumeration SysML Enumeration, ValueType, value property
CONSTRAINT A ValueSpecificationAction may not have any InputPins, because Action::/input:InputPin[0..*] is a derived union, and ValueSpecificationAction does not specify any InputPin subsets ValueSpecificationAction, Action, Action::/input, InputPin
POLICY About the Single Source of Truth (SSOT) and Don't Repeat Yourself (DRY) principles DRY, SSoT, Single Source of Truth
CAVEAT, MODELLING Additional Dependency relationships between ValueTypes and their Units on some SysML diagrams on this site are for educational illustration only (you don't need them in your own SysML models). SysML-1.6, SysML-1.7 Dependency ValueType, ValueType::unit
ASSERTION, DISPLAY, SETTINGS, STYLE, TOOL ALL Model-Based Engineering: Just because you can't see a Feature or some other aspect of a SysML (or UML) Element in a tool on a symbol does NOT mean it does not exist in the underlying model (repository)! The model is not just what is DISPLAYED! Alf-1.1, fUML-1.3, fUML-1.4, SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Diagram, Element, symbol Webel Best Practice, MagicDraw SysML, Cameo Systems Modeler
DEPRECATION Although the older SysML FlowPort is strictly deprecated, the term "ports with flows" is often used for a Port typed by a block with a FlowProperty. The expression "flow port" is best avoided to prevent confusion. SysML-1.6 DEPRECATED:FlowPort, port with flows
TIP An ElementGroup comment symbol may appear on more than one diagram type and may collect different kinds of anchored annotatedElement members from more than diagram. Comment, Comment::annotatedElement, MD:anchor ElementGroup, ElementGroup::/member
An Open Letter to LinkedIn SysML/MBSE groups from Dr Darren: "But, but, but, that SysML Diagrams doesn't show [insert pet systems engineering principle here]". It doesn't have to! It just has to show (or teach) something useful with SysML in a SysML tool! SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice
ANNOUNCEMENT: Webel IT Australia is developing an Online Subscription Video Tutorial Series version of our hands-on course for MBSE with SysML(v1) with Cameo Systems Modeler tool videos and OMG SysML-language only videos. Register your interest now! SysML-1.6, SysML-1.7 SysML, Systems Modeling Language, MBSE, SysMLv1, Cameo Systems Modeler, MagicDraw SysML, CATIA Magic, Model-Based Systems Engineering, training, seminar, web seminar
DISPLAY, STYLE, TIP As an alternative to composition Association "trees" consider instead using symbol resize to visually "bracket" composed items (can however be a bit fiddly). Association Webel Best Practice
ISSUE As of 2021-01-11 OpenModelica no longer has DMG install bundles for Mac, and currently does NOT install on Mac Big Sur using MacPorts! Modelica, OpenModelica, macOS, macOS Big Sur
STYLE, TIP Associative BDDs are best used as staging diagrams for you the modeller (and SysML-fluent readers). IBDs usually make better presentations diagrams for a wider audience of general engineers and other stakeholders. SysML Internal Block Diagram, SysML Block Definition Diagram Webel Best Practice
POLICY, WARNING AVOID "mixed" functional (behavioral) allocation levels! DO NOT Allocate from Usage level (Action) to Definition level (Block) or from Definition level (Activity) to usage level (part Property) - even if formally permitted in SysML. Behavior, Action, Activity Allocate, behavior allocation, Block, part property, MD:PartProperty Webel Best Practice, functional allocation
POLICY Avoid mixing flow properties on the Type of a Port with directed features (operations and values); One distinguishes between "ports with flows" and "contract ports". FlowProperty, DirectedFeature, InterfaceBlock, ~InterfaceBlock Webel Best Practice
CONVENTION, NAMING, STYLE Avoid punctuation in Property names (except when used to "quote text"). You can usually avoid underscores in Property names (even if they are used in the Type name) if you can "Trust the Type"! Property Webel Best Practice
CONVENTION, MODELLING, NAMING Block naming: If you find you've got similar blocks named 'Thing' and 'Thing2' then 'Thing' is probably better renamed 'Thing1' SysML-1.6, SysML-1.7 SysML, Systems Modeling Language, Webel Best Practice
ISSUE BUG: An unmarshalled AcceptEventAction fails in Cameo Simulation Toolkit 19SP3 as soon as use Generalization with a redefined property! Magic Model Analyst [Cameo Simulation Toolkit]
ISSUE, TOOL 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 fUML-1.3, fUML-1.4, UML-2.5.1 StateMachine, State::entry, Activity, AcceptEventAction, TimeEvent::isRelative, completion, completion transition Cameo Systems Modeler, Magic Model Analyst [Cameo Simulation Toolkit]
TIP By all means use ActivityAllocatePartition swimlanes for CallBehaviorAction allocation in usage allocation mode, but use BDDs for your definition-level allocations with directly drawn «allocate» relationships between Activity and Block symbols. CallBehaviorAction, ActivityEdge::redefinedEdge AllocateActivityPartition, behavior allocation, Block, «block», «activity» functional allocation
CAVEAT Cameo Simulation Toolkit 19SP3 DOES NOT implement all of UML or SysML!
CAVEAT Cameo Simulation Toolkit 19SP3 DOES NOT implement everything fUML-1.3 includes
CAVEAT Cameo Simulation Toolkit 19SP3 DOES NOT support 'setupPart' in LoopNode (because fUML does not) LoopNode, LoopNode::setupPart Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler
ISSUE Cameo Simulation Toolkit 19SP3 DOES NOT support AcceptCallAction or ReplyAction (even though compliance with fUML-1.3/1.4 would require it to)
CAPABILITY Cameo Simulation Toolkit 19SP3 DOES NOT support ValuePin TimeEvent Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS (at least partially) State Chart XML (SCXML) the State Machine Notation for Control Abstraction State Chart XML, state chart, Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS ChangeEvent ChangeEvent Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS Port and EncapsulatedClassifier Port Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS Property::defaultValue
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS StateMachine StateMachine Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS StructuredClassifier and Connector Connector, StructuredClassifier Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS TimeEvent TimeEvent Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS UseCase UseCase Magic Model Analyst [Cameo Simulation Toolkit]
CAVEAT Cameo Simulation Toolkit DOES NOT directly use the fUML-RI reference implementation (it uses a vendor-specific adaptation of it)!
CAVEAT Cameo Simulation Toolkit DOES NOT leverage a Reception on a Class/Block at all, use an AcceptEventAction with a SignalEvent trigger instead! AcceptEventAction, SignalEvent, Class Block Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit handles OpaqueExpression and OpaqueBehavior including these action scripting languages: English (built-in), Alf (via plugin), BeanShell, JavaScript, JavaScript Rhino, Groovy, ... Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit implements some aspects of UML and SysML that fUML does not include
FEATURE, TIP, TOOL Cameo Simulation Toolkit matches the Parameters of an effect Behavior and a trigger Operation on a Transition under the hood. SysML-1.6, SysML-1.7, UML-2.5.1 Transition::trigger, Transition::effect, Behavior, Activity, StateMachine Magic Model Analyst [Cameo Simulation Toolkit]
ISSUE, TOOL Cameo Simulation Toolkit v19SP3: The "hover" feature for showing values of objects may show duplicates if there are redefined value properties. Property::redefinedProperty, Slot, instance, InstanceSpecification, object value property simulation, Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML
FEATURE, TIP, TOOL Cameo Simulation Toolkit: Before you run a simulation consider emabling Auto Open Diagrams under Environment Options -> Simulation. Alternatively, consider using split horizontal or vertical window groups (if there are only a few relevant diagrams). simulation, Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML
DISPLAY, FEATURE, OPTION, TIP, TOOL Cameo Simulation Toolkit: GOTCHA: In the Variable pane reference properties are hidden by default (show them using the Options pulldown menu) SysML-1.6, UML-2.5.1 Property, AggregationKind::none, AggregationKind::shared reference property, MD:ReferenceProperty Cameo Systems Modeler, Magic Model Analyst [Cameo Simulation Toolkit], Unified Modeling Language, Systems Modeling Language
GOTCHA, ISSUE, TOOL, WARNING Cameo Simulation Toolkit: v19SP3: GOTCHA/BUG: When a Property is typed by an abstract Block an instance of a concrete specialising Block (where available) will automatically be created and assigned even when the lower multiplicity is 0 SysML-1.6, SysML-1.7, UML-2.5.1 Property, StructuralFeature, multiplicity, MultiplicityElement, MultiplicityElement::/lower Block, part property MagicDraw SysML, MagicDraw UML, Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler, SysML, MD SysML, Systems Modeling Language, Unified Modeling Language, UML, SysMLv1.x
CAPABILITY, FEATURE, TIP, TOOL Cameo Simulation Toolkit: You can assign the results of simulations calculations on instances to the default values of properties of the Classes/Blocks that type the instance. SysML-1.6, SysML-1.7, UML-2.5.1 instance, InstanceSpecification, Property::defaultValue, Slot, Slot::value, Slot::definingFeature Block, value property CATIA Magic, Cameo Systems Modeler, Magic Model Analyst [Cameo Simulation Toolkit], UML, Unified Modeling Language, Systems Modeling Language, SysML, MD SysML, MD:InstanceTable
CAPABILITY, FEATURE, MODELLING, TIP, TOOL Cameo Simulation Toolkit: You can use Mathematica as an external maths engine to share maths between an OpaqueBehavior and a ConstraintBlock using custom auto-loaded Mathematica functions (keeps a project nice and DRY and respects Single Source of Truth) SysML-1.6, SysML-1.7 Constraint ConstraintBlock, SysML Parametric Diagram Wolfram, JLink, Mathematica, MagicDraw SysML, SysML, MD SysML, SysML Parametrics, mathematics, CATIA Magic, Magic Model Analyst [Cameo Simulation Toolkit], DRY, WET, Single Source of Truth, SysMLv1.x
ASSERTION, DISPLAY, FEATURE, MODELLING, SETTINGS, TIP, TOOL Cameo/MagicDraw: The Classifier specification setting 'isAbstract' is (for reasons that beggar belief or engineering reason) not by default visible in the Element specification dialog. Enable expertise level 'All' (and for always everwhere). SysML-1.6, SysML-1.7, UML-2.5.1 Cameo Systems Modeler, MagicDraw UML, MagicDraw SysML, Webel Best Practice
ASSERTION Cameo: SysML: When sending a Signal via a Port with a SendSignalAction, Cameo does not care what the directed feature directions of the Signal receptions on the Type of the Port are (even if it should). SendSignalAction, Signal, Port ~InterfaceBlock, InterfaceBlock Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler, Systems Modeling Language
ASSERTION Cameo: UML: When sending a Signal via a Port with a SendSignalAction, Cameo does not care whether the Port is conjugated (even if it should). UML-2.5.1 SendSignalAction, Signal, Port, Interface Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler, Unified Modeling Language
FEATURE, TIP, TOOL Cameo: You can create a Simulation Configuration element in a Simulation Configuration Diagram (and you may then copy it to a BDD or Package Diagram if desired). Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler, simulation
WARNING CAVEAT: The current Font Awesome icon used for 3D views is in fact actually a Unity branding icon [as a placeholder] that WILL change. WTP:EntityView
CAVEAT CAVEAT: The UML-2.5.1 InstanceSpecification does not support Ports! UML-2.5.1 instance, InstanceSpecification, Port UML, Unified Modeling Language, Systems Modeling Language, SysML
ISSUE Claim: The ControlValue input to Monitor Traction without a Pin is invalid in 'Figure 11-10: Continuous system example 1' and multiple issues with ControlOperator Pin::isControl, ObjectNode::isControlType, elided Pin notation, ObjectFlow, control Pin ControlOperator, control parameter, ControlValueKind, ControlValueKind::enable, ControlValueKind::disable
OPTION Computed category membership test values are sometimes adequate and can prevent Class/Block explosion. However, a dedicated Class/Block encapsulating a clear domain concept offers a clear documentation point and can carry other characterising features. Class Block, value property, Boolean Webel Best Practice
MODELLING, NAMING Concerning definitions: "a connector end" vs "a connector between 2 ends" vs "connection" vs "connect" in various technologies Connector, ConnectorEnd Modelica, Systems Modeling Language, electronics, Unified Modeling Language, Simulink, SysPhS
CAVEAT, GOTCHA, ISSUE, LIMITATION, WARNING CoolProp: HOWTO reproduce a pressure vs specific enthalpy chart in Mathematica. Example: R32 refrigerant. CoolProp, equation-of-state, EoS, thermodynamics, chemistry, chemical properties, enthalpy, specific enthalpy, Wolfram, Mathematica, R32, refrigerant
CAVEAT, GOTCHA, ISSUE, LIMITATION, WARNING CoolProp: LIMITATION: DOES NOT accept specific enthalpy 'H' and vapor quality 'Q' as input pairs CoolProp, equation-of-state, EoS, thermodynamics, chemistry, chemical properties, enthalpy, specific enthalpy
GOTCHA, TIP CoolProp: Mathematica wrapper: Psychrometrics (humid air): When obtaining the dew point temperature 'Tdp' at the pressure 'P', humidity ratio 'W', and dry bulb temperature 'Tdb', the 'Tdb' value will be "ignored" but MUST be within a sensible range! Psychrometrics, Webel::Psy, Mathematica, CoolProp, humid air, temperature, pressure, wet bulb temperature, dry bulb temperature, humidity ratio, dew point temperature
ISSUE, LIMITATION, WARNING CoolProp: Mathematica: Mac: HOWTO get CoolProp for Mathematica running on Apple M1 Max and Mathematica13 CoolProp, Darwin, Mathematica, Wolfram, Mac, M1 Max, M1 Silicon, CMake, C++, dylib
CAVEAT, MODELLING Dependency/Usage relationships in some referenced UML/SysML diagrams on this site are for educational illustration only, they are NOT part of the actual model. SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Dependency, Usage
TIP Do export your UML/SysML presentation diagrams (only, not every diagram) regularly as static images; it will help you develop diagrams that are better balanced and communicate well with stakeholders. Webel Best Practice
OPTION Do not feel obliged to use the 'name' property of an ElementGroup if you don't feel it adds value. ElementGroup, ElementGroup::name
NAMING, POLICY DO NOT name ports with first letter capital (like 'Port'), DO NOT name ports 'port' (except for educational illustration), and DO NOT use port names that do not indicate a role. Port Webel Best Practice
NAMING, POLICY, WARNING DO NOT use Connector names that are identical to the names of the Associations that type them! Type, NamedElement::name, Association, Connector Webel Best Practice
NAMING, POLICY, WARNING DO NOT use Property names that are identical to the names of the Classifier (Class, DataType, Block, ValueType) that type them! Type, Classifier, Class, DataType, NamedElement::name Block, ValueType Webel Best Practice
NAMING, POLICY DO NOT use spaces in Property names or Class/Block names! If you want to communicate familiar names of elements within an organisation use a custom stereotype and tagged values (such as 'aka')! NamedElement::name, Property, Class, Connector Block Webel Best Practice
MODELLING, TIP Dr Darren explains: Why I am not offering SysML diagrams on some of my LinkedIn TIP postings SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Model-Based Systems Engineering, SysML, UML, MagicDraw, MagicDraw SysML, Systems Modeling Language, MBSE, education, LinkedIn
PROPOSAL Dr Darren of Webel has always opposed the exclusion of the obviously useful UML Artifact from SysML (but in MagicDraw and Cameo you can sneak it in anyway). After all, systems engineers do use documents quite a bit. Artifact document-driven engineering
ISSUE ERROR: SysML-1.6: Figure D.2: the original spec figure appears to show Real owned by the ModelLibrary 'Automotive Value Types' without an explicit element import. SysML-1.6 ElementImport HSUV sample problem, Real
ISSUE ERROR: SysML-1.6: Figure D.3 Automotive Value Types model library does not belong under the HSUV Model, showing it on this diagram without showing the owner suggests it is. Compare with Figure D.2. SysML-1.6 Element::owner, ModelLibrary HSUV sample problem
ISSUE ERROR: SysML-1.6: The name 'Operational Viewpoint' in Figure D.3 contradicts the name ''Functional Viewpoint' in Figure D.30 (suggest amend D.30 not D.3) SysML-1.6 SysML specification figure, Viewpoint
ASSERTION Even relatively informal elicitation of model elements using the SysML ElementGroup and a Parsing Analysis approach is extremely powerful. ElementGroup Webel Parsing Analysis, parsing analysis, WPA:«document», WPA:«snippet», WPA:«pa», systems engineering
CONVENTION, NAMING, STYLE FlowProperty naming. Use anonymous or just 'i' for in, 'o' for out, and 'io' for inout. "Trust the Type". For conjugation ~InterfaceBlock use 'o' for in, 'i' for out, and 'oi' for inout. FlowProperty, FlowDirectionKind, FlowDirectionKind::in, FlowDirectionKind::inout, FlowDirectionKind::out Webel Best Practice
POLICY For Blocks and Interface blocks with one or more FlowProperty items, choose a direction convention and use it across one project. FlowProperty, FlowDirectionKind, FlowProperty::direction, FlowDirectionKind::in, FlowDirectionKind::out, Block, InterfaceBlock, ~InterfaceBlock
NAMING, POLICY For SysML Blocks and InterfaceBlocks used to type Ports with contracts use the naming convention 'I_UpperCamelCase' [may be combined with acronymn conventions] Port Block, InterfaceBlock, FullPort, ProxyPort, "standard" Port SysML
CAVEAT fUML only covers a subset of Unified Modeling Language with semantics for execution and an extended event and notification model fUML
CAVEAT fUML-1.4 EXCLUDES Action::localPrecondition and Action::localPostcondition fUML-1.4 Action::localPrecondition, Action::localPostcondition fUML
CAVEAT fUML-1.4 EXCLUDES ActionInputPin fUML-1.4 ActionInputPin fUML
CAVEAT fUML-1.4 EXCLUDES ActivityEdge::redefinedEdge fUML-1.4 ActivityEdge, ActivityEdge::redefinedEdge fUML
CAVEAT fUML-1.4 EXCLUDES ActivityEdge::weight fUML-1.4 ActivityEdge, ActivityEdge::weight fUML
CAVEAT fUML-1.4 EXCLUDES ActivityNode::redefinedNode fUML-1.4 ActivityEdge, ActivityNode::redefinedNode fUML
CAVEAT fUML-1.4 EXCLUDES ActivityPartition fUML-1.4 ActivityPartition fUML
CAVEAT fUML-1.4 EXCLUDES AnyReceiveEvent fUML-1.4 AnyReceiveEvent fUML
CAVEAT fUML-1.4 EXCLUDES AssociationClass fUML-1.4 AssociationClass fUML
CAVEAT fUML-1.4 EXCLUDES Behavior::precondition and Behavior::postcondition fUML-1.4 Behavior::precondition, Behavior::postcondition fUML
CAVEAT fUML-1.4 EXCLUDES Behavior::redefinedBehavior fUML-1.4 Behavior::redefinedBehavior fUML
CAVEAT fUML-1.4 EXCLUDES BehavioralFeature::ownedParameterSet BehavioralFeature, BehavioralFeature::ownedParameterSet fUML
CAVEAT fUML-1.4 EXCLUDES BehavioralFeature::raisedException fUML-1.4 BehavioralFeature, BehavioralFeature::raisedException fUML
CAVEAT fUML-1.4 EXCLUDES BehavioredClassifier::interfaceRealization fUML-1.4 BehavioredClassifier::interfaceRealization fUML
CAVEAT fUML-1.4 EXCLUDES BroadcastSignalAction fUML-1.4 BroadcastSignalAction
CAVEAT fUML-1.4 EXCLUDES ChangeEvent fUML-1.4 ChangeEvent fUML
CAVEAT fUML-1.4 EXCLUDES Classifier::collaborationUse fUML-1.4 Classifier, Classifier::collaborationUse fUML
CAVEAT fUML-1.4 EXCLUDES Classifier::powerTypeExtent fUML-1.4 Classifier, Classifier::powerTypeExtent fUML
CAVEAT fUML-1.4 EXCLUDES Classifier::redefinedClassifier fUML-1.4 Classifier, Classifier::redefinedClassifier fUML
CAVEAT fUML-1.4 EXCLUDES Classifier::representation fUML-1.4 Classifier, Classifier::representation fUML