|title:||Leveraging Behavioural Domain Models in Model-Driven User Interface Development with GLUI|
|keywords:||User Interfaces, Model-Driven Engineering, Behavioural Models|
Viet Nguyen (ING)
Arend Rensink ,
Luís Ferreira Pires
Due to the introduction of a wide-range of complex interaction styles and devices, potentially reaching a large and diverse user group, offering a consistent user experience with a user interface has become increasingly complex. Therefore, the traditional approach of implementing user interaction directly into the implementation technology potentially leads to version inconsistency and high maintenance costs.
In this research, we investigate how a Model-Based User Interface Development (MBUID) approach can be applied that leverages the characteristics of behavioural domain models, resulted from a Domain-Driven Design (DDD) approach, to generate verifiable functionality of a front-end application for multiple platforms and different modalities while business analysts with a technical background are able to specify workflows that needs to be integrated.
Complexity is dealt with by separating domain logic from the implementation details. For this process, separate abstraction levels are defined and business logic is encapsulated in behavioural domain models. Three levels of abstraction are defined that increasingly refine the specification of the behaviour of a user interface. We examined how model transformations can be defined in this process to semi-automatically transform the source model to a refined target model while preserving the operational
semantics. As the behavioural domain model embodies part of the system behaviour, we examined how we can use these models to define the interaction with the system such that the user can invoke commands to manipulate these models. The combination of the defined models for each abstraction level and the model transformations, the transformation chain, allowed us to examine approaches how behavioural models can be used as a source to generate part of the functionality of an user interface.
To be able to preserve the correctness of each model and to generate a fully operational user interface, we focused on defining a sound specification of the task model, the first abstraction level of MBUID. We leveraged multiple existing techniques to define the structure, data flow and the interaction with the user and the system. This enabled us to create a sound specification and to generate an operational user interface, just as specified in the task model. We used this task model as input for the MBUID process and defined how we can generate applications that contain the same functionality on different platforms. We leveraged characteristics of behavioural domain models twofold. On one hand, we defined patterns to generate separate task models for commands that can be invoked on these domain objects. On the other hand, we defined an approach to combine these separate task models in a composed task model.
The solution has been validated by executing the transformation chain on real-world specifications used in the financial domain to model services.