Separates problem and implementation models

The basic idea of pure::variants is realising product lines by family models and feature models. Contrary to previous feature model based technologies, pure::variants captures the problem with feature models and the solutions with family models separately and independently. Family models are the »memory« of inter-relations, restrictions and requirements of the software elements. A family model consists of so-called components. Components represent at least one attribute of the software solution and contain the logical parts like classes, objects, functions, variables and documentation. A feature model specifies the interdependencies of the features of a product line. They allow a uniform representation of all variabilities and commonalities of the products of the product line.

Manages complex solutions

While other feature model based approaches merely allow the use of only a single feature model, pure::variants facilitates the use of multiple feature models that are hierarchically linked. This approach ensures feature combination consistency and simplifies the re-combination of product lines or parts of them into new ones.

Transforms requirements into solutions

During the problem analysis and solution design stages of software development, pure::variants records and administers all models and information, thus assists in the creation of software families implementing product lines. pure::variants can even be used to automatically generate custom-made solutions:

A user (developer or customer) selects features required for the desired product from the feature models. pure::variants checks the validity of this selection and if necessary automatically resolves dependency conflicts. Thereby it maintains the integrity of dependencies, no matter how complex they are. A valid selection triggers an evaluation of the family models that contain component definitions consisting of logical and physical parts. The evaluation process results in an abstract description of the selected solution in terms of components. This description controls the transformation process that creates the custom-made software solutions.

Solves conflicts automatically

At every stage of the evaluation process conflicts are solved automatically or, should this not be feasible, are handed over to the developer for solving.

Technical specifications

  • Supported platforms
    • Windows 2003/2008/2012 Server, Windows 7
    • Linux Ubuntu 10.04 LTS (other on request)
    • Mac OS X 10.5 and newer
  • Supported Extensibility Interfaces
    • Java
    • JavaScript
    • COM/OLE (Windows only, not for CE)
    • Eclipse extension point interface
    • XSLT
  • XML based native data formats
  • Independent of programming language
  • Seamless integration into Eclipse IDE
  • Optional Extension modules (not for CE)
    • SCM access (CVS,IBM ClearCase, Subversion, ...)
    • RM access (e.g. Doors, CaliberRM, PTC Integrity)
    • LM Database access (e.g. IBM ClearQuest, Bugzilla)
    • Buildmanager
  • Supported import/export formats
    • HTML
    • XML
    • CSV
    • Extensible via user definable import/export modules