1. A computer-implemented method for modeling, comprising the steps of: using a domain specific modeling language to prepare a first model of a subject, the subject having variants, said first model comprising elements, wherein; creating a second model of the subject that comprises a variability layer having variability elements, the variability elements having respective configuration conditions linked thereto, the configuration conditions comprising Boolean expressions, adding the second model to the first model as a separate layer on the first model to thereby produce a combined model by attaching said variability elements to at least a portion of said elements of said first model, wherein the elements of the first model are unchanged by the step of adding the second model; implementing an instance of the combined model by assigning respective constraint values to the configuration conditions; making respective evaluations of the configuration conditions of said variability elements in the combined model; and classifying said variability elements for inclusion in different ones of said variants responsively to the respective evaluations of said configuration conditions.