The Use of Rapid Prototyping for Interface Design
Kevin Wiesner
Ludwig-Maximilians-Universität München
Februar 2007
0. Überblick
In dieser Ausarbeitung soll der Nutzen und die Ausprägungen des Rapid Prototyping bei dem Design von Benutzeroberflächen untersucht werden. Hierfür wird zunächst ein kurzer, unabhängiger Überblick über die Gebiete des Rapid Prototyping sowie des Interface Designs gegeben. Im zweiten Teil werden diese Thematiken dann verknüpft und die Vorteile und der Nutzen des Rapid Protoyping speziell in dem Bereich des Interface Designs erklärt.
1. Einführung
In diesem Abschnitt soll zunächst der Ursprung des Rapid Prototyping geklärt und allgemeine Softwareprototypen betrachten werden, anschließend folgt eine kurze Einführung in das Thema des Interface Designs.
1.1 Ursprung von Rapid Prototyping
Der Begriff des Rapid Prototyping entstand ursprünglich in der Verfahrenstechnik und bezeichnet ein spezielles Verfahren zur Herstellung von Modellen. Rapid Prototyping wird auch die Lehre von den generativen Fertigungsverfahren genannt. Bei diesen werden dreidimensionale Modelle durch Aneinanderfügen von Volumenelementen hergestellt. So ist es möglich unmittelbar aus vorhandenen Computerdaten (beispielsweise CAD-Daten) ein reales Modell zu fertigen. Hierfür wird in der Regel das 3D-Modell in Schichten unterteilt, diese werden physikalisch erzeugt und anschließend zu einem Modell zusammengefügt. Im Grunde werden folglich nur 2D-Schnitte erzeugt, die dritte Dimension entsteht erst durch das Aneinanderfügen dieser [Gebhardt 2000].
Durch diese Methode ergeben sich diverse Vorteile bei der Entwicklung. Solch ein Vorgehen senkt die Entwicklungszeit, da Verbesserungen frühzeitig gemacht werden können. Außerdem werden kostspielige Fehler vermindert, da diese schon entdeckt und korrigiert werden können, solange Änderungen noch relativ leicht und günstig zu vollziehen sind. Außerdem hilft Rapid Prototyping die Lebenszeit eines Produkts zu erhöhen, da notwendige Features eingebaut und unnötige Funktionen weggelassen werden können. Das Produkt wird insgesamt attraktiver und wird daher nicht so schnell ersetzt werden [efunda 2007].
1.2 Softwareprototypen
Software-Prototypen unterscheiden sich bedeutend von den in der Industrie erstellten Prototypen, aber es sind auch einige Gemeinsamkeiten zu erkennen.
Ein Software-Prototyp ist eine frühe Version eines Softwaresystems, die mit geringerem Aufwand als das geplante Endprodukt hergestellt wurde [Pomberger 1996].
Diese Prototypen werden erstellt um mögliche Lösungen und Konzepte zu veranschaulichen, diese zu analysieren und Erkenntnisse und Verbesserungsmöglichkeiten zu sammeln.
Einerseits soll ein Softwareprototyp helfen die Anforderungen zu bestimmen. Die Benutzer können das Programm ausprobieren und entwickeln neue mögliche Anforderungen. Andererseits hilft solch ein Prototyp auch dabei die Anforderungen zu validieren. Die Benutzer sehen wie ihre Anforderungen umgesetzt worden sind und ob sie diese richtig definiert haben. Veränderungen können so schon in einem frühen Entwicklungsstadium gemacht werden, welche zu einem späteren Zeitpunkt in der Entwicklung deutlich kostenintensiver geworden wären.
Prototypen können zudem mögliche Missverständnisse zwischen Software-Entwicklern und Benutzern reduzieren, da die Benutzer direkt erkennen können ob sie richtig verstanden worden sind. Außerdem kann eine Vorabversion auch dabei helfen, das Management von dem Projekt und dessen Nutzen zu überzeugen. Ein Prototyp kann zudem auch zur Schulung der Benutzer eingesetzt werden, solange keine fertige Anwendung zu Verfügung steht. Schließlich kann ein Prototyp auch als Grundlage der Spezifikationen des finalen Systems dienen [Sommerville 2001].
1.3 Interface Design
Für das Entwerfen von grafischen Benutzeroberflächen gibt es kein standardisiertes Vorgehen, sondern eine Fülle von Ansätzen und Vorgehensweisen. Hier sollen nun kurz zwei verschiedene Aspekte gekennzeichnet werden, die häufig bei der Entwicklung von Benutzerschnittstellen zu beobachten sind, welche jedoch das Ergebnis durchaus negativ beeinflussen können.
Eine Möglichkeit ein neues Design zu erstellen besteht darin, den kompletten Design-Zyklus zu durchlaufen und bei den jeweiligen Arbeitschritten die entsprechenden Experten mit einzubinden, beziehungsweise die Arbeit an diese zu übergeben. Auch hier gibt es wieder nicht nur einen Design-Zyklus, allerdings können einige Aktivitäten beschrieben werden, die in der Regel bei einem solchen Vorgehen anfallen. Freiburger[1987] zählt hierzu die
- Spezifikation der funktionellen Anforderungen
- Entwicklung von textuellen Beschreibungen und Skizzen der Design-Konzepte
- Ausarbeitung der Konzepte von Designern
- Prüfung ob und wie das Design die Funktionalität unterstützt
- Erstellen eines Modells (einen Prototyp)
- Untersuchen des Prototyp auf Effektivität
Ein solcher Ablauf erfordert zum einen die Zusammenarbeit vieler verschiedener Personen, zum anderen ist er sehr arbeitsintensiv und eine Vorabversion der Oberfläche ist erst relativ spät vorhanden.
Eine weitere, weit verbreitete Möglichkeit des Schnittstellen-Entwurfs liegt darin, das Design den Software-Entwicklern und Entwicklungsleitern zu überlassen. Diese isolierte Vorgehensweise hat allerdings zur Folge dass bei Diskussion über das Design in erster Linie nur über Funktionalität- und Implementierungsdetails gesprochen wird [Thompson und Wishbow 1992]. Ein klares Design wird in solchen Fällen vernachlässigt und führt so meistens nicht zu einer benutzerfreundlichen Oberfläche.
Da aber die Akzeptanz von Software zu einem großen Anteil von der Qualität des User Interface abhängt, sollte eine alternative Vorgehensweise in Betracht gezogen werden. Durch Prototyping kann man neue Ideen und Kenntnisse bekommen, wie ein gutes Design auszusehen hat, und kann die Qualität von einer Lösung zu einem frühen Zeitpunkt bestimmen [Bäumer et.al. 1996].
2. Rapid Prototyping im Interface Design
Warum sollte man denn überhaupt Prototyping im Interface Design betreiben? Und warum ist dies in diesem Bereich besonders wichtig?
Wesentlich bei User Interfaces ist, dass diese einfach und intuitiv zu bedienen sind und ein Minimum an Training für ein optimales Handling benötigen. Allerdings ist es normalerweise nicht möglich eine Oberfläche zu gestalten, die auf Anhieb optimal ist und den Nutzerwünschen entspricht. Deswegen sollte der Design-Prozess ein iterativer und selbstkorrigierender Prozess sein. Nur so ist es möglich ein ergonomisches und von den Nutzern akzeptiertes User Interface zu erstellen [Hartson und Hix 1989].
2.1. Vorteile von Rapid Prototyping
Bei den Vorteilen des Rapid Prototyping im Interface Design sind einige Aspekte wieder zu finden, die schon im Abschnitt "Softwareprototypen" betrachtet wurden. Allerdings gibt es auch neue Vorteile die sehr speziell für den Design-Prozess sind. Wenngleich es die genannten Überschneidungen mit obigem Abschnitt gibt, werden die Vorteile hier nochmals aufgeführt, um einen möglichst vollständigen Überblick zu gewähren.
Einer der Hauptvorteile des Rapid Prototyping ist die Kostenreduktion. Die Entwicklung von Softwaresystemen ist sehr kostenintensiv. Eine Änderung des Designs zu einem Zeitpunkt der Entwicklung bei der das System größtenteils fertig implementiert ist, hat meist auch eine Änderung der darunter liegenden Implementierung zur Folge. Somit können schon kleiner Änderungswünsche sehr teuer werden. Rapid Prototyping kann hierbei Abhilfe schaffen. Prototypen sind, beziehungsweise sollten, kostengünstig zu erstellen sein, können aber helfen Fehler im Design schon frühzeitig zu erkennen. Änderungen an der Implementierung in frühen Phasen der Entwicklung, möglicherweise sogar vor der dem Beginn dieser, sind im Vergleich zu denen am Endprodukt um ein Vielfaches günstiger. Rapid Prototyping ermöglicht somit die Beobachtung des Designs und lässt Modifikationen einfach zu.
Durch das schnelle Erstellen von Prototypen ist es zudem möglich, mehrere Prototypen zu an zu fertigen. Bei nur einer Version kann man nur feststellen, was bis dato gut und was weniger gut gelungen ist. Gerade aber beim Interface Design gibt es meist nicht nur eine denkbare Lösung, sondern oft sind mehrer Designvorschläge vorhanden. Rapid Prototyping gestattet so auch den direkten Vergleich von mehreren Alternativen, wodurch die Qualität im Allgemeinen gesteigert wird.
Ein weiterer Aspekt der unterstützt wird durch Rapid Prototyping ist der Anforderungserwerb. Der Nutzer sieht schon sehr früh was er bekommen wird, wodurch böse Überraschungen vorgebeugt werden. Er kann auch erkennen, ob seine Anforderungen richtig verstanden worden sind und er mit der Art der Lösung zufrieden sein wird. Da die Nutzer gewöhnlich nicht in der Lage sind eine komplette Spezifikation des gewünschten Systems zu geben, entwickeln diese beim Testen des Prototyps auch neue Ideen und Anforderungen, die den Nutzen der Anwendung für sie zum Teil deutlich steigern [Hartson und Hix 1989].
Können solche Wünsche umgesetzt werden, steigert dies nicht nur den Nutzen für die User, sondern auch die Zufriedenheit mit dem Produkt. In Experimenten wurde herausgefunden, dass Anwendungen die mit Prototypen getestet wurden, von den Endnutzern bevorzugt wurden [Alavi 1984].
In anderen Experimenten fanden Boehm et. al. [1984] heraus, dass im Vergleich zu vorher komplett spezifizierten Systemen, Anwendungen die mit Prototyping entstanden sind, bis zu 40% weniger Quellcode und 45% weniger Aufwand benötigten, um die entsprechende Funktionalität zu erbringen. Außerdem wurden letztere Systeme auch als einfacher zu erlernen bewertet.
2.2 Arten von Prototypen
Die verschiedenen Ansätze von Prototypen im Interface Design, können generell in drei Dimensionen klassifiziert werden. Hierbei unterscheidet man zwischen revolutionären und evolutionären Prototypen, zwischen welchen die nur die Oberfläche darstellen ("interface only") und solchen bei denen ein komplettes System ("whole system") zur Verfügung steht, und zwischen welchen die zu jedem Zeitpunkt der Entwicklung ("continuous") und solchen die nur zu bestimmten Zeitpunkten ("intermittent") getestet werden können [Hartson und Hix 1989].
Beim Evolutionary Prototyping wird eine Vorabversion entwickelt und anschließend bewertet. Mit Hilfe dieser Bewertung wird nun die Implementierung in zahlreichen Schritten immer weiter verbessert und verfeinert, bis die gewünschte und angemessene Systemlösung erreicht ist [Sommerville 2001].
Revolutionäre Prototypen werden erstellt und ausgewertet, allerdings danach dann wieder verworfen. Meist wird diese Technik ganz zu Beginn angewandt (z.B. um die Anforderungen zu validieren), und anschließend wird mit der Implementierung des realen Systems begonnen.
Bei "Interface only"-Prototypen wird eine Attrappe des Systems erstellt, es wird also nur die Oberfläche gestaltet. Es gibt daher auch keine wirklich Funktionalität, diese wird nur simuliert (beispielsweise durch "Slideshows"). So kann man sehr einfach und schnell einen Eindruck von dem geplanten Design erhalten. Bei "Whole system"-Prototypen entspringt die Funktionalität aus dem eigentlichen System. Bereits implementierte Funktionen können im Kontext des Interface Design getestet werden. Nachteil dieser Methode ist jedoch die aufwendigere Erstellung der Versionen, die nicht so einfach realisierbar sind wie Schnittstellen ohne Funktionalität..
Prototypen die als "intermittent" bezeichnet werden, können nur zu gewissen Zeitpunkten untersucht werden. Hierzu zählen beispielsweise Prototypen, die auf dem eigentlichen Quellcode aufbauen. Dieser ist nicht zu jeder Zeit ausführbar, wodurch längere Phasen entstehen, in denen der Prototyp nicht getestet werden kann. Bei kontinuierlichen ("continuous") Prototypen trifft dieser Fall nicht auf. Bei dieser Art kann zu jedem Zeitpunkt der Prototyp evaluiert werden, was bei dem Design von Benutzerschnittstellen erwünschenswert ist [Hartson und Hix 1989].
Außerdem ist noch eine Klassifizierung der Prototypen in ihr Funktionen möglich, also wofür der Prototyp erstellt wird. Bäumer et. al. [1996] unterscheiden in Präsentations- und funktionale Prototypen, "Breadboards" und Pilotsysteme.
Präsentationsprototypen sollen darstellen, wie die geforderten Anforderungen umgesetzt werden könnten, wobei das Hauptaugemerk auf dem User Interface Design liegt. Bei funktionalen Prototypen wird sowohl das Interface, aber auch strategisch wichtige Funktionen implementiert. Breadboards helfen technische Aspekte zu untersuchen, wie die Systemarchitektur. Diese Prototypen sind nicht für die Endnutzer gedacht. Pilotsysteme sind sehr ausgereifte Prototypen, die in der Praxis angewandt werden können und meist kurz vor Fertigstellung des Systems erstellt werden.
2.3 Tools zum Erstellen von Prototypen
Die Hilfsmittel zum Erstellen von Prototypen von Benutzerschnittstellen können nach [Bäumer et al. 1996] in vier Kategorien eingeteilt werden: HyperCard-ähnliche Tools, Oberflächengestaltungsprogramme, 4th Generation Systems und objektorientierte Frameworks.
Bei den HyperCard-Tools wird die Benutzeroberfläche durch miteinander verbundenen Karten realisiert, die Event-Behandlung wird mit Hilfe von Skripten sichergestellt. Dies ermöglicht eine schnelle und einfache Darstellung des entworfenen Designs. Bei den Oberflächengestaltungsprogrammen wird einem hohen Abstraktionslevel das Interface erstellt, meist mit einem grafischen Editor. Die 4th Generation Systems sind komplette Entwicklungsumgebungen für Informationssysteme. Normalerweise enthalten diese Programme Tools zum Erstellen von der grafischen Oberfläche, Programmeditoren, Debugger, etc. Derartige Systeme eignen sich ideal für die Erstellung von kompletten funktionellen Prototypen. Objektorientierte Frameworks sind Bibliotheken, die Klassen für das Design von interaktiven Anwendungen bereitstellen. Oberflächen die nicht aus Standardkomponenten bestehen, lassen sich mit diesen Frameworks besonders gut entwickeln.
Die Vorteile von oben beschriebenen Tools, genügen im Allgemeinen den Vorteilen aus den Abschnitt 2.1, bieten jedoch noch weiter Möglichkeiten [Myers 1995]:
- Die Entwickler können sich intensiver mit solchen Tools beschäftigen und mehr Zeit investieren, als sie es bei einer einzelnen Oberfläche tun könnten, da das Tool für die Entwicklung mehrere Anwendung verwendet wird.
- Außerdem fördert der Einsatz solche Hilfsmittel ein konsistentes Design von mehreren Anwendungen. Der Nutzer ist so möglicherweise schon vertraut mit dem Aussehen und der Aufbau der Anwendung, und braucht keine lange Einarbeitungszeit.
- Die Einbeziehung von verschiedenen Spezialisten und Experten (wie z.B. Grafiker, Interface-Spezialisten) wird vereinfacht und somit bleibt die Einbindung des Designs nicht dem Programmierer überlassen
- Es muss weniger Quellcode geschrieben werden, da dieser teilweise automatisch generiert wird
- Die Programmierkenntnisse können geringer sein, da die Tools die Komplexität für den Nutzer reduzieren
- Die Portabilität von Anwendung in andere Umgebungen sollte einfacher werden, da die gerätespezifischen Abhängigkeiten nur im Interface-Tool sein sollten
3. Fazit
Da das Problem des Erstellens von optimalen Benutzeroberflächen nicht trivial ist, und es sehr schwierig ist auf Anhieb ein gutes Design zu entwickeln, sollte bei diesem Vorgang das Prototyping nicht vernachlässigt werden. Vor allem das hier vorgestellte Rapid Prototyping ermöglicht eine schnelle Evaluierung und somit auch frühe und günstige Änderungen. Rapid Prototyping hilft dabei ein User Interface zu entwickeln, das den Bedürfnissen der Nutzern weitestgehend entspricht, wodurch auch die Akzeptanz der Anwendung steigt. Werden bei der Entwicklung von interaktiven Anwendungen die Nutzer nicht mit eingebunden, läuft man Gefahr, dass das System nicht angenommen wird, was kostspielige Folgen hat. Vor allem durch die Unterstützung von entsprechenden Tools, ist es heutzutage relativ einfach möglich, gute und aussagekräftige Prototypen zu erstellen. Insgesamt ist es somit unverzichtbar, das User Interface zu evaluieren, wenn man qualitativ hochwertige Anwendungen entwickeln möchte.
Literatur
Maryam Alavi. An assessment of the prototyping approach to information systems development.
Communications of the ACM, Volume 27 Issue 6, June 1984, ACM Press, 1984
Dirk Bäumer, Walter R. Bischofberger, Horst Lichter, Heinz Züllighoven. User Interface Prototyping - Concepts, Tools, and Experience.
Proceedings of the 18th international conference on Software engineering ICSE 96, May 1996, IEEE Computer Society, 1996
Barry W. Boehm, Terence E. Gray, Thomas Seewaldt. Prototyping vs. specifying: A multi-project experiment.
Proceedings of the 7th international conference on Software engineering ICSE 84, March 1984, IEEE Press, 1984
eFunda, Inc. Rapid Prototyping: An Overview. 26. Jan. 2007.
<http://www.efunda.com/processes/rapid_prototyping/intro.cfm>
Karl Freburger. RAPID: Prototyping Control Panel Interfaces.
ACM SIGPLAN Notices, Conference proceedings on Object-oriented programming systems, languages and applications OOPSLA 87, Volume 22 Issue 12, December 1987, ACM Press, 1987
Andreas Gebhardt. Rapid Prototyping - Werkzeuge für die schnelle Produktentstehung.
Carl Hanser Verlag München Wien, 2. Auflage, 2000
H. Rex Hartson, Deborah Hix . Human-computer interface development: concepts and systems for its management.
ACM Computing Surveys (CSUR) , Volume 21 Issue 1, March 1989, ACM Press 1989
Brad. A. Myers. User Interface Software Tools.
ACM Transactions on Computer-Human Interaction (TOCHI), Volume 2 Issue 1, March 1995, ACM Press, 1995
G. Pomberger, G.Blaschek. Software Engineering - Prototyping und objektorientierte Software-Entwicklung.
Carl Hanser Verlag München Wien, 2. Auflage, 1996
Ian Sommerville. Software Engineering.
Pearson Studium, 6. Auflage, 2001
Michael Thompson, Nina Wishbow. Prototyping: Tools and Techniques - Improving Software and Documentation Qualtity Through Rapid Prototyping.
In: Proceedings of the 10th annual international conference on Systems documentation SIGDOC 92. November 1992, ACM Press, 1992