1. A method for modelling and simulating a system using an event based simulation system, comprising storing a plurality of models each representing a component of the system, storing status information for each model, generating a plurality of events affecting the status of at least one model, simulating behaviour of the system by processing said events, and outputting data from said simulation to a user by means of a user interface, wherein the user interface is modelled by the simulation system as a further component of the system, and said user interface is updated by processing said events.