हमेशा की तरह आज भी हम Software Engineering के महत्पूर्ण टॉपिक Incremental Model in Hindi के बारे मैं पड़ेंगे और जानेंगे की Incremental Model क्या होता है? और इसमें हम Incremental Model के Types और Advantages & Disadvantages आदि के बारे मैं पड़ेंगे। इसीलिए इस पोस्ट को ध्यान से और अंत तक पढ़े।
What Is the Incremental Model? – इंक्रीमेंटल मॉडल क्या है?
Incremental model एक प्रकार की पद्धति है जो software development के लिए उपयोगी है जिसमे थोड़ा – थोड़ा करके बड़े – बड़े और complex systems को develop किया जाता है। इसमें हर बार अलग – अलग और नई Properties या ‘increments’ को बिना किसी सिस्टम को पूरा बनाने के इसे existing system में जोड़ा जाता है। ये मॉडल डाटा analysis के बाद नए features को जोड़ने पर ज्यादा ध्यान रखता है ताकि हर प्रोजेक्ट step-by-step grow करे और डेवलपमेंट Process प्रबंधनीय रहे।
सॉफ्टवेयर की जो आवश्यकताए होती है उन को Incremental model मे कई सारे छोटे – छोटे increments या स्वतंत्र modules में बाँटा जाता है जो Software Development Life Cycle (SDLC) का हिस्सा होता है। यह Development stages में होता है जंहा हर stage में Design, testing, analysis, implementation, और maintenance शामिल होती है। इसमें हर एक स्टेज की efficiency पहले से बनाए गए functionality के आधार पर होती है और यह प्रक्रिया होती हैं उसे तब तक बार – बार दोहराया जाता है तब तक कोई सॉफ्टवेयर पूरी तरह develop नहीं हो जाता।
incremental model सबसे पहले एक basic version बनाया जाता है जिसमे केबल essential features ही होते है और फिर इसके बाद इसे customers तक पहुंचाया जाता है। जिसके बाद इसमें कई iterations या versions को बनाया जाता है जिसमे कई सारे नए features जुड़े हुए होते है और इनको तब तक ग्राहकों को तब तक पहुंचाया जाता है जब तक final system को पूरी तरह से requirements को मीट नहीं कर लेता।
Types of Incremental Model
incremental models जो है वह Software development life cycle में दो तरह के होते है जो बहुत ज्यादा detailed requirement analysis का फायदा उठाते है:
- Staged Delivery Model
- Parallel Development Model
Staged Delivery Model
इंक्रीमेंटल मॉडल के इस Staged Delivery Model में हर प्रोजेक्ट को step-by-step के रूप में develop किया जाता है जिसमे एक पार्ट सिर्फ एक ही समय पर पूरी तरह complete होता है। इसकी हर एक step अपने से पहले वाले step के काम पर स्थापित होती है जिसके कारण हर प्रोग्रेस धीरे – धीरे होती है और product या service को स्टेज में ग्राहकों तक डिलीवर किया जाता है। इसमें एक समय पर प्रोजेक्ट के सिर्क एक part को ही डेवलप किया जाता है।
Parallel Development Model
Parallel Development मॉडल में अलग – अलग subsystems को एक साथ develop किया जाता है। जो प्रोजेक्ट्स development के पुरे समय को कम करने में सहायता करता है और अगर काफी resources available है तो उनके Time to Market (TTM) को भी बड़ा सकता है।
Advantages of the Incremental Process Model
- Divide और conquer approach से टास्क ब्रेकडाउन बहुत ज्यादा आसान हो जाता है।
- Initial delivery की कीमत भी काफी ज्यादा काम हो जाती है।
- इसमें हमें Incremental resource allocation का ऑप्शन भी देखने को मिलता है।
- इसमें Errors को जल्दी detect किया जा सकता है क्योकि customer सुरु से ही core modules का उपयोग करता है।
- जब requirements पहले से clear होते है तब तक ही approach अच्छा रहता है।
- यह उन projects के लिए बहुत अच्छा है जिन projects का development का कार्यक्रम काफी लम्बे समय तक चलता है।
- जो projects नए technologies का उपयोग करते है उन के लिए भी ये काफी अच्छा है।
- ज्यादा रिस्क, Complex funding schedules, या फिर जल्दी benefits achieve करने वाले projects के लिए यह सुविधाजनक है।
- Scope और requirements को बढ़ाने में यह flexible होता है और इसकी कीमत भी कम आती है।
- इसमें आसानी से errors को पहना सकते है।
Disadvantages of using Incremental process model
- Good Planning and Design Needed: इस Approach के लिए effective planning और design का होना बहुत जरूरी होता है।
- Higher Costs than Waterfall Model: waterfall model के मुकाबले में यह method काफी ज्यादा मायने रखता है।
- Clear System Definition Required: इसमें हर System की definition पूरी होने के साथ – साथ कुल clear भी होनी चाहिए।
- Increased Complexity: जब – जब project increments में develop होता है, तब – तब हर addition के साथ complexity भी बढ़ती रहती है। इस बढ़ती complexity के करण से Management और maintenance काफी मुश्किल बन सकती है।
- Overall Higher Costs: हर इंक्रीमेंट का अपना खुद का design, coding, planning, testing और प्लानिंग, डिज़ाइन, कोडिंग, टेस्टिंग, और Deployment का साइकिल होता है, जो दूसरे Development methods के मुकाबले इसकी पूरी कीमत को ज्यादा कर सकता है।
- Tracking Progress Can Be Tough: जब एक साथ कई सारे या multiple increments develop हो रहे होते हैं, तब प्रोजेक्ट की overall progress track करना बहुत ही चुनौतीपूर्ण हो सकता है।
- The threat of design issues: इसमें system design से related issues उठ सकते हैं अगर program lifecycle के दौरान सभी जरूरतों को upfront collect नहीं किया जा सकता।
- Distinct Iteration Steps: इसमें हर iteration का step अलग होता है और अगले step में flow नहीं करता।
- It takes time to fix issues: अगर हमें किसी एक unit में किसी तहर के issue को fix करना है तो इसके कारण सभी units को सही करने में बहुत समय और effort लगता है।
- Stakeholder Feedback Ki Importance: इसमें हर एक increment के बाद stakeholder का feedback लेना बहुत ज्यादा जरूरी होता है क्योकि इससे हमें project की quality और direction को maintain करने में बहुत मदत मिलती है। अगर stakeholder के द्वारा भेजे गए feedback को ignore किया गया तो project की end quality पर काफी negative impact पद सकता है।
Characteristics of Incremental Models
- इसमें project को छोटे – छोटे manageable components में बाँट दिया जाता है जो अलग से develop और test किए जाते है इस कारण से software में कई सारे अलग – अलग subprojects होंगे।
- इसमें जब तक last increment complete नहीं होता तब तक Final product पूरा नहीं हो जाता।
- इसमें हर requirement को priority दी जाती है और सबसे ज्यादा priority वाले को पहले address किया जाता है।
- जब increment का एक portion develop हो जाता है तो उस वक्त उसकी requirements freeze हो जाती है।
- हर incremental version जैसे analysis, design, coding, और testing के phases से गुज़रता है। आम तौर पर, इसमें हर एक incremental version को बनाने के लिए iterative waterfall model या कई दूसरे तरीको का उपयोग किया जाता है।
हमें आपसे उम्मीद है की आपको हमारी यह पोस्ट पसंद आई होगी और इससे आपको कुछ सीखने को मिला होगा। क्योंकि इसमें हमने Incremental Model को गहराई से और सरल भाषा मैं समझाया है। अगर फिर आपको इस पोस्ट से सम्बंधित कोई भी समस्या हो या फिर आपको कोई सुझाव देना हो तो आप हमें कमेंट के जरिये बता सकते हो।