Rapid Prototyping im Projekt – Wie lassen sich meine Anforderungen kurzfristig verifizieren?

31.07.2015

Die Anforderungsermittlung steht am Anfang jeder Entwicklung eines Softwaresystems. Egal ob komplexe, verteilte Applikationen, die unterschiedliche Geschäftsprozesse abbilden, oder webbasierte Anwendungen mit Userschnittstellen – Anforderungen stellen immer die Basis dessen dar, wie ein zu implementierendes System am Ende auszusehen hat. Da es sich um das vermeintliche Zielbild oder Design einer Software handelt, gibt es bei der Ermittlung von technischen und fachlichen Anforderungen oft Diskussionsbedarf.

Zentrale Fragestellungen von Anforderern und Umsetzern sind z.B.:

  • Ist die Anforderung so realisierbar?
  • Bietet diese Anforderung den erwarteten Mehrwert für den Nutzer oder das Unternehmen?

Um bereits in dieser frühen Phase des Softwareentwicklungsprozesses eine Aussage über die Machbarkeit oder den Mehrwert von Anforderungen zu treffen, bietet sich die rasche Erprobung – oder auf Englisch das Rapid Prototyping an. Hinter der Idee des Rapid Prototypings steckt die frühzeitige Erprobung von Teilkomponenten eines Zielsystems innerhalb eines Softwareprojektes. Die Methodik beschreibt somit einen Prozess, der das Ziel hat, eine lauffähige Systemoberfläche oder eine Implementierung ausgewählter Subkomponenten eines Systems zu erstellen.

Die Vorteile von Rapid Prototyping

Rapid Prototypings bietet daher eine Reihe von Vorteilen für Entwickler und Anforderer. Es dient in erster Linie dazu, Anforderungen konkret zu erörtern und unterstützt dabei, strittige Designentscheidungen aufzudecken. Zudem bietet der Prototyp dem Auftraggeber oder auch dem Entwickler die Möglichkeit, die entwickelte Software vorab zu testen, um ein gemeinsames Verständnis des zu erreichenden Projektziels sicherzustellen. Ein weiterer Vorteil während der Entwicklungsarbeit ist zudem, dass die Softwareentwickler frühzeitig Schnittstellen zu Drittsystemen feststellen und testen, sowie allgemeine technische Anforderungen und Spezifikationslücken diskutieren können. Das Rapid Prototyping ist daher insbesondere beim traditionellen Wasserfallmodell eine Methode, um frühzeitig fachliche und technische Anforderungen zu ermitteln, bevor die Implementierung des Systems zu weit fortgeschritten, oder gar ein fertiges Produkt entstanden ist. [1]

Horizontaler oder vertikaler Prototyp – was eignet sich für welche Anforderung?

Für das Rapid Prototyping existieren zwei unterschiedliche Ansätze. Der horizontale Prototyp deckt den Bereich der Präsentationsschicht eines Softwaresystems ab. Hierbei soll dem Endanwender eine Vorabversion des Userinterfaces bereitgestellt werden, um dadurch ein frühzeitiges Feedback zu erhalten. Es entsteht demzufolge keine Anwendungslogik, die die zukünftigen Funktionalitäten des Softwaresystems bereitstellen. Somit dient der horizontale Prototyp ausschließlich zur Erörterung der Usability oder Gebrauchstauglichkeit eines Systems und zur Ermittlung der Anforderungen an die Benutzerschnittstelle. Der vertikale Protoyp hingegen deckt eine oder mehrere ausgewählte Subkomponenten eines zu entwickelnden Systems ab. Dies bedeutet aber auch, dass für diese Art eines Prototyps – über die verschiedenen Ebenen eines Softwaresystems hinweg – eine mitunter komplexe Implementierung erforderlich ist. Somit lässt sich dem Endanwender oder Anforderer aus dem vertikalen Prototypen eine ausgewählte Funktionalität des Systems präsentieren und für weitere fachliche und technische Anforderungen an die Subkomponente ableiten[2]

Grafik in Anlehnng an Grafik in Anlehnung an http://www.enzyklopaedie-der-wirtschaftsinformatik.de/wi-enzyklopaedie/lexikon/is-management/Systementwicklung/Vorgehensmodell/Prototyping/index.html/?searchterm=prototyping

