सॉफ्टवेयर इंजीनियरिंग: Difference between revisions
m (added Category:Vigyan Ready using HotCat) |
No edit summary |
||
| (One intermediate revision by one other user not shown) | |||
| Line 237: | Line 237: | ||
{{Authority control}} | {{Authority control}} | ||
[[Category: | [[Category:All articles containing potentially dated statements]] | ||
[[Category:All articles with unsourced statements]] | |||
[[Category:Articles containing potentially dated statements from 2004]] | |||
[[Category:Articles containing potentially dated statements from 2006]] | |||
[[Category:Articles containing potentially dated statements from 2010]] | |||
[[Category:Articles that may contain original research from April 2015]] | |||
[[Category:Articles with hatnote templates targeting a nonexistent page]] | |||
[[Category:Articles with invalid date parameter in template]] | |||
[[Category:Articles with short description]] | |||
[[Category:Articles with specifically marked weasel-worded phrases from October 2018]] | |||
[[Category:Articles with unsourced statements from February 2007]] | |||
[[Category:Articles with unsourced statements from June 2007]] | |||
[[Category:Articles with unsourced statements from March 2009]] | |||
[[Category:Articles with unsourced statements from May 2012]] | |||
[[Category:Articles with unsourced statements from September 2021]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category:CS1 errors]] | |||
[[Category:CS1 français-language sources (fr)]] | |||
[[Category:CS1 maint]] | |||
[[Category:CS1 Ελληνικά-language sources (el)]] | |||
[[Category:Citation Style 1 templates|W]] | |||
[[Category:Collapse templates]] | |||
[[Category:Created On 17/12/2022]] | [[Category:Created On 17/12/2022]] | ||
[[Category:Vigyan Ready]] | [[Category:Exclude in print]] | ||
[[Category:Interwiki category linking templates]] | |||
[[Category:Interwiki link templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with reference errors]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates based on the Citation/CS1 Lua module]] | |||
[[Category:Templates generating COinS|Cite web]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates used by AutoWikiBrowser|Cite web]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikimedia Commons templates]] | |||
[[Category:Wikipedia fully protected templates|Cite web]] | |||
[[Category:Wikipedia metatemplates]] | |||
Latest revision as of 10:45, 8 January 2023
| Part of a series on |
| Software development |
|---|
सॉफ्टवेयर अभियांत्रिकी सॉफ्टवेयर विकास के लिए व्यवस्थित अभियांत्रिकी दृष्टिकोण है।[1][2][3] सॉफ्टवेयर इंजीनियर वह व्यक्ति है जो सॉफ्टवेयर अभियांत्रिकी के सिद्धांतों को डिजाइन करने उसके विकास करने रखरखाव करने तथा परीक्षण और मूल्यांकन करने के लिए लागू की जाती है। 'प्रोग्रामर' शब्द का प्रयोग कभी-कभी पर्याय के रूप में किया जाता है, लेकिन इसमें अभियांत्रिकी शिक्षा या कौशल के अर्थ का अभाव भी हो सकता है।
सूचना देने के लिए अभियांत्रिकी विधियों का उपयोग किया जाता है, सॉफ्टवेयर विकास प्रक्रिया[1][4]जिसमें सॉफ्टवेयर जीवन चक्र प्रक्रिया की परिभाषा, कार्यान्वयन, मूल्यांकन, माप, प्रबंधन, परिवर्तन और सुधार सम्मलित है। यह सॉफ्टवेयर कॉन्फ़िगरेशन प्रबंधन का भारी उपयोग करता है[1][4] जो विन्यास में परिवर्तनों को व्यवस्थित रूप से नियंत्रित करने, और पूरे प्रणाली जीवन चक्र में विन्यास और कोड की अखंडता और पता लगाने की क्षमता को बनाए रखने के बारे में है। आधुनिक प्रक्रियाएं सॉफ्टवेयर वर्जनिंग का उपयोग करती हैं।
इतिहास
1960 के दशक के प्रारंंभ में, सॉफ्टवेयर अभियांत्रिकी को अपने ही प्रकार की अभियांत्रिकी के रूप में देखा जाने लगा। इसके अतिरिक्त, सॉफ्टवेयर अभियांत्रिकी के विकास को संघर्ष के रूप में देखा गया। हार्डवेयर के साथ मेल बिठाना कठिन था जिससे सॉफ्टवेयर इंजीनियरों के लिए कई समस्याएं पैदा हुईं। समस्याओं में सॉफ्टवेयर सम्मलित था जो बजट से अधिक था, समय सीमा से अधिक था, व्यापक डिबगिंग की आवश्यकता थी | डी-बगिंग और रखरखाव और असफल रूप से उपभोक्ताओं की जरूरतों को पूरा किया या कभी भी पूरा नहीं किया गया था। 1968 में नाटो ने पहला सॉफ्टवेयर अभियांत्रिकी सम्मेलन आयोजित किया जहां सॉफ्टवेयर से संबंधित विवादों को संबोधित किया गया तथा सॉफ्टवेयर के विकास के लिए दिशानिर्देश और सर्वोत्तम अभ्यास स्थापित किए गया।[5]
सॉफ्टवेयर अभियांत्रिकी शब्द की उत्पत्ति के लिए विभिन्न स्रोतों को जिम्मेदार ठहराया गया है। सॉफ्टवेयर अभियांत्रिकी शब्द कंप्यूटर और ऑटोमेशन के जून 1965 के अंक में कंपनियों द्वारा प्रदान की जाने वाली सेवाओं की सूची में दिखाई दिया और अगस्त 1966 में अधिक औपचारिक रूप से उपयोग किया गया। एसीएम अध्यक्ष एंथनी ए ओटिंगर द्वारा एसीएम (खंड 9, संख्या 8) "एसीएम सदस्यता के लिए पत्र" के संचार का मुद्दा,[6][7] यह 1968 में सॉफ्टवेयर अभियांत्रिकी पर पहला सम्मेलन, प्रोफेसर फ्रेडरिक एल बाउर द्वारा नाटो सम्मेलन के शीर्षक से भी जुड़ा हुआ है।[8] मार्गरेट हैमिल्टन (सॉफ्टवेयर इंजीनियर) ने अपोलो मिशन के समय अनुशासन सॉफ्टवेयर अभियांत्रिकी का वर्णन किया, जो वे वैधता प्रदान कर रहे थे।[9] उस समय सॉफ्टवेयर संकट माना जाता था।[10][11][12] सॉफ्टवेयर अभियांत्रिकी पर 40वां अंतर्राष्ट्रीय सम्मेलन (आईसीएसई 2018) सॉफ्टवेयर अभियांत्रिकी के 50 साल पूरे होने का जश्न फ्रेडरिक ब्रूक्स और मार्गरेट हैमिल्टन (वैज्ञानिक) के पूर्ण सत्रों के मुख्य समस्या के साथ मना रहा है।[13] [14]
1984 में, सॉफ्टवेयर अभियांत्रिकी संस्थान (SEI) को संयुक्त राज्य अमेरिका के पिट्सबर्ग, पेन्सिलवेनिया में कार्नेगी मेलन विश्वविद्यालय के परिसर में संघ द्वारा वित्त पोषित अनुसंधान और विकास केंद्र के रूप में स्थापित किया गया था। वत्स हम्फ्री ने सॉफ्टवेयर अभियांत्रिकी प्रक्रिया को समझने और प्रबंधित करने के उद्देश्य से SEI सॉफ्टवेयर प्रोसेस प्रोग्राम की स्थापना की। प्रस्तुत की गई इस प्रक्रिया की परिपक्वता स्तर के विकास के लिए क्षमता परिपक्वता मॉडल एकीकरण (CMMI-DEV) बनाया गया, जिसने परिभाषित किया है कि अमेरिकी सरकार सॉफ्टवेयर विकास टीम की क्षमताओं का मूल्यांकन कैसे करती है।
सॉफ्टवेयर अभियांत्रिकी के लिए आधुनिक, सामान्यतः स्वीकृत सर्वोत्तम प्रथाओं को ISO/IEC JTC 1/SC 7 उपसमिति द्वारा एकत्र किया गया है और सॉफ्टवेयर अभियांत्रिकी ज्ञान का निकाय (स्वेबोक) के रूप में प्रकाशित किया गया है।[15] सॉफ्टवेयर अभियांत्रिकी को प्रमुख कम्प्यूटिंग विषयों में से माना जाता है।[16]
परिभाषाएं और शब्दावली विवाद
सॉफ्टवेयर अभियांत्रिकी की उल्लेखनीय परिभाषाओं में सम्मलित हैं:
- सॉफ्टवेयर के डिजाइन, कार्यान्वयन, परीक्षण और प्रलेखन के लिए वैज्ञानिक और विधि ज्ञान, विधियों और अनुभव का व्यवस्थित अनुप्रयोग - श्रम सांख्यिकी ब्यूरो - आईईईई प्रणाली और सॉफ्टवेयर अभियांत्रिकी - शब्दावली[17]
- सॉफ्टवेयर के विकास, संचालन और रखरखाव के लिए व्यवस्थित, अनुशासित, मात्रात्मक दृष्टिकोण का अनुप्रयोग - सॉफ्टवेयर अभियांत्रिकी शब्दावली का आईईईई मानक शब्दावली[18]
- अभियांत्रिकी अनुशासन जो सॉफ्टवेयर उत्पादन के सभी पहलुओं से संबंधित है - इयान सोमरविले (अकादमिक)[19]
- आर्थिक रूप से विश्वसनीय सॉफ्टवेयर प्राप्त करने के लिए ध्वनि अभियांत्रिकी सिद्धांतों की स्थापना और उपयोग जो वास्तविक मशीनों पर कुशलता से कार्य करता है —फ्रेडरिक एल बाउर[20]
- कंप्यूटर विज्ञान की शाखा जो जटिल कंप्यूटर प्रोग्राम—मेरिएम वेबस्टर के डिजाइन, कार्यान्वयन और रखरखाव से संबंधित है[21]
- 'सॉफ़्टवेयर अभियांत्रिकी' में न केवल कोड लिखने का कार्य सम्मलित है, बल्कि वे सभी उपकरण और प्रक्रियाएं सम्मलित हैं जिनका उपयोग संगठन उस कोड को समय के साथ बनाने और बनाए रखने के लिए करता है। गूगल में सॉफ्टवेयर अभियांत्रिकी को 'समय के साथ एकीकृत प्रोग्रामिंग' के रूप में माना जा सकता है।[22]
इस शब्द का प्रयोग कम औपचारिक रूप से भी किया गया है:
- व्यापक श्रेणी की गतिविधियों के लिए अनौपचारिक समकालीन शब्द के रूप में जिन्हें पहले कंप्यूटर प्रोग्रामिंग और प्रणाली विश्लेषण कहा जाता था।Cite error: Closing
</ref>missing for<ref>tag - कंप्यूटर प्रोग्रामिंग के लिए विशिष्ट दृष्टिकोण की प्रत्युत्तर करने वाले शब्द के रूप में, कला या शिल्प के अतिरिक्त अभियांत्रिकी अनुशासन के रूप में व्यवहार करने का आग्रह करता है, और अनुशंसित प्रथाओं के संहिताकरण (कानून) की प्रत्युत्तर करता है।[23]
सॉफ्टवेयर इंजीनियर की व्युत्पत्ति
मार्गरेट हैमिल्टन (वैज्ञानिक) ने अपोलो कार्यक्रम पर अपने कार्य के समय सॉफ्टवेयर अभियांत्रिकी शब्द को बढ़ावा दिया। अभियांत्रिकी शब्द का प्रयोग यह स्वीकार करने के लिए किया गया था कि कार्य को उतनी ही गंभीरता से लिया जाना चाहिए जितना कि प्रौद्योगिकी की उन्नति के लिए अन्य योगदानों को। हैमिल्टन ने इस शब्द के उपयोग का विवरण दिया:
जब मैं पहली बार इस शब्द के साथ आया था, तो कम से कम हमारी दुनिया में किसी ने इसके बारे में पहले नहीं सुना था। काफी दिनों से यह मजाक चल रहा था। वे मेरे विरुद्ध विचारों के बारे में मुझसे मजाक करना पसंद करते थे। यह स्मरणीय दिन था जब सबसे सम्मानित हार्डवेयर गुरुओं में से ने बैठक में सभी को समझाया कि वह मुझसे सहमत हैं कि सॉफ्टवेयर बनाने की प्रक्रिया को भी हार्डवेयर की तरह ही अभियांत्रिकी अनुशासन माना जाना चाहिए। प्रति नए कार्यकाल की उनकी स्वीकृति के कारण नहीं, बल्कि इसलिए कि हमने उनकी और कमरे में दूसरों की स्वीकृति को अपने आप में अभियांत्रिकी क्षेत्र में होने के रूप में अर्जित किया था।[24]
शब्द की उपयुक्तता
अलग-अलग टिप्पणीकारों ने सॉफ्टवेयर अभियांत्रिकी या अभियांत्रिकी अनुशासन के रूप में इसकी वैधता को कैसे परिभाषित किया जाए, इस पर तीव्र असहमति जताई है। डेविड पारनास ने कहा है कि सॉफ्टवेयर अभियांत्रिकी वास्तव में अभियांत्रिकी का रूप है।[25][26] स्टीव मैककोनेल ने कहा है कि ऐसा नहीं है, लेकिन यह होना चाहिए।[27] डोनाल्ड नुथ ने कहा है कि प्रोग्रामिंग कला और विज्ञान है।[28] एड्सगर डब्लू. डिजक्रिस्टा ने दावा किया कि सॉफ्टवेयर अभियांत्रिकी और सॉफ्टवेयर इंजीनियर शब्दों का दुरुपयोग किया गया है[improper synthesis?] और विशेष रूप से संयुक्त राज्य अमेरिका में हानिकारक माना जाना चाहिए।[29]
बड़े पैमाने की परियोजनाओं में कार्य
सॉफ्टवेयर आवश्यकताएँ
आवश्यकताएँ अभियांत्रिकी सॉफ़्टवेयर के लिए आवश्यकताओं की प्राप्ति, विश्लेषण, विनिर्देश और सत्यापन के बारे में है। सॉफ्टवेयर आवश्यकताएं तीन अलग-अलग प्रकार की हो सकती हैं। कार्यात्मक आवश्यकताएं, गैर-कार्यात्मक आवश्यकताएं और डोमेन आवश्यकताएं हैं। सॉफ्टवेयर का संचालन किया जाना चाहिए और उपयोगकर्ता के उपयोग के लिए उचित आउटपुट की अपेक्षा की जानी चाहिए। गैर-कार्यात्मक आवश्यकताएं पोर्टेबिलिटी, सुरक्षा, रखरखाव, विश्वसनीयता, मापनीयता, प्रदर्शन, पुन: प्रयोज्य और लचीलेपन जैसे विवादों से निपटती हैं। उन्हें निम्न प्रकारों में वर्गीकृत किया गया है: इंटरफ़ेस बाधाएँ, प्रदर्शन बाधाएँ (जैसे प्रतिक्रिया समय, सुरक्षा, भंडारण स्थान, आदि), परिचालन बाधाएँ, जीवन चक्र बाधाएँ (रखरखाव, सुवाह्यता, आदि), और आर्थिक बाधाएँ पायी गई। गैर-कार्यात्मक आवश्यकताओं को निर्दिष्ट करने की बात आने पर प्रणाली या सॉफ़्टवेयर कैसे कार्य करता है, इसका ज्ञान आवश्यक है। डोमेन आवश्यकताओं को निश्चित श्रेणी या परियोजनाओं के डोमेन की विशेषता के साथ करना पड़ता है।[30]
सॉफ्टवेयर डिजाइन
सॉफ़्टवेयर डिज़ाइन आर्किटेक्चर, घटकों, इंटरफेस और प्रणाली या घटक की अन्य विशेषताओं को परिभाषित करने की प्रक्रिया के बारे में है। इसे सॉफ़्टवेयर वास्तुशिल्प भी कहा जाता है। सॉफ्टवेर डिज़ाइन को डिजाईन के तीन अलग-अलग स्तरों में विभाजित किया गया है। अंतरफलक प्रारूप, सॉफ़्टवेयर आर्किटेक्चर और विस्तृत डिज़ाइन दस्तावेज़ तीन स्तर हैं। इंटरफ़ेस डिज़ाइन प्रणाली और उसके वातावरण के बीच की बातचीत है। यह प्रणाली के आंतरिक कार्यकाज के साथ-साथ अमूर्तता के उच्च स्तर पर होता है। आर्किटेक्चरल डिज़ाइन को प्रणाली के प्रमुख घटकों और उनकी जिम्मेदारियों, गुणों, इंटरफेस और उनके बीच होने वाले संबंधों और इंटरैक्शन के साथ करना होता है। विस्तृत डिजाइन सभी प्रमुख प्रणाली घटकों, उनके गुणों, संबंधों, प्रसंस्करण और सामान्यतः उनके कलन विधि और डेटा संरचनाओं के आंतरिक तत्व हैं।[31]
सॉफ्टवेयर निर्माण
सॉफ्टवेयर निर्माण, सॉफ्टवेयर विकास की मुख्य गतिविधि,[1][4] कंप्यूटर प्रोग्रामिंग, इकाई का परीक्षण, एकीकरण जांच और डिबगिंग का संयोजन है। इस चरण के समय परीक्षण सामान्यतः प्रोग्रामर द्वारा किया जाता है, जबकि सॉफ्टवेयर निर्माणाधीन होता है, यह सत्यापित करने के लिए कि अभी क्या लिखा गया था और तय करें कि कोड अगले चरण में भेजने के लिए कब तैयार है।
सॉफ्टवेयर परीक्षण
सॉफ्टवेयर परिक्षण[1][4] यूनिट परीक्षण और एकीकरण परीक्षण जैसे विभिन्न दृष्टिकोणों के साथ परीक्षण के अनुसार उत्पाद या सेवा की गुणवत्ता के बारे में जानकारी के साथ हितधारकों को प्रदान करने के लिए अनुभवजन्य, विधि जांच है। यह सॉफ्टवेयर गुणवत्ता का पहलू है। सॉफ्टवेयर विकास में अलग चरण के रूप में, यह सामान्यतः गुणवत्ता आश्वासन कर्मचारियों या कोड लिखने वाले के अतिरिक्त डेवलपर द्वारा किया जाता है।
सॉफ्टवेयर विश्लेषण
सॉफ़्टवेयर विश्लेषण कंप्यूटर प्रदर्शन, मजबूती (कंप्यूटर विज्ञान), और सुरक्षा विश्लेषण जैसी संपत्ति के संबंध में कंप्यूटर प्रोग्राम के व्यवहार का विश्लेषण करने की प्रक्रिया है, इसे रनटाइम (गतिशील प्रोग्राम विश्लेषण) के समय प्रोग्राम (स्थैतिक प्रोग्राम विश्लेषण) निष्पादित किए बिना या दोनों के संयोजन में किया जा सकता है।
सॉफ्टवेयर रखरखाव
सॉफ्टवेयर की रखरखाव[1][4]सॉफ्टवेयर उत्पाद की शिपिंग के बाद लागत प्रभावी समर्थन प्रदान करने के लिए आवश्यक गतिविधियों को संदर्भित करता है। सॉफ़्टवेयर अनुरक्षण वितरण के बाद दोषों को ठीक करने और इसके प्रदर्शन को बेहतर बनाने के लिए सॉफ़्टवेयर अनुप्रयोगों को संशोधित और अद्यतन कर रहा है। सॉफ़्टवेयर का वास्तविक दुनिया से बहुत कुछ लेना-देना है और जब वास्तविक दुनिया बदलती है, तो सॉफ़्टवेयर रखरखाव की आवश्यकता होती है। सॉफ़्टवेयर रखरखाव में सम्मलित हैं: पैच (कंप्यूटिंग), ऑप्टिमाइज़ेशन, सॉफ्टवेयर ब्लोट और हटाई गई सुविधाओं को हटाना, और पहले से सम्मलित सुविधाओं को बढ़ाना। सामान्यतः, रखरखाव में परियोजना लागत का लगभग 40% से 80% हिस्सा लगता है, इसलिए रखरखाव पर ध्यान केंद्रित करने से लागत कम रहती है।[32]
शिक्षा
सॉफ्टवेयर इंजीनियर बनने के लिए कंप्यूटर प्रोग्रामिंग का ज्ञान शर्त है। 2004 में आईईईई कंप्यूटर सोसायटी ने स्वेबोक का निर्माण किया, जिसे ISO/IEC विधि रिपोर्ट 1979:2005 के रूप में प्रकाशित किया गया है, जिसमें ज्ञान के उस भाग का वर्णन किया गया है जिसे वे चार साल के अनुभव वाले स्नातक सॉफ्टवेयर इंजीनियर द्वारा महारत हासिल करने की सलाह देते हैं।[33] कई सॉफ्टवेयर इंजीनियर व्यावसायिक स्कूल में विश्वविद्यालय की डिग्री या प्रशिक्षण प्राप्त करके पेशे में प्रवेश करते हैं। अंडरग्रेजुएट सॉफ्टवेयर अभियांत्रिकी डिग्री के लिए मानक अंतरराष्ट्रीय पाठ्यक्रम को आईईईई कंप्यूटर सोसाइटी और संगणक तंत्र संस्था के कंप्यूटिंग पाठ्यक्रम पर संयुक्त कार्य बल द्वारा परिभाषित किया गया था, और 2014 में अद्यतन किया गया था।[34] कई विश्वविद्यालयों में सॉफ्टवेयर अभियांत्रिकी डिग्री प्रोग्राम हैं; as of 2010[update], संयुक्त राज्य अमेरिका में 244 कैंपस बैचलर ऑफ सॉफ्टवेयर अभियांत्रिकी कार्यक्रम, 70 ऑनलाइन कार्यक्रम, 230 मास्टर स्तर के कार्यक्रम, 41 डॉक्टरेट स्तर के कार्यक्रम और 69 प्रमाणपत्र स्तर के कार्यक्रम थे।
विश्वविद्यालय शिक्षा के अतिरिक्त, कई कंपनियां सूचना प्रौद्योगिकी में करियर बनाने के इच्छुक छात्रों के लिए इंटर्नशिप प्रायोजित करती हैं। ये इंटर्नशिप छात्र को दिलचस्प वास्तविक दुनिया के कार्यों से परिचित करा सकते हैं, जिनका सामना विशिष्ट सॉफ्टवेयर इंजीनियरों को हर दिन करना पड़ता है। सॉफ्टवेयर अभियांत्रिकी में सैन्य सेवा के माध्यम से समान अनुभव प्राप्त किया जा सकता है।
सॉफ्टवेयर अभियांत्रिकी डिग्री प्रोग्राम
सभी चिकित्सकों में से आधे के पास आज कंप्यूटर विज्ञान, सूचना प्रणाली या सूचना प्रौद्योगिकी में शैक्षणिक डिग्री है।[citation needed] छोटे, लेकिन बढ़ते हुए, चिकित्सकों की संख्या में सॉफ्टवेयर अभियांत्रिकी की डिग्री है। 1987 में, इंपीरियल कॉलेज लंदन में कंप्यूटिंग विभाग, इंपीरियल कॉलेज लंदन ने यूके और दुनिया में पहली तीन वर्षीय सॉफ्टवेयर अभियांत्रिकी स्नातक डिग्री के प्रारंंभ की; अगले वर्ष, शेफ़ील्ड विश्वविद्यालय ने इसी तरह का कार्यक्रम स्थापित किया।[35] 1996 में, प्रौद्योगिकी के रोचेस्टर संस्थान ने संयुक्त राज्य अमेरिका में पहला सॉफ्टवेयर अभियांत्रिकी स्नातक डिग्री प्रोग्राम स्थापित किया, चूंकि, इसे 2003 तक ABET मान्यता प्राप्त नहीं हुई, उसी समय चावल विश्वविद्यालय, क्लार्कसन विश्वविद्यालय, मिल्वौकी स्कूल ऑफ अभियांत्रिकी और मिसिसिपी स्टेट यूनिवर्सिटी उनका प्राप्त किया।[36] 1997 में, कोयंबटूर में PSG कॉलेज ऑफ टेक्नोलॉजी, भारत सॉफ्टवेयर अभियांत्रिकी में पांच वर्षीय एकीकृत मास्टर ऑफ साइंस की डिग्री शुरू करने वाला पहला था।[citation needed] तब से, सॉफ्टवेयर अभियांत्रिकी स्नातक डिग्री कई विश्वविद्यालयों में स्थापित की गई हैं। अंडरग्रेजुएट सॉफ्टवेयर अभियांत्रिकी डिग्री, SE2004 के लिए मानक अंतरराष्ट्रीय पाठ्यक्रम, 2001 और 2004 के बीच संगठन फॉर कंप्यूटिंग मशीनरी और आईईईई कंप्यूटर सोसाइटी से वित्त पोषण के साथ संचालन समिति द्वारा परिभाषित किया गया था। As of 2004[update], यू.एस. में, लगभग 50 विश्वविद्यालय सॉफ्टवेयर अभियांत्रिकी डिग्री प्रदान करते हैं, जो कंप्यूटर विज्ञान और अभियांत्रिकी सिद्धांतों और प्रथाओं दोनों को पढ़ाते हैं। पहली सॉफ्टवेयर अभियांत्रिकी मास्टर डिग्री सिएटल विश्वविद्यालय में 1979 में स्थापित की गई थी। तब से कई और विश्वविद्यालयों से स्नातक सॉफ्टवेयर अभियांत्रिकी की डिग्री उपलब्ध कराई गई है। इसी तरह कनाडा में, कैनेडियन काउंसिल ऑफ प्रोफेशनल इंजीनियर्स के कनाडाई अभियांत्रिकी प्रत्यायन बोर्ड (सीईएबी) ने कई सॉफ्टवेयर अभियांत्रिकी कार्यक्रमों को मान्यता दी है।
1998 में, यूएस नौसेना स्नातकोत्तर स्कूल (NPS) ने दुनिया में सॉफ्टवेयर अभियांत्रिकी में पहला डॉक्टर की उपाधि प्रोग्राम स्थापित किया।[citation needed] इसके अतिरिक्त, सॉफ्टवेयर अभियांत्रिकी में कई ऑनलाइन उन्नत डिग्री दिखाई दी हैं जैसे कि कैलिफोर्निया स्टेट यूनिवर्सिटी, फुलर्टन में कंप्यूटर साइंस एंड अभियांत्रिकी विभाग के माध्यम से सॉफ्टवेयर अभियांत्रिकी में मास्टर ऑफ साइंस (एमएसई) डिग्री की प्रस्तुति की गई है। स्टीव मैककोनेल का मानना है कि क्योंकि अधिकांश विश्वविद्यालय सॉफ्टवेयर अभियांत्रिकी के अतिरिक्त कंप्यूटर विज्ञान पढ़ाते हैं, इसलिए सच्चे सॉफ्टवेयर इंजीनियरों की कमी है।[37] इकोले डे टेक्नोलॉजी सुप्रीयर (École de technologie supérieure) विश्वविद्यालय और यूक्यूएएम (Université du Québec à Montréal) को आईईईई द्वारा सॉफ्टवेयर अभियांत्रिकी बॉडी ऑफ़ नॉलेज (स्वेबोक) विकसित करने के लिए अनिवार्य किया गया था, जो ISO मानक बन गया है है। सॉफ्टवेयर इंजीनियर इस शरीर का अध्ययन करके वर्णित करता है।[38]
व्यवसाय
जानकीर सॉफ्टवेयर इंजीनियरों के लाइसेंस या प्रमाणित के लिए कानूनी आवश्यकताएं दुनिया भर में अलग-अलग हैं। यूके में, सॉफ़्टवेयर इंजीनियर पद ग्रहण करने या उसका उपयोग करने के लिए कोई लाइसेंसिंग या कानूनी आवश्यकता नहीं है। कनाडा के कुछ क्षेत्रों में, जैसे अलबर्टा, ब्रिटिश कोलंबिया, ओंटारियो,[39] और क्यूबेक, सॉफ्टवेयर इंजीनियर व्यावसायिक अभियंता (P.Eng) पदनाम और/या सूचना प्रणाली जानकीर (I.S.P.) पदनाम धारण कर सकते हैं। यूरोप में, सॉफ्टवेयर इंजीनियर यूरोपीय इंजीनियर (EUR ING) जानकीर उपाधि प्राप्त कर सकते हैं।
संयुक्त राज्य अमेरिका ने 2013 से सॉफ्टवेयर अभियांत्रिकी के लिए एनसीईईएस प्रोफेशनल इंजीनियर परीक्षा की प्रस्तुति की है, जिससे सॉफ्टवेयर इंजीनियरों को लाइसेंस और मान्यता प्राप्त करने की अनुमति मिलती है।[40] भागीदारी की कमी के कारण एनसीईईएस अप्रैल 2019 के बाद परीक्षा समाप्त कर देगा।[41] अनिवार्य लाइसेंसिंग वर्तमान में अभी भी काफी हद तक विवादित है, और विवादास्पद माना जाता है।[citation needed] अमेरिका के कुछ भागों जैसे टेक्सास में, अभियंता शब्द का उपयोग कानून द्वारा नियंत्रित होता है और केवल उन व्यक्तियों द्वारा उपयोग के लिए आरक्षित होता है जिनके पास जानकीर इंजीनियर लाइसेंस है।[citation needed]
आईईईई कंप्यूटर सोसाइटी और संगठन फॉर कंप्यूटिंग मशीनरी, सॉफ्टवेयर अभियांत्रिकी के दो मुख्य यूएस-आधारित जानकीर संगठन, सॉफ्टवेयर अभियांत्रिकी के प्रस्तुति के लिए गाइड प्रकाशित करते हैं। सॉफ्टवेयर अभियांत्रिकी बॉडी ऑफ नॉलेज - 2004 संस्करण, या स्वेबोक के लिए आईईईई की गाइड, क्षेत्र को परिभाषित करती है और उस ज्ञान का वर्णन करती है जो आईईईई अभ्यास करने वाले सॉफ़्टवेयर इंजीनियर से अपेक्षा करता है। सबसे वर्तमान स्वेबोक v3 अद्यतन संस्करण है और 2014 में जारी किया गया था।[42] आईईईई सॉफ्टवेयर अभियांत्रिकी आचार संहिता भी प्रख्यापित करता है।[43]
रोजगार
श्रम सांख्यिकी ब्यूरो|यू. एस. श्रम सांख्यिकी ब्यूरो (बीएलएस) ने संयुक्त राज्य अमेरिका में 1,365,500 सॉफ्टवेयर डेवलपर्स की नौकरी की गणना की। यू.एस. 2018 में।[44] अध्ययन के क्षेत्र के रूप में इसके सापेक्षिक नवीनता के कारण, सॉफ्टवेयर अभियांत्रिकी में औपचारिक शिक्षा को अधिकांशतः कंप्यूटर विज्ञान पाठ्यक्रम के हिस्से के रूप में पढ़ाया जाता है, और कई सॉफ्टवेयर इंजीनियरों के पास कंप्यूटर विज्ञान की डिग्री होती है।[45] बीएलएस का अनुमान है कि 2014 से 2024 तक कंप्यूटर सॉफ्टवेयर अभियांत्रिकी में 17% की वृद्धि होगी।[46] यह सॉफ्टवेयर अभियांत्रिकी के लिए 2012 से 2022 बीएलएस अनुमान 22% से नीचे है।[47][46]और, उनके 30% 2010 से 2020 बीएलएस अनुमान से और नीचे है।[48] इस प्रवृत्ति के कारण, पिछले दशक के समय नौकरी की वृद्धि उतनी तेज नहीं हो सकती है, क्योंकि संयुक्त राज्य अमेरिका में कंप्यूटर सॉफ्टवेयर इंजीनियरों को जाने वाली नौकरियों को भारत और अन्य विदेशी देशों जैसे कंप्यूटर सॉफ्टवेयर इंजीनियरों को आउटसोर्स किया जाएगा।[49][50] इसके अतिरिक्त, कंप्यूटर प्रोग्रामर्स के लिए बीएलएस जॉब आउटलुक, 2014–24 -8% (उनके शब्दों में गिरावट) की भविष्यवाणी करता है।[49]फिर जॉब आउटलुक में गिरावट, 2019-29 -9%,[51] और कंप्यूटर प्रोग्राम करने वालों के लिए 2021-2031 के लिए 10% की गिरावट हुई।[52][53] इसके अतिरिक्त, अन्य अभियांत्रिकी क्षेत्रों की तुलना में कई सॉफ्टवेयर क्षेत्रों में महिलाओं की संख्या में भी कमी आई है।[54] चूंकि, यह प्रवृत्ति भविष्य में बदल सकती है या धीमी हो सकती है क्योंकि अमेरिकी बाजार में कई सम्मलित सॉफ्टवेयर इंजीनियर अगले कुछ दशकों में व्यवसाय या बाजार की उम्र की लहर को छोड़ देते हैं।
कई सॉफ्टवेयर इंजीनियर कर्मचारी या ठेकेदार के रूप में कार्य करते हैं। सॉफ्टवेयर इंजीनियर व्यवसायों, सरकारी एजेंसियों (नागरिक या सैन्य), और गैर-लाभकारी संगठनों के साथ कार्य करते हैं। कुछ सॉफ्टवेयर इंजीनियर अपने लिए फ्रीलांसर के रूप में कार्य करते हैं। कुछ संगठनों के पास सॉफ़्टवेयर विकास प्रक्रिया में प्रत्येक कार्य करने के लिए विशेषज्ञ होते हैं। अन्य संगठनों को उनमें से कई या सभी को करने के लिए सॉफ्टवेयर इंजीनियरों की आवश्यकता होती है। बड़ी परियोजनाओं में, लोग केवल ही भूमिका में विशेषज्ञ हो सकते हैं। छोटी परियोजनाओं में, लोग ही समय में कई या सभी भूमिकाएँ भर सकते हैं। कई कंपनियां प्रशिक्षुता, अधिकांशतः विश्वविद्यालय या कॉलेज के छात्रों को गर्मी की छुट्टी या एक्सटर्नशिप के समय किराए पर लेती हैं। विशेषज्ञताओं में आवश्यकता विश्लेषण, सॉफ्टवेयर आर्किटेक्चर, सॉफ्टवेयर डेवलपर, सॉफ्टवेयर परीक्षण, विधि सहायता, मिडलवेयर विश्लेषक, परियोजना प्रबंधन, शिक्षक और शोधकर्ता सम्मलित हैं।
अधिकांश सॉफ्टवेयर इंजीनियर और प्रोग्रामर सप्ताह में 40 घंटे कार्य करते हैं, लेकिन लगभग 15 प्रतिशत सॉफ्टवेयर इंजीनियर और 11 प्रतिशत प्रोग्रामर ने 2008 में सप्ताह में 50 घंटे से अधिक कार्य किया।[50] इन व्यवसायों में संभावित चोटें संभव हैं क्योंकि अन्य श्रमिकों की तरह जो लंबे समय तक बैठे रहते हैं स्वास्थ्य जोखिम कंप्यूटर टर्मिनल के सामने कीबोर्ड पर टाइपिंग करते हैं, इंजीनियरों और प्रोग्रामरों को आंखों में खिंचाव, पीठ की तकलीफ, सिंड्रोम, और कार्पल टनल जैसी हाथ और कलाई की समस्याओं का खतरा होता है।[55]
प्रमाणित
सॉफ्टवेयर अभियांत्रिकी संस्थान आईटी सुरक्षा, प्रक्रिया सुधार और सॉफ्टवेयर आर्किटेक्चर जैसे विशिष्ट विषयों पर प्रमाणित प्रदान करता है।[56] सूचना प्रौद्योगिकी आर्किटेक्ट सर्टिफिकेशन, माइक्रोसॉफ्ट प्रमाणित प्रोफेशनल और अन्य कंपनियां भी अपनी प्रमाणित परीक्षाएं प्रायोजित करती हैं। कई सूचना प्रौद्योगिकी व्यावसायिक प्रमाणित (कंप्यूटर प्रौद्योगिकी) कार्यक्रम विशिष्ट विधियों की ओर उन्मुख हैं, और इन विधियों के विक्रेताओं द्वारा प्रबंधित किए जाते हैं।[57] ये प्रमाणित कार्यक्रम उन संस्थानों के अनुरूप हैं जो इन विधियों का उपयोग करने वाले लोगों को रोजगार देंगे।
विभिन्न जानकीर समाज के माध्यम से सामान्य सॉफ्टवेयर अभियांत्रिकी कौशल का व्यापक प्रमाणित उपलब्ध है। As of 2006[update], आईईईई ने 575 से अधिक सॉफ़्टवेयर जानकीरों को प्रमाणित सॉफ्टवेयर विकास जानकीर (CSDP) के रूप में प्रमाणित किया था।[58] 2008 में उन्होंने प्रमाणित सॉफ्टवेयर डेवलपमेंट एसोसिएट (CSDA) के रूप में जाना जाने वाला एंट्री-लेवल प्रमाणित करके जोड़ा था।[59] कम्प्यूटरीकृत मशीनरी संगठन के पास 1980 के दशक के प्रारंंभ में जानकीर प्रमाणित कार्यक्रम था,[citation needed] जो रुचि नहीं होने के कारण बंद कर दिया गया था। एसीएम ने 1990 के दशक के अंत में सॉफ्टवेयर इंजीनियरों के जानकीर प्रमाणित की संभावना की जांच की, लेकिन अंततः निर्णय लिया कि इस तरह का प्रमाणित सॉफ्टवेयर अभियांत्रिकी के जानकीर औद्योगिक अभ्यास के लिए अनुपयुक्त था।[60]
यूके में ब्रिटिश कंप्यूटर सोसायटी ने चार्टर्ड आईटी प्रोफेशनल (CITP) नामक कानूनी रूप से मान्यता प्राप्त व्यावसायिक प्रमाणित विकसित किया है, जो पूरी तरह से योग्य सदस्यों (MBCS) के लिए उपलब्ध है। सॉफ्टवेयर इंजीनियर अभियांत्रिकी और प्रौद्योगिकी संस्थान की सदस्यता के लिए पात्र हो सकते हैं और इसलिए चार्टर्ड इंजीनियर की स्थिति के लिए अर्हता प्राप्त कर सकते हैं। कनाडा में कनाडाई सूचना प्रसंस्करण सोसायटी ने कानूनी रूप से मान्यता प्राप्त व्यावसायिक प्रमाणीकरण विकसित किया है जिसे सूचना प्रणाली जानकीर (ISP) कहा जाता है।[61] ओंटारियो, कनाडा में, सॉफ्टवेयर इंजीनियर जो कनाडाई अभियांत्रिकी प्रत्यायन बोर्ड (सीईएबी) मान्यता प्राप्त कार्यक्रम से स्नातक हैं, सफलतापूर्वक पीईओ (प्रोफेशनल इंजीनियर्स ओंटारियो) व्यावसायिक अभ्यास परीक्षा (पीपीई) पूरा करते हैं और कम से कम 48 महीने का स्वीकार्य अभियांत्रिकी अनुभव रखते हैं, वे लाइसेंस प्राप्त करने के पात्र हैं। प्रोफेशनल इंजीनियर्स ओंटारियो के माध्यम से और प्रोफेशनल इंजीनियर्स बन सकते हैं।[62] चूंकि पीईओ किसी भी ऑनलाइन या दूरस्थ शिक्षा को मान्यता नहीं देता है; और दोनों के बीच बहुत अच्छी ओवरलैप के अतिरिक्त कंप्यूटर साइंस प्रोग्राम को सॉफ्टवेयर अभियांत्रिकी प्रोग्राम के समकक्ष नहीं मानता है। इससे विवाद और प्रमाणित युद्ध छिड़ गया है। इसने पेशे के लिए पी.इंजी धारकों की संख्या को असाधारण रूप से कम रखा है। क्षेत्र में कार्य करने वाले अधिकांश जानकीर सीएस में डिग्री रखते हैं, एसई नहीं। गैर-एसई डिग्री धारकों के लिए कठिन प्रमाणीकरण पथ को देखते हुए, अधिकांश लाइसेंस प्राप्त करने के लिए परेशान नहीं होते हैं।
वैश्वीकरण का प्रभाव
आउटसोर्सिंग के प्रारंभिक प्रभाव, और तीसरी दुनिया के विकासशील देशों में अंतरराष्ट्रीय मानव संसाधनों की अपेक्षाकृत कम लागत के कारण उत्तरी अमेरिका और यूरोप के निगमों से भारत और बाद में: चीन, रूस और अन्य विकासशील देशों में सॉफ्टवेयर विकास गतिविधियों का बड़े पैमाने पर प्रवास हुआ। इस दृष्टिकोण में कुछ खामियां थीं, मुख्य रूप से दूरी/समय क्षेत्र का अंतर जिसने ग्राहकों और डेवलपर्स के बीच मानवीय संपर्क और बड़े पैमाने पर नौकरी के हस्तांतरण को रोका। सॉफ्टवेयर अभियांत्रिकी पेशे के कई पहलुओं पर इसका नकारात्मक प्रभाव पड़ा। उदाहरण के लिए, विकसित दुनिया समुद्र ले तट से दूर आउटसोर्सिंगअन्य देशों से सॉफ्टवेयर उत्पादों या सेवाओं का आयात) और विदेशी कर्मचारी वीजा द्वारा विस्थापित होने के डर के कारण सॉफ्टवेयर अभियांत्रिकी से संबंधित शिक्षा से बचते हैं।[63] चूंकि आँकड़े वर्तमान में स्वयं सॉफ्टवेयर अभियांत्रिकी के लिए खतरा नहीं दिखाते हैं; संबंधित कैरियर, कंप्यूटर प्रोग्रामिंग प्रभावित हुआ प्रतीत होता है।[64][65] फिर भी, फॉलो-द-सन कार्यप्रवाह के माध्यम से अपतटीय और निकट-किनारे संसाधनों का चालाकी से लाभ उठाने की क्षमता ने कई संगठनों की समग्र परिचालन क्षमता में सुधार किया है।[66] जब उत्तर अमेरिकी कार्य छोड़ रहे हैं, एशियाई बस कार्य करने के लिए आ रहे हैं। जब एशियाई कार्य छोड़ रहे हैं, तो यूरोपीय कार्य पर आ रहे हैं। यह प्रति दिन 24 घंटे व्यापार-महत्वपूर्ण प्रक्रियाओं पर मानव निरीक्षण करने की निरंतर क्षमता प्रदान करता है, बिना ओवरटाइम क्षतिपूर्ति का भुगतान किए या प्रमुख मानव संसाधन, नींद के पैटर्न को बाधित किए बिना।
जबकि वैश्विक आउटसोर्सिंग के कई लाभ हैं, वैश्विक - और सामान्यतः वितरित - विकास डेवलपर्स के बीच की दूरी के परिणामस्वरूप गंभीर कठिनाइयों में चल सकता है। यह इस प्रकार की दूरी के प्रमुख तत्वों के कारण है जिन्हें भौगोलिक, लौकिक, सांस्कृतिक और संचार के रूप में पहचाना गया है (जिसमें विभिन्न स्थानों में अंग्रेजी की विभिन्न भाषाओं और बोलियों का उपयोग सम्मलित है)।[67] पिछले 15 वर्षों में वैश्विक सॉफ्टवेयर विकास के क्षेत्र में अनुसंधान किया गया है और प्रासंगिक कार्यों का व्यापक निकाय प्रकाशित किया गया है जो जटिल गतिविधि से जुड़े लाभों और समस्याओं पर प्रकाश डालता है। सॉफ्टवेयर अभियांत्रिकी के अन्य पहलुओं की तरह इस और संबंधित क्षेत्रों में अनुसंधान जारी है।
पुरस्कार
सॉफ्टवेयर अभियांत्रिकी के क्षेत्र में कई पुरस्कार हैं:[68]
- सॉफ्टवेयर और सूचना उद्योग संघ कोडआई पुरस्कार सॉफ्टवेयर उद्योग के भीतर सॉफ्टवेयर विकास में उत्कृष्टता के लिए सॉफ्टवेयर और सूचना उद्योग संघ द्वारा जारी किया जाने वाला वार्षिक पुरस्कार है।
- झटका पुरस्कार सॉफ्टवेयर उद्योग में पुरस्कार हैं।
- स्टीवंस पुरस्कार सॉफ्टवेयर अभियांत्रिकी अवार्ड है जो वेन स्टीवंस की स्मृति में दिया जाता है।
- हार्लन मिल्स#हरलन डी. मिल्स पुरस्कार सॉफ्टवेयर अभियांत्रिकी पर केंद्रित सूचना विज्ञान के सिद्धांत और व्यवहार में योगदान के लिए पुरिस्कृत किया।
आलोचना
सॉफ्टवेयर अभियांत्रिकी अपने व्यवसायियों को ऐसे व्यक्तियों के रूप में देखता है जो समस्या-समाधान के लिए अच्छी तरह से परिभाषित अभियांत्रिकी दृष्टिकोण का पालन करते हैं। ये दृष्टिकोण विभिन्न सॉफ्टवेयर अभियांत्रिकी पुस्तकों और शोध पत्रों में निर्दिष्ट हैं, हमेशा भविष्यवाणी, सटीकता, कम जोखिम और व्यावसायिकता के अर्थ के साथ इस परिप्रेक्ष्य ने कॉल का नेतृत्व किया है[by whom?] अभियांत्रिकी ज्ञान के प्रसार और क्षेत्र को परिपक्व करने के तंत्र के रूप में लाइसेंसिंग, प्रमाणीकरण और ज्ञान के संहिताबद्ध निकायों के लिए उपयोग किया गया।
सॉफ्टवेयर अभियांत्रिकी अभियांत्रिकी का विस्तार करती है और अभियांत्रिकी मॉडल, अर्ताथ अभियांत्रिकी प्रक्रिया, अभियांत्रिकी परियोजना प्रबंधन, अभियांत्रिकी आवश्यकताओं, अभियांत्रिकी डिजाइन, अभियांत्रिकी निर्माण और अभियांत्रिकी सत्यापन पर आकर्षित करती है। अवधारणा इतनी नई है कि इसे कभी समझा जाता है, और सॉफ्टवेयर अभियांत्रिकी पाठ्यपुस्तकों, कागजात, और प्रोग्रामर और क्राफ्टर्स के समुदायों में व्यापक रूप से त्रुटिपर्वक व्याख्या की जाती है।
सॉफ्टवेयर अभियांत्रिकी में मुख्य विवादों में से यह है कि इसके दृष्टिकोण पर्याप्त अनुभवजन्य नहीं हैं क्योंकि दृष्टिकोणों की वास्तविक दुनिया की मान्यता सामान्यतः अनुपस्थित है, या बहुत सीमित है और इसलिए सॉफ्टवेयर अभियांत्रिकी को अधिकांशतः केवल सैद्धांतिक वातावरण में संभव के रूप में त्रुटिपर्वक समझा जाता है।
आज सॉफ्टवेयर विकास के भीतर उपयोग की जाने वाली कई अवधारणाओं के संस्थापक एडवर्ड डिजस्ट्रा ने 2002 में अपनी मृत्यु तक सॉफ्टवेयर अभियांत्रिकी के विचार को अस्वीकृत कर दिया, यह तर्क देते हुए कि ये शब्द किस चीज के लिए खराब अनुरूप थे। उन्होंने कंप्यूटर विज्ञान की मौलिक नवीनता को कहा:
"इनमें से कई घटनाओं को "सॉफ्टवेयर इंजीनियरिंग" नाम से बंडल किया गया है। जैसा कि अर्थशास्त्र को "द मिजरेबल साइंस" के रूप में जाना जाता है, सॉफ्टवेयर इंजीनियरिंग को "द डूमेड डिसिप्लिन" के रूप में जाना जाना चाहिए, क्योंकि यह अपने लक्ष्य तक नहीं पहुंच सकता क्योंकि इसका लक्ष्य आत्म-विरोधाभासी है। सॉफ्टवेयर इंजीनियरिंग, बेशक, खुद को एक अन्य योग्य कारण के रूप में प्रस्तुत करता है, लेकिन वह आंखों में धूल झोंकना है: यदि आप ध्यान से इसके साहित्य को पढ़ते हैं और विश्लेषण करते हैं कि इसके भक्त वास्तव में क्या करते हैं, तो आप पाएंगे कि सॉफ्टवेयर इंजीनियरिंग ने अपने चार्टर के रूप में स्वीकार किया है "यदि आप प्रोग्राम नहीं कर सकते हैं तो कैसे प्रोग्राम करें" ""[69]
यह भी देखें
अध्ययन और अभ्यास
- कंप्यूटर विज्ञान
- डेटा अभियांत्रिकी
- सॉफ्टवेयर शिल्प कौशल
- सॉफ्टवेयर डेवलपमेंट
- रिलीज अभियांत्रिकी
भूमिकाएं
- प्रोग्रामर
- प्रणाली विश्लेषक
- प्रणाली आर्किटेक्ट
जानकीर पहलू
- सूचना प्रौद्योगिकी में विज्ञान स्नातक
- बैचलर ऑफ सॉफ्टवेयर अभियांत्रिकी
- सॉफ्टवेयर अभियांत्रिकी सम्मेलनों की सूची
- कंप्यूटर विज्ञान पत्रिकाओं की सूची (सॉफ्टवेयर अभियांत्रिकी पत्रिकाओं सहित)
- सॉफ्टवेयर अभियांत्रिकी संस्थान
संदर्भ
उद्धरण
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Abran et al. 2004, pp. 1–1
- ↑ ACM (2007). "कम्प्यूटिंग डिग्री और करियर". ACM. Retrieved 2010-11-23.
- ↑ Laplante, Phillip (2007). सॉफ्टवेयर इंजीनियरिंग के बारे में हर इंजीनियर को क्या पता होना चाहिए. Boca Raton: CRC. ISBN 978-0-8493-7228-5. Retrieved 2011-01-21.
- ↑ 4.0 4.1 4.2 4.3 4.4 "सॉफ़्टवेयर इंजीनियरिंग बॉडी ऑफ़ नॉलेज (SWEBOK संस्करण 3), 2014" (pdf). www.swebok.org. IEEE Computer Society. Retrieved 24 May 2016.
- ↑ "कोडिंग और सॉफ्टवेयर इंजीनियरिंग का इतिहास". www.hackreactor.com (in English). Retrieved 2021-05-06.
- ↑ Oettinger, A. G. (1966). "एसीएम सदस्यता के लिए राष्ट्रपति का पत्र". Commun. ACM. Association for Computing Machinery. 9 (8): 545–546. doi:10.1145/365758.3291288. ISSN 0001-0782. S2CID 53432801.
- ↑ ""सॉफ्टवेयर इंजीनियरिंग" की उत्पत्ति". 4 April 2013. Retrieved 17 November 2017.
- ↑ Randall, Brian. "1968/69 नाटो सॉफ्टवेयर इंजीनियरिंग रिपोर्ट". Retrieved 17 November 2017.
- ↑ Software Magazine. ""सॉफ्टवेयर इंजीनियरिंग" शब्द का आविष्कार करने वाले वैज्ञानिक के बारे में क्या जानना है". Archived from the original on November 24, 2018. Retrieved February 12, 2019.
- ↑ Sommerville 2008, p. 26
- ↑ Peter, Naur; Randell, Brian (7–11 October 1968). सॉफ्टवेयर इंजीनियरिंग: नाटो विज्ञान समिति द्वारा प्रायोजित एक सम्मेलन की रिपोर्ट (PDF). Garmisch, Germany: Scientific Affairs Division, NATO. Retrieved 2008-12-26.
- ↑ Randell, Brian (10 August 2001). "1968/69 नाटो सॉफ्टवेयर इंजीनियरिंग रिपोर्ट". Brian Randell's University Homepage. The School of the Computer Sciences, Newcastle University. Retrieved 2008-10-11.
पहले नाटो सॉफ्टवेयर इंजीनियरिंग सम्मेलन के लिए विचार, और विशेष रूप से उस समय व्यावहारिक रूप से अज्ञात शब्द "सॉफ्टवेयर इंजीनियरिंग" को इसके (जानबूझकर उत्तेजक) शीर्षक के रूप में अपनाने का विचार, मेरा मानना है कि मूल रूप से प्रोफेसर [[फ्रेडरिक एल. बाउर] से आया था।|Fritz Bauer]].
{{cite web}}: zero width space character in|quote=at position 205 (help) - ↑ 2018 International Conference on Software Engineering celebrating its 40th anniversary, and 50 years of Software engineering. "आईसीएसई 2018 - पूर्ण सत्र - फ्रेड ब्रूक्स". YouTube. Retrieved 9 August 2018.
- ↑ 2018 International Conference on Software Engineering celebrating its 40th anniversary, and 50 years of Software engineering. "ICSE 2018 - पूर्ण सत्र - मार्गरेट हैमिल्टन". YouTube. Retrieved 9 August 2018.
- ↑ "आईएसओ/आईईसी टीआर 19759:2005". Retrieved 2012-04-01.
- ↑ "द जॉइंट टास्क फोर्स फॉर कंप्यूटिंग करिकुला 2005" (PDF). 2014-10-21. Archived (PDF) from the original on 2014-10-21. Retrieved 2020-04-16.
- ↑ Systems and software engineering – Vocabulary, ISO/IEC/IEEE std 24765:2010(E), 2010.
- ↑ IEEE Standard Glossary of Software Engineering Terminology, IEEE std 610.12-1990, 1990.
- ↑ Sommerville, Ian (2007) [1982]. "1.1.2 What is software engineering?". सॉफ्टवेयर इंजीनियरिंग (8th ed.). Harlow, England: Pearson Education. p. 7. ISBN 978-0-321-31379-9.
सॉफ्टवेयर इंजीनियरिंग एक इंजीनियरिंग अनुशासन है जो सिस्टम विनिर्देशन के शुरुआती चरणों से सॉफ्टवेयर उत्पादन के सभी पहलुओं से संबंधित है, इसके उपयोग में आने के बाद सिस्टम को बनाए रखने के लिए। इस परिभाषा में, दो प्रमुख वाक्यांश हैं:
1. इंजीनियरिंग अनुशासन इंजीनियर काम करते हैं। वे सिद्धांतों, विधियों और उपकरणों को लागू करते हैं जहाँ ये उपयुक्त होते हैं। . ।] इंजीनियर यह भी मानते हैं कि उन्हें संगठनात्मक और वित्तीय बाधाओं के लिए काम करना चाहिए। [. . ]
2. सॉफ़्टवेयर उत्पादन के सभी पहलू सॉफ़्टवेयर इंजीनियरिंग न केवल सॉफ़्टवेयर विकास की तकनीकी प्रक्रियाओं से संबंधित है, बल्कि सॉफ़्टवेयर प्रोजेक्ट प्रबंधन जैसी गतिविधियों और उपकरणों, विधियों और सिद्धांतों के विकास से भी संबंधित है समर्थन सॉफ्टवेयर उत्पादन। - ↑ "सॉफ्टवेयर इंजीनियरिंग". Information Processing. 71: 530–538.
- ↑ "सॉफ्टवेयर इंजीनियरिंग की परिभाषा". www.merriam-webster.com (in English). Retrieved 2019-11-25.
- ↑ Winters, Titus; Manshrec, Tom; Wright, Hyrum (2020). "Preface, Programming Over Time". Google पर सॉफ्टवेयर इंजीनियरिंग. O'Reilly Media, Inc. pp. xix–xx, 6–7. ISBN 978-1-492-08279-8.
हमारा प्रस्ताव है कि "सॉफ्टवेयर इंजीनियरिंग" में न केवल कोड लिखने का कार्य शामिल है, बल्कि समय के साथ उस कोड को बनाने और बनाए रखने के लिए एक संगठन द्वारा उपयोग किए जाने वाले सभी उपकरण और प्रक्रियाएं शामिल हैं। एक सॉफ्टवेयर संगठन कौन सी प्रथाओं का परिचय दे सकता है जो लंबे समय तक अपने कोड को सर्वोत्तम बनाए रखेगा? इंजीनियर किसी कोडबेस को अधिक टिकाऊ कैसे बना सकते हैं और सॉफ्टवेयर इंजीनियरिंग स्वयं को अधिक कठोर कैसे बना सकता है?
- ↑ David Budgen; Pearl Brereton; Barbara Kitchenham; Stephen Linkman (2004-12-14). "साक्ष्य आधारित सॉफ्टवेयर इंजीनियरिंग को साकार करना". Archived from the original on 2006-12-17. Retrieved 2006-10-18.: "We believe that software engineering can only advance as an engineering discipline by moving away from its current dependence upon advocacy and analysis,...."
- ↑ Lawrence, Snyder (2017). सूचना प्रौद्योगिकी के साथ प्रवाह: कौशल, अवधारणाएं और क्षमताएं ([Seventh edition] ed.). NY, NY. ISBN 978-0134448725. OCLC 960641978.
{{cite book}}: CS1 maint: location missing publisher (link) - ↑ Parnas, David L. (1998). "सॉफ्टवेयर इंजीनियरिंग प्रोग्राम कंप्यूटर साइंस प्रोग्राम नहीं हैं". Annals of Software Engineering. 6: 19–37. doi:10.1023/A:1018949113292. S2CID 35786237., p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, {Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering,....}."
- ↑ Parnas, David L. (1998). "सॉफ्टवेयर इंजीनियरिंग प्रोग्राम कंप्यूटर साइंस प्रोग्राम नहीं हैं". Annals of Software Engineering. 6: 19–37. doi:10.1023/A:1018949113292. S2CID 35786237., p. 20: "This paper argues that the introduction of accredited professional programs in software engineering, programmes that are modelled on programmes in traditional engineering disciplines will help to increase both the quality and quantity of graduates who are well prepared, by their education, to develop trustworthy software products."
- ↑ McConnell, Steve (August 2003). व्यावसायिक सॉफ्टवेयर विकास: लघु अनुसूचियां, बेहतर परियोजनाएं, बेहतर उत्पाद, बेहतर करियर. Boston, MA: Addison-Wesley. ISBN 0-321-19367-9., p. 39: "In my opinion, the answer to that question is clear: Professional software development should be engineering. Is it? No. But should it be? Unquestionably, yes. "
- ↑ Knuth, Donald (1974). "कंप्यूटर प्रोग्रामिंग एक कला के रूप में" (PDF). Communications of the ACM. 17 (12): 667–673. doi:10.1145/361604.361612. S2CID 207685720.Transcript of the 1974 Turing Award lecture.
- ↑ Dijkstra, Edsger W; transcribed by Mario Béland (November 23, 2004) [First published December 3, 1993]. "अभी भी एक युद्ध चल रहा है (पांडुलिपि ऑस्टिन, 3 दिसम्बर 1993)". E. W. Dijkstra Archive. The University of Texas at Austin, Department of Computer Sciences. Retrieved February 17, 2007.
जब यह शब्द 1968 में F.L द्वारा गढ़ा गया था। म्यूनिख के तकनीकी विश्वविद्यालय के बाउर, मैंने इसका स्वागत किया। [. . ।] मैंने "सॉफ्टवेयर इंजीनियरिंग" शब्द की शुरूआत की व्याख्या इस तथ्य के उपयुक्त प्रतिबिंब के रूप में की कि सॉफ्टवेयर सिस्टम का डिजाइन गणितीय इंजीनियर के लिए एक उत्कृष्ट गतिविधि थी। [. . ।]। जैसे ही यह शब्द संयुक्त राज्य अमेरिका में आया, यह अपनी सभी तकनीकी सामग्री से मुक्त हो गया। ऐसा होना ही था क्योंकि अपने मूल अर्थ में यह पूरी तरह से अस्वीकार्य था [. . .] इस बीच, सॉफ्टवेयर इंजीनियरिंग एक लगभग खाली शब्द बन गया है, जैसा कि डेटा जनरल द्वारा अच्छी तरह से प्रदर्शित किया गया था, जिसने रातोंरात अपने सभी प्रोग्रामरों को "सॉफ्टवेयर इंजीनियर" के ऊंचे पद पर पदोन्नत कर दिया था!
- ↑ "सॉफ़्टवेयर इंजीनियरिंग | सॉफ़्टवेयर आवश्यकताओं का वर्गीकरण". GeeksforGeeks (in English). 2018-06-19. Retrieved 2021-05-06.
- ↑ "सॉफ्टवेयर इंजीनियरिंग | सॉफ्टवेयर डिजाइन प्रक्रिया". GeeksforGeeks (in English). 2019-05-24. Retrieved 2021-05-06.
- ↑ "सॉफ्टवेयर रखरखाव क्या है? सॉफ्टवेयर रखरखाव की परिभाषा, सॉफ्टवेयर रखरखाव अर्थ". The Economic Times. Retrieved 2021-05-06.
- ↑ Abran, Alain, ed. (2005) [2004]. "Chapter 1: Introduction to the Guide". ज्ञान के सॉफ्टवेयर इंजीनियरिंग निकाय के लिए गाइड. Los Alamitos: IEEE Computer Society. ISBN 978-0-7695-2330-9. Retrieved 2010-09-13.
उद्धृत साहित्य की कुल मात्रा एक स्नातक शिक्षा और चार साल के अनुभव के पूरा होने के माध्यम से निपुणता के लिए उपयुक्त है।
- ↑ "SE2014 सॉफ्टवेयर इंजीनियरिंग पाठ्यचर्या" (PDF).
- ↑ Cowling, A. J. 1999. The first decade of an undergraduate degree program in software engineering. Ann. Softw. Eng. 6, 1–4 (Apr. 1999), 61–90.
- ↑ "ABET मान्यता प्राप्त इंजीनियरिंग कार्यक्रम". April 3, 2007. Retrieved April 3, 2007.
- ↑ McConnell, Steve (July 10, 2003). Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers. ISBN 978-0-321-19367-4.
- ↑ Software Engineering — Guide to the software engineering body of knowledge (SWEBOK), International Organization for Standardization, 2015, retrieved January 11, 2020
- ↑ Williams, N.S.W. (19–21 February 2001). "सॉफ्टवेयर इंजीनियरिंग व्यवसायियों को लाइसेंस देने के लिए ओंटारियो के पेशेवर इंजीनियर्स का दृष्टिकोण". Software Engineering Education and Training, 2001 Proceedings. 14th Conference on. Charlotte, NC: IEEE. pp. 77–78.
- ↑ "NCEES सॉफ्टवेयर इंजीनियरिंग परीक्षा विनिर्देश" (PDF). Archived from the original (PDF) on 2013-08-27. Retrieved 2012-04-01.
- ↑ "एनसीईईएस पीई सॉफ्टवेयर इंजीनियरिंग परीक्षा बंद कर रहा है". National Council of Examiners for Engineering and Surveying. 13 March 2018. Retrieved 6 August 2018.
- ↑ "SWEBOK गाइड संस्करण 3". Retrieved 2015-03-09.
- ↑ "सॉफ्टवेयर इंजीनियरिंग आचार संहिता" (PDF). Retrieved 2012-03-25.
- ↑ "सॉफ्टवेयर डेवलपर्स". Occupational Outlook Handbook. U. S. Bureau of labor Statistics. 4 September 2019. Retrieved 11 December 2019.
- ↑ "कम्प्यूटिंग अनुशासन और मेजर" (PDF). ACM. Retrieved 6 September 2019.
- ↑ 46.0 46.1 "सॉफ्टवेयर डेवलपर्स: व्यावसायिक आउटलुक हैंडबुक". U.S. Bureau of Labor Statistics.
- ↑ "कंप्यूटर सॉफ़्टवेयर इंजीनियर". Bureau of Labor Statistics. March 19, 2010. Archived from the original on July 26, 2013. Retrieved July 20, 2012.
- ↑ "सॉफ्टवेयर डेवलपर्स". Bureau of Labor Statistics. January 8, 2014. Retrieved July 21, 2012.
- ↑ 49.0 49.1 "कंप्यूटर प्रोग्रामर: व्यावसायिक आउटलुक हैंडबुक". U.S. Bureau of Labor Statistics.
- ↑ 50.0 50.1 Rosenthal, Rachel (August 4, 2020). "टेक कंपनियां चाहती हैं कि आप विश्वास करें कि अमेरिका में स्किल गैप है". Bloomberg. Retrieved October 8, 2021.
{{cite web}}: CS1 maint: url-status (link) - ↑ "कंप्यूटर प्रोग्रामर: व्यावसायिक आउटलुक हैंडबुक:: यू.एस. ब्यूरो ऑफ लेबर स्टैटिस्टिक्स". www.bls.gov.
- ↑ "प्रकाशन द्वारा पुरालेख: संख्याओं से परे: यू.एस. श्रम सांख्यिकी ब्यूरो". www.bls.gov.
- ↑ "शीघ्र-से-विलुप्त एंबेडेड सॉफ्टवेयर इंजीनियर". designnews.com. May 10, 2018.
- ↑ "एचपी का डेवलपर पोर्टल". developers.hp.com.
{{cite web}}: Text "एचपी अंतर्राष्ट्रीय महिला सप्ताह: 1980 के दशक से कंप्यूटर विज्ञान में महिलाओं की संख्या में गिरावट" ignored (help) - ↑ "कंप्यूटर सॉफ्टवेयर इंजीनियर और कंप्यूटर प्रोग्रामर". Retrieved 2009-12-17.
- ↑ "एसईआई प्रमाणन पृष्ठ". Sei.cmu.edu. Retrieved 2012-03-25.
- ↑ Wyrostek, Warren (March 14, 2008). "2008 में आईटी प्रमाणन के साथ शीर्ष 10 समस्याएं". InformIT. Retrieved 2009-03-03.
- ↑ IEEE Computer Society. "2006 आईईईई कंप्यूटर सोसायटी ने आईएफआईपी महासभा को रिपोर्ट दी" (PDF). Retrieved 2007-04-10.
- ↑ IEEE. "सीएसडीए". Retrieved 2010-04-20.
- ↑ ACM (July 17, 2000). "एक लाइसेंस प्राप्त इंजीनियरिंग पेशे के रूप में सॉफ्टवेयर इंजीनियरिंग पर एसीएम की स्थिति का सारांश" (PDF). Association for Computing Machinery (ACM). Archived from the original (PDF) on May 17, 2008. Retrieved 2009-03-03.
मई 2000 में अपनी बैठक में, परिषद ने आगे निष्कर्ष निकाला कि एक लाइसेंस प्राप्त पेशेवर इंजीनियर का ढांचा, मूल रूप से सिविल इंजीनियरों के लिए विकसित किया गया, सॉफ्टवेयर इंजीनियरिंग के पेशेवर औद्योगिक अभ्यास से मेल नहीं खाता। इस तरह की लाइसेंसिंग प्रथाएं सक्षमता का झूठा आश्वासन देती हैं, भले ही ज्ञान का भंडार परिपक्व हो; और कई योग्य सॉफ्टवेयर इंजीनियरों को लाइसेंस प्राप्त होने से रोकेगा।
- ↑ Canadian Information Processing Society. "आई.एस.पी. पद". Retrieved 2007-03-15.
- ↑ "पेशेवर इंजीनियर ओंटारियो: पीईओ की वेबसाइट पर आपका स्वागत है". Peo.on.ca. Retrieved 2012-03-25.
- ↑ Thibodaux, Patrick (2006-05-05). "जैसे-जैसे आउटसोर्सिंग भाप बनती है, कंप्यूटर विज्ञान में रुचि कम होती जाती है". Computerworld.com. Retrieved 2016-12-06.
- ↑ "कंप्यूटर प्रोग्रामर". Bls.gov. Retrieved 2012-03-25.
- ↑ Mullins, Robert (2007-03-13). "सॉफ्टवेयर डेवलपर विकास उत्तरी अमेरिका में धीमा है". InfoWorld. Archived from the original on 2009-04-04. Retrieved 2012-03-25.
- ↑ "गार्टनर मैजिक क्वाड्रंट" (PDF). Cognizant.com. Retrieved 2012-03-25.
- ↑ Casey, Valentine (2010-08-20). "आभासी सॉफ्टवेयर टीम परियोजना प्रबंधन". Journal of the Brazilian Computer Society. 16 (2): 83–96. doi:10.1007/s13173-010-0013-3. S2CID 14383734.
- ↑ Some external links:
- ↑ Dijkstra, E. W. (1988). "On the cruelty of really teaching computing science". Retrieved 2014-01-10.
स्रोत
- Abran, Alain; Moore, James W.; Bourque, Pierre; Dupuis, Robert; Tripp, Leonard L. (2004). ज्ञान के सॉफ्टवेयर इंजीनियरिंग निकाय के लिए गाइड. IEEE. ISBN 978-0-7695-2330-9.
- Sommerville, Ian (2010). सॉफ्टवेयर इंजीनियरिंग (7th ed.). Pearson Education. ISBN 978-81-7758-530-8. Retrieved 10 January 2013.
आगे की पढाई
- Guide to the Software Engineering Body of Knowledge (SWEBOK Guide): Version 3.0. Pierre Bourque, Richard E. Fairley (eds.). IEEE Computer Society. 2014. ISBN 978-0-7695-5166-1.
{{cite book}}: CS1 maint: others (link) - Pressman, Roger S (2009). Software Engineering: A Practitioner's Approach (7th ed.). Boston, Mass: McGraw-Hill. ISBN 978-0-07-337597-7.
- Sommerville, Ian (2010) [2010]. Software Engineering (9th ed.). Harlow, England: Pearson Education. ISBN 978-0-13-703515-1.
- Jalote, Pankaj (2005) [1991]. An Integrated Approach to Software Engineering (3rd ed.). Springer. ISBN 978-0-387-20881-7.
- Bruegge, Bernd; Dutoit, Allen (2009). Object-oriented software engineering : using UML, patterns, and Java (3rd ed.). Prentice Hall. ISBN 978-0-13-606125-0.
- Oshana, Robert (2019-06-21). Software engineering for embedded systems : methods, practical techniques, and applications (Second ed.). Kidlington, Oxford, United Kingdom. ISBN 978-0-12-809433-4.
बाहरी कड़ियाँ
- Guide to the Software Engineering Body of Knowledge
- The Open Systems Engineering and Software Development Life Cycle Framework OpenSDLC.org the integrated Creative Commons SDLC
- Software Engineering Institute Carnegie Mellon