Learn about Webel's comprehensive SysMLv2 Workshop Seminar course!
Webel now has a SysMLv2 Online Self-Study course with self-test Quizzes!
Learn about the Webel Q&A online self-testing system for SysML v2/v1

SysML2.0: NetworkConfiguration crosses example p.70: Multiple issues including missing multiplicity and inaccurate description in a comment

This page identifies a possible issue, inconsistency, concern, error, or bug!
One of the ways Webel IT Australia helps promote tools, technologies, and languages is by donating a lot of time identifying, tracking, and reporting potential issues, in order to help vendors and developers improve the tools and technologies. In some cases, we also offer workarounds and advice for users. All issues tracked on our public site are offered most constructively and with sincerest gratitude to the tool vendors and technology developers.
DISCLAIMER: Vendors do not officially endorse issue analysis by Webel IT Australia.
Icon class
icon_class
far fa-sticky-note
icon_class_computed
far fa-sticky-note
Note kind
Policy level
Specification keywords
SysMLv2 keywords
Keywords
Click on the image to view it full size
Concerns (adapted to fix TYPO Axle should be Hub):
part def NetworkConfiguration {
   part networkHubs[*] : Hub;
   part networkDevices[*] : Device;
   // Connects each one of the networkHubs to at most four of the networkDevices.
   connection networkConnections : DeviceConnection {
        end [1] part hub references networkHubs;
        end [0..4] part device references networkDevices;
   }
}

Presumably DeviceConnection is as from p.69 with explicit crosses (not the version from p.70) although it makes little difference as regards the issue as discussed below:

part def Hub {
    ref part connectedDevices [1..*] ordered : Device;
}

part def Device {
    ref part connectingHub [0..1] : Hub;
}

connection def DeviceConnection {
    end part hub : Hub crosses device.connectingHub;
    end part device : Device => hub.connectedDevices;
    attribute bandwidth : Real;
}

One issue is this comment, which could at least be better stated:

// Connects each one of the networkHubs to at most four of the networkDevices.

The connection usage networkConnections above can’t possibly alone do that. Each of the ends hub and device has multiplicity [1] (and indeed both with or without assigned feature values for networkHubs and networkDevices the Cameo Evaluation Plugin will only populate hub and device with [1] as long as the multiplicities of networkHubs and networkDevices are [*]). Only one networkConnections will be instantiated as it has default multiplicity [1], and as such it can’t carry a value of bandwidth for each actual connection.

See also the graph above illustrating some possible device to hub connection congurations, including mock per-connection data (could be the bandwidth or a data packet etc.).

The connection usage networkConnections needs to instead be implemented as an «abstract connection» with a multiplicity and then subsetted by multiple concrete connections, which together would meet the multiplicity rules imposed by the owned cross features of an abstract networkConnections[*].


The Webel SysMLv2 Course now has a dedicated module on Cross Subsetting!

In addition to the many examples and exercises on basic connections, the Webel SysMLv2 course now has a dedicated module just on cross subsetting and connection multiplicities, with detailed worked examples, clear explanations, and evaluations in Cameo.

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