Skalierbare Benutzeroberfläche
# Skalierbare Benutzeroberfläche

Eine Skalierbare Benutzeroberfläche (oder kurz ZUI für „Zoomable User Interface“) kommt aus dem IT-Bereich und beschreibt eine Grafische Benutzeroberfläche (GUI) mit der zusätzlichen Möglichkeit, einzelne Elemente oder die gesamte Oberfläche zu zoomen. Ein ZUI kann unterschiedliche Skalierungsgrade annehmen, die vom Benutzer gesteuert werden. Ein ZUI erfordert eine zusätzliche Eingabe vom Benutzer, um Zoom und Pan zu kontrollieren.

Das ZUI wird als intuitivere und flexiblere Alternative zum klassischen GUI gesehen. Der Aufwand für die Entwicklung von ZUIs ist höher, weshalb momentan mehr Arbeit in die Weiterentwicklung von herkömmlichen GUIs gesteckt wird.

Die Anforderungen einer Benutzerschnittstelle sind nach der internationalen Richtlinie ISO 9241-10ff geregelt.

## Definition

Benutzeroberflächen, die einen der folgenden Punkte erfüllen, gelten als ZUI.

* Bedienelemente liegen auf einer Arbeitsfläche, die gezoomt und horizontal sowie vertikal verschoben werden kann (englisch Pan).
* Mindestens ein Element enthält skalierbare Bestandteile.

## Synonyme

Die korrekte Bezeichnung für ZUIs ist Skalierbare Grafische Benutzerschnittstelle oder Skalierbare Grafische Benutzeroberfläche, aus Gründen der Einfachheit wird aber auf die Wendung „grafisch“ verzichtet. Weitere Bezeichnungen für ZUIs sind Skalierbare Benutzerschnittstelle, im Englischen sind die Begriffe Zoomable User Interface, Zooming User Interface und Multiscale Interface gebräuchlich.

## Geschichte

Die Geschichte der ZUIs knüpft an die Geschichte des GUIs an. Ivan Sutherland entwickelte im Jahr 1963 am Massachusetts Institute of Technology (MIT) Sketchpad, das heute als erstes GUI gilt und über eine Zoom-Funktion verfügte. Das sog. Fisheye Zooming wurde 1981 von George W. Furnas definiert und wird häufig in ZUIs eingesetzt. 1991 entwickelten David Fox und Ken Perlin Pad am Courant Institute of Mathematical Sciences an der New York University. Pad gilt als erstes ZUI. Mit Pad sowie der Weiterentwicklung Pad++ können multimediale Daten auf einer zweidimensionalen Ebene dargestellt werden. Pad nutzte bereits die Semantische Skalierung (siehe unten). Am Human-Computer Interaction Lab (HCIL) wurde Pad durch das Projekt Jazz fortgesetzt und nach Java portiert. Die jüngste ZUI-Bibliothek des HCIL ist Piccolo, die die Programmierung von ZUIs im Vergleich zu Jazz wesentlich vereinfachte. Piccolo ist für Java und C# als Open-Source-Bibliothek verfügbar.

## ZUI-Elemente

ZUIs verfügen in der Regel über primitive Elemente, die zur Zusammenstellung von Bedienelementen genutzt werden können. Je nach Programmierbibliothek können diese Elemente wie in einer GUI-Bibliothek mit Eventhandlern für Maus- und Tastatureingaben versehen sowie animiert und transformiert werden.

* Pfade: Diese können einfache Kanten, gefüllte Rechtecke, Polygone bis hin zu Bezierkurven darstellen.
* Text
* Bitmap

In einem ZUI können je nach Programmierbibliothek Elemente von GUIs verwendet werden. Das Piccolo Toolkit bietet beispielsweise Wrapper in der Programmiersprache C# für Bedienelemente der Grafikschnittstelle GDI.

* Schaltfläche
* Checkbox
* Radiobutton

Siehe auch: GUI-Elemente

## Semantische Skalierung

Die Semantische Skalierung (englisch Semantic Zooming) ist eine Technik der ZUIs, Objekte abhängig zum Skalierungsgrad in unterschiedlichen Detailstufen darzustellen. Dies verschafft einen guten Gesamtüberblick über die Informationen, bei näherer Betrachtung ist ein Objekt jedoch sehr detailliert, d. h. Informationen werden je nach Skalierung ein- oder ausgeblendet. Programmierer nutzen diese Möglichkeit um die Performance ihrer Programme zu verbessern sowie eine bessere Übersicht zu schaffen.

## Liste von ZUI-Bibliotheken

Viele ZUI-Programmierbibliotheken setzen verstärkt auf Graphen, durch die eine strukturierte Ansicht in Flowcharts ermöglicht wird.

* Piccolo Toolkit – A Structured 2D Graphics Framework – Programmierbibliothek für Java und C#. Piccolo ist unter der freien BSD-Lizenz verfügbar.
* Ziteboard ist ein geräteunabhängiges, webbasiertes Whiteboard mit Zoomfunktion und der Möglichkeit zur Kollaboration in Echtzeit, geschrieben in purem html5 und javascript.
* Jazz Toolkit des Human Computer Interaction Labs der University of Maryland. Jazz ist ein Vorgänger des Piccolo Toolkits implementiert in Java. Die Weiterentwicklung wurde eingestellt, die Quellen sind jedoch weiterhin zugänglich.
* ZVTM – Zoomable Visual Transformation Machine
* Zomit – Java ZUI-Library
