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 ascending Spec tag UML keywords SysML keywords Keywords
ASSERTION, MODELLING, NAMING, TIP [HISTORICAL] SysML: Some users employed the ~ tilde prefix for a conjugated Port type long before it was introduced for ~InterfaceBlock and you MAY use it to name a regular Block that is not an ~InterfaceBlock SysML-1.6 Block, ~InterfaceBlock, InterfaceBlock Systems Modeling Language, SysML, Webel Best Practice
CAVEAT, TOOL [HISTORICAL] MagicDraw/Cameo 19SP3: Does NOT yet support ~InterfaceBlock [NOW SUPPORTED in 2024x Golden] SysML-1.6, SysML-1.7 Port InterfaceBlock, ~InterfaceBlock, conjugation
DISPLAY, STYLE, WARNING [HISTORICAL] ISSUE: UML: MagicDraw UML: Showing Port labels (name and type) inside Port rectangle symbols does not always work well with provided/required Interface "lollipop" and "socket" (a.k.a. ball-and-socket) notation Port, lollipop, ball-and-socket
TIP, WORKAROUND [HISTORICAL] HOWTO easily "hack" the SysML-1.6 ~InterfaceBlock conjugation and «~interfaceBlock» keywords in MagicDraw/Cameo. [NOW SUPPORTED 2024x Golden] SysML-1.6 ~InterfaceBlock, conjugation, SysML-1.6, InterfaceBlock, ~InterfaceBlock::original Cameo Systems Modeler, MD SysML, Systems Modeling Language
COMPLICATION, DISPLAY, FEATURE, ISSUE, MODELLING, STYLE, TOOL, WARNING, WORKAROUND [FIXED in v2022Refresh1]: BUG: MagicDraw/Cameo: 19SP3/v2022xGolden: Activity Diagrams: Pin display mode 'Position of Labels' does not stick, label positions in Diagrams have sometimes moved after re-opening a project [and "FIX"] SysML-1.6, SysML-1.7, UML-2.5.1 Activity, Pin, Activity Diagram, ObjectFlow SysML Activity Diagram MagicDraw, UML, MagicDraw UML, Unified Modeling Language, Systems Modeling Language, SysML, MD SysML, Cameo Systems Modeler, CATIA Magic, Mathematica, Webel:MathematicaSysML, CATIA Magic:v2022xGolden
ISSUE, TOOL [BUG: FIXED]: 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. [FIXED since 2022xRefresh2] Pin Cameo Systems Modeler, MagicDraw UML, MagicDraw SysML
ASSERTION You DO NOT have to wait for SysMLv2 to do Model-Based Systems Engineering with SysML! You can do MOST of what you need to do with SysMLv1.6/1.7 and you WILL be able to migrate models to SysMLv2 once tool support matures. Start your SysML models NOW! SysML-1.6, SysML-1.7, SysMLv2 Systems Modeling Language, SysMLv2, SysMLv1.x, SysML
ASSERTION, TIP You can't make connections in BDDs, only in IBDs. A BDD shows where connections may be made, an IBD shows where specific connections have been made in a specific context! Connector, Port SysML Block Definition Diagram, SysML Internal Block Diagram
TIP You can use a ValueType to document how a value of a certain quantity kind should be measured (in a particular system, in a particular organisation, or according to an industry standard). SysML-1.6 ValueType, ValueType::quantityKind
GOTCHA, ISSUE, LIMITATION, TOOL Wolfram Workbench for Mathematica: Limitation: Using more than one '$' sign within function names blocks navigation on function usages. Mathematica, Wolfram Workbench, Wolfram, Eclipse IDE
GOTCHA, TIP, WARNING Wolfram SystemModeler: On Mac the Unit Conversions dialog is under SystemModeler -> Preferences -> Global -> Unit Conversion (rather than under Tools -> Options) Modelica, Wolfram SystemModeler, units, unit conversion, macOS, Wolfram
ISSUE, TOOL Wolfram SystemModeler: Not clear how to draw a connect that already exists in the Modelica code Modelica, Wolfram SystemModeler, Wolfram
GOTCHA, TIP, WARNING Wolfram SystemModeler: GOTCHA: The conversion dialog will not offer the Add Unit Conversion button unless there is not already an existing conversion in BOTH directions. Modelica, Wolfram SystemModeler, units, unit conversion, Wolfram
PROPOSAL WISHLIST: Webel has suggested that future SysML should support the display of Classifier-level :features in compartments on a rectangular itemProperty symbol on an ItemFlow on a Connector in an IBD. SysML-1.6, SysML-1.7, SysMLv2 ItemFlow, ItemFlow::itemProperty SysML, Systems Modeling Language, Webel:WISHLIST, SysMLv2:WISHLIST
MODELLING, TOOL, WISHLIST WISHLIST: MagicDraw/Cameo: Ability to set project-wide option to NOT set the multiplicity of a redefining Property to [0..*] on using drag-n-drop when the redefined (dragged) Property has <UNSPECIFED> Multiplicity Property::redefinedProperty, multiplicity, Property, MultiplicityElement MagicDraw UML, MagicDraw SysML, Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler, drag-n-drop, UML, Unified Modeling Language, SysML, MD SysML, Systems Modeling Language
CAVEAT While SysML does not officially include the UML Profile Diagram, in practice in the MagicDraw/Cameo tool it is often used (rather than a Package Diagram) to afford access to all profile element menus and to make it clear that it involves profile elements. Profile Diagram, Stereotype, Extension SysML Package Diagram MagicDraw SysML, Cameo Systems Modeler, SysML, Systems Modeling Language
NAMING, POLICY When using acronyms in names of Classifiers either treat them as a word 'TlaLikeThis' or suffix with an underscore 'TLA_LikeThis', except at the end of the name 'LikeThisTLA' is admissable. Classifier, Class Block UML, SysML
TIP When satisfying a Requirement with a Block, you need to ask whether the Block (all instances) satisfies the Requirement or whether only a particular usage of the Block (such as a part property) Satisfies the Requirement! Satisfy, Block, Requirement, part property MagicDraw implied relationships, Webel Best Practice
ASSERTION When domain modelling with SysML, Generalization, inheritance, and even multiple inheritance are not "evil" and can be used relatively freely. We are not doing code-oriented Decorator patterns - an implementation choice - we are doing domain modelling! Generalization inheritance, multiple inheritance
ASSERTION, TIP When dealing with required Interfaces you must use Usage (not Dependency) and it has dedicated "socket" notation. Usage, required Interface
DISPLAY, LIMITATION, MODELLING, PROPOSAL, TOOL, WISHLIST Webel: WISHLIST: MagicDraw/Cameo: UML/SysML: Ability to freeze the Feature lines shown on symbols under Edit Compartments so that the diagram does not "break" when new Features are added elsewhere (reduce graphical coupling) Feature, Operation, attribute, Property, compartment, attributes compartment value property, block property UML, Unified Modeling Language, SysML, MD SysML, Systems Modeling Language, MagicDraw, MagicDraw UML, MagicDraw SysML, CATIA Magic, graphical coupling, Model-Based Systems Engineering, model-based development, graphical engineering
PROPOSAL Webel: WISHLIST for SysML: explicit support for showing "secondary" stereotype keywords on Connectors typed by Associations with stereotypes applied. Systems Modeling Language, Webel:WISHLIST
MODELLING, NAVIGATION, PATTERN, TIP, TOOL Webel: UML/SysML: Navigation: ALWAYS offer a way out of a diagram (usually up a hierarchy, but possibly across) using a navigable symbol (linked to a diagram) and/or a diagram symbol. Avoid "cul-de-sacs"! [But beware of shared package cross-dependencies] SysML-1.6, SysML-1.7, SysMLv2, SysPhS-1.1, UML-2.5.1 Diagram SysML, Systems Modeling Language, Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML, UML, Webel Best Practice
ANTI-PATTERN, ASSERTION Webel: The single biggest disease in the world of IT is the idea that somehow mathematics is bad, or not useful, or not efficient, and that getting people who don't like maths to make stuff up (badly) in coding languages (rather than using maths) is ok. mathematics
PROPOSAL, WISHLIST Webel: SysMLv2: WISHLIST: Verify each Satisfy claim rather than Verify a Requirement SysMLv2 Verify, Satisfy, AbstractRequirement, Requirement, SysMLv2 Webel:WISHLIST, Systems Modeling Language, SysMLv2:WISHLIST
PROPOSAL, WISHLIST Webel: SysMLv2: WISHLIST: Suggest declare an custom Stereotype as 'cascading' then behave likes constraint rules for Block SysMLv2 user defined Stereotype, Constraint, Stereotype, custom Stereotype SysMLv2, Block Webel:WISHLIST, Systems Modeling Language, SysMLv2:WISHLIST
PROPOSAL, WISHLIST Webel: SysMLv2: WISHLIST: Manage "cascading" Satisfy claim vs Block inheritance hierarchy with redefined properties SysMLv2 Generalization Satisfy, AbstractRequirement, Requirement, SysMLv2, Block Webel:WISHLIST, Systems Modeling Language, SysMLv2:WISHLIST
PROPOSAL, WISHLIST Webel: SysMLv2: WISHLIST: Ability to show more of an AssocationBlock on a Connector in an IBD SysMLv2 Connector SysML Internal Block Diagram, SysMLv2, AssociationBlock Webel:WISHLIST, Systems Modeling Language, SysMLv2:WISHLIST
PROPOSAL, WISHLIST Webel: SysMLv2: WISHLIST: Ability to relate one ElementGroup to another SysMLv2 ElementGroup SysMLv2:WISHLIST, Webel:WISHLIST, Systems Modeling Language, SysML
PROPOSAL, WISHLIST Webel: SysMLv2: PROPOSAL: New Causality Graph Diagram for coordinating MetaEvents across an entire model SysMLv2 Lifeline, Port, Pin SysMLv2, Webel:WISHLIST, SysMLv2:WISHLIST, Systems Modeling Language, special relativity, relativity, MetaEvent
MODELLING, TIP Webel: SysMLv1: TIP: Use semantically meaningful Association names and/or custom Stereotypes where applicable. They can also often be used as pseudo OWL/RDF semantic triples. But don't use Association names where an ItemFlow can capture an exchange item! SysML-1.6, SysML-1.7, UML-2.5.1 Association, NamedElement::name, Stereotype, «keyword», custom Stereotype ItemFlow SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice, semantic triple, ontology, Web Ontology Language, pseudo semantic triple
MODELLING, TIP Webel: SysMLv1: TIP: Consider using high level "communication" Associations between Blocks in BDDs with ItemFlows and corresponding context IBDs WITHOUT any Ports, with Connectors typed by the Associations (as well, in parallel with your port-based IBDs). SysML-1.6, SysML-1.7 Association, InformationFlow::conveyed, Connector ItemFlow, ItemFlow::itemProperty, SysML Block Definition Diagram, SysML Internal Block Diagram SysML, SysMLv1, Systems Modeling Language, Webel::"communication" Association (informal)
MODELLING, TIP Webel: SysMLv1: TIP: Consider using high level "communication" Associations between Blocks in BDDs and corresponding object diagram BDDs WITHOUT any Ports, with Links typed by the Associations. Object diagrams are great for exploring Slot values, too. SysML-1.6, SysML-1.7 Association, link, "link" InstanceSpecification, InstanceSpecification, Slot, InstanceSpecification::slot SysML Block Definition Diagram, object diagram SysML, SysMLv1, Systems Modeling Language, Webel::"communication" Association (informal)
CONVENTION, MODELLING, POLICY, TIP Webel: SysMLv1: Recommend using Block Definition Diagrams as associative, graphical engineering "scratchpads" FOR YOU; Use Internal Block Diagrams as the main presentation diagrams for your engineering colleagues and other stakeholders! SysML Block Definition Diagram, SysML Internal Block Diagram SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice
MODELLING Webel: SysMLv1: Overview of annotated Diagram Slides and Note pages related to UseCases and their combination with a System (of interest), SystemContext, and drill-down to scenario Sequence Diagrams (Interactions) and Activity Diagrams. SysML-1.6, SysML-1.7 UseCase, UseCase::subject SysML Use Case Diagram, System, SystemContext Model-Based Systems Engineering, SysML, Systems Modeling Language, SysMLv1
DISPLAY, MODELLING, NAMING, NAVIGATION, POLICY, SETTINGS, STYLE, TIP, TOOL Webel: SysMLv1: Overview of annotated Diagram Slides and Note pages related to general high level SysML modelling principles (some specific to MagicDraw/Cameo). Recommended reading for all Webel SysML/MBSE course attendees. SysML-1.6, SysML-1.7 Model-Based Systems Engineering, SysML, Systems Modeling Language, SysMLv1, Webel Best Practice
GOTCHA, ISSUE, TOOL Webel: SysMLv1: MagicDraw/Cameo: CON: Using anonymous property and/or action names is not ideal for Element Compartment and Note callout displays when Usage level allocation is used. But allocation table and matrix views are better anyway. SysML-1.6, SysML-1.7 NamedElement::name, Action, CallBehaviorAction, Property, element property, Note Allocate, ActivityAllocatePartition, allocation, SysML callout style SysML, Systems Modeling Language, MBSE, SysMLv1, Cameo Systems Modeler, MagicDraw SysML, CATIA Magic
ASSERTION, TIP, TOOL, WARNING Webel: SysMLv1: MagicDraw/Cameo: AVOID the "default" SysML Item Flow Creation Mode 'Between Part Types' completely. Use 'Direct' mode, change it as soon as you start any SysML project under Options → Project → General → SysML [Helps prevent a clash/issue] SysML-1.6, SysML-1.7, UML-2.5.1 InformationFlow ItemFlow Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML
CONVENTION, DISPLAY, MODELLING, STYLE, TIP Webel: SysMLv1: Highly recommend creating a "focus" Block Definition Diagram (BDD) for each main Block with expanded feature details and relationships to at least nearest neighbours Block, SysML Block Definition Diagram SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice, focus BDD
CONVENTION, MODELLING, NAMING, TIP Webel: SysMLv1: Functional analysis (isolation of white-box Activities identified via «blackbox» scenario Activities of UseCases). Recommend custom stereotype them. Candidate: «whitebox» (or a recommended SE methodology stereotype). Activity, Use Case scenario, CallBehaviorAction, CallBehaviorAction::behavior SysML Activity Diagram SysML, Systems Modeling Language, MBSE, SysMLv1, functional analysis, white-box, black-box, Webel::SE:«blackbox», Webel::SE:«whitebox»
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
GOTCHA, TOOL, WARNING Webel: SysMLv1/UML: MagicDraw/Cameo: AVOID the the vendor-specific «useCaseModel» stereotype for Model packages, it leads to confusion with the rectangular 'subject' notation SysML-1.6, SysML-1.7, UML-2.5.1 UseCase, UseCase::subject, MagicDraw:useCaseModel MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler, vendor-specific, Webel Best Practice
MODELLING, NAMING, TIP Webel: SysMLv1.x: TIP: The name and documentation of a ValueType can indicate and specify more than just the unit and quantity kind. Example: A ClockFrequency may document how the frequency is measured. Example: WeightOnEarth. ValueType, QuantityKind Webel Best Practice
CONVENTION, NAMING, POLICY Webel: SysMLv1.x: AVOID (where possible) ValueType names that are the same as the name of units or unit symbols Unit Webel Best Practice
CONVENTION, NAMING, POLICY Webel: SysMLv1.x: AVOID (where possible) SysML Unit names that are the same as unit symbols. Unit names SHOULD start with a lower case Latin alpha letter. Custom Unit names should be a single lower case word or lowerCamelCase. SysML-1.6, SysML-1.7 ModelLibrary Unit Webel Best Practice, units, scientific unit system, ISO-80000, SysMLv1.x
NAMING Webel: SysML: You don't need to call every ConstraintBlock a 'SomethingEquation' NamedElement::name ConstraintBlock Webel Best Practice, mathematics, equation
CONVENTION, MODELLING, NAMING, TIP Webel: SysML: Use concise Package and Model naming to provide "context aware" owner paths that reflect a systems engineering strategy. Extremely so-called "human friendly" verbose Package/Model names with spaces DO NOT make the model easier to understand! Package, Model SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, 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
CONVENTION, MODELLING, TIP Webel: SysML: TIP: CONVENTION (default policy suggestion): Use reverse time ordering for Dependency, reserve Usage, PackageImport, ElementImport for software dependencies SysML-1.6, SysML-1.7 Dependency, Dependency::client, Dependency::supplier Systems Modeling Language, SysML, MBSE, Model-Based Systems Engineering, Webel Best Practice
CONVENTION, MODELLING, NAMING, TIP Webel: SysML: SE: «blackbox»: The custom Stereotype keyword «scenario» indicates a Behavior (Interaction as Sequence Diagram or Activity) that Refines a top-level UseCase within the 'problem' zone. Activity, Use Case scenario, UseCase::subject SysML Activity Diagram, Refine SysML, Systems Modeling Language, MBSE, SysMLv1, functional analysis, white-box, black-box, Webel::SE:«blackbox», Webel::SE:pragmatic, Webel::SE:«scenario»
CONVENTION, MODELLING, NAMING, TIP Webel: SysML: SE: The custom Stereotype keyword «whitebox» applied to an Activity indicates that it is part of the functional analysis breakdown serving a «whitebox» «scenario» Activity (directly or indirectly) for a UseCase. Activity, CallBehaviorAction, CallBehaviorAction::behavior SysML Activity Diagram SysML, Systems Modeling Language, MBSE, SysMLv1, functional analysis, white-box, black-box, Webel::SE:«blackbox», Webel::SE:pragmatic, Webel::SE:«scenario», Webel::SE:«whitebox»
CONVENTION, MODELLING, NAMING, TIP Webel: SysML: SE: The custom stereotype keyword «design» covers elements involved with BOTH design and/or implementation aspects in the 'solution' zone. (In more comprehensive SE methodologies design and implementation are often treated separately.) SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Package, Model, NamedElement::name SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice, Webel::SE:«whitebox», Webel::SE:«blackbox», Webel::SE:«design», Webel::SE:pragmatic
EXPLANATION, GOTCHA, MODELLING Webel: SysML: SE: Terminology: '«logical» handler' is used for a specific kind of «logical» subsystem (aka 'conceptual subsystem') that is a SPECIFIC collaboration of parts that handle one Activity usage in a higher level «whitebox» Activity. SysML-1.6, SysML-1.7 Activity SysML Activity Diagram SysML, Systems Modeling Language, MBSE, SysMLv1, Webel::SE:«blackbox», Webel::SE:«whitebox», Webel::«whitebox:logical», functional analysis, Webel::logical handler, logical subsystem
CONVENTION, MODELLING, NAMING, TIP Webel: SysML: SE: Stereotype keyword convention: BY DEFINITION HERE «blackbox» and «whitebox» refer specifically to the 'problem' zone and NEVER the 'solution' zone (as opposed to more general uses of the terms 'black-box' and 'white-box'). Stereotype, «keyword», custom Stereotype SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice, Webel::SE:«whitebox», Webel::«whitebox:logical», Webel::SE:«blackbox»
CONVENTION, MODELLING, NAMING, TIP Webel: SysML: SE: Naming convention: «whitebox»: A '$' prefix indicates a «logical» system, «logical» subsystem (aka conceptual subsystem) or «logical» handler Block (which is a more specific form of «logical» subsystems Block). Package, Model SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice
CONVENTION, MODELLING, NAMING, TIP Webel: SysML: SE: Naming convention: '0' used for a Package/Model name indicates a zone dedicated to a formal systems engineering breakdown (functional analysis, blackbox, whitebox, logical vs design or implementation etc.) SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Package, Model, NamedElement::name SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice
CONVENTION, MODELLING, NAMING, TIP Webel: SysML: SE: A functional analysis «whitebox» Activity may have swimlanes that Allocate to logical subsystems (logical handlers) within the 'problem' zone or to design/implementation level blocks. Activity, CallBehaviorAction, CallBehaviorAction::behavior SysML Activity Diagram, swimlane, Allocate, «allocate», ActivityAllocatePartition SysML, Systems Modeling Language, MBSE, SysMLv1, functional analysis, white-box, black-box, Webel::SE:«blackbox», Webel::SE:pragmatic, Webel::SE:«whitebox», Webel::SE:«design», Webel::SE:«logical», Webel::logical handler
ASSERTION, DISPLAY, FEATURE, SETTINGS, TIP, TOOL Webel: SysML: MagicDraw/Cameo: Strongly recommend that you set the Perspective to 'Full Featured' and 'Expert' at the very beginning at the start of every new project SysML-1.6, SysML-1.7, SysMLv2 Cameo Systems Modeler, MagicDraw UML, MagicDraw SysML
ASSERTION, MODELLING, PATTERN Webel: SysML: Heard of "follow the money"? In MBSE we "follow the flows"! Identify requests, data packets, message, signals early on and use ItemFlow as often as you can wherever you can! Adopt a signal processing mindset throughout (systems thinking). SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 InformationFlow, Signal ItemFlow, ItemFlow::itemProperty SysML, Systems Modeling Language, MBSE, SysMLv1, Webel Best Practice, signal processing, systems thinking
ANTI-PATTERN, MODELLING, PATTERN, TIP Webel: SysML: Electronics: DO NOT represent a jack/socket as a dumb proxy. Imagine it can introduce some signal noise or other effect (such as buzz) to test it is a physical model. Connector, Port, Port::isBehavior ProxyPort, BindingConnector, FullPort, "standard" Port, ParticipantProperty, AssociationBlock electronics, Systems Modeling Language, proxy, port-based engineering, jack, socket, SysML
DISPLAY, MODELLING, NAMING Webel: SysML: Electronics modelling: TIP: Use a custom Connector stereotype '<>' with the keyword '<>' to carry a 'net' property. (Use of punctuation in Stereotype names is not usually recommended and the keyword is not usually displayed.) SysML-1.6, SysML-1.7 Connector, Stereotype, custom Stereotype, tagged value electronics, SysML, Systems Modeling Language, WBP:electronics:<>, Webel Best Practice, WBP:electronics:<>
ASSERTION, MODELLING, NAMING, TIP Webel: SysML: DO NOT sacrifice modelling naming conventions for the mere sake of carrying organisation-specific names! Instead use tagged values of custom stereotypes as metadata to carry alternative names in parallel with systematic model element names. fUML-1.3, fUML-1.4, SysML-1.6, SysML-1.7, SysMLv2, SysPhS-1.1, UML-2.5.1 NamedElement::name, NamedElement, tagged value, Stereotype, stereotype Property, «keyword», custom Stereotype Webel Best Practice
POLICY, TIP Webel: SysML: Always consider including an abstract (sometimes intermediate) base Block in your domain modelling Generalization hierarchy. Classifier::isAbstract, Generalization Webel Best Practice
MODELLING, NAMING, TIP Webel: SysML: "Really long human friendly element names with spaces make my diagrams easier to read". Dr Darren says "No they don't! Prefer code-like naming (or anonymous for typed elements) wherever possible. Use custom tagged values for other names!" SysML-1.6, SysML-1.7, SysMLv2 NamedElement::name, Type, custom Stereotype, tagged value SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice, systems engineering, Document Intensive Systems Engineering, SysMLv2
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
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
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 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: 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: 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
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
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
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
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: 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, 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
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
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
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
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
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, 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
ASSERTION, MODELLING, PATTERN, TIP Webel: SysML1.7: Port contract matching is Feature-based, not Type-based. There's nothing particularly magical or special about use of an ~InterfaceBlock on a "conjugating" SysML Port, it's just a convenient way of managing one-to-one Feature matching! SysML-1.6, SysML-1.7 Port, Connector FullPort, ProxyPort, "standard" Port, InterfaceBlock, ~InterfaceBlock, DirectedFeature, DirectedFeature::featureDirection, FeatureDirectionKind, FeatureDirectionKind::provided, FeatureDirectionKind::required, FeatureDirectionKind::providedrequired, conjugation SysML, Systems Modeling Language, SysMLv1, MBSE
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
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
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, model-based engineering
CONSTRAINT, PROPOSAL, WISHLIST Webel: SysML-1.7/SysMLv2: WISHLIST: Constraint: A BindingConnector used for pure proxying MUST NOT be typed by an AssociationBlock by definition, because the associated information can be mis-appropriated to undermine the proxy equality! SysML-1.7, SysMLv2 SysMLv2, AssociationBlock, BindingConnector, ProxyPort SysMLv2:WISHLIST, Webel:WISHLIST, Systems Modeling Language, SysML, Webel Best Practice
DISPLAY, POLICY, SETTINGS, STYLE, TOOL Webel: SysML symbol colour styles: Recommend use black symbol borders and no symbol fill (or white symbol fill) EXCEPT for special highlighting. Recommend DO NOT use the default VENDOR-SPECIFIC line and fill colours for symbols! [TIP IS MOSTLY IGNORED] SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Systems Modeling Language, Model-Based Systems Engineering, MBSE, SysML, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic
CONVENTION, MODELLING, TIP Webel: SysML for MBSE: The frequent recommendation that each UseCase have at least one "primary" scenario is a very useful and highly recommended CONVENTION (only). But it is not actually enforced by the SysML1.7 or UML2.5.1 metamodels or specifications. UseCase, Use Case scenario, Trace, «trace» SysML Use Case Diagram, Refine, Trace Systems Modeling Language, SysMLv1, SysML, scenario, primary scenario
DISPLAY, SETTINGS, STYLE, TOOL Webel: Recommend maintain a basic black-and-white style file for starting new projects. Webel course attendees have access to a basic Webel.stl file (or clone and tune the 'OMG SysML style'). Webel Best Practice, MagicDraw SysML, MagicDraw UML, Cameo Systems Modeler, Magic Model Analyst [Cameo Simulation Toolkit]
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 Webel: Psy/MPsy: Psychrometrics for Mathematica: Transferred heat (energy "Q") has field names with lower case 'qTot', 'qSen', 'qLat'. Heat rates (energy per time) have field names 'qDotTot', 'qDotSen', 'qDotLat' (to avoid clashes with Mathematica core) Psychrometrics, humidity, humidity ratio, absolute humidity, Mathematica, Mathematica::Real
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
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
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
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
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
CONVENTION Webel: Psy/MPsy: Psychrometrics for Mathematica: Relative humidity is indicated by a lower case 'r' and measured as a Real fraction (rather than as a Percentage). [Some tables and plots do SHOW the relative humidity as a Percentage.] Psychrometrics, humidity, relative humidity, Mathematica, Mathematica::Real, fraction
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: Humidity ratio (absolute humidity) is indicated by a lower case 'w' and measured in mass (water) / mass (dry air) units, so the SI and IP representations are equal Real (without an explicit unit system) Psychrometrics, humidity, humidity ratio, absolute humidity, Mathematica, Mathematica::Real