Webel Radio Net: Focus BDD for block 'NetSession'

Gallery
Tutorial
The NetSession block carries a SessionSpec (which was issued by the NetManager «actor») and is responsible for logging selected aspects of the net session (from the perspective of the Net Control Station) and tracking which stations are active (means have confirmed session initialisation) and which stations have then successfully joined the session, and may thus participate in radio messaging.

Click on the image to view it full size

Within the system model, the current NetSession is owned by the RadioNet system. Amongst the stations, only an NCS (with an NCS handler) has direct access to the net session, which is modelled as a "shared" reference; other stations only have the channel info and session token (after session initialisation).

Here active and joined are separate concepts. A station is active once it has confirmed session initialisation (the NCS can self-initialise). Thereafter, non-NCS Participating Stations may attempt to join (or leave). For a Participating Station (PS) active corresponds to the state Pending of its HandlerPS. The Net Control Station (NCS) does not ever have to itself join.

The NetSession leverages a SessionLog to track joining, leaving, and logging of messages relayed by the NCS. The log:SessionLog is a private «friend» of NetSession. Joining and leaving are tracked as member events in the SessionLog as we'll see later in more detail.

Many of the methods of the exposed operations of NetSession simply delegate to the (private) SessionLog; frequent use of such wrapping delegating methods may seems tedious, but they afford separation of the exposed services from the internal implementation, and could also be used to include additional service access checks.

A quick "freestyle" way to model such delegations is with Usages (keyword «use») in a BDD between Activity and OpaqueBehavior symbols. More formally, in SysMLv1 one can use AdjunctProperty, which requires more modelling effort, but can then be validated:

Up next
Notes
Snippets (quotes/extracts)
Visit also
Visit also (backlinks)
Related slides (includes other tutorials)
Related slides (backlinks, includes other tutorials)