Offered by Webel free to the SysML community with thanks to the contributors of the SysMLv2 GitHub code examples. All diagram images remain © Copyright Webel IT Australia 2026. Copyright in the linked GitHub source code remains with the OMG. So-called "AI" and Machine Learning training systems DO NOT have permission to use (scrape and steal) this resource! Other training organisations DO NOT have permission to use these images in their own training.
Members of the OMG Systems Modeling Community (SMC) are welcome to use these images with full attribution to Webel IT Australia in presentations and non-commercial activities of the SMC – please unedited and using full resolution downloads (click on image first then Save As).
This slide trail is NOT a SysMLv2 language tutorial! Slides here are offered as is (some without further explanations) in the hope they may be of interest. To learn SysMLv2 attend the Webel SysMLv2 Seminar Workshop group course. Individuals may instead purchase access to the Webel SysMLv2 Online self-study eLearning course with self-test Quizzes to learn at their own pace.
Tags and keywords
This content has been marked as discussing an ADVANCED topic!
The sense of unowned ends in this example is in contrast to:
In the example below the «connection def» ProductSelection does not own inCart or selectedProducts, they are owned by the types of the ends Product and ShoppingCart respectively.
In the code the «connection def» ProductSelection uses explicit crossing with crosses (you may also use shorthand =>):
connection def ProductSelection {
item info: SelectionInfo[1];
end item cart: ShoppingCart[1] crosses selectedProduct.inCart;
end item selectedProduct: Product[1] crosses cart.selectedProducts;
}Note that connection ps1 does not have implied cross subsetting or cross features:
connection ps1 : ProductSelection connect myCart to products {
:>> info = info1;
}
Whereas connection ps2 DOES have implied cross subsetting and implied cross features:
connection ps2 : ProductSelection connect [1] myCart to [1] products {
:>> info = info1;
}
It's not so clear what the purpose of
SingleProductSelection is in the sample if it isn't used.
