Zurück zur Übersicht

UMLi = UML plus Interaktivität

Autor: Florian Huber

Der Begriff "Unified Modeling Language for Interactive Applications", kurz UMLi, bezeichnet ein seit 1998 laufendes Forschungsprojekt der "Information Management Group" der Universität Manchester, mit dem Ziel UML so zu erweitern, dass damit auch die Implementierung von Benutzerschnittstellen hinreichend unterstützt wird. Das Ziel von UMLi ist, die Entwicklung und Implementierung von Benutzerschnittstellen durch eine Verknüpfung von UML und "Model Based User Interface Development" (MB-UIDE) zu erleichtern.

Anhand von UML Klassen-, Sequenz- und Aktivitätsdiagrammen lässt sich die interne Struktur eines Programms anschaulich darstellen und damit auch weiterentwickeln. Das heißt die Art und Weise wie die einzelnen Klassen des Programms miteinander kommunizieren und wie sie sich zueinander verhalten wird durch die verschiedenen Diagramme abgebildet. Das Problem an dieser Betrachtungsform liegt jedoch darin, dass UML nur in geringem Maße dazu in der Lage ist, Benutzerschnittstellen der Applikation hinreichend darzustellen. Schwierig wird es also, wenn Abläufe die hauptsächlich in interaktiven Systemen vorkommen, wie z.B. die Wiederholung einer Aufgabe, durch UML Diagramme abgebildet werden sollen. Im Allgemeinen werden UML Diagramme schon durch die Abbildung eher kleiner Benutzerschnittstellen sehr schnell komplex, weshalb die Entwicklung der Programmarchitektur auf der einen Seite und die Entwicklung der Benutzerschnittstellen auf der anderen Seite bisher meist getrennt von einander behandelt wurden. Während für die Entwickler von Benutzerschnittstellen eher die Abbildung der Benutzeranforderungen im Vordergrund steht, interessiert die Programmierer eher der architektonische Aufbau der Anwendung. Für die Erstellung von Benutzerschnittstellen werden meist MB-UIDEs herangezogen, die eine Umgebung liefern, in der deklarative Modelle für die Entwicklung genutzt werden können. Mit Hilfe von MB-UIDE-Modellen lassen sich sowohl statische als auch dynamische Aspekte von Benutzerschnittstellen spezifizieren. Um die Zusammenarbeit von Programm- und Benutzerschnittstellenentwicklern zu erleichtern soll UMLi fähig sein die Aspekte beider Anwendungsbereiche in sich zu vereinen. Die Hauptaufgabe bei der Entwicklung von UMLi ist, die Einsichten die man aus der Betrachtung von MB-UIDEs erlangt, in eine abstrakte UML konforme Art umzuwandeln. UMLi soll, durch die nötige Integration von Benutzerschnittstellen und der darunter liegenden Anwendung, für Entwickler von Benutzerschnittstellen eine systematische und standardisierte Arbeitsweise ermöglichen und ihnen damit die Arbeit erleichtern.

Im Folgenden werden nun die Erweiterungen von UMLi im Vergleich zu UML anhand ausgewählter Beispiele vorgestellt. Zunächst einmal werden durch UMLi bestehende Diagramme, wie beispielsweise das Aktivitätsdiagramm um weitere Elemente erweitert um Interaktivität zu simulieren. Eines dieser Elemente ist der neu eingeführte Selektionsstatus, der 3 verschiedene Ausprägungen annehmen kann. Zum einen kann es sich um einen so genannten "OrderIndependentState" handeln, d.h. ein Zustand bei dem der Benutzer eine Reihe von Aktionen ausführen muss, die Reihenfolge in der er die Aktionen ausführen will aber ihm selbst überlassen bleibt. Ein Beispiel für eine solche Situation wäre die Eingabe in einer Login-Maske. Der Nutzer muss sowohl sein Passwort als auch seinen Benutzernamen eingeben bevor er sich seine Anfrage abschicken kann, in welcher Reihenfolge er die Eingaben tätigt ist jedoch seine freie Wahl. Zum anderen kann es sich um einen "OptionalState" handeln, wobei hier der Nutzer aus einer Reihe von Aktionen frei wählen kann welche der Aktionen er wie oft ausführen will. Um den Zustand zu verlassen muss der Nutzer ein Bestätigungsobjekt wie z.B. einen OK-Button betätigen. Ein Beispiel hierfür wäre die Eingabe von mehreren Adressaten beim E-Mail-versand. Der Benutzer kann so viele Empfänger angeben, wie er will und mit dem Abschicken der E-Mail den "OptionalState" verlassen. Der dritte Selektionsstatus ist der "RepeatableState", bei dem eine Aktion so lange vom System ausgeführt wird, bis der Nutzer den Abbruch der Aktion fordert. Ein passendes Beispiel für diesen Zustand wäre die Nutzung eines Internetradios. Hier werden dem Benutzer ständig Streampakete geschickt bis er den Stream abbricht.

