Product Line Engineering (PLE) is the engineering of a family of related products using a shared set of (digital) engineering assets. In case of physical systems, before the actual production of a product line begins, a whole set of digital artifacts must be maintained to describe the entire family (variants) of products. In the context of the product family, these artifacts depict the entire range of possible product variants and contain a surplus of information describing every possible feature of the product (commonly referred to as 150 % models and documents). A variant management tool is then used to ‘adapt’ these digital artifacts to each specific product by ‘cutting’ them to describe a specific product (variant) in the product line.
The focus here is a system model artifact (a SysML model developed in Cameo Systems Modeler), which is just one among many digital artifacts that could be adapted to specific variant realization. The system model may also be executable and may have an execution interface (GUI mock-up) on top. The execution interface is contained in the same modeling environment (and is also a part of the model itself), therefore, it is possible to adapt it to various variant realizations.
PLE integration can ‘cut’ not only through structure and behavior part of the system model but also through the GUI mock-ups that provide the user-friendly front-end for executable models. Consequently, the GUI of the executable model matches the available structure and behavior that is required by a specific variant and can then be analyzed by a means of simulation.
To illustrate this principle, a Coffee Machine sample is used. This sample project was presented by No Magic at the 2016 TdSE event in Herzongenaurach, Germany.
When realizing a specific variant of the Coffee Machine, there is an option to choose its edition: Standard or Deluxe. The Deluxe edition of the Coffee Machine makes Espresso, Cappuccino, Latte, Macchiato and double Espresso. The Standard edition only makes Espresso and Cappuccino.
To be able to ‘cut’ the GUI mock-up according to the features described in the Feature Model, an Existence Variation Point must be added to specific GUI elements. In this example, the Variation Points are added to indicate that only the Deluxe Edition of the Coffee Machine can brew the full range of coffee types.
Adding a Variation Point is pretty straightforward. Select a GUI Element (1) and add an Existence Variation Point (2). Specify ‘Deluxe’ feature (3), indicating that this GUI element will only be available for the Deluxe edition of the Coffee Machine. Note that when you add a variation point, a small ‘v’ icon is displayed on the model element.
Select the Standard Edition variant of the Coffee Machine (4) in the pure::variants integration pane. Then ‘Cut’ the Model to the selected variant (for this, select Tools > Model Transformations > Variant Realization).
The Standard Edition of the Coffee Machine is then realized and can be executed (simulated) as in the screenshot below.
It needs to be noted that this approach works not only with pure::variants integration, but also other variation point providers like BigLever Gears.
The Coffee Machine project and the pure::variants project are attached here for hands-on tryout. To fully use this sample, Product Line Engineering and Pure Variants Integration plugins (both free) for Cameo Systems Modeler must be installed. In addition, pure::variants v. 4.0 or later is required (evaluation version is also available for free).
Download the Cameo Systems Modeler project and pure::variants project here: BUNDLE