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
ANNOUNCEMENT: Webel IT Australia is developing an Online Subscription Video Tutorial Series version of our hands-on course for MBSE with SysML(v1) with Cameo Systems Modeler tool videos and OMG SysML-language only videos. Register your interest now! SysML-1.6, SysML-1.7 SysML, Systems Modeling Language, MBSE, SysMLv1, Cameo Systems Modeler, MagicDraw SysML, CATIA Magic, Model-Based Systems Engineering, training, seminar, web seminar
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
An Open Letter to LinkedIn SysML/MBSE groups from Dr Darren: "But, but, but, that SysML Diagrams doesn't show [insert pet systems engineering principle here]". It doesn't have to! It just has to show (or teach) something useful with SysML in a SysML tool! SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice
MODELLING, PROPOSAL, TIP SysMLv1: TIP: You can strengthen the ill-defined semantics of Property 'aggregation' (an AggregationKind) by applying custom Stereotypes to a Property, documented with its intended use. Not perfect, but better than not. EXAMPLE: «assembled» AggregationKind, AggregationKind::composite, AggregationKind::shared, AggregationKind::none, Property::aggregation, Stereotype, custom Stereotype, «keyword» SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice
ANTI-PATTERN, MODELLING SysML: Syntax ain't Semantics: FUN CHALLENGE: SysMLv1 block property aggregation: 'The tornado chaser plane "has" a chaser car "with" a chaser team.' AggregationKind, AggregationKind::composite, AggregationKind::shared, Property, Property::aggregation Block, SysML Block Definition Diagram, part property, reference property, shared property, MD:SharedProperty SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice, syntax, semantics
EXPLANATION, MODELLING Webel Parsing Analysis for SysML: "Snippet trumps Requirement": A SysML Requirement element is just another model element that is elicited IN PARALLEL WITH other elements that a text description mentions in any way as being involved with or related to it. AbstractRequirement, SysML Requirements Diagram SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice, Webel Parsing Analysis, WPA:«snippet», WPA:Snippet::source, WPA:PAD
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
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: «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»
MODELLING, TIP, TOOL The Webel recipe for pragramatic SE with SysML adopts the MagicDraw/Cameo tool friendly approach of using a SystemContext as 'subject' of top-level UseCases (although using a System as 'subject' can also be used). UseCase, UseCase::subject SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Webel Best Practice, Webel::SE:pragmatic, MagicGrid, Cameo Systems Modeler, MagicDraw SysML, CATIA Magic
TIP List of some formal systems engineering methodologies, standards, and guides [EXTERNAL LINKS] Model-Based Systems Engineering, systems engineering, Unified Architecture Framework, UAF, DoDAF, MODAF, NATO Architecture Framework, NAF, The Open Group Architecture Framework, TOGAF, INCOSE, INCOSE Systems Engineering Handbook, SeBOK, NASA
CONVENTION, MODELLING, NAMING, TIP The Webel recipe for pragramatic SE with SysML omits many of the concerns addressed by fully-fledged systems engineering frameworks. Many of these can be partially addressed by using custom Stereotypes for extraction using query view tables. 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
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
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: 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
ASSERTION SysML tools can ALSO be used for many graphical Model-Based Engineering tasks that benefit from Single Source Of Truth - and even without any formal System Engineering methodology (which is NOT to say that formal System Engineering is not also useful). 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
ASSERTION Webel: Dr Darren says: "Many aspects of older Document-Intensive Systems Engineering methodologies and the reporting obligations they impose on their users were intended to address problems that simply DO NOT EXIST ANYMORE with modern MBSE with SysML!" SysML-1.6, SysML-1.7, SysMLv2 SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, 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
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, TIP, TOOL SysML: MagicDraw/Cameo: Use query view tables, matrices, and maps, use them a lot! They help communicate well with other stakeholders. Learn how to use the Generic Table diagram type, custom relations, Simple Navigation & Metachain Navigation (expert)! SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Cameo Systems Modeler, MagicDraw SysML, CATIA Magic, Webel Best Practice, table, query, model query, table query, query matrix, dependency matrix, matrix, relationship map, relationship matrix, derived relationships, MagicDraw implied relationships
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, TOOL SysMLv1: MagicDraw/Cameo: HOWTO show "missing" ItemFlows after using Display Related Elements to re-draw Associations and Connectors. Use the 'Show Realised Item Flows' and 'Realize All Item Flows' smart manipulators. InformationFlow::conveyed, InformationFlow, Association, Connector, InformationFlow::realizingConnector, InformationFlow::realization ItemFlow SysML, Systems Modeling Language, SysMLv1, MBSE, Model-Based Systems Engineering, Cameo Systems Modeler, MagicDraw SysML, CATIA Magic
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
EXPLANATION, GOTCHA, MODELLING HOWTO "cheat" with two-level white-boxing and tracking stereotypes because you just don't want that darn "extra" logical subsystem (conceptual subsystem) Block the systems engineers reckon you are supposed to use (and why it's easier to actually use one) 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
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
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»
CAVEAT, EXPLANATION, MODELLING, TOOL Webel IT's summaries of MagicGrid® for SysML/MBSE with Cameo are offered for the interest of MagicGrid users for informative and educational purposes only. They are not recommendations to use (or not use) MagicGrid, and are not officially endorsed. SysML, Systems Modeling Language, MBSE, SysMLv1, Cameo Systems Modeler, MagicDraw SysML, CATIA Magic, Model-Based Systems Engineering, MagicGrid
MODELLING, TIP SysMLv1: MagicDraw/Cameo: Oh no, I lost my part or reference property? Where did it go? The Symbol Properties option for 'Show Association ends as Attributes' may help you find it! SysML-1.6, SysML-1.7 Association, Association::memberEnd, Property::owningAssociation, Association::ownedEnd part property, MD:PartProperty, reference property, MD:ReferenceProperty Model-Based Systems Engineering, SysML, Systems Modeling Language, SysMLv1, MBSE, MagicDraw SysML, MD SysML, Cameo Systems Modeler, CATIA Magic
MODELLING, TIP SysMLv1: A part Property or reference Property is not necessarily a 'memberEnd' or 'ownedEnd' of an Association ('association' or 'owningAssociation'). But an Association always as at least 2 'memberEnd' Properties. (With some MagicDraw/Cameo tool tips.) SysML-1.6, SysML-1.7 Association, Association::memberEnd, Property::owningAssociation, Association::ownedEnd, Property::association part property, MD:PartProperty, reference property, MD:ReferenceProperty Model-Based Systems Engineering, SysML, Systems Modeling Language, SysMLv1, MBSE
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
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
MODELLING SysMLv1: A common misunderstanding: Just because a UseCase symbol appears inside the rectangle of a subject Classifier does NOT mean that it is owned by that Classifier and can only have that one Classifier as 'subject', and it does not imply ownership! SysML-1.6, SysML-1.7 UseCase, UseCase::subject SysML Use Case Diagram, System, SystemContext Model-Based Systems Engineering, SysML, Systems Modeling Language, SysMLv1
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
MODELLING SysMLv1: "Should" the 'subject' of a top-level UseCase be a System or (a particular) SystemContext? Answer: Which one would you like to be correct!? [WITH EXTERNAL LINKS] SysML-1.6, SysML-1.7 UseCase, UseCase::subject SysML Use Case Diagram, System, SystemContext Model-Based Systems Engineering, SysML, Systems Modeling Language, SysMLv1
CAVEAT, MODELLING, TOOL SysML: Cameo/MagicDraw: ItemFlow notation/indication on ObjectFlow edges in SysML Activity Diagrams is a tool-specific feature, although it was proposed and discussed (but DEFERRED) as part of the OMG SysMLv1 Revision Task Force (RTF). SysML Activity Diagram, ItemFlow SysML, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic
CONVENTION, FEATURE, MODELLING, OPTION, TIP, TOOL SysMLv1: MagicDraw/Cameo: Having a SystemContext as the 'subject' of each main UseCase plays nicely with the feature for automated creation of usage-level allocation swimlanes in SysML Activity Diagrams for part properties. But it's not the only way. SysML-1.6, SysML-1.7 UseCase, Use Case scenario, Actor, UseCase::subject SysML Activity Diagram, swimlane, custom block-based «actor», part property, SystemContext Systems Modeling Language, SysML, MD SysML, Model-Based Systems Engineering, scenario, MagicGrid, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic, primary scenario
MODELLING, TIP, TOOL SysMLv1: MagicDraw/Cameo: Synchronising ItemFlows on Connectors with ObjectFlows in Activities using the Item Flow Manager. Nice! SysML-1.6, SysML-1.7 InformationFlow::conveyed, UseCase::subject, Use Case scenario, Activity, Connector, InformationFlow::realizingConnector, InformationFlow::realizingMessage, InformationFlow::realizingActivityEdge ItemFlow, SysML Block Definition Diagram, SystemContext SysML, MD SysML, Systems Modeling Language, SysMLv1, MagicDraw SysML, Cameo Systems Modeler, CATIA Magic
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)
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, NAMING, TIP SysMLv1: An ItemFlow without an assigned 'itemProperty' is sometimes informally/casually referred to as an "information flow", especially when applied to an Association (because it is much like a UML InformationFlow), but formally it is a SysML ItemFlow. InformationFlow, InformationFlow::conveyed, InformationItem ItemFlow, ItemFlow::itemProperty
GOTCHA, MODELLING, OPTION, TIP, WARNING SysMLv1: MagicDraw/Cameo: INTRINSIC GOTCHA: Care must be taken with ownership of Activities used as UseCase scenarios vs the ‘subject’ of the UseCase. Make sure you don’t get an Activity ‘context’ mismatch! It's up to you to manage it as intended. SysML-1.6, SysML-1.7 UseCase, Use Case scenario, UseCase::subject SysML Use Case Diagram, Block Systems Modeling Language, SysML, MD SysML, Model-Based Systems Engineering, scenario
MODELLING, OPTION, TIP SysMLv1: MagicDraw/Cameo: Automated creation of usage-level allocation swimlanes in SysML Activity Diagrams for part properties of a Block. EXAMPLE: A UseCase scenario within a SystemContext as UseCase ‘subject’. SysML-1.6, SysML-1.7 UseCase, Use Case scenario, Actor, UseCase::subject SysML Activity Diagram, swimlane, custom block-based «actor», part property Systems Modeling Language, SysML, MD SysML, Model-Based Systems Engineering, scenario
MODELLING, TIP SysML/MBSE: Many videos, tutorial slides, and guides to MBSE with SysML present particular modelling recipes as though they are THE way to do something in SysML, not just ONE way of doing it in SysML. They are not necessarily enforced by the SysML spec. SysML-1.6, SysML-1.7 Systems Modeling Language, SysML, MD SysML, Model-Based Systems Engineering, scenario
CONVENTION, MODELLING, OPTION, TIP SysMLv1: UseCase scenario representations: On use of Activity Diagrams with swimlanes and/or Sequence Diagrams (Interactions): Actor or block-based custom «actor» on 1st (typically left) Lifeline/Swimlane, System/Subsystem on 2nd Lifeline/Swimlane SysML-1.6, SysML-1.7 UseCase, Use Case scenario, Actor SysML Activity Diagram, Refine, Trace, SysML Use Case Diagram, SysML Sequence Diagram, custom block-based «actor», Allocate, ActivityAllocatePartition, swimlane Systems Modeling Language, SysML, MD SysML, Model-Based Systems Engineering, scenario
CONVENTION, MODELLING, TIP Webel: MBSE: SysMLv1: Prefer a custom «actor» extension of a Block (such as the non-normative External) over UML-style Actor for use as parts in IBDs and on allocation swimlanes. You can also have a Trace from a block-based «actor» to a UML-style Actor. UseCase, Actor, Trace, «trace» SysML Use Case Diagram, Trace, «external», SysML Internal Block Diagram, custom block-based «actor», swimlane, AllocateActivityPartition, Allocate, SysML Activity Diagram, part property, ActorPart, MD:Customiz Systems Modeling Language, SysMLv1, SysML, MagicDraw SysML, Cameo Systems Modeler, Webel:«actor:internal»
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
TIP Mathematica: TIP: Start with With, update to Module as needed. Mathematica, Mathematica::With, Mathematica::Module, Wolfram, Wolfram Language
MODELLING SysMLv1 (or v2): CHALLENGE EXERCISE: Simplified Parsing Analysis breakdown of 'Build an Airport' with variations ElementGroup, ElementGroup::/member, AbstractRequirement, Satisfy, Refine, DeriveReqt Webel Parsing Analysis, Systems Modeling Language, requirements engineering, WPA:«snippet», WPA:Snippet::source, Model-Based Systems Engineering, MBSE, SysML
CONVENTION, MODELLING, NAMING, TIP Webel: SysML/UML: Dr Darren explains HOWTO use concise 'i'/'o' (input/output) Pin and Parameter naming conventions to promote a signal processing mindset in Activity Diagrams. And HOWTO get them compact. SysML-1.6, SysML-1.7, UML-2.5.1 Activity, Parameter, NamedElement::name, Pin, InputPin, OutputPin, ActivityEdge, CallAction, ActivityParameterNode, CallOperationAction, CallBehaviorAction SysML Activity Diagram systems engineering, Model-Based Systems Engineering, MBSE, SysML, Systems Modeling Language, SysMLv1, SysMLv1.x, SysMLv2, signal processing, Webel Best Practice
MODELLING, TIP Webel: SysML: TIP: Try "reverse" time ordered effect-from-cause Dependencies. Because it's harder to depend on something that does not already exist! Dependency, Dependency::client, Dependency::supplier, custom Stereotype Systems Modeling Language, SysML, time, time-ordering, Webel Best Practice
ASSERTION Webel: SysML/MBSE: Dr Darren's Open Letter on why you may initially need the Model-Based (MB) and Single Source Of Truth aspects of MBSE more than the formal Systems Engineering (SE) aspect (or even initially no formal SE process at all) to benefit most! SysML-1.6, SysML-1.7, SysMLv2 systems engineering, Model-Based Systems Engineering, SysML, Systems Modeling Language, SysMLv1.x, SysMLv1.7, SysMLv2, Single Source of Truth, model-based engineering
MODELLING, NAMING, TIP Webel: SysMLv1: Dr Darren for LinkedIn: On "Trusting The Type" and avoiding unnecessary verbose repetitive Property names ... unless you really, really need them and really do have reasons to use them, and then only use concise role indicators anyway! SysML-1.6, SysML-1.7, SysMLv2, UML-2.5.1 Type, Property, NamedElement::name ValueType, Block, value property, block property Systems Modeling Language, SysML, Webel Best Practice, MagicDraw, CATIA Magic, SysMLv1.x, SysMLv2, Cameo Systems Modeler
EXPLANATION, TIP Mathematica: SUPER TIP: Use CreateUUID[] to trigger recalculation against Once[] to create a flexible optionally caching function! Mathematica, Wolfram, Wolfram Language, Mathematica::CreateUUID, Mathematica::Once
EXPLANATION, GOTCHA, ISSUE Mathematica: GOTCHA: The Problems Analysis review system of Mathematica Plugin for IntelliJ IDEA reports a declared Module variable used as a Table loop variable as an "Used local variable". DO NOT SIMPLY DELETE IT! Mathematica, Wolfram, Mathematica::Module, Mathematica::Table, Wolfram Language, Mathematica:IntelliJ-IDEA-Plugin
EXPLANATION, GOTCHA, TIP Mathematica: TIP/GOTCHA: When using a Table loop variable within a Module always declare a module variable for it or you can get very hard to track side-effects elsewhere in your project due to exposed scope. Yes, it's obvious (yet easy to miss). Mathematica, Wolfram, Mathematica::Module, Mathematica::Table, Wolfram Language
CONVENTION, TIP Mathematica: Webel: A concise i:/o: notation is often used for indicating input/output cells in Mathematica notebooks in Webel's online help pages and tutorials, instead of 'In[n]:=' and 'Out[n]='. (Also learn how to hide them completely in notebooks.) Wolfram, Mathematica, Wolfram Language, Mathematica:notebook
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: POLICY: The ADT-Methods of an ADT-Class are created as TagSetDelayed UpValues using the 'signature' of the ADT-Class and its defining 'pattern' as 1st argument Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: CONVENTION: PROVISIONAL: The infix operator for calling ADT-Methods on ADT "objects" is the CircleDot (⊙ in Notebooks). ISSUE: \[CircleDot] is NOT GOOD FOR USE IN IDEs! Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT:Definer, singleton, Webel:ADT:infix, Webel:ADT:Object
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: POLICY/DEFINITION: Every "hard coded" definer or defining client of a definer has a corresponding ADT ArchetypeClass. Example ("hard coded"): The definer 'my$def$MY$SmartList' has ArchetypeClass 'MY$SmartList'. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT:Definer, singleton, Webel:ADT:ArchetypeClass
TIP Mathematica: Webel: ADT pseudo classes: TIP: Prefer the Decorator Pattern over multiple inheritance of ADT-Method UpValues! (But not because "inheritance is evil", it isn't.) Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface, Decorator Pattern, multiple inheritance, inheritance
CONVENTION, POLICY, TIP Mathematica: Webel ADT pseudo classes: A tricky POLICY & CONVENTION: Client packages MUST access the special "wrapped" primary named ADT-parameter '$$' via $ContextAliases! The recommended alias is "A`" (which stands of course for ADT). Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT, Webel:ADT:A`, Mathematica:$ContextAliases
POLICY Mathematica: POLICY: Webel: ADT pseudo classes: Multiple inheritance is supported via ONE (only) ADT-Class and one or more ADT-MemberInterfaces (which have no ADT-Method UpValues) Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface, Webel:ADT:Class, inheritance, multiple inheritance
POLICY Mathematica: Webel: ADT pseudo classes: POLICY: Definer functions MUST return the self-declared or injected 'pattern' that determines the unique "ADT-signature" of the defined ADT class. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer, Webel:ADT:signature
POLICY Mathematica: POLICY: Webel: ADT pseudo classes that define membership of ADT-classes in a domain package have ADT-signature MemberInterface[$$:None] and MUST NOT populate ADT-method UpValues in their definers. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface
CONVENTION, NAMING Mathematica: NAMING CONVENTION: Webel: ADT pseudo classes: An UpValue that can be invoked on an ADT accepting its unique 'signature' pattern as (at least) 1st argument is called an "ADT-method"'. They are NOT methods in the general object-oriented sense! Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Method, Webel:ADT
POLICY Mathematica: Webel: ADT pseudo classes: There is an 'ADT' universal base class that has no supers. It "blesses" every other sub-class ADT by populating it with some common ADT-method UpValues against its signature pattern via the 'adt$def$All[]' definer. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:All, Webel:ADT, Mathematica::UpValue
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: DEFINITION/CONVENTION: Functions that populate ADTs with reusable ADT-method UpValues are called 'definers' and include '$def' in the name after a Package scope indicator: Example: adt$def$ADT, my$def$MY$CleverList Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer
CONVENTION, POLICY Mathematica: Webel: ADT pseudo classes: POLICY: Every named concrete Abstract Data Type (ADT) class has a ONE unique "signature" (which is the pattern passed to the "definer" functions). To vary a signature, define another unique ADT class name. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional
CONVENTION, POLICY Mathematica: Webel: ADT pseudo classes: POLICY: The Abstract Data Types (ADTs) are stateless functional (although inheritance and overrides are supported), with no caching by default (although there is nice optional caching using CreateUUID[] and Once[]). Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional
EXPLANATION Mathematica: Webel: ADT pseudo classes: The term 'Abstract Data Types (ADTs)' is used informally (the ADTs do not always adhere to strict mathematical definitions of ADTs). Just please think of it here as meaning a "strong type" for Mathematica. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming
POLICY Mathematica: Webel: ADT pseudo classes: POLICY: The expression '$$' is reserved as the primary named parameter for the defining pattern of all ADT classes that extend the universal base 'ADT' class. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT
ASSERTION, TIP Mathematica: Webel: You get compelling incremental value out of Mathematica even if you don't yet command all of the syntax and massive powers of the Wolfram Language! Wolfram Language, Wolfram, functional, functional programming, object-oriented, ADTs, Abstract Data Types, Mathematica, symbolic algebra
ASSERTION Webel on Mathematica and the Wolfram Language vs Python. Python is not even close, not even vaguely close, it's not in the same league, as the Wolfram Language and Mathematica! python, Mathematica, Wolfram, Wolfram Language
GOTCHA, TIP Mathematica: GOTCHA: The Module/With system (especially under rewriting when nested) can leave variables with a trailing '$' suffix, which may cause name clashes because the variables (Expressions) are available later outside the scope of the Module/With! Mathematica, Mathematica::With, Mathematica::Module, Mathematica::Block
TIP TIP: Mathematica: COMING SOON! Webel's ultimate guide to using Abstract Data Types to create pseudo-classes WITH INHERITANCE in Wolfram Language, all modelled in SysML! [There's already some examples and some detailed policy notes.] SysML-1.6, SysML-1.7 Mathematica, Abstract Data Types, ADTs, strong types, Wolfram, Wolfram Language, Systems Modeling Language, SysML, SysMLv1.x, SysMLv1.7, SysMLv1.6, inheritance
TIP, TOOL TIP: Mathematica: The IntelliJ IDEA Plugin for Mathematica is HEAPS better than the Eclipse-based Wolfram Workbench! Mathematica, Wolfram, Mathematica:IntelliJ-IDEA-Plugin, IntelliJ IDEA
DISPLAY, FEATURE, MODELLING, STYLE, TOOL TIP: SysMLv1: MagicDraw/Cameo: Activity Diagrams: Consider using the Pin display mode 'Name And Type Labels Inside' for 'Position of Labels'. Dr Darren swears by it! SysML-1.6, SysML-1.7, UML-2.5.1 Activity, Pin, Activity Diagram, InputPin, OutputPin, Parameter SysML Activity Diagram MagicDraw, UML, MagicDraw UML, Unified Modeling Language, Systems Modeling Language, SysML, MD SysML, Cameo Systems Modeler, CATIA Magic, Mathematica, Webel:MathematicaSysML, Webel Best Practice
DISPLAY, FEATURE, TIP, TOOL TIP: UML/SysML: MagicDraw/Cameo: Activity Diagrams: Pins: You can display the 'multiplicity' of the underlying Parameter on Pins symbols using Edit Compartments. (The 'multiplicity' shows anyway if the :Type is shown.) SysML-1.6, SysML-1.7, UML-2.5.1 Parameter, multiplicity, MultiplicityElement, Pin, InputPin, OutputPin Systems Modeling Language, Unified Modeling Language, MagicDraw, MD SysML, Cameo Systems Modeler, CATIA Magic
DISPLAY, FEATURE, TIP, TOOL TIP: UML/SysML: MagicDraw/Cameo: Activity Diagrams: ActivityParameterNodes: Displaying the underlying 'parameter::multiplicity' using Edit Compartments is extremely useful! SysML-1.6, SysML-1.7, UML-2.5.1 ActivityParameterNode, Parameter, multiplicity, MultiplicityElement Systems Modeling Language, Unified Modeling Language, MagicDraw, MD SysML, Cameo Systems Modeler, CATIA Magic
GOTCHA, ISSUE, TIP, TOOL UML/SysML: MagicDraw/Cameo: Edit Compartments: ActivityParameterNode: Can't select the 'parameter::multiplicity'? Run the synchronisation between the Activity in the direction Synchronize Activity Parameter Nodes by Activity Parameter then try again! SysML-1.6, SysML-1.7, UML-2.5.1 ActivityParameterNode, Parameter, multiplicity, MultiplicityElement Systems Modeling Language, Unified Modeling Language, MagicDraw, MD SysML, Cameo Systems Modeler, CATIA Magic
FEATURE, GOTCHA, ISSUE, TIP, TOOL Mathematica: TIP: Notebooks: Automatic Cell Grouping driving you up the wall? Try Manual Grouping and make it part of your workflow! Mathematica, Wolfram, Mathematica:notebook
GOTCHA, TIP, WARNING MagicDraw/Cameo/CATIA Magic: How to (try to) edit and fix a corrupt MDZIP project file SysML-1.6, SysML-1.7 CATIA Magic, MagicDraw, Cameo Systems Modeler
GOTCHA, TIP, WARNING MagicDraw/Cameo: UML/SysML: DO NOT use '$' character in Stereotype names (corrupts MDZIP file) SysML-1.6, SysML-1.7 CATIA Magic, MagicDraw, Cameo Systems Modeler
CONVENTION, LIMITATION, MODELLING, NAMING, TOOL Webel: Psy/MPsy: Psychrometrics for Mathematica: '$HC' in a function name indicates pure sensible heating or cooling (with no change in water vapour content). Such functions may also be used in the pure sensible portion of a 2-step treatment. SysML-1.6, SysML-1.7, UML-2.5.1 Activity, CallBehaviorAction, Action, Parameter, Activity Diagram, ObjectFlow, Pin, InputPin, OutputPin SysML Activity Diagram, MD:UNSPECIFIED Webel::MPsy, Webel::Psy, Psychrometrics, Mathematica
GOTCHA, WARNING Mathematica: The output form of Mathematica follows internal rules that may not always correspond exactly to how a human might typeset it. Wolfram Language, Mathematica, Wolfram, equation
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: Equation registry with variable/quantity markup Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: SysML4Mathematica: Convention: A prefix '$doc' indicates a documentation String for each primary variable/quantity (argument or output) SysML-1.6, SysML-1.7, UML-2.5.1 Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Webel::Psy
CONVENTION, NAMING Webel: SysML4Mathematica: Convention: A prefix 'sym$' indicates a markup variable "symbol" for a documented variable. It need not be a String, but each referenced part MUST be a String, not a raw Mathematica Symbol, to avoid namespace clashes! SysML-1.6, SysML-1.7, UML-2.5.1 Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language, Webel::Psy
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$wat$i' indicates water (liquid or vapour) flow TO (into) the humid air mixture. A suffix '$wat$o' indicates water (liquid or vapour) flow FROM (out of) the humid air mixture. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour, flow direction, flow
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$sat' indicates a humid air mixture quantity at saturation (relative humidity = 1 or degree of saturation = 1). Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, vapour, water vapour, saturation, relative humidity, degree of saturation
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$ha' indicates a HUMID air mixture variable, quantity, or function or a PER humid air mass quantity. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$a' indicates a DRY air component variable, quantity, or function. A suffix '$da' indicates a HUMID air mixture quantity PER dry air. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$wat' indicates a water-related variable, quantity, or function (note that 'w' is reserved for the humidity ratio). Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour, flow direction, flow
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: Variable/quantity registry and naming conventions, with symbol markup. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: The term 'steam' (indicated in variable names with a suffix '$s') is reserved for water vapour created through boiling. Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
CONVENTION, NAMING Webel: Psy/MPsy: Psychrometrics for Mathematica: A suffix '$g' in a water-related variable name refers to water vapour (a special case of gas) or steam. A suffix '$f' refers to liquid (fluid) water. [Although a gas is a fluid.] Psychrometrics, Webel::MPsy, Webel::Psy, humid air, water, liquid water, steam, gas, fluid, vapour, water vapour
MODELLING, NAMING, TIP Webel: SysML4Mathematica: Does every bit of the Mathematica code need to be modelled in SysML? No. Typically just the main function parameters and their interdependencies, data structures, and main code logic. Except for special or educational purposes. SysML-1.6, SysML-1.7, UML-2.5.1 Activity, OpaqueBehavior ConstraintBlock Webel::SysML4Mathematica, Mathematica, Systems Modeling Language, SysML, SysMLv1.x, Wolfram Language
ASSERTION, TIP Psychrometrics: Calculations of the mass flow rate of the dry air component (assumed constant under steady state) from the ENTRY volumetric flow rate of the humid air mixture MUST use the INITIAL state variables! Psychrometrics, humid air, air, water, water vapour, steam