A constraint-based variability modeling framework