Broadcast date: December 19th, 2021
Welcome to the 19th door of our MBSE Podcast Advent Calendar. Today, we take a look at the modeling of variants.
Very often, a system contains variants; so does our MBSE Podcast Christmas Tree. We provide trees with different Christmas stars, balls, stands, and fairy lights.
Let’s look at our model of how to define the variants.
We restructured our model from a simple system model to a product line model. To do this, we have defined three new packages at the top level: a core package that contains all elements that apply to all products, a variation package that contains the variable elements, and a package that contains the configurations, for example, “product definitions”. Our previous packages are now all arranged below the core package.
In the TMPCT_Variations package, there is a package diagram that shows the variants of the product line in the form of a feature tree. The variation packages represent the discriminator of variability. Here it is generally only the kinds. The minVariants/maxVariants properties specify how many of the variants may be in a valid configuration at the same time. Mostly it is exactly one. An exception here is the “Christmas Ball Kinds” variation. Here also two variants may be contained at the same time in a configuration.
The variant packages each contain all exclusive model elements only required by a variant. Constraints can be defined between the variants. Typical variant constraints are REQUIRES and XOR. A REQUIRES constraint is defined between the “Premium Star” and “Large Stand” variants, i.e. if the “Premium Star” variant is selected, the “Large Stand” variant must also be selected for a valid configuration.
The variant “Premium Star” defines a special “Christmas Star” that has a LED starlight. The “Premium Christmas Star” block specializes the common “Christmas Tree Star” block from the core.
The configuration package contains the variant configurations, which are specifications of concrete products of the product line. The three defined editions of our MBSE Podcast Christmas Tree are Eco, Premium, and Standard. Each configuration selects the contained variants, which can be perfectly done in a matrix. The selection is modeled by a package-import relationship.
Here we have intentionally included an error for demonstration purposes. The configuration “TMPCT Premium Edition” has selected the variant “Premium Star”. The REQUIRES constraint described above requires that the variant “Large Stand” must then also be selected, but we have selected the variant “Standard Stand”.
The error is automatically displayed in the matrix. As already mentioned, the REQUIRES constraint is a stereotype from the SYSMOD profile and also contains an OCL constraint that checks compliance with the rule. This is completely based on standards. The only tool-specific here is, that the tool is able to evaluate the OCL rule.
The block definition diagram shows a part of the definition of the “TMPCT Premium Edition”. The edition itself is a system element that specializes the system element from the core.
C As an example, it is shown how the “Premium Star” edition system is implemented. The “Premium Christmas Star” is explicitly defined as a part property that redefines the inherited property of the general star.
So much for the 19th door of our MBSE Podcast Advent Calendar. We wish you a great 19th of December.