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
ISSUE, QUESTION SysML-1.6: Figure D.3: Would 'HSUV Interfaces' be better higher up directly under 'HSUV Model' (instead of under 'HSUV Structure')? SysML-1.6 Package, Element::owner, containment HSUV sample problem, SysML Package Diagram
ISSUE ERROR: SysML-1.6: The name 'Operational Viewpoint' in Figure D.3 contradicts the name ''Functional Viewpoint' in Figure D.30 (suggest amend D.30 not D.3) SysML-1.6 SysML specification figure, Viewpoint
ISSUE ERROR: SysML-1.6: Figure D.2: the original spec figure appears to show Real owned by the ModelLibrary 'Automotive Value Types' without an explicit element import. SysML-1.6 ElementImport HSUV sample problem, Real
ISSUE ERROR: SysML-1.6: Figure D.3 Automotive Value Types model library does not belong under the HSUV Model, showing it on this diagram without showing the owner suggests it is. Compare with Figure D.2. SysML-1.6 Element::owner, ModelLibrary HSUV sample problem
TIP Nobody (informed) said that SysML (or even UML) modelling and MBSE is only about graphical modelling, notations, and diagrams! Information can be extracted in many different ways and presented in many different formats from the underlying model! SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML, relationship map, derived relationships, metachain navigation, table, report, query, model query, table query, query table, report generation, report extraction, repository, model, Model-Based Systems Engineering, model-based development, model-driven development, matrix, dependency matrix, relationship matrix
CAPABILITY, FEATURE, TOOL Magicdraw/Cameo has powerful relationship maps! Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML, relationship map, derived relationships, metachain navigation
CAPABILITY, FEATURE, TOOL Magicdraw/Cameo has powerful query view tables, maps, and dependency matrix diagrams! Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML, table, query table, table query, report table, report generation, report
CAVEAT, DISPLAY, STYLE, TOOL MagicDraw/Cameo: the coloured stereotype icons for some kinds of elements can't be removed from all diagrams, tables, or matrix views Stereotype icon, MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler
CAPABILITY, FEATURE, TOOL Magicdraw/Cameo has powerful relationship Dependency Matrix diagrams, and in many cases one can assign or remove relationships directly in the cells of the matrix just by clicking! relationship matrix, matrix, query matrix, Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML
FEATURE, TOOL SysML: MagicDraw/Cameo can optionally indicate Requirement IDs in tables Requirement, AbstractRequirement::id requirements engineering, table, query table, report table, MagicDraw SysML, Cameo Systems Modeler
CAVEAT, FEATURE, TOOL, VARIATION MagicDraw/Cameo query tables use a single row (with a group of elements) to represent multiple targets/hits from a relationship, rather than one row per hit. MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler
FEATURE, TIP, TOOL MagicDraw/Cameo derived relationships and metachain navigation are very powerful and worth exploring metachain navigation, derived relationships, MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler
ASSERTION, TOOL SysML: The «system», «subsystem», «external», «domain» and «system context» keywords are for "user defined" block Stereotypes (they are not part of core SysML); they are supported in MagicDraw/Cameo as Non-Normative Extensions. SysML-1.6 «system», «subsystem», «external», «domain», «system context» non-normative, MagicDraw SysML, Cameo Systems Modeler
CAPABILITY, TOOL In MagicDraw/Cameo one can display many element properties (and metamodel properties) directly in compartments on most element symbols Note MagicDraw SysML, MagicDraw UML, Cameo Systems Modeler
CAPABILITY, TOOL In MagicDraw/Cameo one can "call-out" many element properties (and metamodel properties) into a Note using the Edit Compartments context menu item Note MagicDraw SysML, MagicDraw UML, Cameo Systems Modeler
TIP SysML: Webel recommends use of an additional custom «requirementGroup» stereotype for compound Requirements that serve as owning Namespaces and are subject to the satisfaction policy that all child requirements must be satisfied. Stereotype, «keyword» Requirement, composite (compound) requirement
POLICY About the Single Source of Truth (SSOT) and Don't Repeat Yourself (DRY) principles DRY, SSoT, Single Source of Truth
NAMING, POLICY Webel suggests using a verbose 'name' for leaf (child) Requirements but NO 'text' to prevent Single Source of Truth issues and for improved callout vs relationships (but this might not always work when syncing with external requirements management tools) NamedElement::name AbstractRequirement::text, Requirement Webel Best Practice, requirements engineering
ASSERTION The SysML specification refers to 'part property' as a concept (as a type of block property) but there is no stereotype PartProperty; MagicDraw/Cameo as an additional stereotype PartProperty to encapsulate the concept SysML-1.6 part part property
ISSUE SysML-1.6: In Figure D.9 is a synchronous Message from Lifeline for :Driver for an Operation StartVehicle() intended? Does it make sense for the human Driver to have to wait for such a synchronous call? SysML-1.6 Message, MessageSort, MessageSort::synchCall HSUV sample problem
ASSERTION Visual containment of the symbol for a UseCase in the rectangular symbol for a subject Classifier does NOT imply ownership! Packaging (ownership) of UseCases is separate from use within subjects, and a single UseCase may be used in more than one subject. UseCase, UseCase::subject, Package, Classifier, Element::owner
CAPABILITY, DISPLAY, STYLE In MagicDraw/Cameo the name and any stereotype keywords of a Classifier subject of a UseCase may be shown in the top-middle (not just top-left) UseCase::subject MagicDraw SysML, MagicDraw UML
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
CAVEAT The custom DiagramDescription stereotype is not specified (in SysML1.6) SysML-1.6
NAMING, POLICY, STYLE SysML: Webel: "Trust the Type!" - Often the name of the Type of an anonymous Property or instance-level element is completely sufficient to indicate its role - unless multiple Properties of the same Type have different roles within the same owner context! NamedElement::name, Property, InstanceSpecification, Port Webel Best Practice
CAVEAT SysMLv1: When using model queries (such as tables) for compliance with some older systems engineering docs you may not always be able to use anonymous Property names and anonymous instance level element names. Or try the owner context or the ID! Webel Best Practice, model query, table query, report generation, report extraction
NAMING, POLICY "Trust the Namespace" - DO NOT repeat information in names of owned elements that can be gleaned from the owner or ancestor (and is usually easily shown using display options). It is WET, it breaks the DRY principle! Element::owner, NamedElement::name
CONSTRAINT A ValueSpecificationAction may not have any InputPins, because Action::/input:InputPin[0..*] is a derived union, and ValueSpecificationAction does not specify any InputPin subsets ValueSpecificationAction, Action, Action::/input, InputPin
CAVEAT, TOOL MagicDraw/Cameo can't show tagged values in {braces} below owner name on instance symbols InstanceSpecification, tagged value, Stereotype MagicDraw SysML, MagicDraw UML, Cameo Systems Modeler
ISSUE, NAMING MagicDraw/Cameo: There are lots of spelling mistakes in the ISO-80000 ModelLibrary ModelLibrary QuantityKind, Unit, ValueType MagicDraw SysML, MagicDraw UML, Cameo Systems Modeler, ISO-80000
NAMING MagicDraw/Cameo: Most QuantityKind in the ISO-80000 ModelLibrary in are lower case ModelLibrary QuantityKind MagicDraw SysML, MagicDraw UML, Cameo Systems Modeler, ISO-80000
DISPLAY, STYLE In SysML diagrams, showing the context name and type in the diagram frame can lead to clutter and is not always clear to non-SysML stakeholders (although that is the style used in the specification samples) SysML, Systems Modeling Language, Webel Best Practice
CAVEAT, TOOL, WARNING In MagicDraw/Cameo the ProfileApplication relationship is only available in Profile Diagram menus ProfileApplication MagicDraw SysML, Cameo Systems Modeler
CAVEAT, ISSUE MD SysML and Cameo 19SP3 can't yet validate provided/required Feature subsets (such as Features of one Block against Features of multiple Ports) Port provided Feature, required Feature Cameo Systems Modeler, MagicDraw SysML, MD SysML, validation
ISSUE SysML-1.6: Name 'knockSensor' should be 'isKnocking' for consistency with D.21 SysML-1.6 HSUV sample problem
POLICY The Webel versions of the SysML HSUV sample problems and specification sample figures use "standard" Ports EXCEPT where ProxyPorts or FullPorts are explicitly indicated in the specification SysML-1.6 Port "standard" Port, FullPort, ProxyPort SysML, Systems Modeling Language
ASSERTION, TIP In the Webel recipe for SysML, DO use a "standard" Port until you have a truly compelling reason to commit to a FullPort or ProxyPort Port FullPort, ProxyPort, "standard" Port Cameo Systems Modeler, MagicDraw SysML, MD SysML
DEPRECATION, TOOL, WARNING SysML: MagicDraw/Cameo: DO NOT use the FlowPort or FlowSpecification menu items or smart manipulator items they are completely OBSOLETE (they create fully DEPRECATED SysML model element types)! Use FlowProperty on Block features instead. SysML-1.6 DEPRECATED:FlowPort, DEPRECATED:FlowSpecification Cameo Systems Modeler, MagicDraw SysML, CATIA Magic:v2022xGolden, CATIA Magic:v2024xGolden
TIP HOWTO get at and display "standard" Ports that have been unnecessarily hidden and suppressed in MD SysML 19SP3 and Cameo 19SP3 SysML-1.6 Port "standard" Port MD SysML, Cameo Systems Modeler, Systems Modeling Language, SysML
ASSERTION, WARNING It is NOT true in SysML1.6+ that you "should" always use a SysML FullPort or a SysML ProxyPort instead of a "standard" Port, and it's not even always a good idea (and the spec states this very clearly in multiple places)! Port FullPort, ProxyPort, "standard" Port
CAVEAT, MODELLING Dependency/Usage relationships in some referenced UML/SysML diagrams on this site are for educational illustration only, they are NOT part of the actual model. SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Dependency, Usage
POLICY Since SysML-1.6 use of direct UML conjugation of Ports is NOT supported; If you are using InterfaceBlocks use instead a conjugated ~InterfaceBlock type! SysML-1.6 Port ~InterfaceBlock, conjugation
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
ISSUE SysML-1.6: HSUV sample problem and spec sample diagrams naming issue, 'ecu:PowerControlUnit' should be 'pcu:PowerControlUnit' SysML-1.6 SysML specification figure, HSUV sample problem, SysML-1.6
NAMING, POLICY, STYLE The Webel modelling style, naming conventions, and Best Practices for SysML are more consistent than most SysML spec diagrams. When following Webel courses please DO NOT use the spec sample diagrams (which serve a different purpose) as visual references! Webel Best Practice, Webel Parsing Analysis, SysML, Systems Modeling Language
TOOL There is no ElementValue in UML-2.5.1 (although one has been proposed) it is an extension used by the MagicDraw tool family for handling tagged values ValueSpecification, MagicDraw:ElementValue MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler
ISSUE ObjectNode::inState - The UML2.5.1 spec is not clear on whether composite state parents should also be listed in the states ObjectNode::inState
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
DISPLAY, STYLE, TIP, TOOL Style: use line width 2 or 3 on the border of the "focus" element in "focus" diagrams (such as the main Block or Class of a dedicated Block Definition Diagram or Class Diagram)
DISPLAY, POLICY, SETTINGS, STYLE, TOOL SysML: MagicDraw/Cameo: Diagram Style: Recommend DO NOT use shadows or gradient fill adornments on diagrams! [TIP OFTEN IGNORED] SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 SysML, Systems Modeling Language, Webel Best Practice, Cameo Systems Modeler, MagicDraw SysML
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
CAVEAT A FinalState has no entry, doActivity, or exit Behavior, no outgoing Transitions, no Regions, and cannot reference a submachine FinalState
NAMING, POLICY Webel: For SysML Blocks and InterfaceBlocks used to type Ports with physical flows use 'F_UpperCamelCase' [may be combined with acronymn conventions Port Block, InterfaceBlock, FullPort, ProxyPort, "standard" Port, flow, FlowProperty SysML
NAMING, POLICY For SysML Blocks and InterfaceBlocks used to type Ports with contracts use the naming convention 'I_UpperCamelCase' [may be combined with acronymn conventions] Port Block, InterfaceBlock, FullPort, ProxyPort, "standard" Port SysML
NAMING, POLICY SysML: Naming: Always use either anonymous or first letter lower case for Property, ObjectNode and InstanceSpecification names; no exceptions (unless using names to "quote text")! Valid: 'lowerCamelCase' OR 'tla' vs TLA acronym OR 'uCC' vs UpperCamelCase Property, StructuralFeature, InstanceSpecification, ObjectNode, NamedElement::name MD:ValueProperty UML, SysML
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
NAMING, POLICY Use 'UpperCamelCase' (a.k.a. PascalCase) names for Classifiers such as UML Classes and SysML Blocks) to avoid confusion with 'lowerCase' Property names [see however special naming conventions for acronyms and SysML contract and flow Blocks] Classifier, Class Block UML, SysML
NAMING, POLICY Prefer anonymous Actions, or if they must be named, prefer code-like 'lowerCamelCase' or completely 'lower case' (if you do absolutely insist on having spaces in action names, but please no other punctuation). Action UML, SysML
NAMING, POLICY Prefer 'UpperCamelCase' (a.k.a. PascalCase) names for Behaviors such as Activities intended for use in CallBehaviorActions, or at least use a 'Capital first letter'; avoid 'all lower case' (as it leads to confusion with lower case Action names) Behavior, Activity, Classifier UML, SysML
On OMG copyright in text extracts and figures reproduced for educational purposes copyright, Object Management Group, WPA:«snippet», quote, extract
ISSUE To get synchronisation of multiple AcceptEventAction "loops" to work in Cameo Simulation Toolkit one sometimes needs an additional ForkNode AcceptEventAction, SignalEvent, ForkNode, Activity, Activity Diagram
CAVEAT UML has an Integer type, not an 'int' type, but the MagicDraw and Cameo tools include a DataType 'int' in an additional profile Integer, DataType Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler
ISSUE BUG: An unmarshalled AcceptEventAction fails in Cameo Simulation Toolkit 19SP3 as soon as use Generalization with a redefined property! Magic Model Analyst [Cameo Simulation Toolkit]
CAVEAT The Signal trigger simulator in Cameo Simulation Toolkit 19SP3 does not support run-time user-defined attribute values (but you can define defaults) Trigger, Signal, Classifier::attribute Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS (at least partially) State Chart XML (SCXML) the State Machine Notation for Control Abstraction State Chart XML, state chart, Magic Model Analyst [Cameo Simulation Toolkit]
TIP MagicDraw, Cameo Systems Modeler, and Cameo Simulation Toolkit use the name 'English' for a "default" vendor-specific action scripting language MagicDraw SysML, MagicDraw UML, Magic Model Analyst [Cameo Simulation Toolkit], Cameo Systems Modeler
CAPABILITY Cameo Simulation Toolkit 19SP3 DOES NOT support ValuePin TimeEvent Magic Model Analyst [Cameo Simulation Toolkit]
CAVEAT fUML-1.4 EXCLUDES UseCase fUML-1.4 UseCase fUML
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS StructuredClassifier and Connector Connector, StructuredClassifier Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS Port and EncapsulatedClassifier Port Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS UseCase UseCase Magic Model Analyst [Cameo Simulation Toolkit]
CAPABILITY Cameo Simulation Toolkit 19SP3 SUPPORTS StateMachine StateMachine Magic Model Analyst [Cameo Simulation Toolkit]
CAVEAT fUML-1.4 EXCLUDES StateMachine fUML-1.4 StateMachine, ProtocolStateMachine fUML
TIP The vendor-specific Action Language Helper (ALH) API can be accessed from all of the various action scripting languages available in MagicDraw, Cameo Systems Modeler, and Cameo Simulation Toolkit Magic Model Analyst [Cameo Simulation Toolkit], MagicDraw SysML, MagicDraw UML, Cameo Systems Modeler, Action Language Helper, ALH
TIP HOWTO set a ValueSpecificationAction to use the * LiteralUnlimitedNatural to drive an 'insertAt' InputPin on an AddStructuralFeatureValueAction in Cameo Simulation Toolkit and Cameo Systems Modeler UML-2.5.1 InputPin, AddStructuralFeatureValueAction, AddStructuralFeatureValueAction::insertAt, ValueSpecification, ValueSpecificationAction, LiteralUnlimitedNatural Cameo Systems Modeler, Magic Model Analyst [Cameo Simulation Toolkit]
ISSUE UML-2.5.1: Statement about 'Adding a value to an ordered StructuralFeature requires an insertion point' contradictory. First it says 'insertAt' is 'required', then it says it is not always 'required'. The 'insertAt' attribute is [0..1]. AddStructuralFeatureValueAction::insertAt, AddStructuralFeatureValueAction
CAVEAT fUML-1.4 EXCLUDES ProtocolStateMachine StateMachine, ProtocolStateMachine
CAVEAT, LIMITATION Cameo Simulation Toolkit DOES NOT leverage a Reception on a Class/Block at all (due to an fUML restriction), use an AcceptEventAction with a SignalEvent trigger instead! fUML-1.3, fUML-1.4, SysML-1.6, SysML-1.7, UML-2.5.1 AcceptEventAction, SignalEvent, Class, Reception, Signal Block Magic Model Analyst [Cameo Simulation Toolkit]
CONSTRAINT fUML-1.4 guards are NOT allowed on an ActivityEdge from a ForkNode fUML-1.4 ActivityEdge, ActivityEdge::guard, ForkNode fUML
CAVEAT fUML-1.4 EXCLUDES RaiseExceptionAction fUML-1.4 RaiseExceptionAction fUML
CAVEAT fUML-1.4 EXCLUDES SequenceNode fUML-1.4 SequenceNode fUML
CAVEAT fUML-1.4 EXCLUDES StructuredActivityNode::variables fUML-1.4 StructuredActivityNode::variables fUML
CAVEAT fUML-1.4 EXCLUDES UnmarshallAction fUML-1.4 UnmarshallAction fUML
CAVEAT fUML-1.4 EXCLUDES ReadVariableAction, WriteVariableAction (and its subclasses) and ClearVariableAction fUML-1.4 ReadVariableAction, WriteVariableAction, ClearVariableAction fUML
CAVEAT fUML-1.4 EXCLUDES ReadLinkObjectEndAction, ReadLinkObjectEndQualifierAction and CreateLinkObjectAction fUML-1.4 ReadLinkObjectEndAction, ReadLinkObjectEndQualifierAction, CreateLinkObjectAction fUML
CAVEAT fUML-1.4 EXCLUDES QualifierValue fUML-1.4 QualifierValue fUML
CAVEAT fUML-1.4 EXCLUDES InvocationAction::onPort fUML-1.4 InvocationAction::onPort fUML
CAVEAT fUML-1.4 EXCLUDES ValuePin fUML-1.4 ValuePin fUML
CAVEAT fUML-1.4 EXCLUDES OpaqueAction fUML-1.4 OpaqueAction fUML
CAVEAT fUML-1.4 EXCLUDES ActionInputPin fUML-1.4 ActionInputPin fUML
CAVEAT fUML-1.4 EXCLUDES Action::localPrecondition and Action::localPostcondition fUML-1.4 Action::localPrecondition, Action::localPostcondition fUML
CAVEAT fUML-1.4 EXCLUDES InterruptibleRegion fUML-1.4 InterruptibleRegion fUML
CAVEAT fUML-1.4 EXCLUDES ActivityPartition fUML-1.4 ActivityPartition fUML
CAVEAT fUML-1.4 EXCLUDES Exception fUML-1.4 Exception fUML
CAVEAT fUML-1.4 EXCLUDES ExceptionHandler fUML-1.4 ExceptionHandler fUML
CAVEAT fUML-1.4 EXCLUDES ObjectNode::inState fUML-1.4 ObjectNode, ObjectNode::inState fUML
CAVEAT fUML-1.4 EXCLUDES ObjectNode::upperBound fUML-1.4 ObjectNode, ObjectNode::upperBound fUML
CAVEAT fUML-1.4 EXCLUDES JoinNode::joinSpec fUML-1.4 JoinNode, JoinNode::joinSpec fUML
CAVEAT fUML-1.4 EXCLUDES Variable fUML-1.4 Variable fUML
CAVEAT fUML-1.4 EXCLUDES ObjectNode::transformation and ObjectNode::selection fUML-1.4 ObjectNode, ObjectNode::transformation, ObjectNode::selection fUML