सॉफ़्टवेयर

From alpha
Jump to navigation Jump to search
एक आरेख दिखाता है कि उपयोगकर्ता (कम्प्यूटिंग) कंप्यूटिंग) एक विशिष्ट डेस्कटॉप कंप्यूटर पर अनुप्रयोग प्रक्रिया सामग्री के साथ कैसे बातचीत करता है।एप्लिकेशन सॉफ्टवेयर लेयर ऑपरेटिंग सिस्टम के साथ इंटरफेस करता है, जो बदले में कम्पुटर के वो भाग जिसे छूकर मेहसूस किया जा सके के साथ संचार करता है।तीर सूचना प्रवाह को इंगित करते हैं।

सॉफ्टवेयर कंप्यूटर प्रोग्राम और संबंधित सॉफ़्टवेयर प्रलेखन और डेटा (कंप्यूटिंग) का एक सेट है।[1] यह कंप्यूटर हार्डवेयर के विपरीत है, जिसमें से सिस्टम बनाया गया है और जो वास्तव में काम करता है।

निम्न स्तर की भाषा में, निष्पादन योग्य कोड में एक व्यक्तिगत माइक्रोप्रोसेसर द्वारा समर्थित मशीन कोड निर्देश होते हैं - आमतौर पर एक केंद्रीय प्रसंस्करण इकाई (सीपीयू) या एक ग्राफिक्स प्रसंस्करण इकाई (जीपीयू)।मशीन भाषा में बाइनरी संख्या के समूह होते हैं जो निर्देश सेट आर्किटेक्चर को दर्शाता है जो कंप्यूटर की स्थिति को उसके पूर्ववर्ती स्थिति से बदल देता है।उदाहरण के लिए, एक निर्देश कंप्यूटर में किसी विशेष संग्रहण स्थान में संग्रहीत मूल्य को बदल सकता है - एक ऐसा प्रभाव जो उपयोगकर्ता के लिए सीधे अवलोकन योग्य नहीं है।एक निर्देश प्रणाली कई इनपुट/आउटपुट में से एक को कॉल करती है, उदाहरण के लिए कंप्यूटर स्क्रीन पर कुछ पाठ प्रदर्शित करना;राज्य परिवर्तन का कारण बनता है जो उपयोगकर्ता (कंप्यूटिंग) को दिखाई देना चाहिए।प्रोसेसर निर्देश चक्र उनके द्वारा प्रदान किए गए आदेश में निर्देश चक्र, जब तक कि यह शाखा निर्देश के लिए निर्देश नहीं दिया जाता है |एक अलग निर्देश के लिए कूदें, या ऑपरेटिंग सिस्टम द्वारा बाधित है। As of 2023, अधिकांश व्यक्तिगत कंप्यूटर, स्मार्टफोन डिवाइस और सर्वर (कम्प्यूटिंग) में बहु-कोर प्रोसेसर या मल्टीप्रोसेसिंग एक साथ होती है, इसलिए कंप्यूटिंग अतीत की तुलना में बहु त अधिक समवर्ती कंप्यूटिंग गतिविधि बन गई है।

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

इतिहास

