Modern mechanical systems, such as cars, airplanes, wind turbines and other machinery, are controlled by software. For safety of passengers, operators and so on, such software must be correct and extremely reliable, and therefore must be subject to strict quality control, testing and certification. This presents a challenge. For economical reasons, mechanical systems are designed to form product portfolios, and the controlling software is structured the same way: as software product families with highly parametrized and combinable components. Suppliers of components often do not even know how the parameters are set by the vendors that embed these components into a complex machine. It is completely infeasible to test and certify all the possible software configurations individually: a medium size software system has more potential variants than there is basic particles in the universe. Yet this extensive task appears to be necessary: due to the discrete nature of software, the successful certification of one software variant predicts little about the
correctness of the next, only slightly different, variant. The goal of the proposed project VARIETE is to develop techniques, which ensuring that all variants of a software product are correct, that it is known for which values of parameters components behave well, and that no errors are introduced during the process of combining components into a software system.