Model-Driven Engineering for End-Users in the Loop in Smart Ambient Systems