इंटरनेट-गति विकास

इंटरनेट-गति विकास एक चंचल सॉफ्टवेयर विकास पद्धति है, जिसमें उच्च गति वाले उत्पाद को विकसित करने के उद्देश्य से दैनिक निर्माण के साथ एक संयुक्त सर्पिल मॉडल/झरना मॉडल का उपयोग किया जाता है।

इसे नब्बे के दशक के अंत में विकसित किया गया था क्योंकि सॉफ्टवेयर विकास तेजी से बदल रहा था। कंपनियों को परियोजना के लिए निर्धारित समय के भीतर सही आवश्यकताओं के साथ उत्पादों को वितरित करने में समस्या हो रही थी और इस तरह वे अधिक चुस्त सॉफ्टवेयर विकास विधियों में बदल रहे थे। इब्राहीमसन के पेपर में इवोल्यूशनरी मैप में इंटरनेट-स्पीड पद्धति को कैसे विकसित किया गया था, इसके बारे में अधिक विवरण देखा जा सकता है।

इंटरनेट-गति विकास के पीछे मुख्य विचार
सॉफ्टवेयर इंजीनियरिंग में अक्सर सबसे बड़ी समस्याओं में से एक यह है कि आवश्यकताओं में तेजी से परिवर्तन होता है और इस स्थिति के अनुकूल होने के लिए इंटरनेट-गति विकास पद्धति बनाई गई थी। यह विचार सॉफ्टवेयर इंजीनियरिंग मॉडल में दो मुख्य मानकों को जोड़ने का है, अर्थात् सर्पिल मॉडल और वॉटरफॉल मॉडल को एक नए मॉडल में और इस नए मॉडल पर एक नई सॉफ्टवेयर इंजीनियरिंग पद्धति को आधार बनाना है। जलप्रपात मॉडल का मुख्य नुकसान यह था कि जब आवश्यकताओं में परिवर्तन की बात आती है तो यह बहुत कठोर और बहुत लचीला नहीं था, जबकि सर्पिल मॉडल का नुकसान यह था कि यह बहुत संरचित नहीं था। इंटरनेट-गति विकास के पीछे विचार यह है कि इन मॉडलों के संयोजन के परिणामस्वरूप एक ऐसी विधि होगी जिसमें ये नुकसान नहीं होंगे और यह उन स्थितियों में उपयोग करने के लिए एक बेहतर तरीका है जहां आवश्यकताएं तेजी से बदल सकती हैं, लेकिन परियोजना को एक संरचित तरीके से क्रियान्वित किया जाना है। रास्ता।

विधि का लक्ष्य
इंटरनेट-गति विकास पद्धति का लक्ष्य सॉफ्टवेयर डेवलपर्स को एक संरचित तरीके से एक परियोजना को पूरा करने की अनुमति देना है, लेकिन फिर भी ग्राहक की जरूरतों को पूरा करने में सक्षम होना है। इसका उद्देश्य गहन विकास के माध्यम से कम समय में एक सॉफ्टवेयर उत्पाद प्रदान करना है। विधि पूरी तरह से कार्यान्वित प्रणाली प्रदान करने का एक साधन प्रदान करती है और मील के पत्थर के उपयोग के माध्यम से किसी परियोजना में प्रगति निर्धारित करने के तरीके भी हैं। इस पद्धति के मुख्य संस्करणों में से एक Microsoft द्वारा बनाया गया है और इसे Microsoft समाधान फ्रेमवर्क कहा जाता है।

इंटरनेट-गति विकास पद्धति के पीछे की अवधारणा
पहली अवधारणा जो इंटरनेट की गति के विकास के लिए बहुत महत्वपूर्ण है, एक दृष्टि और कार्यक्षेत्र (परियोजना प्रबंधन) का निर्माण है। इसका मतलब यह है कि परियोजना की शुरुआत में सिस्टम की एक वैश्विक परिभाषा बनाई जाती है जो बताती है कि सिस्टम का लक्ष्य क्या है और दायरे में क्या है और क्या नहीं है। यह मौलिक कदमों में से एक है क्योंकि यह डेवलपर्स को कुछ दिशानिर्देश देता है कि बिना किसी आवश्यकता को रोके सिस्टम क्या होगा। स्कोप को एक लक्ष्यों का विवरण में प्रलेखित किया जा सकता है।

