सॉफ्टवेअर
म्हणजे सूचना आणि डेटा यांचा संग्रह आहे जे वापरकर्त्यास संगणक, त्याच्या हार्डवेअरशी
संवाद साधण्यास किंवा कार्य करण्यास सक्षम करते. सॉफ्टवेअर संगणकाला कसे कार्य करावे ते सांगते. हे भौतिक हार्डवेअरच्या विरुद्ध आहे, ज्यातून सिस्टम
तयार केलेली आहे आणि प्रत्यक्षात कार्य करते. सॉफ्टवेअरशिवाय संगणक निरुपयोगी
ठरतील. जसे की, आपल्या इंटरनेट ब्राउझर सॉफ्टवेअरशिवाय आपण इंटरनेट सर्फिंग करु शकत
नाही किंवा पृष्ठ वाचू शकत नाही. ऑपरेटिंग सिस्टमशिवाय ब्राउझर आपल्या संगणकावर चालू
शकत नाही.
संगणक सॉफ्टवेअरमध्ये संगणक प्रोग्राम, ग्रंथालये आणि संबंधित
नॉन-एक्जीक्यूटेबल डेटा समाविष्ट आहे, जसे की ऑनलाइन दस्तऐवजीकरण किंवा डिजिटल
मीडिया. संगणक हार्डवेअर आणि सॉफ्टवेअरला एकमेकांची आवश्यकता असते आणि ती
दोन्हीपैकी प्रत्यक्षात स्वतःच वापरले जाऊ शकत नाही.
बहुतेक सॉफ्टवेअर उच्च-स्तरीय प्रोग्रामिंग भाषांमध्ये लिहिलेले आहेत.
प्रोग्रामरसाठी ते अधिक सुलभ आणि कार्यक्षम आहेत कारण ते मशीनी भाषेपेक्षा
नैसर्गिक भाषांच्या अधिक जवळ आहेत. कंपाइलर किंवा दुभाषे किंवा दोघांचे संयोजन
वापरुन उच्चस्तरीय भाषांचे भाषांतर मशीन भाषेत केले जाते. सॉफ्टवेअर निम्न-स्तरीय
असेंब्ली भाषेत देखील लिहिले जाऊ शकते, ज्यात संगणकाच्या मशीन भाषेच्या सूचनांचे
मजबूत पत्रव्यवहार आहे आणि एसेम्ब्लरद्वारे मशीन भाषेत अनुवादित केले गेले आहे.
प्रकार (Types)
सर्व संगणक प्लॅटफॉर्मवर, सॉफ्टवेअरला काही विस्तृत श्रेणींमध्ये समाविष्ट केले जाऊ शकते.
ॲप्लिकेशन सॉफ्टवेअर (Application Software)
असे सॉफ्टवेअर आहे जे संगणकाच्या मूलभूत ऑपरेशनच्या पलीकडे विशेष कार्ये
करण्यासाठी किंवा करमणूक कार्ये करण्यासाठी संगणक प्रणाली वापरते. बर्याच
प्रकारचे ॲप्लिकेशन सॉफ्टवेअर आहेत.
सिस्टम सॉफ्टवेअर (System Software)
जे संगणक हार्डवेअरचे कार्य व्यवस्थापित करण्यासाठी, वापरकर्त्यांद्वारे
आवश्यक असलेल्या मूलभूत कार्ये पुरवण्यासाठी किंवा इतर सॉफ्टवेअर योग्यरित्या
चालविण्यासाठी इतर सॉफ्टवेअरसाठी सॉफ्टवेअर आहे. सिस्टम सॉफ्टवेअर चालविण्यासाठी ॲप्लिकेशन
सॉफ्टवेअरसाठी एक प्लॅटफॉर्म प्रदान
करण्यासाठी देखील डिझाइन केले गेले आहे. यात खालील गोष्टींचा समावेश आहे:
ऑपरेटिंग सिस्टम (Operating System)
ऑपरेटिंग सिस्टम हे सॉफ्टवेअरचे आवश्यक संग्रह आहेत जी संसाधने व्यवस्थापित
करतात आणि त्या सॉफ्टवेअरच्या सामान्य सेवा प्रदान करतात. पर्यवेक्षी प्रोग्राम,
बूट लोडर, शेल आणि विंडो सिस्टम ऑपरेटिंग सिस्टमचे मुख्य भाग आहेत. ऑपरेटिंग
सिस्टम अतिरिक्त सॉफ्टवेअरसह एकत्रित केली जाते (अप्लिकेशन सॉफ्टवेअरसह) जेणेकरुन
वापरकर्ता एक ऑपरेटिंग सिस्टम असलेल्या संगणकासह काही कार्य करु शकेल.
डिव्हाइस ड्राइव्हर्स् (Device Drivers)
डिव्हाइस ड्राइव्हर्स् संगणकावर संलग्न केलेले विशिष्ट प्रकारचे डिव्हाइस
ऑपरेट किंवा नियंत्रित करते. प्रत्येक डिव्हाइसला कमीतकमी संबंधित डिव्हाइस
ड्रायव्हरची आवश्यकता असते. संगणकात किमान एक इनपुट डिव्हाइस आणि कमीतकमी एक
आउटपुट डिव्हाइस असतो. म्हणून संगणकास
एकापेक्षा जास्त डिव्हाइस ड्रायव्हर्सची आवश्यकता असते.
मालवेयर (Malware)
हे असे सॉफ्टवेअर आहे जे संगणकास हानी पोहोचू नये आणि व्यत्यय येवू नये यासाठी
विकसित केले गेले आहे. तसे, मालवेयर अवांछित आहे. मालवेयर संगणकाशी संबंधित
गुन्ह्यांशी संबंधित आहे.
सॉफ्टवेअर आर्किटेक्चर (Software Architecture)
वापरकर्ते बर्याचदा प्रोग्रामरपेक्षा भिन्न गोष्टी पाहतात. जे लोक सामान्य हेतूचे
संगणक वापरतात (एम्बेड केलेले सिस्टम, एनालॉग संगणक आणि सुपर कॉम्प्यूटरच्या विरुद्ध
असतात) सहसा सॉफ्टवेअरचे तीन थर विविध कार्ये करताना दिसतात: प्लॅटफॉर्म, ॲप्लिकेशन
आणि वापरकर्ता सॉफ्टवेअर.
प्लॅटफॉर्म सॉफ्टवेअर (Platform Software)
प्लॅटफॉर्ममध्ये फर्मवेअर, डिव्हाइस ड्रायव्हर्स, एक ऑपरेटिंग सिस्टम आणि
सामान्यत: ग्राफिकल यूजर इंटरफेस आहे. जे वापरकर्त्यास संगणकासह त्याच्या परिघ
(संबंधित उपकरणे) सह संवाद साधण्याची परवानगी देतो. प्लॅटफॉर्म सॉफ्टवेअर बर्याचदा
संगणकासह एकत्रित केले जाते. पीसी वर सहसा प्लॅटफॉर्म सॉफ्टवेअर बदलण्याची क्षमता
असते.
ॲप्लिकेशन सॉफ्टवेअर (Application Software)
ॲप्लिकेशन सॉफ्टवेअरच्या उदाहरणांमध्ये ऑफिस सुट आणि व्हिडिओ गेमचा समावेश
आहे. ॲप्लिकेशन सॉफ्टवेअर बर्याचदा संगणक हार्डवेअरपासून स्वतंत्रपणे विकत घेतले
जाते. काहीवेळा ॲप्लिकेशन संगणकासह एकत्रित केले जातात परंतु ते स्वतंत्र ॲप्लिकेशन
म्हणून चालतात हे बदलत नाही. प्लिकेशन सामान्यत: ऑपरेटिंग सिस्टमचे स्वतंत्र
प्रोग्राम असतात, ते बहुतेक वेळा विशिष्ट प्लॅटफॉर्मवर तयार केले जातात. बरेच
वापरकर्ते कंपाईलर, डेटाबेस आणि इतर "सिस्टम सॉफ्टवेअर" चा ॲप्लिकेशन
म्हणून विचार करतात.
वापरकर्ता सॉफ्टवेअर (User-written software)
वापरकर्त्यांच्या विशिष्ट गरजा पूर्ण करण्यासाठी अंत-वापरकर्ता विकास टेलर
सिस्टम. वापरकर्ता सॉफ्टवेअरमध्ये स्प्रेडशीट टेम्पलेट्स आणि वर्ड प्रोसेसर
टेम्पलेट्स समाविष्ट आहेत. ईमेल फिल्टर देखील एक प्रकारचे वापरकर्ता सॉफ्टवेअर
असतात. वापरकर्ते हे सॉफ्टवेअर स्वतः तयार करतात आणि बर्याचदा ते किती महत्वाचे
आहे याकडे दुर्लक्ष करतात. डीफॉल्ट ॲप्लिकेशन पॅकेजेसमध्ये वापरकर्ता-लिखित
सॉफ्टवेअर किती सक्षमपणे समाकलित केले गेले आहे यावर अवलंबून असते.
अंमलबजावणी (Execution)
संगणक सॉफ्टवेअरला संगणकाच्या स्टोरेजमध्ये लोड केले
जाते जसे की हार्ड ड्राईव्ह किंवा मेमरी. एकदा सॉफ्टवेअर लोड झाल्यानंतर, संगणक
सॉफ्टवेअर चालविण्यास सक्षम होतो. यामध्ये सिस्टम सॉफ्टवेयरद्वारे हार्डवेअरकडे ॲप्लिकेशन
सॉफ्टवेअरकडून सूचना पाठवणे समाविष्ट असते ज्याला शेवटी मशीन कोड म्हणून सूचना
प्राप्त होते. प्रत्येक सूचनेमुळे संगणकास ऑपरेशन करणे, डेटा हलविणे, गणना करणे
किंवा निर्देशांच्या नियंत्रणामध्ये बदल करणे शक्य होते.
गुणवत्ता आणि विश्वासनीयता (Quality and reliability)
सॉफ्टवेअरची गुणवत्ता ही खूप महत्वाची आहे. विशेषत: मायक्रोसॉफ्ट ऑफिस,
मायक्रोसॉफ्ट विंडोज आणि लिनक्स सारख्या व्यावसायिक आणि सिस्टम सॉफ्टवेयरसाठी
गुणवत्ता ही खूप महत्वाची आहे. जर सॉफ्टवेअर सदोष (बग्गी) असेल तर ते एखाद्याचे
कार्य हटवू शकते, संगणकावर क्रॅश होऊ शकते आणि इतर अनपेक्षित गोष्टी करु शकते. दोष
आणि त्रुटींना "बग्स" असे म्हणतात जे बहुतेक वेळा अल्फा आणि बीटा चाचणी
दरम्यान शोधले जातात.
सॉफ्टवेअर चाचणीद्वारे बरेच दोष शोधले आणि काढले (डिबग केलेले) केले गेले.
तथापि, सॉफ्टवेअर चाचणी क्वचितच प्रत्येक बग काढून टाकते.
सॉफ्टवेअर परवाना (Software License)
सॉफ्टवेअरचा परवाना वापरकर्त्यास मोकळया वातावरणात सॉफ्टवेअर वापरण्याचा
अधिकार देतो. विनामूल्य सॉफ्टवेअर परवान्याच्या बाबतीत, प्रती बनविण्याच्या
अधिकारासह इतर अधिकार देखील दिले जातात.
मालकीचे
सॉफ्टवेअर दोन प्रकारांमध्ये विभागले जाऊ शकते
फ्रीवेअर, ज्यात "फ्री ट्रायल" सॉफ्टवेअर किंवा
"फ्रीमियम" सॉफ्टवेअरची श्रेणी समाविष्ट आहे. नावाप्रमाणे, फ्रीवेअर विनामूल्य वापरले जाऊ
शकते, परंतू काही वेळा हे मर्यादित कालावधीसाठी किंवा मर्यादित कार्यक्षमतेसह
पुरवले जाते.
फीसाठी उपलब्ध असलेले सॉफ्टवेअर, बर्याच वेळा "व्यावसायिक
सॉफ्टवेअर" म्हणून संबोधले जाते, जे केवळ परवाना खरेदीवरच कायदेशीररित्या
वापरले जाऊ शकते.
दुसरीकडे मुक्त-स्त्रोत सॉफ्टवेअर विनामूल्य सॉफ्टवेअर परवानासह
प्राप्तकर्त्यास सॉफ्टवेअर सुधारित व पुन्हा वितरित करण्याचे अधिकार देते
डिझाइन आणि अंमलबजावणी (Design and implementation)
सॉफ्टवेअरची जटिलता सॉफ्टवेअरची रचना आणि अंमलबजावणी यावर अवलुबून असते.
उदाहरणार्थ, मायक्रोसॉफ्ट नोटपॅड डिझाइन करण्यापेक्षा आणि विकसित करण्यापेक्षा
मायक्रोसॉफ्ट वर्डच्या डिझाईन आणि निर्मितीस जास्त वेळ लागला कारण त्यात बरीच
मूलभूत कार्यक्षमता आहे.
एक्लिप्स, इंटेलिज आणि मायक्रोसॉफ्ट व्हिज्युअल
स्टुडिओ सारख्या समाकलित विकास वातावरणात सॉफ्टवेअर तयार केले जाते आणि ते
प्रक्रिया सुलभ करु शकते.
सॉफ्टवेअर सामान्यत: विद्यमान सॉफ्टवेअरच्या शीर्षस्थानी आणि ॲप्लिकेशन
प्रोग्रामिंग इंटरफेस (एपीआय) वर तयार केले जाते जे जीटीके+, जावाबीन्स किंवा
स्विंग सारख्या अंतर्निहित सॉफ्टवेअर प्रदान करते.
स्प्रिंग फ्रेमवर्क एंटरप्राइझ अॅप्लिकेशनच्या अंमलबजावणीसाठी वापरला जातो,
विंडोज फॉर्म लायब्ररीचा वापर मायक्रोसॉफ्ट वर्ड सारख्या ग्राफिकल यूजर इंटरफेस
(जीयूआय) ॲप्लिकेशन्स डिझाइन करण्यासाठी केला जातो आणि विंडोज कम्युनिकेशन
फाउंडेशन वेब सर्व्हिसेस डिझाइन करण्यासाठी वापरला जातो. जेव्हा एखादा प्रोग्राम
डिझाइन केला जातो तेव्हा तो एपीआय वर अवलंबून असतो.
ओरॅकल आणि मायक्रोसॉफ्ट सारख्या कंपन्या त्यांची स्वतःची एपीआय प्रदान करतात
जेणेकरुन बर्याच ॲप्लिकेशनमध्ये त्यांच्या सॉफ्टवेअर लायब्ररीचा वापर करुन
लिहिल्या जातात ज्यामध्ये असंख्य एपीआय असतात.
सॉफ्टवेअर तयार करण्यासाठी हॅश टेबल, अॅरे आणि बायनरी ट्री आणि अल्गोरिदम सारख्या
डेटा स्ट्रक्चर्स उपयुक्त ठरु शकतात.
संगणक सॉफ्टवेअरची विशिष्ट अशी आर्थिक वैशिष्ट्ये आहेत ज्यामुळे त्याचे
डिझाइन, निर्मिती आणि वितरण इतर आर्थिक वस्तूंपेक्षा वेगळे आहे.
सॉफ्टवेअर तयार करणार्याला प्रोग्रामर, सॉफ्टवेअर अभियंता किंवा सॉफ्टवेअर
डेव्हलपर असे म्हणतात, ज्याचा अर्थ सर्वांचा दर्जा सारखाच असतो. प्रोग्रामरसाठी
अधिक अनौपचारिक संज्ञा देखील अस्तित्त्वात आहेत जसे की "कोडर" आणि
"हॅकर" - जरी नंतरचे शब्द वापरल्याने गोंधळ होऊ शकतो, कारण याचा अर्थ
बहुतेक वेळेस संगणक प्रणालींमध्ये अवैधपणे मोडणारा असा होतो.
उद्योग आणि संस्था (Industry and organizations)
जगातील बर्याच सॉफ्टवेअर कंपन्या आणि प्रोग्रामरमध्ये एक सॉफ्टवेअर उद्योग
आहे. सॉफ्टवेअर बर्यापैकी फायदेशीर उद्योग असू शकतो. मायक्रोसॉफ्टचे सह-संस्थापक
बिल गेट्स हे २००९ मध्ये जगातील सर्वात श्रीमंत व्यक्ती होते. मुख्यत:
मायक्रोसॉफ्टच्या मायक्रोसॉफ्ट विंडोज आणि मायक्रोसॉफ्ट ऑफिससाठी जबाबदार कंपनी
मायक्रोसॉफ्टमधील महत्त्वपूर्ण शेअर्सच्या मालकीमुळे.
ना-नफा सॉफ्टवेअर संस्थांमध्ये फ्री सॉफ्टवेअर फाऊंडेशन, जीएनयू प्रकल्प आणि
मोजिला फाऊंडेशनचा समावेश आहे. डब्ल्यू 3 सी, आयईटीएफ यासारख्या सॉफ्टवेअर मानक
संस्था एक्सएमएल, एचटीटीपी आणि एचटीएमएल सारख्या सुचविलेले सॉफ्टवेअर मानक विकसित
करतात, जेणेकरुन सॉफ्टवेअर या मानकांद्वारे इंटरऑपरेट करु शकेल.
इतर नामांकित मोठ्या सॉफ्टवेअर कंपन्यांमध्ये गूगल, आयबीएम, टीसीएस,
इन्फोसिस, विप्रो, एचसीएल टेक्नॉलॉजीज, ओरॅकल, नोव्हेल, एसएपी, सिमॅन्टेक, अॅडोब
सिस्टम, सिडेट्रेड आणि कोरेल यांचा समावेश आहे, तर लहान कंपन्या बर्याचदा नाविन्य
पुरवतात.
आपला
अभिप्राय व सूचना जरुर कळवा…
धन्यवाद…!