PhD Thesis Abstract (English)

User interface (UI) development, in the scope of data intensive interactive applications, is a time consuming but repetitive task. Nevertheless, few research projects address its automatic generation.

Existing model-driven approaches to the UI automatic generation either demand the full construction of a UI model, which, with data intensive applications, corresponds to moving the repetitiveness of the UI construction to the modeling level, or demand a set of complex sub-models polluted with concrete UI information.

This situation sets aside a more generalized utilization of such approaches.

A few solutions found in the literature try to simplify the demanded sub-models by generating other sub-models from the previous ones, but they have revealed to be very inflexible, making it hard to work around less ``standard" problems.

Based on the identification and comparison of the state-of-art tools and approaches to the automatic generation of user interfaces, this Ph.D. research work addresses the automatic generation of data driven interactive applications, including its user interface, following a model-driven paradigm.

The proposed approach starts from platform independent non-UI models of the system under development, namely its domain model and its use case model, and generates a UI model, which is used, together with the domain model and use case model, to generate the completely functional final code, which may be used as a prototype or as a step for posterior refinements towards the final application.

An iterative development process for data intensive interactive applications, aligned with the model-driven architecture (MDA), is also addressed, comprising model validation through a generated prototype at the end of each iteration.

The presented approach shall be viewed in an evolutionary development perspective, starting with a prototype that enables the validation and execution of executable system models, in an early phase of the software development process, and being possible to use it as a base for subsequent developments, by refining the previous models or complementing them with new sub-models.

OCL and an action semantics language are used to add rigor and semantic richness to the system model, and allow the generation of features derived, for instance, from the operations' body, invariants and preconditions defined in the model, that contribute to the enhancement of the UI usability and acceptability.

Two case studies are presented to validate the proposed approach.