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 Spec tag UML keywords SysML keywords Keywords
TIP Mathematica: TIP: Start with With, update to Module as needed. Mathematica, Mathematica::With, Mathematica::Module, Wolfram, Wolfram Language
MODELLING SysMLv1 (or v2): CHALLENGE EXERCISE: Simplified Parsing Analysis breakdown of 'Build an Airport' with variations ElementGroup, ElementGroup::/member, AbstractRequirement, Satisfy, Refine, DeriveReqt Webel Parsing Analysis, Systems Modeling Language, requirements engineering, WPA:«snippet», WPA:Snippet::source, Model-Based Systems Engineering, MBSE, SysML
CONVENTION, MODELLING, NAMING, TIP Webel: SysML/UML: Dr Darren explains HOWTO use concise 'i'/'o' (input/output) Pin and Parameter naming conventions to promote a signal processing mindset in Activity Diagrams. And HOWTO get them compact. SysML-1.6, SysML-1.7, UML-2.5.1 Activity, Parameter, NamedElement::name, Pin, InputPin, OutputPin, ActivityEdge, CallAction, ActivityParameterNode, CallOperationAction, CallBehaviorAction SysML Activity Diagram systems engineering, Model-Based Systems Engineering, MBSE, SysML, Systems Modeling Language, SysMLv1, SysMLv1.x, SysMLv2, signal processing, Webel Best Practice
MODELLING, TIP Webel: SysML: TIP: Try "reverse" time ordered effect-from-cause Dependencies. Because it's harder to depend on something that does not already exist! Dependency, Dependency::client, Dependency::supplier, custom Stereotype Systems Modeling Language, SysML, time, time-ordering, Webel Best Practice
ASSERTION Webel: SysML/MBSE: Dr Darren's Open Letter on why you may initially need the Model-Based (MB) and Single Source Of Truth aspects of MBSE more than the formal Systems Engineering (SE) aspect (or even initially no formal SE process at all) to benefit most! SysML-1.6, SysML-1.7, SysMLv2 systems engineering, Model-Based Systems Engineering, SysML, Systems Modeling Language, SysMLv1.x, SysMLv1.7, SysMLv2, Single Source of Truth
MODELLING, NAMING, TIP Webel: SysMLv1: Dr Darren for LinkedIn: On "Trusting The Type" and avoiding unnecessary verbose repetitive Property names ... unless you really, really need them and really do have reasons to use them, and then only use concise role indicators anyway! SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Type, Property, NamedElement::name ValueType, Block, value property, block property Systems Modeling Language, SysML, Webel Best Practice, MagicDraw, CATIA Magic, SysMLv1.x, SysMLv2, Cameo Systems Modeler
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
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
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
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: 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
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: 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
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
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
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
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
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
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
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
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, 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
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: 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
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
ASSERTION Webel on Mathematica and the Wolfram Language vs Python. Python is not even close, not even vaguely close, it's not in the same league, as the Wolfram Language and Mathematica! python, Mathematica, Wolfram, Wolfram Language
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
TIP TIP: Mathematica: COMING SOON! Webel's ultimate guide to using Abstract Data Types to create pseudo-classes WITH INHERITANCE in Wolfram Language, all modelled in SysML! [There's already some examples and some detailed policy notes.] SysML-1.6, SysML-1.7 Mathematica, Abstract Data Types, ADTs, strong types, Wolfram, Wolfram Language, Systems Modeling Language, SysML, SysMLv1.x, SysMLv1.7, SysMLv1.6, inheritance
TIP, TOOL TIP: Mathematica: The IntelliJ IDEA Plugin for Mathematica is HEAPS better than the Eclipse-based Wolfram Workbench! Mathematica, Wolfram, Mathematica:IntelliJ-IDEA-Plugin, IntelliJ IDEA
DISPLAY, FEATURE, MODELLING, STYLE, TOOL TIP: UML/SysML: MagicDraw/Cameo: Activity Diagrams: Consider using the Pin display mode 'Name And Type Labels Inside' for 'Position of Labels'. Dr Darren swears by it! SysML-1.6, SysML-1.7, UML-2.5.1 Activity, Pin, Activity Diagram, InputPin, OutputPin, Parameter SysML Activity Diagram MagicDraw, UML, MagicDraw UML, Unified Modeling Language, Systems Modeling Language, SysML, MD SysML, Cameo Systems Modeler, CATIA Magic, Mathematica, Webel:MathematicaSysML, Webel Best Practice
DISPLAY, FEATURE, TIP, TOOL TIP: UML/SysML: MagicDraw/Cameo: Activity Diagrams: Pins: You can display the 'multiplicity' of the underlying Parameter on Pins symbols using Edit Compartments. (The 'multiplicity' shows anyway if the :Type is shown.) SysML-1.6, SysML-1.7, UML-2.5.1 Parameter, multiplicity, MultiplicityElement, Pin, InputPin, OutputPin Systems Modeling Language, Unified Modeling Language, MagicDraw, MD SysML, Cameo Systems Modeler, CATIA Magic
DISPLAY, FEATURE, TIP, TOOL TIP: UML/SysML: MagicDraw/Cameo: Activity Diagrams: ActivityParameterNodes: Displaying the underlying 'parameter::multiplicity' using Edit Compartments is extremely useful! SysML-1.6, SysML-1.7, UML-2.5.1 ActivityParameterNode, Parameter, multiplicity, MultiplicityElement Systems Modeling Language, Unified Modeling Language, MagicDraw, MD SysML, Cameo Systems Modeler, CATIA Magic
GOTCHA, ISSUE, TIP, TOOL UML/SysML: MagicDraw/Cameo: Edit Compartments: ActivityParameterNode: Can't select the 'parameter::multiplicity'? Run the synchronisation between the Activity in the direction Synchronize Activity Parameter Nodes by Activity Parameter then try again! SysML-1.6, SysML-1.7, UML-2.5.1 ActivityParameterNode, Parameter, multiplicity, MultiplicityElement Systems Modeling Language, Unified Modeling Language, MagicDraw, MD SysML, Cameo Systems Modeler, CATIA Magic
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
GOTCHA, TIP, WARNING MagicDraw/Cameo/CATIA Magic: How to (try to) edit and fix a corrupt MDZIP project file SysML-1.6, SysML-1.7 CATIA Magic, MagicDraw, Cameo Systems Modeler
GOTCHA, TIP, WARNING MagicDraw/Cameo: UML/SysML: DO NOT use '$' character in Stereotype names (corrupts MDZIP file) SysML-1.6, SysML-1.7 CATIA Magic, MagicDraw, Cameo Systems Modeler
CONVENTION, LIMITATION, MODELLING, NAMING, TOOL Webel: Psy/MPsy: Psychrometrics for Mathematica: '$HC' in a function name indicates pure sensible heating or cooling (with no change in water vapour content). Such functions may also be used in the pure sensible portion of a 2-step treatment. SysML-1.6, SysML-1.7, UML-2.5.1 Activity, CallBehaviorAction, Action, Parameter, Activity Diagram, ObjectFlow, Pin, InputPin, OutputPin SysML Activity Diagram, MD:UNSPECIFIED Webel::MPsy, Webel::Psy, Psychrometrics, Mathematica
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
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: Equation registry with variable/quantity markup Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: SysML4Mathematica: Convention: A prefix '$doc' indicates a documentation String for each primary variable/quantity (argument or output) SysML-1.6, SysML-1.7, UML-2.5.1 Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Webel::Psy
CONVENTION, NAMING Webel: SysML4Mathematica: Convention: A prefix 'sym$' indicates a markup variable "symbol" for a documented variable. It need not be a String, but each referenced part MUST be a String, not a raw Mathematica Symbol, to avoid namespace clashes! SysML-1.6, SysML-1.7, UML-2.5.1 Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Webel::Psy
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$wat$i' indicates water (liquid or vapour) flow TO (into) the humid air mixture. A suffix '$wat$o' indicates water (liquid or vapour) flow FROM (out of) the humid air mixture. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour, flow direction, flow
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$sat' indicates a humid air mixture quantity at saturation (relative humidity = 1 or degree of saturation = 1). Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, vapour, water vapour, saturation, relative humidity, degree of saturation
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$ha' indicates a HUMID air mixture variable, quantity, or function or a PER humid air mass quantity. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$a' indicates a DRY air component variable, quantity, or function. A suffix '$da' indicates a HUMID air mixture quantity PER dry air. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$wat' indicates a water-related variable, quantity, or function (note that 'w' is reserved for the humidity ratio). Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour, flow direction, flow
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: Variable/quantity registry and naming conventions, with symbol markup. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: The term 'steam' (indicated in variable names with a suffix '$s') is reserved for water vapour created through boiling. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$g' in a water-related variable name refers to water vapour (a special case of gas) or steam. A suffix '$f' refers to liquid (fluid) water. [Although a gas is a fluid.] Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
MODELLING, NAMING, TIP Webel: SysML4Mathematica: Does every bit of the Mathematica code need to be modelled in SysML? No. Typically just the main function parameters and their interdependencies, data structures, and main code logic. Except for special or educational purposes. SysML-1.6, SysML-1.7, UML-2.5.1 Activity, OpaqueBehavior ConstraintBlock Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language
ASSERTION, TIP Psychrometrics: Calculations of the mass flow rate of the dry air component (assumed constant under steady state) from the ENTRY volumetric flow rate of the humid air mixture MUST use the INITIAL state variables! Psychrometrics, humid air, air, water, water vapour, steam
EXPLANATION, MODELLING Webel: SysML/UML: Some example diagrams show extremely fine-grained and trivial examples purely for educational and capability demonstration purposes (not as practical recommendations for real-world projects). You can sometimes just use code in SysML. fUML-1.4, OCL-2.4, SysML-1.6, SysML-1.7, SysMLv2, SysPhS-1.1, UML-2.5.1 SysML, UML, Model-Based Systems Engineering, training, education, demonstration, Webel Best Practice
MODELLING, POLICY Webel: SysML4Mathematica: POLICY: Handle flow sign changes via a single negative (not duplicated and "adjusted" algebra). This strategy may come at a very slight performance cost (for benefit of more robustness). SysML-1.6, SysML-1.7, UML-2.5.1 Parameter, Constraint, Activity, OpaqueExpression SysML Parametric Diagram, ConstraintBlock, constraint parameter, MD:ConstraintParameter, SysML Activity Diagram Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Mathematica:notebook, Webel::MPsy, Psychrometrics, Webel::Psy
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
TIP, TOOL HOWTO: MagicDraw/Cameo: v2022Refresh1: JDK 11 download compatible with the modelling tools AND Apple Silicon (ARM) machines (such as M1 Max) Constraint ConstraintBlock, SysML Parametric Diagram MagicDraw SysML, CATIA Magic, Magic Model Analyst [Cameo Simulation Toolkit], CATIA Magic:v2021x, CATIA Magic:v2021xR1, JDK, Java Development Kit, Java, ARM Architecture, M1 Max, Apple Silicon, CATIA Magic:v2022xGolden, CATIA Magic:v2022xRefresh1
CAVEAT, COMPLICATION, LIMITATION 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! Constraint, OpaqueBehavior:body, OpaqueBehavior:language, Activity, OpaqueBehavior, Abstraction ConstraintBlock, SysML Parametric Diagram, SysML Activity Diagram DRY, WET, Single Source of Truth, Systems Modeling Language, SysMLv1.x, Model-Based Systems Engineering, Wolfram, Mathematica
MODELLING, TIP Webel: SysML4Mathematica: Yes, SysML Activities and SysML Activity Diagrams CAN represent functional programming paradigms! You can type Parameters by encapsulations of functions and pass them to/from InputPins/OutputPins of Actions. SysML-1.6, SysML-1.7, UML-2.5.1 Parameter, Activity, Action SysML Activity Diagram Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, functional, functional programming
MODELLING, TIP Webel: SysML4Mathematica: TIP: Representing Mathematica Paclets and their inter-dependencies as SysML Packages modelled in SysML Package Diagrams can really help you organise your Wolfram Language code on complex projects! SysML-1.6, SysML-1.7, UML-2.5.1 Package, Model, Usage, Dependency SysML Package Diagram Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Mathematica:notebook, Mathematica:Paclet
MODELLING, TIP Webel: SysML4Mathematica: TIP: Representing Mathematica functions as SysML ConstraintBlocks modelled in Block Definition Diagram (BDD) overviews can really help you organise and document your Wolfram Language code on complex projects! SysML-1.6, SysML-1.7, UML-2.5.1 SysML Block Definition Diagram, ConstraintBlock, constraint parameter, MD:ConstraintParameter Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Mathematica:notebook
MODELLING, TIP Webel: SysML4Mathematica: TIP: Representing Mathematica functions as SysML ConstraintBlocks modelled in SysML Parametric Diagrams and as Activities in SysML Activity Diagrams is super for analysing the dependencies between functions and their arguments! SysML-1.6, SysML-1.7, UML-2.5.1 Parameter, Constraint, Activity SysML Parametric Diagram, ConstraintBlock, constraint parameter, MD:ConstraintParameter, SysML Activity Diagram Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Mathematica:notebook
MODELLING, TIP Webel: SysML4Mathematica: TIP: Exported SysML Diagrams can be embedded in Mathematica Notebooks! SysML-1.6, SysML-1.7, UML-2.5.1 Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Mathematica:notebook
CONVENTION, MODELLING Webel: SysML4Mathematica: Convention: A custom SysML ValueType 'Quantity' extends a custom ValueType '_' (representing a Mathematica '_' Blank). It DOES NOT also extend the SysML Real! SysML-1.6, SysML-1.7 ValueType Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic, Mathematica::Expression, Mathematica::Blank
CAVEAT, GOTCHA, LIMITATION, MODELLING, TIP SysML: Cameo Systems Modeler: A ValueType that does not extend Real might not always simulate correctly when used to type a constraint parameter of a ConstraintBlock (in a SysML Parametric Diagram) or to type a parameter (in a SysML Activity Diagram)! Parameter, Activity, Action, Pin ConstraintBlock, constraint parameter, SysML Parametric Diagram, SysML Activity Diagram, Real, ValueType, value property Cameo Systems Modeler, Magic Model Analyst [Cameo Simulation Toolkit], MagicDraw SysML, SysML, CATIA Magic, Systems Modeling Language, simulation, execution
CONVENTION, MODELLING, NAMING, TOOL Webel: SysML4Mathematica: Convention: A Mathematica Blank '_' (which pattern-matches any Expression) is represented by a custom SysML ValueType '_' SysML-1.6, SysML-1.7 Activity, Type, Parameter, custom Stereotype ConstraintBlock, constraint parameter, ValueType, MD:UNSPECIFIED Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic, Mathematica::Expression, Mathematica::Blank
MODELLING, TIP, TOOL SysML1.x: MagicDraw/Cameo: The nested property path concept is implemented using a vendor-specific stereotype extension NestedPropertyPath SysML-1.6, SysML-1.7 nested property path, MD:NestedPropertyPath MagicDraw SysML, Cameo Systems Modeler, Systems Modeling Language, CATIA Magic, SysMLv1.x
MODELLING, TIP, TOOL SysML1.x: MagicDraw/Cameo: The value property concept is implemented using a vendor-specific stereotype extension ValueProperty SysML-1.6, SysML-1.7 value property, MD:ValueProperty MagicDraw SysML, Cameo Systems Modeler, Systems Modeling Language, CATIA Magic, SysMLv1.x
MODELLING, TIP, TOOL SysML1.x: MagicDraw/Cameo: The shared property concept is implemented using a vendor-specific stereotype extension SharedProperty SysML-1.6, SysML-1.7 shared property, MD:SharedProperty MagicDraw SysML, Cameo Systems Modeler, Systems Modeling Language, CATIA Magic, SysMLv1.x
MODELLING, TIP, TOOL SysML1.x: MagicDraw/Cameo: The reference property concept is implemented using a vendor-specific stereotype extension ReferenceProperty SysML-1.6, SysML-1.7 reference property, MD:ReferenceProperty MagicDraw SysML, Cameo Systems Modeler, Systems Modeling Language, CATIA Magic, SysMLv1.x
MODELLING, TIP, TOOL SysML1.x: MagicDraw/Cameo: The part property concept is implemented using a vendor-specific stereotype extension PartProperty SysML-1.6, SysML-1.7 part property, MD:PartProperty MagicDraw SysML, Cameo Systems Modeler, Systems Modeling Language, CATIA Magic, SysMLv1.x
MODELLING, TIP, TOOL SysML1.x: MagicDraw/Cameo: The block property concept is implemented using a vendor-specific stereotype extension BlockProperty SysML-1.6, SysML-1.7 block property, MD:BlockProperty MagicDraw SysML, Cameo Systems Modeler, Systems Modeling Language, CATIA Magic, SysMLv1.x
MODELLING, TIP, TOOL SysML1.x: MagicDraw/Cameo: The constraint parameter concept is implemented using a vendor-specific stereotype extension ConstraintParameter SysML-1.6, SysML-1.7 constraint property, MD:ConstraintParameter MagicDraw SysML, Cameo Systems Modeler, Systems Modeling Language, CATIA Magic, SysMLv1.x
MODELLING, TIP, TOOL SysML1.x: MagicDraw/Cameo: The constraint property concept is (was) implemented using a vendor-specific stereotype extension ConstraintProperty [VENDOR-DEPRECATED] SysML-1.6, SysML-1.7 constraint property, MD:ConstraintProperty MagicDraw SysML, Cameo Systems Modeler, Systems Modeling Language, CATIA Magic, SysMLv1.x
ASSERTION, GOTCHA, TIP Psychrometrics: The volumetric flow rate of a humid air mixture MAY change between a State1 and State2 (but the mass flow rate of dry air does not under steady state)! This is sometimes "glossed over" in some online calculators and less formal guides. Psychrometrics, humid air, air, water, water vapour, steam
NAMING, PATTERN, POLICY Webel: Psy/MPsy: Psychrometrics for Mathematica: Convention: Option variable names are prefixed with '$opt$psy' Webel Best Practice, Mathematica, Wolfram Language, naming, coding, Mathematica::option, Webel::MPsy, Webel::Psy
NAMING, PATTERN, POLICY Webel Best Practice: Mathematica: Options are encapsulated as a String variable with the prefix '$opt', and have a related '$info$opt$' String (help), '$lab$opt' String (label), a 'def$opt' default value expression, and an optional '$warn$opt' String. Webel Best Practice, Webel::SysML4Mathematica, Mathematica, Wolfram Language, naming, coding, Mathematica::option
CONVENTION, MODELLING, NAMING Webel: SysML4Mathematica: An Association used as the Type of an argument or return is represented by a Block '<||>'. A List used as as the Type of an argument or return is represented by a Block '{}'. SysML-1.6, SysML-1.7, UML-2.5.1 Activity, OpaqueBehavior Block, ConstraintBlock Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Mathematica::Association, Mathematica::List
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
EXPLANATION, FEATURE, POLICY Webel: Psy/MPsy: Psychrometrics for Mathematica: The default newPsy[tdb] builder accepts the pressure 'p' as an option, which defaults to sea level atmospheric pressure. Psychrometrics, Webel::Psy, Mathematica, humid air, temperature, pressure, wet bulb temperature, dry bulb temperature, relative humidity, humidity ratio
CONVENTION Webel: Psy/MPsy: Psychrometrics for Mathematica: The CoolProp "wrappers" of the Psy library in fact wrap lower-level wrappers (bindings) for CoolProp for Mathematica Psychrometrics, Webel::Psy, Mathematica, CoolProp, humid air, temperature, pressure, wet bulb temperature, dry bulb temperature, relative humidity, humidity ratio
CAVEAT, COMPLICATION, GOTCHA, ISSUE, MODELLING, NAMING, TOOL ISSUE/GOTCHA: MagicDraw/Cameo v2022x: UML/SysML: If you "rename" an ActivityParameterNode symbol on the frame of an Activity Diagram it actually renames the underlying Parameter (only) NOT the name of the ActivityParameterNode element! Activity, ActivityParameterNode, Activity Diagram, Pin, Parameter, CallBehaviorAction, CallOperationAction SysML Activity Diagram Unified Modeling Language, UML, SysML, Systems Modeling Language, SysMLv1.x, MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler, MagicDraw:validation
MODELLING, NAMING, TIP, TOOL SysML/UML: MagicDraw/Cameo: The name of an ActivityParameterNode does not always stay in synch with its Parameter (and it is not always desirable that it does). Activity, ActivityParameterNode, Activity Diagram, Pin, Parameter, CallBehaviorAction, CallOperationAction SysML Activity Diagram Unified Modeling Language, UML, SysML, Systems Modeling Language, SysMLv1.x, MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler, MagicDraw:validation
MODELLING, TIP, TOOL SysML/UML: MagicDraw/Cameo: Activity Diagrams: All Pins of CallBehaviorActions and CallOperationActions MUST be displayed (synchronised). All ActivityParameterNodes MUST be shown on the frame of an Activity Diagram. Activity, ActivityParameterNode, Activity Diagram, Pin, Parameter, CallBehaviorAction, CallOperationAction SysML Activity Diagram Unified Modeling Language, UML, SysML, Systems Modeling Language, SysMLv1.x, MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler, MagicDraw:validation
CAPABILITY, EXPLANATION Webel: Psy/MPsy: Psychrometrics for Mathematica: The default MPsy class is a readonly one-shot class that pre-builds many frequently used psychrometric properties (offered as public fields) using CoolProp, and also offers some value-adding methods. Psychrometrics, Webel::Psy, Mathematica, humid air, temperature, pressure, wet bulb temperature, dry bulb temperature, relative humidity, humidity ratio, CoolProp
EXPLANATION, FEATURE, POLICY Webel: Psy/MPsy: Psychrometrics for Mathematica: The default newPsy[tdb] builder requires the dry bulb temperature 'tdb', and one (only) of the relative humidity 'r', the humidity ratio 'w', or the wet bulb temperature 'twb' (as options). Psychrometrics, Webel::Psy, Mathematica, humid air, temperature, pressure, wet bulb temperature, dry bulb temperature, relative humidity, humidity ratio
LIMITATION, MODELLING, WARNING Webel: SysML4Mathematica: SysML Parametric Diagrams are not well suited to modelling calculations with Blocks for MTools classes, or for modelling complex logic flow of Mathematica functions. Prefer SysML Activity Diagrams for those modelling cases. SysML Activity Diagram, SysML Parametric Diagram SysML, Systems Modeling Language, Mathematica, Wolfram Language, Mathematica:MTools
COMPLICATION, CONVENTION, GOTCHA, LIMITATION, NAMING, TOOL SysML/UML: MagicDraw/Cameo: GOTCHA: Connecting a typed OutputPin to an untyped (UNSPECIFIED) InputPin with an ObjectFlow changes the type of the InputPin SysML-1.6, SysML-1.7, UML-2.5.1 Activity, CallBehaviorAction, Action, Parameter, Activity Diagram, ObjectFlow, Pin, InputPin, OutputPin SysML Activity Diagram, MD::UNSPECIFIED Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic
CONVENTION, LIMITATION, MODELLING, NAMING, TOOL Webel: SysML4Mathematica: Convention: A '$E' in a function name indicates that all parameters (arguments and return) are Mathematica '_' expressions. However, when representing such functions as Activities they may end up getting strongly typed in tools! SysML-1.6, SysML-1.7, UML-2.5.1 Activity, CallBehaviorAction, Action, Parameter, Activity Diagram, ObjectFlow, Pin, InputPin, OutputPin SysML Activity Diagram, MD:UNSPECIFIED Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic, Mathematica::Expression, Mathematica::Blank
MODELLING, TIP TIP: Webel: SysML/UML: On the boundary of symbols for ConstraintParameters on a ConstraintProperty (ConstraintBlock usage) symbol in Parametric Diagrams use any placement or "ordering" of ConstraintParameter symbols that works for the diagram! MD:ConstraintParameter, constraint parameter, SysML Parametric Diagram, ConstraintBlock Systems Modeling Language, SysML, SysMLv1.x, Webel Best Practice, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic
MODELLING, TIP TIP: Webel: SysML/UML: On the boundary of Action symbols in Activity Diagrams use any placement or "ordering" of Parameter symbols that works for the diagram. Ignore the Parameter ordering of Operation and Behavior signatures completely! Activity Diagram, Action, Activity, Behavior, Parameter, Operation, ActivityParameterNode SysML Activity Diagram Systems Modeling Language, SysML, SysMLv1.x, Webel Best Practice, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic
CONVENTION, MODELLING, NAMING Webel: SysML4Mathematica: When modelling the logic flow of Mathematica code with Activity diagrams it is not necessary to model every single Mathematica construct. Placeholder OpaqueBehaviors (used via CallBehaviorActions) and OpaqueActions may be used. SysML-1.6, SysML-1.7, UML-2.5.1 Activity, OpaqueBehavior, OpaqueAction ConstraintBlock Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic
CAVEAT, COMPLICATION, ISSUE, LIMITATION, MODELLING, TOOL Webel: SysML4Mathematica: Cameo Systems Modeler: Can perform calculations with a custom Quantity ValueType (for Mathematica) directly, but DOES NOT perform units-aware algebra (no automatic conversions) SysML-1.6, SysML-1.7 Activity, OpaqueBehavior ConstraintBlock, Real, ValueType, ValueType::unit, MD:ValueProperty, value property Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Mathematica::Quantity, SI unit, units, Imperial unit, Mathematica::Blank, Cameo Systems Modeler, CATIA Magic, MagicDraw SysML
DISPLAY, MODELLING, TIP, TOOL SysML/UML: MagicDraw/Cameo: To display the body of an OpaqueBehavior on a usage (CallBehaviorAction) in an Activity Diagram use an element property callout of 'Body' into a Note with a handle to the CallBehaviorAction SysML-1.6, SysML-1.7, UML-2.5.1 CallBehaviorAction, OpaqueBehavior, Activity Diagram, Note, callout SysML Activity Diagram Systems Modeling Language, Unified Modeling Language, SysML, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic, SysMLv1.x
CONVENTION, MODELLING, NAMING Webel: SysML4Mathematica: An '@' prefix in the name of a Block indicates a Mathematica data structure (such as an Association or List) that is not represented by an MTools class in the Mathematica code SysML-1.6, SysML-1.7, UML-2.5.1 Activity, OpaqueBehavior ConstraintBlock Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Mathematica::Association, Mathematica::List
CONVENTION, MODELLING, NAMING Webel: SysML4Mathematica: An '@' prefix in the name of a ConstraintBlock, Activity, or OpaqueBehavior indicates that it is not represented by a dedicated function in a Mathematica code library (typically for minor maths or logic) SysML-1.6, SysML-1.7, UML-2.5.1 Activity, OpaqueBehavior ConstraintBlock Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language
CONVENTION Webel: Psy/MPsy: Psychrometrics for Mathematica: Most CoolProp wrappers can be invoked with the dry bulb temperature 'tdb', the pressure 'p', and one (only) of the relative humidity 'r', the humidity ratio 'w', or the wet bulb temperature 'twb' Psychrometrics, Webel::Psy, Mathematica, CoolProp, humid air, temperature, pressure, wet bulb temperature, dry bulb temperature, relative humidity, humidity ratio
CONVENTION Webel: Psy/MPsy: Psychrometrics for Mathematica: Due to Mathematica's units-aware Quantity algebra system it is irrelevant what units are used for the input Quantities for creation of the MPsy objects, as long as they are dimensionally consistent! Psychrometrics, Webel::Psy, Webel::MPsy, Mathematica, units, SI unit, Imperial unit, Mathematica::Quantity
MODELLING, NAMING, TIP SysML Parametrics: You can use custom stereotypes keywords «i» and «o» on constraint parameters to indicate their intended use (causality) as (i)nputs and (o)utputs on ConstraintBlocks Property, Stereotype, custom Stereotype, keyword constraint parameter, ConstraintBlock, SysML Parametric Diagram, BindingConnector, MD:ConstraintParameter, MD:ConstraintProperty Webel Best Practice, Systems Modeling Language
CAVEAT, GOTCHA, TIP, WARNING GOTCHA: Mathematica v13.2+: Operations on "DegreesFahrenheit" °F and "DegreesCelsius" °C are now performed using Kelvins (K). CASE: Naive percentage operation gives answer relative to Kelvins. Use "DegreesCelsiusDifference"/"DegreesFahrenheitDifference"! Wolfram, Wolfram Language, Mathematica, temperature, celsius, Fahrenheit, kelvin, Kelvins, units, unit conversion
TIP TIP: If your browser can't zoom in on large tutorial trail slide images in the tutorial trail image viewer, open the slide image in a separate tab then zoom in there