Software engineering approach and phase development process in hindi सॉफ्टवेयर इंजीनियरिंग दृष्टिकोण और चरण विकास प्रक्रिया के तथ्य।

 

सॉफ्टवेयर इंजीनियरिंग दृष्टिकोण(software engineering approach)


-उच्च गुणवत्ता और उत्पादकता (Q&P) मूल उद्देश्य है जिसे बड़े पैमाने की समस्याओं और परिवर्तनों की गतिशीलता के तहत लगातार हासिल किया जाना है। किसी परियोजना के दौरान हासिल की गई Q&P स्पष्ट रूप से कई कारकों पर निर्भर करेगी, लेकिन Q&P को नियंत्रित करने वाली तीन मुख्य ताकतें लोग, प्रक्रियाएँ और तकनीक हैं, जिन्हें अक्सर आयरन ट्राएंगल कहा जाता है।

Software engineering approach and phase development process in hindi सॉफ्टवेयर इंजीनियरिंग दृष्टिकोण और चरण विकास प्रक्रिया के तथ्य technology , software programming system class, notes PDF download।


सॉफ्टवेयर इंजीनियरिंग में, मुख्य रूप से प्रक्रियाओं पर ध्यान केंद्रित किया जाता है, प्रक्रियाएँ सॉफ्टवेयर इंजीनियरिंग का दिल बनाती हैं। प्रक्रिया वह है जो हमें उपयोगकर्ता की ज़रूरतों से लेकर ज़रूरतों को पूरा करने वाले सॉफ़्टवेयर तक ले जाती है।


सॉफ्टवेयर इंजीनियरिंग का मूल दृष्टिकोण विकसित उत्पाद (यानी, सॉफ़्टवेयर) से सॉफ़्टवेयर विकसित करने की प्रक्रिया को अलग करना है। आधार यह है कि काफी हद तक सॉफ़्टवेयर प्रक्रिया उत्पाद की गुणवत्ता और प्राप्त उत्पादकता को निर्धारित करती है।


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


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





चरणबद्ध विकास प्रक्रिया(phased development process)


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


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


सॉफ्टवेयर विकसित करने के लिए विभिन्न प्रक्रिया मॉडल प्रस्तावित किए गए हैं। वास्तव में, अधिकांश संगठन जो एक प्रक्रिया का पालन करते हैं, उनका अपना संस्करण होता है।  सॉफ़्टवेयर में किसी भी समस्या के समाधान में समस्या को समझने और स्पष्ट रूप से बताने के लिए आवश्यकता विनिर्देश, समाधान के लिए योजना तय करने के लिए डिज़ाइन, नियोजित समाधान को लागू करने के लिए कोडिंग और कार्यक्रमों को सत्यापित करने के लिए परीक्षण शामिल होना चाहिए। Software engineering challenges


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


आवश्यकताओं का विश्लेषण:-


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


 इस चरण में दो प्रमुख गतिविधियाँ हैं: समस्या की समझ या विश्लेषण और आवश्यकता विनिर्देश।


सॉफ्टवेयर डिज़ाइन:-


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


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


 कोडिंग:-


कोडिंग चरण का लक्ष्य सिस्टम के डिज़ाइन को किसी दिए गए प्रोग्रामिंग भाषा में कोड में बदलना है। किसी दिए गए डिज़ाइन के लिए, इस चरण का उद्देश्य डिज़ाइन को सर्वोत्तम संभव तरीके से लागू करना है।


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


परीक्षण:-


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


कोडिंग के दौरान पेश की गई त्रुटियों को उजागर करना है, बल्कि पिछले चरणों के दौरान पेश की गई त्रुटियों को भी उजागर करना है। इस प्रकार, परीक्षण का लक्ष्य कार्यक्रमों में आवश्यकता, डिज़ाइन और कोडिंग त्रुटियों को उजागर करना है। Software engineering and domain problem


प्रक्रिया का प्रबंधन(managing the process)

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


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


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


सॉफ़्टवेयर मेट्रिक्स मात्रात्मक माप हैं जिनका उपयोग सॉफ़्टवेयर सिस्टम या सॉफ़्टवेयर विकास प्रक्रिया की विभिन्न विशेषताओं को मापने के लिए किया जा सकता है। सॉफ़्टवेयर विकास के लिए दो प्रकार के मेट्रिक्स का उपयोग किया जाता है: उत्पाद मेट्रिक्स और प्रक्रिया मेट्रिक्स।


उत्पाद मेट्रिक्स का उपयोग विकसित किए जा रहे उत्पाद, यानी सॉफ़्टवेयर की विशेषताओं को मापने के लिए किया जाता है। प्रक्रिया मेट्रिक्स का उपयोग सॉफ़्टवेयर विकसित करने के लिए उपयोग की जा रही प्रक्रिया की विशेषताओं को मापने के लिए किया जाता है। प्रक्रिया मेट्रिक्स का उद्देश्य उत्पादकता, लागत और संसाधन आवश्यकताओं, गुणवत्ता आश्वासन उपायों की प्रभावशीलता और विकास तकनीकों और उपकरणों के प्रभाव जैसे विचारों को मापना है


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


Faq 

Question-1 software engineering की प्रक्रिया क्या है?

Answer- एक विकास प्रक्रिया में विभिन्न चरण होते हैं, प्रत्येक चरण एक परिभाषित आउटपुट के साथ समाप्त होता है। चरणों को प्रक्रिया मॉडल द्वारा निर्दिष्ट क्रम में निष्पादित किया जाता है।

आवश्यकताओं का विश्लेषण

सॉफ्टवेयर डिज़ाइन

कोडिंग

परीक्षण


कोई टिप्पणी नहीं

Blogger द्वारा संचालित.