Using variability modelling and design patterns for self–adaptive system engineering: application to smart–home. (2015)