Entwicklung interaktiver Systeme mit Hilfe von Model Based User Interface Development und HCI Patterns Roland Petrasch Fachbereich VI, Forschungsschwerpunkt Software-Engineering Abstract deutsch Der modellgetriebene Entwicklungsansatz trennt die Fachlichkeit von der Technologie und kann bei interaktiven Systemen vorteilhaft genutzt werden. Allerdings sind beim Thema modellbasierte Entwicklung von Benutzeroberflächen noch viele Fragen offen, von denen einige hier beleuchtet werden. Vieles spricht dafür, dass erst in Verbindung mit HCI-Patterns eine intensivere Nutzung von modellbasiertem Ansätzen im HCI-Bereich stattfindet. Auch der Entwicklungsprozess spielt dabei eine wichtige Rolle. Abstract englisch Model based or model driven development separates domain aspects from technological details and can be applied to interactive systems. However, there are still open issues concerning model based user interface design. This contribution discusses some of these issues. There are signs indicating that model based approaches for interactive systems can only be successful in practice when combined with HCI or usability patterns. Also the development process is important. 1. Einleitung Die Medieninformatik fokussiert die Entwicklung interaktiver Systeme, die u.a. durch die Verbreitung mobiler Geräte (z.b. Appls für das Apple IPhone) immens an Bedeutung gewonnen haben. Durch modellgetriebene oder modellbasierte Entwicklungsansätze lässt sich nicht nur die Entwicklungsproduktivität erhöhen, sondern (zumindest potentiell) auch die Usability (Software-Ergonomie). Benutzeroberflächen werden im Rahmen des User Interface Developmenst (UID) oftmals noch manuell erstellt (klassische Programmierung), obwohl sich der Großteil des Programm-Codes automatisch generieren ließe, wenn modellgetriebene Verfahren zum Einsatz kommen. An interaktive Systeme werden u.a. software-ergonomische Anforderungen (z.b. gem. [ISO9241]) gestellt, die es auch beim Einsatz modellgetriebener Verfahren zu erfüllen gilt. Im Folgenden sei beispielhaft aufgezeigt, wie dies in der Verbindung mit HCI-Patterns erfolgen kann. 2. Modell- und patternbasierte Entwicklung interaktiver Systeme Modellgetriebene oder modellbasierte Software-Entwicklung ist in der Praxis weit verbreitet und bedarf keiner grundlegenden Erläuterung mehr, so dass an dieser Stelle der Fokus auf die Benutzeroberfläche gelegt sei: Model Based User Interface Development (MBUID) ist gem. der MDA [MDA] die Erstellung (plattformunabhängiger bzw. abstrakter) UI-Modelle des interaktiven Systems (Computation bzw. Platform Independent Model, CIM / PIM) und die Transformation zu plattformspezifischen bzw. konkreten UI-Modellen (Plattform Specific Model, PSM) [Petr06]. Der UI- Code, d.h. das lauffähige interaktive System (Platform Specific Implementation, PSI) lässt sich dann teilweise oder komplett generieren (s. Bild 1). Bild 1: MBUID für interaktive Systeme mit Modelltransformationen gem. der MDA Für die abstrakte Beschreibung des User Interface gilbt es u.a. zwei Sprachansätze: Die Nutzung eines oder mehrerer UML-Profie, z.b. GUILayout [Blan04], Wisdom [Nune01], oder Verfahren mit eigenen Metamodellen, z.b. UMLi [Silv03].
Entsprechende XML-basierte Sprachen wie UsiXML [UsiXML] sind verfügbar. Um die Idee von MBUID zu veranschaulichen sei als Beispiel ein einfaches UML-Profil für MBUID vorgestellt (s. Bild 2), welches drei Stereotypen für die Modellierung interaktiver Systeme einführt: <<Dialog>>, <<Interaction>>, <<Interactionelement>>. Zu beachten ist, dass sich die Stereotypen sowohl für UML-Klassendiagramme als auch für Zustandsmaschinen einsetzen lassen, was die Flexibilität bei der Erstellung von UI-Modellen erhöht.. Bild 2: Einfaches UML-Profil für das MBUID Mit Hilfe dieses Profils lassen sich abstrakte UI-Modelle erstellen und relativ leicht entsprechender Code generieren. Wie aber können bewährte software-ergonomische Mechanismen oder projekt- bzw. kundenspezfische Vorgaben (Style Guide) in die Modellierung eingebracht werden? Immerhin stellen UI-Modelle per se noch nicht die ergonomische Qualität sicher. Die Antwort heißt: HCI-Patterns. HCI- oder Usability-Patterns sowie Beschreibungssprachen sind seit geraumer Zeit verfügbar, z.b. [HCIP], [Grah03], [Welie03]. Sie tragen wie auch Design-Patterns zu einem Wissenstransfer bei und sind in der Praxis durchaus verbreitet [Borc00]. Auch für HCI-Patterns sei an dieser Stelle ein einfaches UML-Profil vorgestellt: Mit dem Stereotypen <<HCI_Pattern>> wird das Package markiert, in dem sich das Muster befindet. Parameter für das Pattern tragen dazu bei, dass es sich in verschiedenen Kontexten einsetzen lässt und Bedingungen definieren die statische Semantik (s. Bild 3). Bild 3: Das UML-Profil für HCI-Patterns (Ausschnitt) MBUID- und HCI-Pattern-Profil lassen sich nun für die Erstellung der UI-Modell nutzen. Bild 4 zeigt als Beispiel das Feedback-Pattern (auch Yes/No/Cancel-Pattern genannt), das die Navigationsalternativen beim Verlassen von Dialogen modelliert und eine Benutzerentscheidung berücksichtigt, z.b. bzgl. des Speicherns im Falle eines datenverändernden Formulardialogs.
Bild 4: Feedback-Pattern als UML-Klassenmodell Als Beispiel sei ein UI-Modell (PIM) mit zwei Dialogen aufgeführt: Eine Liste (StudentList). Von einem Editierdialog (StudentEditor) kann der User durch eine Interaktion (OK-Button ) wieder zur Übersicht zurück navigieren (s. Bild 5). Im UI- Modell wird nun eine Referenz auf das HCI-Pattern (z.b. das Feedback-Pattern), eingefügt und mit den anderen UI- Elementen verbunden (gem. der Parameterspezifikation): Yes- und No-Button führen den User wieder zur Übersichtsliste und mit dem Cancel-Button gelangt der User wieder zum Editierdialog zurück. Mit der Referenz auf das HCI-Pattern verwendet das abstrakte UI-Modell nun dessen Interaktionskonzept. Bild 5: Die Anwendung des Feedback-/YNC-Pattern auf das UI-Modell (PIM) Vorteilhaft ist z.b. die Erfüllung der ergonomischen Anforderung Erwartungskonformität [ISO9241], da der Feedback- Mechanismus durchgängig in der gesamten Anwendung gleichartig funktioniert, wenn das Pattern konsequent zum Einsatz kommt. Das Ergebnis sind generierte Benutzeroberflächen, die nur wenig manuelle Nacharbeit erfordern. Bild 6 zeigt das aus dem UI-Modell generierte User Interface mit Feedback-Dialog.
Bild 6: Die Anwendung des Feedback-/YNC-Pattern auf ein UI-Modell (PIM) Für MBUID ist allerdings auch ein geeigneter Prozess (Vorgehensmodell) notwendig, der zwischen der MBUI-Plattform (MDA-Infrastruktur) und dem Kundenprojekt unterscheidet (s. Bild 7). Während in der Systemanalyse das CIM/PIM, d.h. die abstrakten UI-Modelle entstehen, sorgt die MBUI-Plattform dafür, dass diese Modelle im Rahmen von M2M- oder M2T/C- Transformationen zum interaktiven System überführt werden. Bild 7: Vorgehensmodell für MBUID 3. Zusammenfassung HCI-Patterns lassen sich mit modellbasierter Software-Entwicklung für interaktive Systeme verbinden: Die Nutzung von Modellen führt zu einem hohen Automatisierungsgrad im Sinne der Code-Generierung. Die Vorteile von Patterns als bewährte (allgemeine) Lösungen für spezielle Probleme, wirken bei HCI-Patterns in Hinblick auf die software-ergonomische Qualität. Die MDA-Standards der OMG und die Eclipse-basierte Tool-Infrastruktur konnten für eine erste Anwendung des Ansatzes erfolgreich eingesetzt werden: Das Eclipse Modeling Project umfasst u.a. die UML [UML] für die Modellierung sowie die Transformationssprachen QVT [QVT] und MTL. Es sind allerdings noch einige offene Punkte zu klären, um eine breite praktische Nutzung zu ermöglichen. So sind z.b, die Metamodelle bzw. MBUIB- und HCI-Pattern-Profile näher zu untersuchen. Auch der hier vorgestellte MBUID- Entwicklungsprozess [Petr09] muss noch mit agilen Verfahren wie Scrum kombiniert werden und sich anschließend in der Praxis bewähren. Literatur [Blan04] [Borc00] [Grah03] [HCIP] [ISO9241] [MDA] [Nune01] K. Blankenhorn (2004): A UML Profile for GUI Layout, University of Applied Sciences, Furtwangen, Diplomarbeit J. Borchers (2000): Interaction Design Patterns: Twelve Theses, Position Paper. In: Workshop:Pattern Languages for Interaction Design. Proceedings CHI 2000. 2-3 April, The Hague, Netherlands I. Graham (2003): A pattern language for web usability. Addison-Wesley HCI Patterns website: http://www.hcipatterns.org ISO 9241-110:2006: Ergonomics of human-system interaction -- Part 110: Dialogue principles Object Management Group (2003): MDA Guide. Version 1.0.1, omg/2003-06-01 N. J. Nunes (2001): Object Modeling for User-Centered Development and User Interface Design: The Wisdom
Approach, Universidade da Madeira, Diss. [Petr06] R. Petrasch, O. Meimberg (2006): Model Driven Architecture. Eine praxisorientierte Einführung in die MDA. dpunkt Verlag [Petr09] R. Petrasch, M. Bureck (2009): HCI Pattern in the Context of Model Driven Development for interactive Systems. In: R. Petrasch et al.: Model Driven Software Engineering Transformations and Tools. Logos Verlag, S. 61-76 [QVT] Object Management Group (2009): MOF Ouery/Views/Transformation (QVT). Vers. 1.1 Beta 2 Spec. [Silv03] P. Pinheiro da Silva, N. W. Paton (2003): User Interface Modeling in UMLi. IEEE Software, S. 62-69 [UML] Object Management Group (2009): UML 2.2 Unified Modeling Language (UML) Superstructure. Version 2.2. Final Adopted Specification [Welie03] M. Van Welie, G. C. Van Der Veer (2003): Pattern Languages. In: M. Rauterberg, M Menozzi, J Wesson (Hrsg.): Interaction Design: Structure and Organization, INTERACT 2003,. IOS Press, Zürich, Switzerland [UsiXML] Webseite der http://www.usixml.org/ Kontakt: Prof. Dr. Roland Petrasch Tel. (030) 4504 2858 Mobil (01577) 3110103 E-Mail petrasch@beuth-hochschule.de