Adaptive User Interfaces for Smart Environments with the Support of Model-Based Languages