सॉफ्टवेयर का पहला टुकड़ा क्या होगा, यह 19 वीं शताब्दी में वहाँ लवलेस है द्वारा नियोजित विश्लेषणात्मक इंजन के लिए लिखा गया था।[3] उसने यह दिखाने के लिए गणितीय प्रमाण बनाया कि इंजन बर्नौली संख्याओं की गणना कैसे करेगा।[3] प्रमाण और एल्गोरिथ्म के कारण, उसे पहला कंप्यूटर प्रोग्रामर माना जाता है।[4][5] सॉफ्टवेयर के बारे में पहला सिद्धांत, कंप्यूटर के निर्माण से पहले जैसा कि हम आज उन्हें जानते हैं, एलन ट्यूरिंग द्वारा उनके 1936 के निबंध में, कम्प्यूटेबल नंबरों पर, entscheidungsproblem (निर्णय समस्या) के लिए एक आवेदन के साथ प्रस्तावित किया गया था।[6] यह अंततः कंप्यूटर विज्ञान और सॉफ्टवेयर इंजीनियरिंग के शैक्षणिक क्षेत्रों के निर्माण के लिए नेतृत्व किया;दोनों क्षेत्र सॉफ्टवेयर और इसके निर्माण का अध्ययन करते हैं।[citation needed] कंप्यूटर विज्ञान कंप्यूटर और सॉफ्टवेयर का सैद्धांतिक अध्ययन है (ट्यूरिंग का निबंध कंप्यूटर विज्ञान का एक उदाहरण है), जबकि सॉफ्टवेयर इंजीनियरिंग सॉफ्टवेयर के विकास के लिए इंजीनियरिंग सिद्धांतों का अनुप्रयोग है।[7] 2000 में, येल लॉ स्कूल के एक लाइब्रेरियन फ्रेड शापिरो ने एक पत्र प्रकाशित किया, जिसमें बताया गया था कि जॉन वाइल्डर तुकी के 1958 के पेपर द टीचिंग ऑफ कंक्रीट मैथेमेटिक्स[8][9]JSTOR के इलेक्ट्रॉनिक अभिलेखागार की खोज में पाए गए सॉफ्टवेयर का जल्द से जल्द ज्ञात उपयोग, दो साल तक OED के उद्धरण से पहले पाया गया।[10]इसने कई लोगों को इस शब्द को गढ़ने के साथ क्रेडिट करने के लिए प्रेरित किया, विशेष रूप से उसी वर्ष प्रकाशित ऑबिटुअरीज में,[11]हालांकि तुकी ने कभी भी इस तरह के किसी भी सिक्के के लिए क्रेडिट का दावा नहीं किया।1995 में, पॉल निकेटेट ने दावा किया कि उन्होंने मूल रूप से अक्टूबर 1953 में यह शब्द गढ़ा था, हालांकि उन्हें अपने दावे का समर्थन करने वाले किसी भी दस्तावेज नहीं मिला।[12]एक इंजीनियरिंग संदर्भ में सॉफ्टवेयर शब्द का सबसे पहला ज्ञात प्रकाशन अगस्त 1953 में रिचर्ड आर। कारहार्ट द्वारा रैंड कॉर्पोरेशन रिसर्च मेमोरेंडम में किया गया था।[13]


प्रकार

वस्तुतः सभी कंप्यूटर प्लेटफार्मों पर, सॉफ्टवेयर को कुछ व्यापक श्रेणियों में वर्गीकृत किया जा सकता है।

उद्देश्य, या उपयोग का डोमेन

लक्ष्य के आधार पर, कंप्यूटर सॉफ्टवेयर को विभाजित किया जा सकता है:

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

