Model-Driven Development of Advanced User Interfaces