Software Engineering for Variability Intensive Systems (Foundations and Applications)