प्रकृति या निष्पादन का डोमेन

  • डेस्कटॉप आवेदन जैसे कि वेब ब्राउज़र और Microsoft Office और LibReOffice और WordPerfect , साथ ही स्मार्टफोन और टैबलेट कंप्यूटर एप्लिकेशन (मोबाइल एप्लिकेशन कहा जाता है)।[citation needed]
  • जावास्क्रिप्ट स्क्रिप्ट सॉफ्टवेयर के टुकड़े हैं जो पारंपरिक रूप से वेब पृष्ठ ों में एम्बेडेड हैं जो वेब ब्राउज़र के अंदर सीधे चलाए जाते हैं जब वेब पेज को वेब ब्राउज़र प्लगइन की आवश्यकता के बिना लोड किया जाता है।अन्य प्रोग्रामिंग भाषाओं में लिखा गया सॉफ़्टवेयर वेब ब्राउज़र के भीतर भी चलाया जा सकता है यदि सॉफ़्टवेयर को या तो जावास्क्रिप्ट में अनुवादित किया जाता है, या यदि कोई वेब ब्राउज़र प्लगइन जो उस भाषा का समर्थन करता है, तो वह स्थापित है;उत्तरार्द्ध का सबसे आम उदाहरण actionscript स्क्रिप्ट है, जो एडोब फ्लैश प्लगइन द्वारा समर्थित हैं।[citation needed]
  • सर्वर सॉफ़्टवेयर , सहित:
    • वेब एपीएचपी ्लिकेशन, जो आमतौर पर वेब सर्वर पर चलते हैं और डायनामिक रूप से वेब ब्राउज़रों के लिए गतिशील रूप से उत्पन्न वेब अनुप्रयोग को आउटपुट करते हैं, उदा।PHP, JAVA (प्रोग्रामिंग भाषा), ASP.NET, या यहां तक कि Node.js.आधुनिक समय में इनमें आमतौर पर वेब ब्राउज़र में कुछ जावास्क्रिप्ट को शामिल किया जाता है, साथ ही साथ वे आमतौर पर आंशिक रूप से सर्वर पर, आंशिक रूप से वेब ब्राउज़र में चलते हैं।[citation needed]
  • प्लग-इन (कम्प्यूटिंग) और एक्सटेंशन सॉफ्टवेयर हैं जो सॉफ़्टवेयर के किसी अन्य टुकड़े की कार्यक्षमता का विस्तार या संशोधित करते हैं, और आवश्यकता होती है कि सॉफ़्टवेयर का उपयोग कार्य करने के लिए किया जाए।[15]
  • [[ उपगाड़ी णों के नियंत्रण के लिए सॉफ्टवेयर ]] अंतःस्थापित प्रणाली के भीतर फर्मवेयर के रूप में रहता है, एकल उपयोग के लिए समर्पित उपकरण या कुछ उपयोगों जैसे कि कार और टेलीविजन (हालांकि कुछ एम्बेडेड डिवाइस जैसे वायरलेस चिपसेट स्वयं एक साधारण, गैर-एम्बेडेड कंप्यूटर सिस्टम का हिस्सा हो सकते हैं जैसेपीसी या स्मार्टफोन)।[16] एम्बेडेड सिस्टम संदर्भ में कभी -कभी सिस्टम सॉफ्टवेयर और एप्लिकेशन सॉफ्टवेयर के बीच कोई स्पष्ट अंतर नहीं होता है।हालांकि, कुछ एम्बेडेड सिस्टम एम्बेडेड ऑपरेटिंग तंत्र चलाते हैं, और ये सिस्टम सिस्टम सॉफ़्टवेयर और एप्लिकेशन सॉफ्टवेयर के बीच अंतर को बनाए रखते हैं (हालांकि आमतौर पर केवल एक, निश्चित एप्लिकेशन होगा जो हमेशा चलाया जाता है)।[citation needed]
  • माइक्रोकोड एक विशेष, अपेक्षाकृत अस्पष्ट प्रकार का एम्बेडेड सॉफ़्टवेयर है जो प्रोसेसर को बताता है कि मशीन कोड को कैसे निष्पादित किया जाए, इसलिए यह वास्तव में मशीन कोड की तुलना में कम स्तर है।[citation needed] यह आमतौर पर प्रोसेसर निर्माता के लिए मालिकाना है, और किसी भी आवश्यक सुधारक माइक्रोकोड सॉफ़्टवेयर अपडेट को उपयोगकर्ताओं को आपूर्ति की जाती है (जो शिपिंग रिप्लेसमेंट प्रोसेसर हार्डवेयर की तुलना में बहुत सस्ता है)।इस प्रकार एक साधारण प्रोग्रामर को कभी भी इससे निपटने की उम्मीद नहीं होगी।[citation needed]


प्रोग्रामिंग उपकरण

प्रोग्रामिंग टूल प्रोग्राम या एप्लिकेशन के रूप में भी सॉफ्टवेयर हैं जो सॉफ्टवेयर डेवलपर ्स का उपयोग करते हैं, डिबगिंग , सॉफ्टवेयर रखरखाव, या अन्यथा तकनीकी सहायता सॉफ्टवेयर बनाने के लिए उपयोग करते हैं।[17][better source needed] सॉफ्टवेयर एक या एक से अधिक प्रोग्रामिंग भाषा ओं में लिखा गया है;अस्तित्व में कई प्रोग्रामिंग भाषा हैं, और प्रत्येक में कम से कम एक कार्यान्वयन होता है, जिनमें से प्रत्येक में प्रोग्रामिंग टूल का अपना सेट होता है।ये उपकरण अपेक्षाकृत स्व-निहित कार्यक्रम हो सकते हैं जैसे कि संकलक, डिबगर ्स, दुभाषिया (कम्प्यूटिंग), लिंकर (कम्प्यूटिंग) , और पाठ संपादक ों, जिन्हें एक कार्य को पूरा करने के लिए जोड़ा जा सकता है;या वे एक एकीकृत विकास वातावरण (IDE) बना सकते हैं, जो इस तरह के स्व-निहित उपकरणों की कार्यक्षमता को बहुत या सभी को जोड़ती है।[citation needed] IDES या तो प्रासंगिक व्यक्तिगत उपकरणों को लागू करके या एक नए तरीके से उनकी कार्यक्षमता को फिर से लागू करके ऐसा कर सकता है।[citation needed] एक आईडीई विशिष्ट कार्यों को करना आसान बना सकता है, जैसे कि किसी विशेष परियोजना में फ़ाइलों में खोज करना।[citation needed] कई प्रोग्रामिंग भाषा कार्यान्वयन व्यक्तिगत उपकरण या आईडीई दोनों का उपयोग करने का विकल्प प्रदान करते हैं।[citation needed]


