1. Introduction

The pure::variants - Variability Exchange Language (VEL) feature enables the user to exchange variability information as description and as configuration with any engineering tool in a standardized way. For this a Variability Exchange Language document can be imported and generated by pure::variants. The VEL description document contains all relevant variation points of an asset of the engineering tool and the VEL configuration document contains the configuration of these variation points based on selected features from Feature Models in pure::variants.

For further information about the Variability Exchange Language please visit http://www.variability-exchange-language.org/.

Figure 1, “Overview of family-based software development with pure::variants” shows the four cornerstone activities of software product line development and the models used in pure::variants as the basis for these activities.

When building the infrastructure for your Product Line, the problem domain is represented using Feature Models. The solution domain, i.e. the concrete design and implementation of the software family, is implemented as Family Models.

The two model types used for Application Engineering, i.e. the creation of product variants / configurations, are complementary to the models described above. The Variant Description Model (VDM), containing the selected feature set and associated values, represents a single problem from the problem domain. The Variant Result Model describes a single concrete solution drawn from the solution family.


pure::variants manages the knowledge captured in these models and provides tool support for co-operation between the different roles within a family-based software development process:

  • The domain analyst uses the pure::variants Feature Model editor to build and maintain the problem domain model containing the commonalities and variabilities in the given domain.

  • The domain designer uses assets of other engineering tools to describe the variable family and to connect it via appropriate rules to the Feature Models.

  • The application analyst uses a Variant Description Model to explore the problem domain and to express the problems to be solved in terms of selected features and additional configuration information. This information is used to derive a Variant Result Model from the assets of the other engineering tool.

  • The application developer generates a member of the solution (feature selections and variant specific assets) from the Variant Result Model by using the transformation engine.

The reader is expected to have basic knowledge about and experiences with pure::variants. The pure::variants manual is available in online help as well as in printable PDF format here.

Please consult section pure::variants Connectors in the pure::variants Setup Guide for detailed information on how to install the connector (menu Help -> Help Contents and then pure::variants Setup Guide -> pure::variants Connectors).