Webel: SysMLv2: PROPOSAL: New Causality Graph Diagram for coordinating MetaEvents across an entire model

Icon class
icon_class
far fa-sticky-note
icon_class_computed
far fa-sticky-note
Note kind
Policy level
Specification keywords
UML keywords
Keywords
Click on the image to view it full size

This is an informal public record of an idea for SysMLv2, and has not yet been formally submitted to the OMG SST for SysMLv2.

To understand this proposal it helps to know some basics about special relativity from physics. This is not some loopy kooky way of trying to make this sound clever, the idea is directly related to one of the cornerstones of special relativity, namely that observers in different reference frames may not agree on the time or time-ordering of events (although there are causality restrictions). It turns out this also afflicts UML Lifelines:

The bigger picture is that there is a need to coordinate better what happens across all different layers of a SysML model, especially across Pins and Edges of Activity Diagrams, Message sending between Lifelines, and Ports and Connectors of IBDs (or their upcoming SysMLv2 equivalents).

The basic idea here is to have a MetaEvent system that acts like a causality heap. An Element may register any local event against the MetaEvent system, including local causality information, such as what other local event(s) it knows came before. Upon registration a local event is available system-wide as a MetaEvent.

The MetaEvent Heap and can also be queried to extract cauality information for, say, a given Lifeline.

The MetaEvent causality ordering can be agreed upon by every single type of Element anywhere in a system (even if their local “experience" of the sending and receiving of messages gives different local times and time-orderings).

Unlike an Action, a MetaEvent is always instantaneous and takes place at system-wide meta coordinates that represent an invariant. In special relativity one has (space,time) invariants. In the proposal here, the role of "space/location" is played by model elements (typically at instance/property level).

A localTime can be optionally recorded, but it only has meaning within the local time frame of an instance/property-level model element.

A MetaEvent can be keyed to, for example, one or more of a Lifeline, Port, Pin, and these must ultimately by consistent across the model.

An example of a MetaEvent is the arrival of something at a Port or Pin or the arrival of a Message at a Lifeline (but as registered against the MetaEvent system). The entire focus of the diagram is on causality. Local time is a secondary matter (it is NOT trying to be a Timing Diagram).

The localTime where given for a meta events must, however, always be consistent with causality ordering. For example, in the diagram we have E2 (localTime=12.3) < E4(localTime=15.4) < E7(localTime=15.8).

The choice of the keyword «by» (from “caused by”) might not be ideal. A «by» can be indicated as ’transitive’, such as E4 < E6 consistent with E4 < E5 < E6 (where ‘transitive’ here basically means ‘derived’, but that term is over-used). Another candidate is simply «after».

Two events maybe considered «simultaneous» by the MetaEvent System; individual lifelines can’t claim any knowledge of simultaneity of meta events other than those local events that occur subject to their own localTime.

Relates to
Related notes
Related notes (backlinks)
Related snippets (extracts)
Visit also
Visit also (backlinks)