विषय

वास्तुकला

जो लोग आधुनिक सामान्य प्रयोजन कंप्यूटरों का उपयोग करते हैं (जैसा कि एम्बेडेड सिस्टम, अनुरूप कंप्यूटर और सुपर कंप्यूटर के विपरीत) आमतौर पर विभिन्न प्रकार के कार्यों को करने वाले सॉफ़्टवेयर की तीन परतें देखते हैं: प्लेटफ़ॉर्म, एप्लिकेशन और उपयोगकर्ता सॉफ़्टवेयर।[citation needed]

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


निष्पादन

कंप्यूटर सॉफ्टवेयर को कंप्यूटर के कंप्यूटर भंडारण (जैसे हार्ड ड्राइव या स्मृति ) में लोड किया जाना है।एक बार सॉफ्टवेयर लोड हो जाने के बाद, कंप्यूटर सॉफ़्टवेयर को निष्पादित करने में सक्षम है।इसमें सिस्टम सॉफ़्टवेयर के माध्यम से, हार्डवेयर के लिए एप्लिकेशन सॉफ़्टवेयर से निर्देश पास करना शामिल है, जो अंततः मशीन कोड के रूप में निर्देश प्राप्त करता है।प्रत्येक निर्देश कंप्यूटर को एक ऑपरेशन करने का कारण बनता है - डेटा की निगरानी करना, एक गणना को अंजाम देना, या निर्देशों के नियंत्रण प्रवाह को बदलना।[citation needed] डेटा मूवमेंट आमतौर पर मेमोरी में एक स्थान से दूसरे स्थान पर होता है।कभी-कभी इसमें मेमोरी और रजिस्टरों के बीच डेटा को स्थानांतरित करना शामिल होता है जो सीपीयू में उच्च गति वाले डेटा एक्सेस को सक्षम करते हैं।चलती डेटा, विशेष रूप से बड़ी मात्रा में, महंगा हो सकता है;इसके बजाय डेटा के लिए पॉइंटर्स का उपयोग करके कभी -कभी बचा जाता है।[citation needed] कम्प्यूटेशन में सरल संचालन शामिल हैं जैसे कि एक चर डेटा तत्व के मूल्य को बढ़ाना।अधिक जटिल संगणना में कई संचालन और डेटा तत्व एक साथ शामिल हो सकते हैं।[citation needed]


गुणवत्ता और विश्वसनीयता

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


लाइसेंस

सॉफ्टवेयर का लाइसेंस उपयोगकर्ता को लाइसेंस प्राप्त वातावरण में सॉफ़्टवेयर का उपयोग करने का अधिकार देता है, और नि: शुल्क सॉफ्टवेयर लाइसेंस के मामले में, अन्य अधिकारों जैसे कि प्रतियां बनाने का अधिकार भी अनुदान देता है।[citation needed] मालिकाना सॉफ्टवेयर को दो प्रकारों में विभाजित किया जा सकता है:

  • फ्रीवेयर , जिसमें नि: शुल्क परीक्षण सॉफ्टवेयर या freemium सॉफ़्टवेयर की श्रेणी शामिल है (अतीत में, टर्म शेयरवेयर का उपयोग अक्सर नि: शुल्क परीक्षण/फ्रीमियम सॉफ्टवेयर के लिए किया जाता था)।जैसा कि नाम से पता चलता है, फ्रीवेयर का उपयोग मुफ्त में किया जा सकता है, हालांकि नि: शुल्क परीक्षण या फ्रीमियम सॉफ़्टवेयर के मामले में, यह कभी -कभी सीमित समय के लिए या सीमित कार्यक्षमता के साथ ही सच होता है।[19]
  • एक शुल्क के लिए उपलब्ध सॉफ्टवेयर, जो केवल लाइसेंस की खरीद पर कानूनी रूप से उपयोग किया जा सकता है।[20]

खुला स्रोत सॉफ्टवेयर एक मुफ्त सॉफ्टवेयर लाइसेंस के साथ आता है, प्राप्तकर्ता को सॉफ़्टवेयर को संशोधित करने और पुनर्वितरित करने के अधिकार प्रदान करता है।[21]


पेटेंट

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


डिजाइन और कार्यान्वयन

