A szoftverprototípus készítés (az angol prototyping szóból) a szoftverfejlesztés (szoftver) egy szakasza , a program prototípus - egy program elrendezése (vázlat, próbaverzió) - létrehozásának folyamata, általában a koncepciók alkalmasságának ellenőrzése, az építészeti ill. / vagy az alkalmazásra javasolt technológiai megoldásokat, illetve a fejlesztési folyamat korai szakaszában bemutatni a programot a megrendelőnek.
A prototípus azt is lehetővé teszi, hogy visszajelzést kapjon a leendő felhasználóktól, ráadásul pontosan akkor, amikor a legnagyobb szükség van rá: a projekt elején még van lehetőség szinte veszteség nélkül kijavítani a tervezési hibákat.
A prototípuskészítési folyamat általában a következő lépésekből áll:
A prototípuskészítésnek számos különféle lehetősége van. Azonban valamennyi módszer bizonyos mértékig két alaptípuson alapul.
A gyors prototípuskészítésnél ( angolul rapid prototyping vagy throwaway prototyping ) feltételezzük, hogy egy elrendezés készül, amely egy bizonyos szakaszban megmarad („kidobják”), és nem válik a kész rendszer részévé.
Ennek a megközelítésnek a fő előnye a gyorsaság: az ügyfél igényeinek megfelelően szinte azonnal megkapja az interfész prototípusát, és azonnal tisztázza a követelményeket, mielőtt megírná a rendszer működési kódját. A követelmények módosításának költsége ebben a szakaszban nagyon alacsony, mivel nincs átírható kód.
Nagyon fontos, hogy az ilyen prototípuskészítés mielőbb elkészüljön, mivel ebben az esetben időt és erőforrásokat pazarolnak olyan kódra, amelyet nem használnak tovább.
A gyors prototípuskészítés nem feltétlenül ugyanazon a platformon és ugyanazon a technológián történik, mint a fejlesztés alatt álló rendszer. A grafikus felhasználói felület (GUI) prototípusai használhatók szabványos HTML - oldalakként , vagy a prototípus elkészíthető egy kifejezetten elrendezések létrehozására tervezett programban (például: Axure RP , Microsoft Expression Blend stb.).
Az evolúciós prototípuskészítés célja olyan rendszerelrendezések következetes létrehozása, amelyek egyre közelebb állnak a valódi termékhez .
Ennek a megközelítésnek az az előnye, hogy minden lépésben van egy működő rendszerünk, bár nem minden szükséges funkcionalitással, de minden iterációval javul. Ugyanakkor nem pazarolnak erőforrásokat a „kidobandó” kódra.
A prototípuskészítés evolúciós megközelítése választható abból a feltételezésből kiindulva, hogy a fejlesztés megkezdésekor az összes szükséges követelmény nem ismert, és a program elkészítésekor határozzák meg őket; akkor minden szakaszban csak az ismert és világos követelményeket valósítjuk meg. Ugyanakkor a fejlesztők néha csak azokon a rendszermodulokon dolgoznak, amelyek követelményeit már meghatározták.
Egyes esetekben, amikor egy bizonyos üres résre szánt termékről van szó, a felhasználók még azelőtt elkezdik használni a rendszert, hogy az teljesen elkészült volna, várva a kész rendszert, mert "jobb egy befejezetlen rendszer, mint a teljes hiánya".
A prototípuskészítés fő előnye a fejlesztési idő és költség csökkenése, mivel a prototípus kiértékelése lehetővé teszi a követelmények hiányosságainak vagy inkonzisztenciáinak korábbi szakaszában történő észlelését. Minél később módosítják a specifikációt, annál drágábbak, így a fejlesztés korai szakaszában történő tisztázása, hogy „mit akarnak valójában a felhasználók/ügyfelek”, csökkenti a teljes költséget.
A megrendelő bevonása a fejlesztési folyamatba pszichológiailag is fontos szerepet játszik. A prototípussal való munka lehetővé teszi a jövőbeli felhasználók számára, hogy lássák, hogyan fog kinézni a jövőbeli program, és befolyásolják a viselkedését, ami csökkenti a program ötletében a fejlesztők és a felhasználók közötti eltéréseket. Csökken annak hatása is, hogy az új rendszert a bevezetés során szinte elkerülhetetlenül elutasítják, különösen, ha a korábban használt rendszer helyett bevezetik.
A prototípusok használata azonban számos további kockázatot rejt magában.
Arra a kérdésre, hogy a prototípusok ilyen vagy olyan formában történő alkalmazása mennyiben indokolt egy adott projekthez, nem ad egyértelmű választ. A prototípuskészítés jó eredményeket ad olyan rendszerek tervezésénél, amelyekben a munkaerőköltség jelentős része ember-számítógép interfészek megvalósításához kötődik, és a rendszer vevői követelményeknek való megfelelésének megítélése nagyrészt szubjektív. Az ilyen rendszerekben nagyon nehéz a részletes specifikáció elkészítése, mivel a megrendelő nem tud minden árnyalatot figyelembe venni, a programozók pedig saját belátásuk szerint szervezik meg a nem meghatározott részeket; ebből adódóan a kész rendszer bemutatására a tipikus reakció: „Igen, formailag minden megfelel a feladatmeghatározásnak, de nekünk egyáltalán nem volt rá szükségünk!”. A prototípus elkészítése és kiértékelése ilyen esetekben lehetővé teszi, hogy a fejlesztés korai szakaszában elkülönítsük a megrendelő számára fontos, a specifikációba nem tartozó részleteket a lényegtelenektől, amelyek megvalósítása önkényes lehet. .
Az olyan rendszerek fejlesztése során, amelyek elsődleges feladata a számítás, mint például a parancssori programok és segédprogramok, a prototípuskészítés kevés valódi előnyt kínál.