इस पद्धति के भीतर एक और बहुत महत्वपूर्ण अवधारणा स्कोप प्रबंधन है। स्कोप रेंगने से रोकने के लिए स्कोप को पूरे प्रोजेक्ट में प्रबंधित करने की आवश्यकता है जिसके परिणामस्वरूप देरी होती है। दायरा जल्दी निर्धारित किया जाएगा और दायरे में परिवर्तन (जैसे अतिरिक्त सुविधाओं को जोड़ना जो पहले परियोजना के दायरे से बाहर माने जाते थे) का मूल्यांकन किया जाएगा और या तो स्वीकार या अस्वीकार कर दिया जाएगा। दायरे में बदलाव किए जा सकते हैं लेकिन यह हमेशा सुविधाओं, संसाधनों और समय के बीच व्यापार बंद से प्रभावित होगा।

इंटरनेट-गति विकास पद्धति पारंपरिक तरीकों से बहुत अलग है और इसलिए फुर्तीली पद्धति सिद्धांतों का उपयोग करती है। यह आवश्यकताओं के अनुकूलन पर ध्यान केंद्रित करता है और जैसे कि एजाइल सॉफ्टवेयर विकास के मूल सिद्धांतों पर आधारित है।

इंटरनेट-गति विकास भी एक निश्चित रूपरेखा संरचना का उपयोग करने पर ध्यान केंद्रित करता है जिससे उत्पाद बनाया जाता है और विकास की गति को बढ़ाने के लिए उपकरणों पर बहुत अधिक निर्भर करता है।

इंटरनेट की गति के विकास की एक और बुनियादी अवधारणा यह है कि यह छोटी टीमों का उपयोग करने पर भी ध्यान केंद्रित करता है। विचार यह है कि सभी परियोजनाओं को छोटी-छोटी गतिविधियों में विभाजित किया जा सकता है जिन्हें अक्सर समानांतर में किया जा सकता है। छोटी टीमें अक्सर अपने कार्य पर अधिक ध्यान केंद्रित कर सकती हैं और परियोजना के भीतर उत्तरदायित्व निर्धारित करना और प्रगति की निगरानी करना आसान होता है।

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

इंटरनेट-गति का विकास चुस्त सिद्धांतों पर आधारित है और इस तरह इसमें चरम कार्यक्रम, तर्कसंगत एकीकृत प्रक्रिया, गतिशील प्रणाली विकास पद्धति और फीचर संचालित विकास के साथ बहुत समानताएं हैं। इंटरनेट की गति का विकास हालांकि इन तरीकों से अलग है क्योंकि इसमें एक अधिक व्यापक जोखिम प्रबंधन योजना भी सम्मिलित है और एक परियोजना के एक बहुत ही महत्वपूर्ण उद्देश्य के रूप में गुणवत्ता है। इंटरनेट-गति विकास का विकास चरण भी खुला स्रोत सॉफ्टवेयर विकास मॉडल के साथ कुछ समानताएं दिखाता है क्योंकि इंटरनेट के माध्यम से संचार और कोड और दस्तावेज़ीकरण को संग्रहीत करने के लिए रिपॉजिटरी के उपयोग के कारण दुनिया भर के कई डेवलपर विकास प्रक्रिया का हिस्सा हो सकते हैं।.

