Model-based design of interactive applications