Loading…
Thumbnail Image

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

Feuerstack, Sebastian

Das kontinuierlich wachsende Informationsangebot und die stetig steigende Anzahl von Anwendungen im Internet, die diese Informationen verarbeiten oder in Zukunft direkt vom Nutzer nach seinen individuellen Bedürfnissen selbst erstellt werden können, benötigen strukturierte, einfach und effizient nutzbare Bedienungsoberflächen. Eine allgegenwärtige Verfügbarkeit dieser Anwendungen, wie es durch die Technologie schon heute möglich ist, erfordert Bedienungsoberflächen, die ihre Darstellung an die Situation des Nutzers anpassen können. Auch die Bedienungsweise sollte konsistent bleiben, wenn der Nutzer seine Bedürfnisse, das Bedienungsgerät, oder die Interaktionsform wechselt. Bislang ist es nicht gelungen Anwendungen zu entwickeln, die sich selbstständig auf den aktuellen Nutzungskontextes anpassen können. Vielmehr werden Anwendungen mehrfach für spezifische Geräte- und Nutzergruppen entwickelt oder die Anpassung der Oberfläche wird ohne Bezug der zugrundeliegenden Semantik der Anwendung vorgenommen. Die Adaption der Oberfläche gelingt demnach bislang entweder nur für Geräte die während des Entwicklungsprozesses einer Anwendung explizit berücksichtigt wurden, oder geschieht ohne Kenntnis der zugrundeliegenden Anwendung indem z.B. Bilder grundsätzlich verkleinert oder erweiterte Navigationsmöglichkeiten geschaffen werden. Diese Arbeit schlägt eine strukturierte Methodik zum Entwurf und Entwicklung von interaktiven Anwendungen vor, die sich selbstständig auf unterschiedliche Nutzungskontexte adaptieren können. Dabei wird der Schwerpunkt auf der expliziten Beteiligung des Nutzers während des Entwurfs- und Entwicklungsprozesses gelegt. Ziel ist es die Denkweise des späteren Nutzers zu erfassen und bei der Anwendungsentwicklung zu berücksichtigen. Die Methodik beschreibt hierzu einen Prozess, in dem das Anwendungsdesign über mehrere Modelle auf verschiedenen Abstraktionsstufen entwickelt wird. Dabei spezifiziert jedes Model deklarativ eine Sicht auf die Anwendung. Ausgehend von sehr abstrakten Modellen, werden schrittweise konkretere Modelle abgeleitet, die am Ende des Prozesses jeweils eine Oberfläche für eine Gerätegruppe und eine Interaktionsform beschreiben. Durch diese schrittweise Verfeinerung wird die Konsistenz einer Anwendungsoberfläche über mehrere Interaktionsformen und Gerätegruppen hinweg sichergestellt. Die deklarative Semantik der Modelle erlaubt die unmittelbare Interpretation jedes Modells. Somit wird der häufig auftretende Bruch zwischen Designspezifikation und Codierung der Anwendung vermieden. Die vorgeschlagene Methodik wird durch zahlreiche Entwicklungswerkzeuge unterstützt, die alle Phasen des Entwicklungsprozesses nahtlos abdecken und für jeden Entwicklungsschritt auch die unmittelbare Ableitung eines Prototyps unterstützen. Die Prototypen werden als Beispiel zur unmittelbaren Konfrontation des späteren Nutzers verwendet und erlauben die frühe Berücksichtigung von Verbesserungsvorschlägen im Entwicklungsprozess. Die in dieser Arbeit vorgeschlagene Methodik wird durch eine Laufzeitumgebung (die „Multi-Access Service Platform“) ergänzt, die mittels Softwareagenten die in der Methodik spezifizierten Modelle direkt ausführen kann. Die Laufzeitumgebung verfügt über Schnittstellen zu den Entwicklungswerkzeugen. Dadurch können Modelle auch zur Laufzeit des Systems mittels der Werkzeuge geändert oder ergänzt werden, um neue Funktionen zu testen oder eine Anwendung um neue Nutzungskontexte zu erweitern. Es existieren schon jetzt zahlreiche Beschreibungssprachen mit denen eine interaktive Anwendung auf Basis verschiedener Abstraktionsstufen spezifiziert werden kann. Auch wenn sich bislang keine dieser Sprachen durchsetzen konnte, beschränkt sich diese Arbeit daraus, fehlende Modelle zu ergänzen (1), akzeptierte Modellvorschläge zu erweitern (2) und Modellalternativen vorzuschlagen, die bislang noch unberücksichtigt geblieben sind (3). Zu (1) wird ein Layoutmodell sowie ein Entwicklungswerkzeug vorgeschlagen, mit welchem sich Aussagen spezifizieren lassen, die beschreiben, wie andere Designmodelle bezüglich des Oberflächenlayouts zu interpretieren sind. Zu (2) wird die ConcurTaskTree Notation, welches eine allgemein akzeptierte Beschreibungssprache zur Aufgabenanalyse ist, um die Möglichkeit der direkten Modellinterpretation erweitert und eine explizite Notierung von Domänenkonzepten ergänzt. Zu (3) wird ein alternatives abstraktes Modell zur geräteunabhängigen Spezifikation von Bedienungsoberflächen entworfen, welches im Gegensatz zu anderen Vorschlägen aus dem Domänenmodell anstelle eines Aufgabenmodells abgeleitet wird. Die Validierung der Arbeit erfolgt zum einen theoretisch durch Konfrontation der Methodik, der Architektur und der Modellergänzungen mit den Anforderungen aus einer Anforderungsanalyse auf Basis der Evaluation des aktuellen Stands der Technik. Zum anderen wird auf einer praktischen Ebene die Anwendbarkeit der Methodik, Werkzeuge, Architektur und der Modellergänzungen mittels einer Fallstudie, die während eines Forschungsprojektes umgesetzt wurde, detailliert beschrieben.
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. The validation of this work is done on a theoretical level by confronting the method, the run-time system, and the language extensions to the initial requirements and additionally on a practical level by presenting one of the several case-studies that have been undertaken as part of a research project.