इंटरनेट-गति विकास के चरण
इस पद्धति के पीछे का मॉडल इस तरह दिखता है: चित्रा 1: चरण मॉडल यह मॉडल विधि के पांच बुनियादी चरणों को दर्शाता है। इस प्रविष्टि के निम्नलिखित खंडों में इन चरणों की व्याख्या की जाएगी। चरण हैं: कल्पना करना, योजना बनाना, विकास करना, स्थिर करना और तैनाती करना। इस चक्र के पूरा होने के बाद सिस्टम का एक संस्करण तैयार होता है और एक नया चक्र एक नया संस्करण बनाने के लिए शुरू होता है। चरणों को निम्नलिखित खंडों में समझाया गया है और एक मेटा-मॉडलिंग तकनीक के माध्यम से दिखाया गया है। एक परियोजना के संदर्भ में बहुलताओं और अवधारणाओं के बारे में अधिक जानकारी बाद में समग्र डेटा मॉडल में देखी जा सकती है।

कल्पना चरण
परिकल्पना चरण को निम्नानुसार प्रतिरूपित किया जा सकता है:

चित्र 2: कल्पना चरण प्रक्रिया/डेटा मॉडल तालिका 1: गतिविधियों की कल्पना करना

परिकल्पना चरण में की गई बुनियादी गतिविधियाँ आवश्यकताओं का विश्लेषण कर रही हैं, परियोजना के लिए टीम का गठन कर रही हैं, जोखिमों का निर्धारण कर रही हैं और परियोजना का दायरा तय कर रही हैं। परियोजना की आवश्यकताओं और लक्ष्यों से एक विजन/स्कोप दस्तावेज़ बनाया जाता है। यह दस्तावेज़ बताता है कि जब उत्पाद वितरित किया जाता है तो उसे क्या होना चाहिए। इसमें उत्पाद की बहुत विस्तृत कार्यप्रणाली सम्मिलित नहीं है। तालिका 2: परिकल्पना चरण में अवधारणाएँ

योजना चरण


चित्र 3: योजना चरण प्रक्रिया/डेटा मॉडल तालिका 3: गतिविधियों की योजना बनाना

नियोजन चरण में आवश्यकताओं से एक कार्यात्मक विनिर्देश बनाया जाता है। चयनित सुविधाओं को इस विनिर्देश में सम्मिलित किया गया है (एक MoSCoW विधि अक्सर सुविधाओं के लिए उपयोग की जाती है ताकि उन्हें अधिक आसानी से प्राथमिकता दी जा सके)। साथ ही, इस चरण में मूल डिजाइन और योजना बनाई जाती है। हालांकि डिजाइन इस चरण में स्थिर नहीं है क्योंकि विकास के चरण में बदलाव किए जा सकते हैं। तालिका 4: नियोजन चरण में अवधारणाएँ

विकास चरण
चित्र 4: चरण प्रक्रिया/डेटा मॉडल का विकास करना तालिका 5: विकासशील गतिविधियाँ विकासशील चरण में सबसे महत्वपूर्ण गतिविधि सुविधाओं का विकास है। इन सुविधाओं के कार्यान्वयन के अलावा इस चरण में कार्यक्षेत्र को भी अंतिम रूप दिया गया है। विकास के दौरान उत्पाद में नई विशेषताएं जोड़ी जा सकती हैं, लेकिन एक बार कार्यक्षेत्र को अंतिम रूप देने के बाद विशेषताएं स्थिर हो जाती हैं और परीक्षण और स्थिरीकरण के लिए तैयार हो जाती हैं। इस चरण में आधारभूत संरचना भी विकसित की जाती है जिसका अर्थ है कि नेटवर्क संरचनाओं की पहचान की जाती है और उदाहरण के लिए डेटाबेस सर्वर जैसे सर्वर परिभाषित किए जाते हैं। तालिका 5: विकासशील चरण में अवधारणाएँ

स्थिरीकरण चरण
चित्रा 5: स्थिरीकरण चरण प्रक्रिया/डेटा मॉडल तालिका 6: स्थिरीकरण गतिविधियाँ मुख्य गतिविधियाँ बगों का परीक्षण और समाधान हैं। एक बार एक पायलट संस्करण को एक पायलट के लिए पर्याप्त स्थिर माना जाता है, एक पायलट संस्करण बनाया और तैनात किया जाता है। इस पायलट से यह या तो परीक्षण/स्थिरीकरण लूप में वापस जाएगा या इसे अनुमोदित और समीक्षा की जाएगी। तालिका 7: स्थिरीकरण चरण में अवधारणाएँ

