fit 2002 > Softwareentwicklungsmodelle > Prototyping > Entstehungskontext

 

Überblick

 


Vorgeschichte und Problemstellung


Der Begriff des "Prototyping" im Bereich der Softwareentwicklung trat erstmals Anfang der 80iger Jahre in ersten Publikationen in Erscheinung. Zu dieser Zeit vollzogen sich teils drastische Wandel im Bereich der Softwareentwicklung. Man war auf der Suche nach neuen Designkonzepten und Entwicklungsstrategien um Schwächen bzw. Unzulänglichkeiten vorhandener Entwicklungsmodelle für Software zu umgehen, da insbesondere in umfangreichen Projekten zunehmend Probleme im Bereich "Anforderung -> Endprodukt" auftraten.

Im Jahre 1979 sollte eine weitläufig angelegte amerikanische Studie klären, worin denn die Gründe für ein oftmaliges Scheitern von Softwareprojekten unter Verwendung herkömmlicher Entwicklungsmodelle wären. Es zeigte sich, dass viele Softwareprojekte nicht etwa an unzureichenden Softwareentwicklungsumgebungen oder Entwicklungswerkzeugen, sondern zunehmend am Problem mangelnder Kommunikation zwischen Auftraggebern, Benutzern und Entwicklern scheiterten. Zu dieser Zeit gängige Entwicklungsmodelle setzten auf so genannte "Life Cycle Plans" auf. Das wohl bekannteste und zu dieser Zeit meist verbreitete derartige Modell ist das >Wasserfallmodell. Bei dem "Life Cycle" Ansatz handelt sich um relativ starre und streng voneinander getrennte Entwicklungsphasen, wobei die künftigen Nutzer nur zu Beginn im Rahmen der Aufgabenbeschreibung und -spezifikation zu Rate gezogen werden, jedoch vom weiteren Entwicklungsprozess konsequent ausgeschlossen sind. Dies machte zwar den Entwicklungsprozess überschaubar und kalkulierbar, resultierte jedoch in Software, die oftmals nicht den Erwartungen der Auftraggeber und Nutzer aufgrund unzureichender Aufgabenbeschreibung entsprach. Unklarheiten und Fehler, die bereits im Rahmen der Anforderungsanalyse auftraten, zogen sich somit bis ins Endprodukt durch, wobei im schlimmsten Fall die Software nahezu unbrauchbar geraten konnte. Ebenso erschwerte diese Vorgehensweise das flexible Anpassen der Software an veränderte Rahmenbedingungen.( >Vor- und Nachteile traditioneller Konzepte)

Eines dieser Verfahren um Schwächen traditioneller Entwicklungsmodelle zu umgehen indem die Kommunikation zwischen Auftraggeber, Nutzern und Entwicklern verbessert wird, ist das Prototyping.

Prototyping als Konzept für evolutionäre Softwareentwicklung


A software prototype is a dynamic visual model providing a communication tool for customer and developer that is far more effective than either narrative prose or static visual models for portraying functionality. It has been described as:

  • functional after a minimal amount of effort
  • a means for providing users of a proposed application with a physical representation of key parts of the system before system implementation
  • flexible modifications require minimal effort
  • not necessarily representative of a complete system. >[Connell, 1989]

Prototyping als Softwareentwicklungsmodell unterscheidet sich nicht grundsätzlich von traditionellen Entwicklungsmodellen, welche auf dem "Life Cycle" Prinzip basieren, vielmehr stellt es eine Ergänzung zu herkömmlichen Modellen dar. So stellt es ein Kernanliegen dieses Paradigmas dar, den Benutzer während des gesamten Entwicklungsfortschritts einzubinden, um möglichst gute Kommunikation zwischen Entwicklern und Benutzern zu gewährleisten und eventuelle Ungenauigkeiten in der Softwarespezifikation jederzeit ausbessern zu können. Dadurch können etwaige Unklarheiten und Unzulänglichkeiten frühzeitig erkannt und auch im Laufe des Entwicklungsprozesses geklärt werden, was eines der grö฿ten Mängel vorausgehender Modelle darstellt.
 

