A system, method and computer program that enables an application designer
to automate the process of development of user interfaces (UIs). The
designer develops UIs by modeling. The process of development of UI
applications by modeling does not require any coding. The modeling
activity is accomplished by using the visual modeling environment, which
among other tools comprises a set of pre-built reusable components. Each
component represents a dimension of functionality that is commonly
required in UI applications. The designer specifies application-specific
context for the components. Components when provided with application
specific context become tasks. The tasks are then connected together in a
logical order to develop an application. The applications thus developed
are then visually verified. These applications are then executed by an
Engine.