Ein besonderes Augenmerk liegt hierbei auf der Auswahl des richtigen Tools für die Entwicklung eines Prototyps. Für einen horizontalen Prototyp fällt die Auswahl meist auf Mockup-Werkzeuge wie Balsamiq oder auch Axure. Bei einem vertikalen Prototyp ist die Auswahl ungleich schwieriger, da es hierbei vor allem auf die rasche Entwicklung ankommt. Da die Auswahl des Frameworks bei der Entwicklung von verteilten Anwendungen heutzutage meist auf webbasierten Programmierparadigmen beruht (REST, Webservices, JavaBeans), schränkt sich die Auswahl der zu verwendenden Technologien stark auf ein JavaEE-Framework ein.

Skriptbasierte Web Application Frameworks, wie Ruby on Rails oder auch Django auf Basis von Python bieten eine Möglichkeit, schnell lauffähige Prototypen zu erstellen. Jedoch beschränkt sich das eingesetzte Werkzeug auf die Fertigkeiten des eingesetzten Entwicklungsteam und dem Kontext unter dem die Teilbereiche eine Softwaresystems prototypisch umgesetzt werden. Natürlich muss man immer abwägen, ob Aufwand in einen zu implementierenden Prototyp investiert wird, wenn offen bleibt, ob dessen Ergebnis bei der tatsächlichen Entwicklung der Applikation weiter verwendet werden kann. Beispielsweise müssten Anteile des Codes übersetzt und auf die entsprechende Entwicklungsumgebung JavaEE angepasst werden. Hierdurch ließen sich keine Mitnahmeeffekte für die spätere Implementierung des Softwaresystems erzielen. Daher ist es essenziell für die Entwicklung eines vertikalen Protoyps, dass sich das verwendete Werkzeug möglichst nahe an der technischen Umgebung der späteren umzusetzenden Software bewegt. Hierdurch lassen sich die besten Mitnahmeeffekte für die spätere Umsetzungsphase erzielen. Eine gute Möglichkeit bietet hierbei Grails von Pivotal, welches im nächsten Beitrag zu Rapid Prototyping vorgestellt wird.

Fazit

Insgesamt bietet die Methode des Rapid Prototyping einem Softwareprojekt einen Ausblick auf Teilfunktionalitäten oder gesamte Frontends in einer frühen Phase der Umsetzung. Die bereitgestellten Tools und Frameworks müssen den mit der Umsetzung betrauten Entwickler bestmöglich unterstützen, um den Erfolg zu gewährleisten. Um die Vorteile des Rapid Prototypings bestmöglich nutzen zu können, bestehen jedoch Voraussetzungen die die Rahmenbedingungen des Prototyps darstellen:

  • Die Abgrenzung des Funktionsumfanges muss eingehalten werden. Was zu Beginn klar erscheint, kann sich während der Entwicklung als problematisch für die Beteiligten herausstellen. Oftmals führt die rasche und erfolgreiche Entwicklung eines Prototyps dazu, dass immer mehr Funktionen untergebracht werden sollen. Dies hat zur Folge, dass die anfänglich klar überschaubare Demonstration der technischen Machbarkeit einer Anforderung in einer ausgewachsenen Applikation endet.
  • Darüber hinaus muss die Abgrenzung der Geschäftslogik auf die in Java zu implementierende Teile eindeutig sein, um die positiven Effekte, der in der Portierung des Codes für die Verwendung in zukünftigen Phasen des Entwicklungsmodells liegt, nutzen zu können.
  • Des Weiteren muss der Erfolg des Prototyps von Beginn an klar festgelegt sein. Der Erfolg lässt sich hierbei unterschiedlich definieren. Es kann die Abbildung eines Funktionsumfang für die Verifizierung des Geschäftsnutzen gemeint sein oder abseits der beiden vorangegangenen Punkte, die Überprüfung einer Anforderung auf die technische Machbarkeit als Grundlage für die Anforderungsanalyse.

Die aufgezählten Punkte sind essenziell für den Erfolg eines Prototyps und bilden die Basis für den späteren Erfolg in der Umsetzung.

 


Quellen:

[1] Rapid Prototyping: Lessons Learned; V. Scott Gordon, James M. Bierman; Erschienen 1995 in IEEE Software; http://www.cs.colostate.edu/~bieman/Pubs/GordonBiemanSW95.pdf

[2] http://www.ergo-online.de/site.aspx?url=html/software/software_entwicklung_prototyp/protot_konzept.htm

[3] https://grails.org/index.html

Grafik in Anlehnung an http://www.enzyklopaedie-der-wirtschaftsinformatik.de/wi-enzyklopaedie/lexikon/is-management/Systementwicklung/Vorgehensmodell/Prototyping/index.html/?searchterm=prototyping

 

Die doubleSlash Anforderungsanalyse

Zurück zur Übersicht

Kommentar verfassen

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

*Pflichtfelder

*