प्रोटोटाइप के दोनों तरीकों का उपयोग तब किया जाता है जब सिस्टम का कुछ पहलू होता है जिसे आप पूरी तरह से नहीं समझते हैं। हालाँकि, प्रमुख अंतर जीवनचक्र पद्धति है जिसका आप उपयोग करते हैं। विकासवादी प्रोटोटाइप के साथ, आप आमतौर पर सिस्टम के कुछ पहलुओं को समझते हैं और दूसरों के बारे में निश्चित नहीं हैं। फेंकने वाले प्रोटोटाइप में, आपके पास उत्पादन-तैयार प्रणाली का निर्माण करने से पहले आपको समझने की सामान्य कमी है जिसे आपको पूरा करने की आवश्यकता है।
ध्यान दें कि बहुत सारे प्रकार के फेंकू प्रोटोटाइप हैं, और न ही पूरे सिस्टम तक सीमित हैं। उदाहरण के लिए, उपयोगकर्ता इंटरफ़ेस के पेपर या व्हाइटबोर्ड स्केच का उपयोग करके थ्रोअवे प्रोटोटाइप को माना जा सकता है। हां, आप कई पुनरावृत्तियों के माध्यम से जा सकते हैं और पिछले डिज़ाइन को फेंक सकते हैं, लेकिन आप सिस्टम में अंतिम प्रोटोटाइप का उपयोग नहीं करेंगे (यह शारीरिक रूप से संभव नहीं है, एक के लिए)।
यदि आप सामान्य सॉफ्टवेयर इंजीनियरिंग विषयों और एसई की चौड़ाई में रुचि रखते हैं, तो मैं अत्यधिक Sommerville पुस्तक लेने का सुझाव दूंगा जो मैं उद्धृत करता हूं। यह वास्तव में विषयों की चौड़ाई को कवर करने के लिए अच्छा है। यदि आप प्रक्रिया मॉडल और कार्यप्रणाली में अधिक रुचि रखते हैं और आप उन्हें विभिन्न परियोजनाओं के लिए कैसे लागू कर सकते हैं, तो मैं मैककोनेल पुस्तक की सिफारिश करूंगा - इसमें एक पूरा अध्याय विकासवादी प्रोटोटाइप के लिए और दूसरा अध्याय प्रोटोटाइपिंग प्रोटोटाइप के लिए समर्पित है।
मैंने सॉफ्टवेयर प्रोटोटाइप पर विकिपीडिया लेख पर भी एक नज़र डाली । इसके कुछ हिस्से थोड़े अजीब हैं (कम से कम मेरे त्वरित पढ़ने पर), लेकिन कुछ भी ऐसा प्रतीत नहीं होता है जिससे मैं पूरी तरह असहमत हूं। इसमें से कुछ एक विशेष पहलू पर थोड़ा केंद्रित है, लेकिन यह तथ्यात्मक रूप से गलत नहीं है कि मैं देख रहा हूं। मैं नीचे दिए गए परिभाषाओं को पसंद करता हूं, लेकिन यह विभिन्न प्रकार के प्रोटोटाइप पर एक दिलचस्प पढ़ा जा सकता है।
विकासवादी प्रोटोटाइप
खोजपूर्ण विकास जहां प्रक्रिया का उद्देश्य ग्राहक के साथ उनकी आवश्यकताओं का पता लगाने और अंतिम प्रणाली देने के लिए काम करना है। विकास सिस्टम के उन हिस्सों से शुरू होता है जिन्हें समझा जाता है। ग्राहक द्वारा प्रस्तावित नई सुविधाओं को जोड़कर प्रणाली विकसित होती है। (सोमरविले: सॉफ्टवेयर इंजीनियरिंग, 8 वां संस्करण)
इवोल्यूशनरी प्रोटोटाइप एक जीवनचक्र मॉडल है जिसमें सिस्टम को वेतन वृद्धि में विकसित किया जाता है ताकि इसे एंड-यूज़र और ग्राहक प्रतिक्रिया के जवाब में आसानी से संशोधित किया जा सके। अधिकांश विकासवादी-प्रोटोटाइपिंग प्रयास उपयोगकर्ता इंटरफ़ेस को प्रोटोटाइप करके शुरू करते हैं और फिर उससे पूरी की गई प्रणाली को विकसित करते हैं, लेकिन प्रोटोटाइप किसी भी उच्च-जोखिम वाले क्षेत्र से शुरू हो सकता है। इवोल्यूशनरी प्रोटोटाइप थ्रोवावे प्रोटोटाइपिंग के समान नहीं है, और एक विकासवादी प्रोटोटाइप विकसित करने के बारे में सही विकल्प बनाना या फेंकना प्रोटोटाइप सफलता की एक कुंजी है। सफलता की अन्य कुंजी में अनुभवी डेवलपर्स का उपयोग करना, शेड्यूल और बजट अपेक्षाओं का प्रबंधन करना और स्वयं प्रोटोटाइप गतिविधि का प्रबंधन करना शामिल है। (मैककोनेल: रैपिड डेवलपमेंट: टैमिंग वाइल्ड सॉफ्टवेयर शेड्यूल)
थ्रोवैव प्रोटोटाइपिंग:
थ्रोवावे प्रोटोटाइपिंग वह जगह है जहां विकासवादी प्रक्रिया का उद्देश्य ग्राहक की आवश्यकताओं को समझना है और इसलिए सिस्टम के लिए बेहतर आवश्यकताओं की परिभाषा विकसित करना है। प्रोटोटाइप ग्राहक की आवश्यकताओं के साथ प्रयोग करने पर ध्यान केंद्रित करता है जो खराब समझे जाते हैं। (सोमरविले: सॉफ्टवेयर इंजीनियरिंग, 8 वां संस्करण)
थ्रोवेव प्रोटोटाइप के साथ, कोड को सिस्टम की सफलता के लिए महत्वपूर्ण कारकों का पता लगाने के लिए विकसित किया जाता है, और फिर उस कोड को फेंक दिया जाता है। प्रोटोटाइप कार्यान्वयन प्रोग्रामिंग भाषाओं या विकास प्रथाओं या दोनों का उपयोग करता है जो लक्ष्य भाषा और प्रथाओं की तुलना में बहुत तेज़ हैं। उपयोगकर्ता इंटरफ़ेस सिस्टम के किसी भी अन्य भाग की तुलना में कहीं अधिक सामान्य रूप से प्रोटोटाइप है, लेकिन कुछ सिस्टम के अन्य हिस्सों को भी प्रोटोटाइप होने से लाभ मिल सकता है। जब आवश्यकताओं की सहायता के रूप में उपयोग किया जाता है, तो थ्रोवावे प्रोटोटाइपिंग प्रथा पारंपरिक जीवनचक्र मॉडल, जैसे DoD परियोजनाओं के आधार पर परियोजनाओं में तेजी ला सकती है। यह एक प्रबंधन या तकनीकी स्तर पर शुरू किया जा सकता है। (मैककोनेल: रैपिड डेवलपमेंट: टैमिंग वाइल्ड सॉफ्टवेयर शेड्यूल)