An approach to concurrent engineering of user interfaces