A Method for the User-centered and Model-based Development of Interactive Applications

Sebastian Feuerstack
Nowadays, internet access is available in nearly every situation, but applications fail to adapt to the user's situation. Applications are still developed for a certain device and a specific context-of-use and adaption happens on the user's end-devices without taking into account the applications' semantics. This results in applications that cannot be convenient accessed on a device that the application's designer has not explicitly considered. Currently most of the internet services cannot be comfortably accessed by today's mobile device's browsers that are often only able to scale down images or offer enhanced scrolling capabilities. Further context-of-use adaptations or support for additional modalities have only be realized for very specific applications like for instance in-car navigation systems. This dissertation research focuses on creating a method for interactive software design that implements a strong user-centric perspective and requires testing steps in all phases of the development process enabling to concentrate on the end-users' requirements and indentifying how the users' way of thinking can be considered as the basic way of controlling the application. The method involves the creation of various models starting by very abstract models and continously substantiating abstract into more concrete models. All of the models are specified in a declarative manner and can be directly interpreted to form the interactive application at run-time. Therefore all design semantics can be accessed and manipulated to realize context-of-use adaptations at run-time. By the abstract-to-detail modeling approach that includes deriving one model to form the basis of the next, more concrete model, consistency can be archieved if an application needs to be designed to support different platforms and modalities. The method is supported by tools for all steps of the development process to support the designer in specifying and deriving the declarative models. Additionally all tools support the generation of prototypes and examples enabling the developer testing intermediary results during the design process and to consider users' feedback as often and early as possible. The method is complemented by an associated run-time architecture, the Multi-Access Service Platform that implements a model-agent concept to make all of the design models alive to bridge the actual gap between design-time and run-time of an interactive model-based system. Since the run-time-architecture is able to synchronize changes between the different models it can be used on the one hand to manipulate a running system in order to prototype and test new features and on the other hand it enables to personalize a running system instance to a certain user's requirements. The architecture considers the tools of the method and enables the designer to deploy changes of the models directly into the running system. In the past a lot of user interface description languages (UIDL) have been proposed to specify an application on different model abstraction levels. As of now, most of these proposals have not received a broad acceptance in the research community where most research groups implement their own UIDLs. Both, the method and the run-time architecture abstract from a specifc UIDL but pay attantion to the actual types of abstraction levels that have been identified during the state of the art analysis. Instead of proposing yet another UIDL, the work concentrates on identifying and realizing missing aspects of existing UIDLs (1), in enhancing well accepted approaches (2), and by introducing alternative aproaches that have not been proposed so far (3). Regarding (1) the work describes an approach for a layout model that specifies the user interface layout by statements containing interpretations of the other design models and can be designed and tested by using an interactive tool. Specifying a task model has been widely accepted to implement a user-centric development process. Thus, we enhance the ConcurTaskTree notation to support run-time interpretation and explicit domain model annotations to support our work (2). Finally, the work proposes a different way of specifying an abstract user interface model (3) that is based on a derivation based on a domain model instead of using a task model as the initial derivation source.