Prototyping

Eine häufig verwendete, aber mitunter aufwändige und teure unterstützende Technik bei der Ermittlung von Anforderungen ist das Erstellen von Prototypen.

In vielen Projekten stehen die Anforderungen an das zu entwickelnde System nicht von Anfang an fest. Hier ist kann es helfen, sich dem Zielsystem schrittweise anzunähern. Eine etablierte Technik, die dabei Verwendung findet, ist das Erstellen von Prototypen.

Der primäre Grund für die Erstellung eines Prototyp ist, Unklarheiten früh in der Entwicklungsphase zu klären. Ein Prototyp ist also nützlich, um mehrdeutige und unvollständige Anforderungen zu offenbaren.

Arten von Prototypen

Prototypen lassen sich in horizontale und vertikale Prototypen unterscheiden.

Bitte klicken Sie hier um das Bild zu vergrößern.

Abb. 1: Muster von Prototypen nach [Balzert96]

In einem horizontalen Prototypen werden nur spezifische Ebenen der zukünftigen Software realisiert, beispielsweiße die Benutzeroberfläche. Die entsprechende Ebene wird dabei möglichst vollständig realisiert, die mit dieser Ebene verknüpften Funktionalitäten sind jedoch nicht vorhanden. Durch diese Möglichkeit eignen sich horizontale Prototypen besonders für Demonstrationszwecke, bei denen das optische Erscheinungsbild der Software im Vordergrund steht. Bezogen auf die Benutzerschnittstelle bedeutet dies, dass die Programmoberfläche sichtbar ist, die Funktionalität jedoch fehlt

Bei vertikalen Prototypen wird für einen bestimmten Teilaspekt des Systems jeder Teil des Zielsystems in seiner ganzen Tiefe dargestellt. So kann z.B. bei einer Rechtschreibkorrektursoftware komplett nachvollzogen werden, welchen Weg das falsch geschriebene Wort bis und mit seiner Korrektur zurücklegt. Diese Prototypen liefern häufig ausgefeilte Lösungen für schwierige Implementierungsprobleme. Ihre Komponenten lassen sich deshalb besonders gut in das Endprodukt integrieren.

Meist ist eine Mischform aus vertikalen und horizontalen Prototypen sinnvoll und üblich.

Bevor Sie mit der Konstruktion eines Prototyps beginnen, sollten Sie ausdrücklich klarstellen, ob der Prototyp nach der Beurteilung verworfen oder zu einem Teil des Produkts wird. Erstellen Sie einen Wegwerfprototyp, um Fragen zu beantworten, Unklarheiten zu beseitigen und die Qualität der Anforderungen zu verbessern. Da Sie den Prototyp entsorgen werden, nachdem er seinen Zweck erfüllt hat, sollten Sie dafür sorgen, dass seine Erstellung so günstig und schnell wie möglich erfolgt.

Im Gegensatz zu den Wegwerfprototypen werden evolutionäre Prototypen Teil des Endproduktes. Dieser Ansatz ist durch die schrittweise Anpassung des Systems an die sich ändernden Anforderungen gekennzeichnet, da die Anforderungen in den frühen Phasen noch nicht zuverlässig feststehen.

Papier-Prototypen bieten eine günstige und schnelle Alternative zu anderen Prototypen, um Anforderungen zu klären. Hier werden beispielsweise während der Anforderungsermittlung Eingabemasken zusammen mit dem Stakeholder auf Papier skizziert. Papier-Prototypen müssen keineswegs 1:1 in der endgültigen Programmierung umgesetzt werden. Vielmehr dienen sie der Veranschaulichung von Anwendervorstellungen.

Die Literatur kennt noch viele weitere Arten von Prototypen, auf die wir hier nicht genauer eingehen, z.B.:

  • Wizard of Oz / Man behind the curtain
  • Video-basierte Prototypen
  • Interaktiver Wireframe GUI Prototyp
  • Physikalischer Prototyp (Gerät)

Tipps zur Erstellung von Prototypen

Prototypen können zu einer höheren Kundenzufriedenheit beitragen. Damit Prototypen zu einem effektiven Teil Ihrer Anforderungsentwicklung werden, könnten Ihnen folgende Stichpunkt helfen:

  • Planen Sie in Ihrem Projektplan die Zeit und die Ressourcen mit ein, um Prototypen zu entwickeln, zu bewerten und zu modifizieren.
  • Stellen Sie sicher, dass Sie einen Zweck für jeden Prototypen definiert haben.
  • Beobachten Sie die Benutzer bei ihrer Arbeit mit dem Prototyp. Sie lernen dadurch mehr, als durch Antworten der Benutzer, was sie von dem Prototypen halten.
  • Achten Sie auch darauf, dass Sie nur so lange an einem Prototyp arbeiten, bis Sie die Ziele erreicht haben, die Sie mithilfe des Prototyps erreichen wollten, um nicht unnötig Ressourcen zu verschwenden.

Vor- und Nachteile von Prototypen

Obwohl Prototypen das Risiko von fehlgeschlagenen Softwareprojekten verringern, weisen sie auch eigene Risiken auf. Auf folgende Punkte sollten Sie achten:

  • Prototypen erwecken den Eindruck das Produkt wäre „fast fertig“, wodurch beim Stakeholder falsche Erwartungen geweckt werden können.
  • Es besteht die Gefahr der Wiederverwendung von Wegwerf-Prototypen.
  • Prototypen sind ggf. sehr aufwändig zu erstellen und können so sehr teuer werden.

Im Gegenzug besitzen sie jedoch auch folgende Stärken:

  • Widersprüche und vergessene Anforderungen werden früh erkannt.
  • Anforderungen werden erlebbar.
  • Prototypen eigenen sich besonders dafür, um nichtfunktionale Anforderungen zu erheben.
  • Prototypen reduzieren das Entwicklungsrisiko.
  • Die Anforderungen der Anwender können laufend präzisiert und verifiziert werden.


Fazit

Prototyping ist ein sinnvoller Ansatz zur besseren Erhebung von Anforderungen, vor allem, wenn der Kunde nur schwer Anforderungen formulieren kann, da ihm entweder die technische Erfahrung bzw. das Verständnis dafür fehlt oder er einfach noch nicht weiß, was für ein Produkt er eigentlich haben möchte. Mit einem Prototypen werden für ihn die Anforderungen sichtbar und damit greifbar und beschreibbar.

Um einen Prototypen zu bewerten, bietet sich ein User Walkthrough an. Es wird das Thema unseres nächsten Blogartikels zu unterstützenden Techniken bei der Ermittlung von Anforderungen sein.
Quellen:

[Balzert00]
Balzert, H: Lehrbuch der Software-Technik, Spektrum Akademischer Verlag, 2000

[Wiegers05]
Wiegers, K. E.: Software Requirements, Microsoft Press Deutschland, Unterschleißheim 2005

[BalPom96]
Balschek, G.; Pomberger, G.: Software Engineering: Prototyping und objektorientierte Software-Entwicklung, München 1996

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.


+ 5 = sechs