सॉफ्टवेयर की जटिलता के आधार पर सॉफ्टवेयर का डिजाइन और कार्यान्वयन भिन्न होता है।उदाहरण के लिए, Microsoft Word के डिजाइन और निर्माण में Microsoft नोटपैड को डिजाइन करने और विकसित करने की तुलना में बहुत अधिक समय लगा क्योंकि पूर्व में बहुत अधिक बुनियादी कार्यक्षमता है।[citation needed] सॉफ्टवेयर आमतौर पर एकीकृत विकास वातावरण (IDE) जैसे ग्रहण (सॉफ्टवेयर), Intelij Idea और Microsoft Visual Studio में विकसित किया जाता है जो प्रक्रिया को सरल बना सकता है और सॉफ़्टवेयर को संकलित कर सकता है।[citation needed] जैसा कि एक अलग खंड में उल्लेख किया गया है, सॉफ्टवेयर आमतौर पर मौजूदा सॉफ्टवेयर और एप्लीकेशन प्रोग्रामिंग इंटरफेस (एपीआई) के शीर्ष पर बनाया जाता है जो अंतर्निहित सॉफ्टवेयर GTK+ , Javabeans या स्विंग (जावा) Java) जैसे प्रदान करता है।[citation needed] पुस्तकालयों (एपीआई) को उनके उद्देश्य से वर्गीकृत किया जा सकता है।उदाहरण के लिए, स्प्रिंग फ्रेमवर्क का उपयोग उपक्रम एप्लिकेशन को लागू करने के लिए किया जाता है, विंडोज फॉर्म लाइब्रेरी का उपयोग ग्राफिकल यूजर इंटरफेस (जीयूआई) जैसे Microsoft Word, और Windows Communication Foundation का उपयोग वेब सेवा ओं को डिजाइन करने के लिए किया जाता है।[citation needed] जब कोई कार्यक्रम डिज़ाइन किया जाता है, तो यह एपीआई पर निर्भर करता है।उदाहरण के लिए, एक Microsoft Windows डेस्कटॉप एप्लिकेशन .NET फ्रेमवर्क में API फ़ंक्शंस को कॉल कर सकता है।[23] एप्लिकेशन को बंद या खोलने के लिए।इन एपीआई के बिना, प्रोग्रामर को इन कार्यों को पूरी तरह से लिखने की आवश्यकता है।Oracle Corporation और Microsoft जैसी कंपनियां अपना API प्रदान करती हैं ताकि कई एप्लिकेशन अपनी लाइब्रेरी (कम्प्यूटिंग) का उपयोग करके लिखे जाएं, जिसमें आमतौर पर कई API होते हैं।[citation needed] डेटा संरचना एं जैसे हैश टेबल , सरणी डेटा प्रकार, और बाइनरी ट्री , और एल्गोरिदम जैसे कि जल्दी से सुलझाएं , सॉफ्टवेयर बनाने के लिए उपयोगी हो सकता है।

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

यह भी देखें