Es werden jedoch nicht nur, wie oben gesehen, bestehende Diagramme durch neue Elemente erweitert, sondern auch komplett neue Diagramme eingeführt. Das "User Interface Diagramm" bildet im Wesentlichen eine Benutzerschnittstelle anhand von 3 Arten von Elementen ab. Zunächst einmal gibt es Anzeigen, welche grafisch Informationen an den Nutzer übermitteln. Auf der anderen Seite ebenso Eingaben, die Informationen des Benutzers einlesen und zuletzt noch Aktionsauslöser, die die im Allgemeinen die Informationsübertragung in Gang setzen. So könnte eine Benutzerschnittstelle für die Herstellung einer Verbindung durch Authentifizierung des Nutzers wie folgt abgebildet sein. Die Anzeigen der Schnittstelle beschränken sich auf "Name" und "Passwort" welche dem Nutzer signalisieren, dass er diese zwei Informationen eingeben soll. Entsprechend zu den Anzeigen gibt es jeweils eine Eingabe für Benutzername und Passwort in die der Benutzer seine Daten eintragen kann. Um die Informationen zu übermitteln befindet sich noch ein Aktionsauslöser im Diagramm, hier in unserem Beispiel etwa ein OK-Button.

Um Benutzerschnittstellen mit Hilfe von UMLi zu entwickeln empfiehlt sich ein Vorgehen nach folgendem Schema:

1. Zunächst einmal werden die Benutzeranforderungen modelliert, d.h. welche Spezifikation muss die Schnittstelle erfüllen bzw. was möchte der Nutzer.

2. Interaktionsobjekte festlegen, d.h. es werden verschiedene Szenarien und Anwendungsfälle betrachtet um die interaktiven Objekte auszumachen.

3. Interaktive Aktivitäten ausmachen, d.h. die Anwendungsfälle finden, die direkt mit dem Anwender kommunizieren.

4. Interaktive Aktivitätsmodellierung. Aus den erhaltenen interaktiven Aktivitäten kann ein erstes übergeordnetes Aktivitätsdiagramm erstellt werden. Dieses kann wiederum in weitere Bereiche unterteilt werden.

5. Verfeinerung des Aktivitätsdiagramms durch Zerlegung der Aktivitäten in Aktionszustände und der Spezifizierung von Objektabläufen.

6. Benutzerschnittstellenmodellierung. Dieser Schritt sollte parallel zu Schritt 5 ablaufen und am Ende sollte ein erstes konzeptionelles Modell der Benutzerschnittstelle stehen.

7. Konkrete Implementierung, d.h. die konkreten interaktiven Objekte der Benutzerschnittstelle werden mit den abstrakten Objekten der darunter liegenden Anwendung verknüpft. Ein Beispiel hierfür wäre die konkrete Implementierung einer Eingabe als JTextField.

8. Verfeinerung der konkreten Implementierung. Es wird versucht unter dem Augenmerk der Ergonomie und Useability die Implementierung zu verbessern.

Da es sich bei UMLi um eine Erweiterung von UML handelt, sind für die Nutzung von UMLi zur Erstellung von Benutzerschnittstellen natürlich auch weitere Kenntnisse notwendig. Der Nutzung geht also Zwingenderweise eine gewisse Zeit voraus, um z.B. die Syntax von UMLi zu erlernen. So wird es sich kaum lohnen, für ein kleines Programm in dem es nur eine einzige Benutzerschnittstelle gibt, den hohen Aufwand für die Beherrschung von UMLi in kauf zunehmen, während bei größeren Applikationen, die nahezu komplett interaktiv ablaufen, UMLi eine große Erleichterung für das Schnittstellendesign bedeutet. Zusammenfassend lässt sich sagen, dass UMLi, aufgrund der steigenden Nachfrage nach Usability und anwenderorientierter Software, eine gelungene Erweiterung von UML darstellt um die Benutzerschnittstellenentwicklung enger mit der Programmentwicklung zu verzahnen und damit zu vereinfachen.

Quellen:

1. UMLi: The Unified Modeling Language for Interactive Applications

2. UMLi overview