परिनियोजन चरण
चित्र 6: परिनियोजन चरण प्रक्रिया/डेटा मॉडल तालिका 8: गतिविधियों की तैनाती परिनियोजन चरण में मुख्य गतिविधि उत्पाद को चलाने के लिए आवश्यक बुनियादी ढाँचे की स्थापना (सर्वर आदि की तैनाती) है। साथ ही, दस्तावेजों को अंतिम रूप दिया जाता है और संचालन और सहायता विभाग को हस्तांतरित किया जाता है, एक ज्ञान का आधार बनाया जाता है और ग्राहक (यदि लागू हो) और परियोजना टीम द्वारा उत्पाद और परियोजना की समीक्षा की जाती है। तालिका 9: परिनियोजन चरण में अवधारणाएँ

समग्र डेटा मॉडल
चित्र 7: समग्र डेटा मॉडल यह डेटा मॉडल एक पूर्ण परियोजना संदर्भ में सभी अवधारणाओं को बहुलताओं और संबंधों के साथ दिखाता है।

इंटरनेट-गति विकास के साथ प्रयोग के लिए उपकरण

 * ड्राइंग टूल्स (उदाहरण: Microsoft Visio, Rational Rose, Dia (सॉफ्टवेयर)) डायग्राम बनाने के लिए।
 * वर्ड प्रोसेसर (उदाहरण: Microsoft Word, OpenOffice.org राइटर, AbiWord, Calligra Words) विजन स्टेटमेंट या स्कोप डॉक्यूमेंट जैसे टेक्स्ट डॉक्यूमेंट बनाने के लिए।
 * स्प्रेडशीट (उदाहरण: Microsoft Excel, OpenOffice.org Calc, Gnumeric, Calligra Sheets) प्राथमिकता वाली जोखिम सूची बनाने और लागत गणना करने के लिए।
 * प्रोजेक्ट टूल्स (उदाहरण: माइक्रोसॉफ्ट प्रोजेक्ट, ओपनप्रोज, गनोम प्लानर, कैलीग्रा योजना) प्रोजेक्ट गतिविधियों की योजना बनाने के लिए।
 * डेटाबेस और डेटाबेस प्रबंधन उपकरण (उदाहरण: MS SQL सर्वर, MySQL, Oracle, PostgreSQL) ज्ञान आधार बनाने के लिए।
 * स्वचालित परीक्षण उपकरण (उदाहरण: परीक्षण स्क्रिप्ट) प्रत्येक दैनिक निर्माण के बाद परीक्षण निष्पादित करने के लिए।

यह भी देखें

 * चुस्त सॉफ्टवेयर विकास
 * वृद्धिशील और पुनरावृत्त विकास
 * माइक्रोसॉफ्ट सॉल्यूशंस फ्रेमवर्क
 * डायनेमिक सिस्टम डेवलपमेंट मेथड (DSDM)
 * MoSCoW विधि

संदर्भ

 * Microsoft June 2002 Microsoft Solutions Framework (White Paper) Microsoft Press
 * Microsoft June 2002 MSF Risk Management Discipline v.1.1 (White Paper) Microsoft Press
 * Wolfgang Zuser, Stefan Heil, Thomas Grechenig 2005 Software Quality Development and Assurance in RUP, MSF and XP - A Comparative Study Proceedings of the 2005 workshop on Software quality
 * Pekka Abrahamsson, Juhani Warsta, Mikko T. Siponen, Jussi Ronkainen 2003 New Directions on Agile Methods: A Comparative Analysis ICSE
 * Michael A. Cusumano, David B. Yoffie 1999 Software Development on Internet Time 32 IEEE
 * Balasubramaniam Ramesh, Jan Pries-Heje 2002 Internet Software Engineering: A Different Class of Processes Annals of Software Engineering 14 169–195