संदर्भ

  1. "ISO/IEC 2382:2015". ISO. 3 September 2020. Retrieved 26 May 2022. [Software includes] all or part of the programs, procedures, rules, and associated documentation of an information processing system.
  2. "Compiler construction". cs.uu.nl. Archived from the original on 2 November 2013.
  3. 3.0 3.1 Evans 2018, p. 21.
  4. Fuegi, J.; Francis, J. (2003). "Lovelace & Babbage and the creation of the 1843 'notes'" (PDF). Annals of the History of Computing. 25 (4): 16–26. doi:10.1109/MAHC.2003.1253887. S2CID 40077111. Archived from the original (PDF) on 15 February 2020.
  5. Staf, Guardian (10 December 2012). "Ada Lovelace honoured by Google doodle". The Guardian. Retrieved 25 November 2018.{{cite news}}: CS1 maint: url-status (link)
  6. Turing, Alan Mathison (1936). "कम्प्यूटेबल नंबरों पर, entscheidungsproblem के लिए एक आवेदन के साथ" (PDF). Journal of Mathematics. 58: 230–265. Archived (PDF) from the original on 9 October 2022. Retrieved 28 August 2022.
  7. Lorge Parnas, David (1 November 1984). "Software Engineering Principles". INFOR: Information Systems and Operational Research. 22 (4): 303–316. doi:10.1080/03155986.1984.11731932. ISSN 0315-5986.
  8. Tukey, John Wilder (January 1958). "The Teaching of Concrete Mathematics". American Mathematical Monthly. Taylor & Francis, Ltd. / Mathematical Association of America. 65 (1): 1–9, 2. doi:10.2307/2310294. ISSN 0002-9890. JSTOR 2310294. CODEN AMMYAE. […] Today the "software" comprising the carefully planned interpretive routines, compilers, and other aspects of automative programming are at least as important to the modern electronic calculator as its "hardware" of tubes, transistors, wires, tapes, and the like. […]
  9. Beebe, Nelson H. F. (22 August 2017). "Chapter I - Integer arithmetic". The Mathematical-Function Computation Handbook - Programming Using the MathCW Portable Software Library (1 ed.). Salt Lake City, UT, USA: Springer International Publishing AG. pp. 969, 1035. doi:10.1007/978-3-319-64110-2. ISBN 978-3-319-64109-6. LCCN 2017947446. S2CID 30244721.
  10. Shapiro, Fred (2000). "Origin of the Term Software: Evidence from the JSTOR Electronic Journal Archive" (PDF). IEEE Annals of the History of Computing. 22 (2): 69–71. doi:10.1109/mahc.2000.887997. Archived from the original (PDF) on 5 June 2003. Retrieved 25 June 2013.
  11. Leonhardt, David (28 July 2000). "John Tukey, 85, Statistician; Coined the Word 'Software'". The New York Times. Retrieved 24 September 2012.
  12. Niquette, R. Paul (2006), Softword: Provenance for the Word 'Software, ISBN 1-58922-233-4, archived from the original on 8 August 2019, retrieved 18 August 2019
  13. Carhart, Richard (1953). A survey of the current status of the electronic reliability problem (PDF). Santa Monica, CA: Rand Corporation. p. 69. Archived (PDF) from the original on 9 October 2022. […] It will be recalled from Sec. 1.6 that the term personnel was defined to include people who come into direct contact with the hardware, from production to field use, i.e., people who assemble, inspect, pack, ship, handle, install, operate, and maintain electronic equipment. In any of these phases personnel failures may result in unoperational gear. As with the hardware factors, there is almost no quantitative data concerning these software or human factors in reliability: How many faults are caused by personnel, why they occur, and what can be done to remove the errors. […]
  14. "System Software". The University of Mississippi. Archived from the original on 30 May 2001.
  15. Hope, Computer. "What is a Plugin?". www.computerhope.com. Retrieved 26 January 2022.{{cite web}}: CS1 maint: url-status (link)
  16. "Embedded Software—Technologies and Trends". IEEE Computer Society. May–June 2009. Archived from the original on 28 October 2013. Retrieved 6 November 2013.
  17. "What is a Programming Tool? - Definition from Techopedia". Techopedia.com. Retrieved 26 January 2022.{{cite web}}: CS1 maint: url-status (link)
  18. "scripting intelligence book examples". GitHub. 9 May 2018. Archived from the original on 6 November 2015. Retrieved 6 November 2015.
  19. "Freeware vs Shareware - Difference and Comparison | Diffen". www.diffen.com. Retrieved 26 January 2022.{{cite web}}: CS1 maint: url-status (link)
  20. Morin, Andrew; Urban, Jennifer; Sliz, Piotr (26 July 2012). "A Quick Guide to Software Licensing for the Scientist-Programmer". PLOS Computational Biology. 8 (7): e1002598. Bibcode:2012PLSCB...8E2598M. doi:10.1371/journal.pcbi.1002598. ISSN 1553-7358. PMC 3406002. PMID 22844236.
  21. "Open source software explained". IONOS Digitalguide. Retrieved 26 January 2022.{{cite web}}: CS1 maint: url-status (link)
  22. Gerardo Con Díaz, "The Text in the Machine: American Copyright Law and the Many Natures of Software, 1974–1978," Technology and Culture 57 (October 2016), 753–79.
  23. "MSDN Library". microsoft.com. Archived from the original on 11 June 2010. Retrieved 14 June 2010.
  24. v. Engelhardt, Sebastian (2008). "The Economic Properties of Software". Jena Economic Research Papers. 2 (2008–045). Archived from the original on 5 January 2016.
  25. Kaminsky, Dan (2 March 1999). "Why Open Source Is The Optimum Economic Paradigm for Software". dankaminsky.com. Archived from the original on 22 May 2012. Retrieved 19 November 2021.{{cite web}}: CS1 maint: date and year (link)



स्रोत


बाहरी कड़ियाँ

  • Software at Encyclopædia Britannica
  • सॉफ़्टवेयर at Curlie