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 |