7. A computer software product for modeling, including a computer storage medium in which computer program instructions are stored, which instructions, when executed by a computer, cause the computer to perform 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 instance of 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.
7. A computer software product for modeling, including a computer storage medium in which computer program instructions are stored, which instructions, when executed by a computer, cause the computer to perform 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 instance of 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. 10. The computer software product according to claim 7 , wherein said computer is further instructed to incorporate said variability layer as a profile, said profile comprising a plurality of stereotypes, said stereotypes being constructed in said separate layer.