Das Konzept des Prototyping versucht relativ früh im Entwicklungsprozess funktionsfähige Prototypen von Teilfunktionen der Software zu entwickeln, welche Teilaspekte des Gesamtprojektes in ihrer Funktionsweise demonstrieren und vom späteren Nutzer getestet bzw. in Zusammenarbeit mit dem Entwickler verbessert werden können.

Da Prototypen nur Basiseigenschaften von Teilaspekten des Programms beschreiben, können sie schnell und kostengünstig erstellt werden, wobei auch experimentelles Vorgehen ermöglicht wird.

Prototypen definieren Teilaspekte der zu erstellenden Software, sind aber selbst als solche nicht Teil des endgültigen Produktes.

Derartige Prototypen können dann sukzessive entsprechend den Nutzerbedürfnissen erweitert werden oder aber auch gänzlich verworfen werden und durch einen anderen Prototypen ersetzt werden. Durch diesen evolutionären Softwareentwicklungsansatz entsteht die Software stufenweise in Zusammenarbeit mit den Nutzern..

siehe auch >detaillierte Konzeptbeschreibung

Entwicklungsprozess mit Prototypen >[Pomberger, 1994]


Einflüsse und Entwicklungsumfeld


Das Prinzip, Techniken aus dem Ingenieurswesen durch Verwendung von Prototypen als Vorbild auch im Bereich der Softwareentwicklung einzusetzen, erregte schnell die Aufmerksamkeit zahlreicher Entwickler, sah man dies doch als Möglichkeit an traditionelle und fehlerträchtige Entwicklungsstrukturen sinnvoll zu verbessern. Vor allem auch im universitären Bereich fand das Konzept des Prototyping schnell reges Interesse. Bereits zu Anfang der 80iger Jahre erschienen Publikationen, die sich mit diesem Konzept auseinandersetzen, auch diverse Seminare und Veranstaltungen (auch in Europa) widmeten sich dem Bereich.

Durch Verwendung des Prototyping-Prinzips in der Softwareentwicklung erhoffte man sich vorhandene kommunikative, organisatorische aber auch technische Probleme durch eine experimentelle und praktische Herangehensweise lösen zu können. Dies sollte sich meist auch als richtig erweisen, nicht ohne Grund ist der Ansatz des Prototyping auch in späteren bzw. moderneren und aktuellen Entwicklungsmodellen stets vertreten wie etwa im >Spiralmodell.

 

Quellen


[Budde, 1992] Budde, Kautz: "Prototyping - An Approach to Evolutionary System Development"

[Connell, 1989] Connell, Shafer: "Structured Rapid Prototyping."

[Pomberger, 1994] Pomberger, Weinreich: ">[The Role of Prototyping in Software Development]"
 

Weiterführende Informationen


>[The Role of Prototyping in Software Development]
Entstehung und Definition des Prototyping Konzeptes mit Beispielen für die Anwendungsmöglichkeiten
>[Klassische Fehler in der Software-Entwicklung] Beschreibung typischer Fehler bei der Entwicklung von Software/Hinweise auf Einsatzmöglichkeiten von Prototyping
>[Vorgehensmodelle und life cycle] Erklärung gängiger Entwicklungskonzepte mit ihren Vor- und Nachteilen
 

Verweise auf Arbeiten anderer Gruppen


>eXtreme Programming@Produktionsverhältnisse Beschreibung eines modernen (in den 90er Jahren entstandenen) Modells zur Softwareentwicklung, welches auf Prototyping-Ansätze zurückgreift
>Praxis@Programmiersprachentypen funktionale Programmierung am Beispiel einer lebendigen, in der Industrie verwendeten Programmiersprache namens Erlang, in welcher Prototyping ebenfalls zum Einsatz kommt

> Entstehungskontext | Konzepte und Techniken | Entwicklung und Auswirkungen | Praxis | Bewertung

Autoren: Roland Sattler, Stefan Schmied; Tutor: Stephan Wright