Prototyping (Softwareentwicklung)
In der Technik ist ein Prototyp (von griech. πρωτος "der erste") ein für die jeweiligen Zwecke voll funktionsfähiges Versuchsmodell eines geplanten Produktes oder Bauteils. Beispielsweise besitzt ein Prototyp in der KFZ-Industrie bereits alle wesentlichen Merkmale eines zukünftigen Serienfahrzeuges. Prototypen müssen nicht unbedingt aus materiellen Objekten bestehen – ein Prototyp kann beispielsweise auch eine einfache Implementation einer Software ("Alpha-Version") oder ein dreidimensionales CAD-Modell sein. Dieses Vorgehen ist in der Industrie bereits seit langem üblich, z.B. bei Bauprojekten, bei denen Modelle und Pläne des zu erstellenden Bauwerks in immer größerem Maßstab und höherer Detaillierung erstellt werden, genauso bei Produktentwicklungen wo Funktionsmodelle, Labormodelle und Prototypen vor der endgültigen Produktion stehen. In der Softwareentwicklung ist das Prototyping nicht näher definiert. Es werden eine Reihe von lauffähigen Modellen des Endprodukts mit wachsendem Funktionsumfang entwickelt und dem Kunden präsentiert. Es führt schnell zu ersten Ergebnissen und frühzeitigem Feedback bezüglich der Eignung eines Lösungsansatzes.
Vorteile
- Die Anforderungen der Anwender können laufend präzisiert und verifiziert werden. Damit sinkt das Risiko einer Fehlentwicklung.
- Unbeabsichtigte Wechselwirkungen zwischen einzelnen Komponenten des Produkts können früher erkannt werden.
- Der Fertigstellungsgrad ist besser verifizierbar
- Die Qualitätssicherung kann frühzeitig eingebunden werden
Nachteile
- Prototyping verführt dazu, Anforderungen weder korrekt zu erheben noch sauber zu dokumentieren. Der Entwicklungsprozess kann sich dadurch erheblich verlangsamen.
Arten
Allgemein werden in der Softwareentwicklung drei Arten unterschieden:
- experimentelles Prototyping: zur Beurteilung bestimmter Problemlösungen. Ziel ist es nachzuweisen, dass Spezifikationen oder Ideen tauglich sind.
- evolutionäres Prototyping: zur evolutionären Softwareentwicklung. Hierbei wird die Funktionalität schrittweise erweitert, wobei der nächste Schritt vom Feedback z.B. der Nutzer abhängt. Dabei wird der Prototyp lauffähig gehalten und stetig bis zur Produktreife weiterentwickelt.
- exploratives Prototyping: zum Zweck der Forschung wird mit einem explorativen Prototyp eine sehr umfangreiche Problemanalyse und Systemspezifikation durchgeführt. Die gewonnenen Erkenntnisse können anschließend in einem richtigen Produkt verwertet werden.
Vertikales Prototyping
- nur einige Fakten
- vollständige Implementierung
Horizontales Prototyping
- ganze Funktionalität wird dargestellt
- nur teilweise realisiert
Beispiel
Ein klassisches Beispiel ist ein Oberflächenprototyp, der dem späteren Nutzer der Software einen ersten Eindruck der Benutzeroberfläche und des Programmablaufs vermittelt. Die inkrementelle Entwicklung eines Produkts in den Anfangsphasen kann frühzeitig auf Probleme im Design aufmerksam machen und zusätzliche Kundenwünsche in die Anforderungen einfließen lassen. Im Bereich des Projektmanagement können die Ergebnisse dazu genutzt werden, ein Softwareprojekt hinsichtlich Aufwand und Kosten einzuschätzen.