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
GOTCHA, TIP, WARNING Mathematica: GOTCHA: Package usages (Needs) are not transitive Wolfram, Wolfram Language, Mathematica
COMPLICATION, DISPLAY, GOTCHA, ISSUE, TIP, TOOL Mathematica: GOTCHA: Print[] from Manipulate always goes to the Messages console notebook Wolfram Language, Mathematica, Mathematica::Print, Mathematica::Manipulate
GOTCHA, TIP Mathematica: GOTCHA: The Module/With system (especially under rewriting when nested) can leave variables with a trailing '$' suffix, which may cause name clashes because the variables (Expressions) are available later outside the scope of the Module/With! Mathematica, Mathematica::With, Mathematica::Module, Mathematica::Block
EXPLANATION, GOTCHA, ISSUE Mathematica: GOTCHA: The Problems Analysis review system of Mathematica Plugin for IntelliJ IDEA reports a declared Module variable used as a Table loop variable as an "Used local variable". DO NOT SIMPLY DELETE IT! Mathematica, Wolfram, Mathematica::Module, Mathematica::Table, Wolfram Language, Mathematica:IntelliJ-IDEA-Plugin
TIP Mathematica: Having trouble clearing a variable with complex formatting? Try =. Wolfram, Mathematica
GOTCHA, LIMITATION, TIP Mathematica: How mimic pattern matching of arguments for pseudo "Boolean" (including providing a default)? Wolfram, Mathematica, Wolfram Language
NAMING, PATTERN, TIP Mathematica: HOWTO Autoload the simplest possible .m or .wl Package file with a few custom functions Wolfram, Mathematica
Mathematica: HOWTO Convert a list into a Sequence of arguments to a function (where each of the arguments to the function corresponds to a list item) Wolfram, Mathematica
DISPLAY, FEATURE, TIP, TOOL Mathematica: HOWTO Create collapsible control groups in Manipulate GUIs Wolfram, Mathematica, Mathematica::Manipulate
TIP Mathematica: HOWTO Find the value of a symbol in all contexts Wolfram, Wolfram Language, Mathematica
TIP Mathematica: HOWTO Manage test data for functions using rules across multiple functions (and about the Webel '$0' variable suffix convention for substitution targets). Wolfram, Mathematica
CAPABILITY, TIP Mathematica: HOWTO: Add every element of one list to the end of another list Mathematica, Mathematica::Join, Mathematica::List, Wolfram, Mathematica::MapThread
TIP Mathematica: HOWTO: Strip an option from an OptionsPattern[] sequence before passing down (propagating) to a function with fewer options Wolfram, Mathematica
ISSUE Mathematica: ISSUE with all Entity operations on MMAv13.0.0.0 vs macOS Monterey 12.3 or 12.4 ["solved" by upgrade to MMA 13.1.0.0] Mathematica, Wolfram, macOS, Mac, macOS Monterey
TIP Mathematica: LINKS: Manipulating Strings and using RegularExpression Wolfram, Mathematica, String, regex, regular expression
ANTI-PATTERN, GOTCHA, ISSUE, LIMITATION, WARNING Mathematica: MTools: Argument pattern matching does not respect inheritance (undermines design-by-contract and heaps of Design Patterns) Wolfram, Mathematica, Mathematica:MTools, inheritance, object-oriented
CONVENTION, NAMING Mathematica: NAMING CONVENTION: Webel: ADT pseudo classes: An UpValue that can be invoked on an ADT accepting its unique 'signature' pattern as (at least) 1st argument is called an "ADT-method"'. They are NOT methods in the general object-oriented sense! Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Method, Webel:ADT
TIP, TOOL Mathematica: Nasser M. Abbasi's cheat sheet Wolfram, Mathematica
ISSUE, TIP, WORKAROUND Mathematica: Notebooks: Automatic Cell Grouping mode can be a "royal pain", turn it off by setting Cell > Grouping > Manual Grouping Wolfram, Mathematica, Mathematica::Cell, Mathematica:notebook
QUESTION Mathematica: Objectica 3rd-party commercial package for OO in Mathematica. Earth calling Objectica, do you still exist? Mathematica, Wolfram, object-oriented
POLICY Mathematica: POLICY: Webel: ADT pseudo classes that define membership of ADT-classes in a domain package have ADT-signature MemberInterface[$$:None] and MUST NOT populate ADT-method UpValues in their definers. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface
POLICY Mathematica: POLICY: Webel: ADT pseudo classes: Multiple inheritance is supported via ONE (only) ADT-Class and one or more ADT-MemberInterfaces (which have no ADT-Method UpValues) Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface, Webel:ADT:Class, inheritance, multiple inheritance
EXPLANATION, TIP Mathematica: SUPER TIP: Use CreateUUID[] to trigger recalculation against Once[] to create a flexible optionally caching function! Mathematica, Wolfram, Wolfram Language, Mathematica::CreateUUID, Mathematica::Once
ASSERTION, TIP Mathematica: The awesome Quantity system for values with units is everything the SysMLv1.x Quantity/Unit system should have been (and hopefully SysMLv2 will be). But it comes at a high performance cost! Mathematica, Mathematica::Quantity, Wolfram, Wolfram Language, quantity, scientific unit system, SI unit, deep value
TIP Mathematica: The Entity system: useful links Mathematica, Wolfram, Mathematica:Entity
GOTCHA, WARNING Mathematica: The output form of Mathematica follows internal rules that may not always correspond exactly to how a human might typeset it. Wolfram Language, Mathematica, Wolfram, equation
ISSUE, LIMITATION, MODELLING, TOOL Mathematica: The slightly less painful ultimate list of links on Object-Orientation (or the lack thereof) and a public plea to Wolfram Research Wolfram, Mathematica, object-oriented, OOP
EXPLANATION, GOTCHA, TIP Mathematica: TIP/GOTCHA: When using a Table loop variable within a Module always declare a module variable for it or you can get very hard to track side-effects elsewhere in your project due to exposed scope. Yes, it's obvious (yet easy to miss). Mathematica, Wolfram, Mathematica::Module, Mathematica::Table, Wolfram Language
TIP Mathematica: TIP: How to change a value within an Association inline within a Module (like pass by reference) Mathematica, Wolfram Language, Wolfram
CAPABILITY, FEATURE, TOOL Mathematica: TIP: LINKS: Filename chooser dialogs Wolfram, Mathematica, GUI, Mathematica::Manipulate
FEATURE, GOTCHA, ISSUE, TIP, TOOL Mathematica: TIP: Notebooks: Automatic Cell Grouping driving you up the wall? Try Manual Grouping and make it part of your workflow! Mathematica, Wolfram, Mathematica:notebook
FEATURE, TIP, TOOL Mathematica: TIP: OverBar: Type CTRL & and then _ to enter an OverBar directly Mathematica, Wolfram, notation
FEATURE, TIP, TOOL Mathematica: TIP: OverDot: Type CTRL & and then . to enter an OverDot directly Mathematica, Wolfram, notation
CAPABILITY, FEATURE, TIP, TOOL Mathematica: TIP: Package Editor mode: Use cell division between every function in .wl library files to make them more readable (and to make it easier to apply at least some degree automated code formatting per function). Wolfram, Mathematica
CONVENTION, PATTERN, POLICY, TIP Mathematica: TIP: Protecting against computations breaking verbosely because of Null, None, Undefined. And about using Undefined as a return policy. Wolfram, Wolfram Language, Mathematica, Mathematica::Null, Mathematica::None, Mathematica::Undefined
TIP Mathematica: TIP: Start with With, update to Module as needed. Mathematica, Mathematica::With, Mathematica::Module, Wolfram, Wolfram Language
TIP Mathematica: TIP: The ThermodynamicData function of Mathematica uses NIST's RefProp under the hood. Wolfram, Mathematica, thermodynamics, HVAC&R, RefProp
FEATURE, TIP, TOOL Mathematica: TIP: Try //Dataset on just about anything and be amazed! Click on nearly anything to navigate through nearly anything in impressively interactive human-readable format. Mathematica, Wolfram, Wolfram Language, Mathematica:Dataset
Mathematica: TIP: Use And@@ to test whether all elements of a List are True Wolfram Language, Wolfram, Mathematica::And, Mathematica::Apply, logic, logic::and, Mathematica::List, Mathematica::AllTrue
CAPABILITY, FEATURE, MODELLING, STYLE, TIP, TOOL Mathematica: TIP: Wolfram Notebooks are the best testing environment I've ever used! Mathematica, Mathematica:notebook, Wolfram, Wolfram Language
TIP Mathematica: TIPS for living with the user-contributed MTools for Object-Orientation (until a vendor-supported OO solution is eventually provided) Mathematica, Mathematica:MTools, object-oriented, Wolfram, Wolfram Workbench
ISSUE, LIMITATION Mathematica: Use of UnitConvert (or even just multiplication or division by a unit Quantity) MASSIVELY slows the calculations down! Wolfram, Mathematica, Mathematica:Compile, compilation, performance, SI unit, quantity, units
TIP Mathematica: v12.3.1.0: How to obtain values of physical constants Mathematica, physical quantity, quantity, magnitude, units, Wolfram
CAPABILITY, FEATURE, TIP, TOOL Mathematica: v13.1: There is an undocumented command MessagesNotebook[] Wolfram Language, Mathematica, coding, Mathematica::MessagesNotebook
CONVENTION, POLICY, TIP Mathematica: Webel ADT pseudo classes: A tricky POLICY & CONVENTION: Client packages MUST access the special "wrapped" primary named ADT-parameter '$$' via $ContextAliases! The recommended alias is "A`" (which stands of course for ADT). Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT, Webel:ADT:A`, Mathematica:$ContextAliases
CONVENTION, TIP Mathematica: Webel: A concise i:/o: notation is often used for indicating input/output cells in Mathematica notebooks in Webel's online help pages and tutorials, instead of 'In[n]:=' and 'Out[n]='. (Also learn how to hide them completely in notebooks.) Wolfram, Mathematica, Wolfram Language, Mathematica:notebook
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: CONVENTION: PROVISIONAL: The infix operator for calling ADT-Methods on ADT "objects" is the CircleDot (⊙ in Notebooks). ISSUE: \[CircleDot] is NOT GOOD FOR USE IN IDEs! Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT:Definer, singleton, Webel:ADT:infix, Webel:ADT:Object
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: DEFINITION/CONVENTION: Functions that populate ADTs with reusable ADT-method UpValues are called 'definers' and include '$def' in the name after a Package scope indicator: Example: adt$def$ADT, my$def$MY$CleverList Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: POLICY/DEFINITION: Every "hard coded" definer or defining client of a definer has a corresponding ADT ArchetypeClass. Example ("hard coded"): The definer 'my$def$MY$SmartList' has ArchetypeClass 'MY$SmartList'. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT:Definer, singleton, Webel:ADT:ArchetypeClass
POLICY Mathematica: Webel: ADT pseudo classes: POLICY: Definer functions MUST return the self-declared or injected 'pattern' that determines the unique "ADT-signature" of the defined ADT class. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer, Webel:ADT:signature
CONVENTION, POLICY Mathematica: Webel: ADT pseudo classes: POLICY: Every named concrete Abstract Data Type (ADT) class has a ONE unique "signature" (which is the pattern passed to the "definer" functions). To vary a signature, define another unique ADT class name. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional
CONVENTION, POLICY Mathematica: Webel: ADT pseudo classes: POLICY: The Abstract Data Types (ADTs) are stateless functional (although inheritance and overrides are supported), with no caching by default (although there is nice optional caching using CreateUUID[] and Once[]). Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: POLICY: The ADT-Methods of an ADT-Class are created as TagSetDelayed UpValues using the 'signature' of the ADT-Class and its defining 'pattern' as 1st argument Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer
POLICY Mathematica: Webel: ADT pseudo classes: POLICY: The expression '$$' is reserved as the primary named parameter for the defining pattern of all ADT classes that extend the universal base 'ADT' class. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT
EXPLANATION Mathematica: Webel: ADT pseudo classes: The term 'Abstract Data Types (ADTs)' is used informally (the ADTs do not always adhere to strict mathematical definitions of ADTs). Just please think of it here as meaning a "strong type" for Mathematica. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming
POLICY Mathematica: Webel: ADT pseudo classes: There is an 'ADT' universal base class that has no supers. It "blesses" every other sub-class ADT by populating it with some common ADT-method UpValues against its signature pattern via the 'adt$def$All[]' definer. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:All, Webel:ADT, Mathematica::UpValue
TIP Mathematica: Webel: ADT pseudo classes: TIP: Prefer the Decorator Pattern over multiple inheritance of ADT-Method UpValues! (But not because "inheritance is evil", it isn't.) Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface, Decorator Pattern, multiple inheritance, inheritance
NAMING, OPTION, PATTERN, TIP Mathematica: Webel: You CAN/MAY use $ in variable names and function names - just not as the first character before a Capital - and it's extremely useful. You won't get sent to Azkaban prison if do you use a $ character! Wolfram, Mathematica, Mathematica:Entity, Wolfram Language, notation
ASSERTION, TIP Mathematica: Webel: You get compelling incremental value out of Mathematica even if you don't yet command all of the syntax and massive powers of the Wolfram Language! Wolfram Language, Wolfram, functional, functional programming, object-oriented, ADTs, Abstract Data Types, Mathematica, symbolic algebra
CAVEAT, ISSUE, LIMITATION, TOOL Mathematica: Wolfram Player Pro 13.1: NotebookDelete[] does not work Wolfram, Mathematica, Wolfram Player Pro
FEATURE, ISSUE, LIMITATION, WISHLIST Mathematica: Wolfram Workbench: Basic variable name refactoring is not supported. (Or just use the IntelliJ IDEA Plugin for Mathematica, which does variable and function renaming well.) Webel:WISHLIST, Mathematica, Wolfram Workbench, Wolfram
ISSUE, TOOL, WORKAROUND Mathematica: Wolfram Workbench: Sometimes the code syntax checking goes haywire (with red nearly everywhere) for no good reason (even when the code load and runs fine in Mathematica). WORKAROUND: Just restart Eclipse. Mathematica, Wolfram Workbench, Wolfram Language, Wolfram, Eclipse IDE
ISSUE, TOOL Mathematica: Wolfram Workbench: Sometimes the Outline view gets completely out of sync with the .m or .wl Package code Mathematica, Wolfram Workbench, Wolfram Language, Wolfram, Eclipse IDE
CAVEAT, ISSUE MD SysML and Cameo 19SP3 can't yet validate provided/required Feature subsets (such as Features of one Block against Features of multiple Ports) Port provided Feature, required Feature Cameo Systems Modeler, MagicDraw SysML, MD SysML, validation
COMPLICATION, TOOL, WARNING MDSysML/Cameo 19SP3 SysPhSLibrary vs SysPhS-1.1: SimulinkBlock and ModelicaBlock specialise ExternalModel not Block
ISSUE 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 SysPhS-1.1 SysPhS, MagicDraw SysML, Cameo Systems Modeler
DISPLAY, FEATURE, ISSUE, MODELLING, TOOL, WARNING MDSysML/Cameo 19SP3: Showing stereotype keywords on FlowProperty rows is UNSUPPORTED FlowProperty MagicDraw SysML, MD SysML, SysML, Systems Modeling Language, Cameo Systems Modeler
ISSUE, TOOL MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: Continuous.Integrator is missing the 'init' PhSConstant (maps to y_start in Modelica) SysPhS, Cameo Systems Modeler, MagicDraw SysML, MD SysML
ISSUE, TOOL MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: Does not represent the elements in 'Figure 32: Elements for signal flows of electrical quantities' SysPhS, MagicDraw SysML, Cameo Systems Modeler, current, resistance, voltage
ISSUE 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 SysPhS-1.1 Real Real, value property, ValueType SysPhS, MagicDraw SysML, Cameo Systems Modeler
ISSUE 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 SysPhS-1.1 Real Real, value property, ValueType SysPhS, MagicDraw SysML, Cameo Systems Modeler
ISSUE 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 SysPhS-1.1 Real Real, value property, ValueType SysPhS, MagicDraw SysML, Cameo Systems Modeler
ISSUE, TOOL MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: RealVectorSignalIn2Element extends RealVectorSignalElement not RealVectorSignalInElement, RealVectorSignalOut2Element extends RealVectorSignalElement not RealVectorSignalOutElement (and so on) SysPhS, SysML, MD SysML, Cameo Systems Modeler, MagicDraw SysML
ISSUE 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 SysPhS-1.1 Real Real, value property, ValueType SysPhS, MagicDraw SysML, Cameo Systems Modeler
ISSUE MDSysML/Cameo 19SP3: SysPhSLibrary vs SysPhS-1.1: SPELLING/TYPO: VariableDelay: parameter 'maxDelay' should be 'delayMax' SysPhS-1.1 SysPhS, MagicDraw SysML, Cameo Systems Modeler
ISSUE, TOOL, WARNING MDSysML/Cameo 19SP3: The SysPhS versions of Conductance, Frequency, siemens, and hertz, are not explicitly provided in the MagicDraw/Cameo model library ValueType, ValueType::unit, Unit SysPhS, MagicDraw SysML, Cameo Systems Modeler, current, resistance, voltage
ISSUE, TOOL MDSysML/Cameo: 19SP3: SysPhSLibrary: Has value properties with aggregation kind 'none' SysML-1.6, SysML-1.7 AggregationKind, AggregationKind::composite, AggregationKind::none, AggregationKind::shared SysML-1.6, value property SysML, MagicDraw SysML, Cameo Systems Modeler
TIP, WARNING MDSysML/Cameo: SysPhSLibrary: GOTCHA: You must set the additional 'k2' parameter for Modelica to be minus to achieve subtraction SysPhS-1.1 SysPhS, Modelica
TIP, TOOL MDSysML/Cameo: Unless a custom ValueType is otherwise specified through specialisation it is behaves like a Real for the purposes of data entry for value properties typed by that ValueType ValueType, value property, Real Cameo Systems Modeler, MagicDraw SysML
ISSUE, TOOL MDSysML19SP3: Validation engine does not report value properties with AggregationKind other than composite SysML-1.6, SysML-1.7 AggregationKind, AggregationKind::composite, AggregationKind::none, AggregationKind::shared SysML-1.6, value property SysML, MagicDraw SysML, Cameo Systems Modeler
GOTCHA Modelica does not support comparison of Real values using == outside of functions (so not directly inside state machines) Modelica, Wolfram SystemModeler
TIP, WARNING Modelica: GOTCHA: Sometimes the name 'p' is used for any Pin (such as on Ground) and sometimes 'p' is used for a specifically PositivePin (as opposed to 'n' for NegativePin). Modelica
CONVENTION, MODELLING, NAMING Modelica: Naming convention: Why does the OnePort family of electrical components have 2 Pins? Where is the "one port"? "standard" Port Modelica
TIP Modelica: Units: Uses 'l' for litre, rather than 'L'. Modelica, Wolfram SystemModeler, units, unit conversion
CONVENTION, NAMING Naming: If SISO is 'Single Input Single Output' then 'Double Input Single Output (DISO)' is more consistent than 'Two Input Single Output (TISO)', otherwise you'd have to have a 'One Input Single Input (OISO)' for consistency. But who ever says OISO? SISO, DISO, signal processing
TIP Nobody (informed) said that SysML (or even UML) modelling and MBSE is only about graphical modelling, notations, and diagrams! Information can be extracted in many different ways and presented in many different formats from the underlying model! SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML, relationship map, derived relationships, metachain navigation, table, report, query, model query, table query, query table, report generation, report extraction, repository, model, Model-Based Systems Engineering, model-based development, model-driven development, matrix, dependency matrix, relationship matrix
ASSERTION Not even the most experienced requirements engineers can easily state requirements perfectly in consistent requirements-friendly language first shot; requirements and constraints are often buried in the natural text of domain source documents. Requirement requirements engineering, Webel Parsing Analysis, parsing analysis
TIP Not every task in Activity Diagrams is well-suited to graphical modelling and LoopNode and ConditionalNode are notoriously fiddly to setup; consider using Action Language Helper (ALH) or Action Language for Foundational UML (Alf) LoopNode, ConditionalNode, StructuredActivityNode Alf, Action Language Helper, Cameo Systems Modeler, Magic Model Analyst [Cameo Simulation Toolkit]
TIP Not every task in Activity Diagrams is well-suited to graphical modelling; consider using Action Language Helper (ALH) or Action Language for Foundational UML (Alf) Alf-1.1 LoopNode, ConditionalNode, StructuredActivityNode Alf, Action Language Helper, Cameo Systems Modeler, Magic Model Analyst [Cameo Simulation Toolkit]
ISSUE ObjectNode::inState - The UML2.5.1 spec is not clear on whether composite state parents should also be listed in the states ObjectNode::inState
On OMG copyright in text extracts and figures reproduced for educational purposes copyright, Object Management Group, WPA:«snippet», quote, extract
EXPLANATION, MODELLING, TIP On the Webel Best Practice modelling tips for SysML (and UML). If you want to model the Webel way, use them, if you don't, ignore them. They are ONLY offered as options and graphical modelling paradigms and idioms for you to consider. SysML-1.6, SysML-1.7, UML-2.5.1 Systems Modeling Language, SysML, MBSE, Model-Based Systems Engineering, Webel Best Practice
CAVEAT One limit of the SysML-1.6 ElementGroup for use as a Snippet in the v1.x version of Webel Parsing Analysis for SysML is that an ElementGroup is not directly relatable. SysML-1.6 ElementGroup Webel Parsing Analysis
TIP One of the most important reasons to use a Port to send a Signal is that only the connection context, not the sender, knows the ultimate recipient (at the end of a specific Connector). SysML-1.6, UML-2.5.1 Port, InvocationAction::onPort, SendSignalAction::target
TIP Place your SysML-1.6 ~InterfaceBlock conjugation under the 'original' InterfaceBlock (i.e. make the original the containment owner). ~InterfaceBlock, conjugation
NAMING, POLICY Prefer 'UpperCamelCase' (a.k.a. PascalCase) names for Behaviors such as Activities intended for use in CallBehaviorActions, or at least use a 'Capital first letter'; avoid 'all lower case' (as it leads to confusion with lower case Action names) Behavior, Activity, Classifier UML, SysML
NAMING, POLICY Prefer anonymous Actions, or if they must be named, prefer code-like 'lowerCamelCase' or completely 'lower case' (if you do absolutely insist on having spaces in action names, but please no other punctuation). Action UML, SysML
TIP Prefer not rename Properties when redefining unless indicating a clear change in role. Property::redefinedProperty, NamedElement::name Webel Best Practice
Prefer owner path indicators over Package containment operators (which are fragile). Element::owner, owner path display
DISPLAY, TIP Prefer the Name Display Mode 'both' on CallBehaviorAction symbols (rather than 'Show Action Name', 'Show Behavior Name', or 'Show Both or Behavior Name') Action, Behavior, CallBehaviorAction Webel Best Practice, Cameo Systems Modeler, MagicDraw UML, MagicDraw SysML