Software Kaise Banate Hai?

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

#1. Computer क्या है?

सॉफ्टवेयर के बारे में जानने से पहले आपको ये समझना होगा कि कंप्यूटर क्या है? क्योंकि सभी Software ‘कंप्यूटर’ पर चलने के लिए बनाये जाते हैं। इसलिए एक नजर कंप्यूटर पर डाल लेते हैं। कंप्यूटर एक इलेक्ट्रॉनिक उपकरण है, जो इनपुट लेता है। उसे प्रोसेस करता है और आउटपुट देता है। कंप्यूटर को अच्छे से समझने के लिए एक उदाहरण लेते हैं। मान लीजिए कि आप MS Word का उपयोग करके एक डॉक्यूमेंट बना रहे हैं। यहाँ MS Word सॉफ्टवेयर है और हम कीबोर्ड से इनपुट देते हैं। इस इनपुट को कंप्यूटर प्रोसेस करता है, जिसके बाद हमें स्क्रीन पर आउटपुट दिखाई देता है।

अब आपको ये तो पता ही चल गया कि कंप्यूटर इनपुट कैसे लेता है? फिर इसे प्रोसेस करता और हमे आउटपुट देता है, लेकिन इस पूरे कार्य के लिए जो एक पाइप बना रहा है। उसके लिए हमे MS Word जैसे सॉफ्टवेयर की जरुरत होती है। इससे आपको ये समझ में आ गया होगा कि हमे कंप्यूटर पर कार्य करने के लिए सॉफ्टवेयर की जरुरत होती है।

#2. Software क्या होता है?

सॉफ्टवेयर एक इंस्ट्रक्टर है, जो कंप्यूटर को विशिष्ट कार्यों को करने के लिए इंस्ट्रक्शंस देता है। इंस्ट्रक्शंस के इस सेट को एक प्रोग्राम के रूप में भी जाना जाता है। सॉफ्टवेयर जो कंप्यूटर पर चल रहे हैं, वो Binary Code 1 और 0 के रूप में होते हैं, लेकिन बाइनरी के रूप में सॉफ्टवेयर लिखना थकाऊ है। इसलिए सॉफ्टवेयर इंजीनियरों ने कई सारी प्रोग्रम्मिंग लैंग्वेज जैसे कि C, C++, Java, Python आदि को बनाया है। कभी-कभी 2 या 2 से अधिक लैंग्वेजेज का उपयोग एक विशेष Software बनाने के लिए किया जाता है।

#3. Software कैसे बनता है?

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

सॉफ्टवेयर डेवलपर अपने सॉफ्टवेयर पर कड़ी मेहनत करते हैं, लेकिन कोड के साथ हमेशा कुछ समस्याएं होती हैं और हम इन समस्याओं को Bugs कहते हैं। सॉफ्टवेयर का एक हिस्सा पब्लिक के लिए जारी किये जाने के बाद भी सॉफ्टवेयर डेवलपर को Bugs को ठीक करना जारी रखना होता है और सॉफ्टवेयर को और भी बेहतर बनाना होता है। यही कारण है कि सॉफ्टवेयर में समय-समय पर Update या नए वर्जन आते रहते हैं। सॉफ्टवेयर को 2 अलग-अलग तरीकों से बनाया जा सकता है।

1. Proprietary

किसी व्यक्ति या सॉफ्टवेयर कंपनी के स्वामी द्वारा सॉफ्टवेयर बेचने के लिए बनाया जाता है। इसके सोर्स कोड पब्लिक के लिए जारी नही किये जाते, केवल सॉफ्टवेयर ही जारी किया जाता है।

2. Open Source

ऐसे सॉफ्टवेयर फ्री होते हैं, जिसके सोर्स कोड को कोई भी व्यक्ति एक्सेस कर सकता है। Open Source Software मालिकों को डोनेशंस के माध्यम से पैसा मिलता हैं।

#4. Software कितने प्रकार के होते हैं?

1. Application Software

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

2. System Software

ऐसे सॉफ्टवेयर हैं जो कंप्यूटर या सिस्टम में काम करता है जैसे कि OS Android, Linux, Drives और Firmware इत्यादि। सिस्टम सॉफ्टवेयर वो होते हैं, जो कंप्यूटर के हार्डवेयर को मैनेज करते है। सिस्टम सॉफ्टवेयर ‘Application Software’ को चलाने के लिए एक प्लेटफॉर्म भी डिजाइन किया जाता है जैसे कि Operating System ‘Android, iOS, Windows’, Device Driver, Utilities.

#5. आप एक सॉफ्टवेयर कैसे बना सकते हैं?

#1. अपना इंटरेस्ट ढूंढें,

सॉफ्टवेयर डेवलपमेंट के 2 टाइप्स होतें हैं जोकि अभी हमने आपको ऊपर बताया है। एक तो एप्लीकेशन डेवलपमेंट होता है और दूसरा सिस्टम डेवलपमेंट है। तो आपको पहले ये डिसाइड करना होगा कि आपको कौन से टाइप का सॉफ्टवेयर बनाना है या आपकी रूचि किस तरह के सॉफ्टवेयर डेवलपमेंट में है?

#2. एक प्रोग्रामिंग लैंग्वेज सीखें,

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

1. C Language

अभी उपयोग में आने वाली पुरानी भाषाओं में से एक है और ज्यादातर भाषाओं का आधार है। C का उपयोग Low Level Program को करने के लिए किया जाता है।

2. C++

ये C का Object Oriented Version है और दुनिया में सबसे Popular Programming Language है। Google Chrome, Mozilla Firefox, Photo Shop और कई सारे बड़े सॉफ्टवेयर C++ सीखकर बनाये गए हैं। ये वीडियो गेम बनाने के लिए भी बहुत लोकप्रिय लैंग्वेज है। C++ डेवेलपर्स की आज भी हाई डिमांड रहती है।

3. Java

ये C++ लैंग्वेज का विकसित रूप है और इसका इस्तेमाल Portability की आसानी की वजह से किया जाता है। इसका इस्तेमाल वीडियो गेम और बिजनेस सॉफ्टवेयर में किया जाता है और कई लोग इसे एक जरुरी भाषा मानते हैं।

4. C#

ये एक Windows Base Language है, जो Microsoft से NET Framework का हिस्सा है। ये Java और C++ से जुड़ा है तो अगर आप जावा सीखते हैं, तो आप जल्दी और आसानी से C# सीख सकते हैं।

5. Objective-C

ये C भाषा का एक और चचेरा भाई है, जो विशेष रूप से Apple System के लिए Design किया गया है। ये iPhone और iPad Apps के लिए अत्यधिक लोकप्रिय है। एक Freelancer के रूप में सीखने के लिए ये एक शानदार भाषा है।

6. Python

ये सिखने के लिए एक बहुत ही आसान भाषा है। पाइथन ‘Web Development’ के लिए सबसे ज्यादा इस्तेमाल किया जाता है।

#3. रीर्सोसेस ढूंढें,

ज्यादातर बुक्स स्टोर में एक पूरा सेक्शन प्रोग्रामिंग की किताबों से भरा होता है। इसके अलावा अमेजन जैसी ई-कॉमर्स साइट पर भी आपको ढेरों किताबें मिल जायँगी। आपके पास अच्छी तरह लिखी प्रोग्रामिंग बुक्स होनी चाहिए, ताकि आप सॉफ्टवेयर बनाते टाइम उनकी मदद ले सकें और कोडिंग अच्छे से सीख सकें। किताबों के अलावा इंटरनेट पर आपको बहुत सारे प्लेटफॉर्म्स मिल जायेंगे, जहाँ से आप मदद ले सकते हैं। Code Academy, Code Organization, Bento, Udasity, Udemy, Khan Academy, W3school जैसी साइटों पर अपनी पसंद की भाषा की गाइड खोजें और सीखें।

#4. पेट प्रोजेक्ट्स पर काम करें,

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

#5. विचार करें,

एक अच्छा प्रोग्रामर एक ऐसा सॉफ्टवेयर बनाएगा, जो यूजर्स के लिए इस्तेमाल करना आसान और इंटरेस्टिंग होगा। उस सॉफ्टवेयर को देखें, जिस पर आप काम कर रहे हैं और देखें कि क्या ऐसे तरीके हैं जो डेवलपमेंट प्रोसेस को आसान बना सकें?

#6. एक प्रोटोटाइप बनाये,

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

1. सॉफ्टवेयर डेवलपमेंट के दौरान आपको प्रोटोटाइप बार-बार बदलना चाहिए क्योंकि जैसे-जैसे आप अपनी प्रॉब्लम्स को सॉल्व करने के नए तरीके ढूंढते हैं। वैसे-वैसे आपको अपने प्रोटोटाइप में भी बदलाव करने होंगे।

2. प्रोटोटाइप सुन्दर होना चाहिए। जरूरी नहीं है। असल में आर्ट और डिजाइन उन अंतिम चीजों में से एक होनी चाहिए, जिन पर आप काम कर रहे हैं क्योंकि यूजर प्रोटोटाइप के डिजाइन को नही देखता। उसके सामने तो फाइनल Software पहुँचता है।

#7. बार-बार टेस्ट करें,

कोड्स में एरर और ज्यादा इस्तेमाल से कई सारी प्रॉब्लम्स हो सकती हैं। इन Errors को Test करके ही पहचाना जा सकता है और ठीक किया जा सकता है। अपने फ्रेंड्स और अपने फैमिली मेंबर्स को अपना Software दें और Test करने को कहें। फिर वो एक यूजर की तरह उसकी कमियों को बताएँगे, जिन्हें आप ठीक कर सकते हैं। अपने सॉफ्टवेयर को टेस्ट करने के लिए Wrong variable का इस्तेमाल करें। उदहारण के लिए अगर आपके पास कोई ऐसा फॉर्म है जो यूजर की ऐज पूछता हो तो इसमें नंबर्स की जगह वर्ड्स डालें और देखें कि क्या होता है? या फिर अगर आपके प्रोग्राम में ग्राफिकल इंटरफेस है तो सब कुछ पर क्लिक करें। जब आप पिछली स्क्रीन पर वापस जाते हैं या गलत क्रम में बटन क्लिक करते हैं, तो क्या होता है? देखें और गलती मिलने पर सुधार करें।

#6. सॉफ्टवेयर बनाते समय किन-किन बातों का ध्यान रखना चाहिए?

#1. क्वालिटी और रिलायबिलिटी,

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

फॉन्ट्स और एरर को Bugs कहा जाता है, जो अक्सर अल्फा और बीटा टेस्टिंग के दौरान खोजे जाते हैं। सॉफ्टवेयर टेस्टिंग के जरिये कई बग्स खोजे और मिटाये जाते हैं। हालाँकि सॉफ्टवेयर टेस्टिंग शायद ही कभी सारे Bugs को खत्म करता है।

कुछ प्रोग्रामर कहते हैं कि हर प्रोग्राम में कम से कम 1 Bug होता है। सॉफ्टवेयर की टेस्टिंग- यूनिट टेस्टिंग, रिग्रेशन टेस्टिंग और कई दूसरे सारे मैथेड से की जा सकती है, जिसे मैनुअली किया जाता है क्योंकि Testing किये जाने वाले Code की संख्या काफी बड़ी हो सकती है। उदहारण के लिए NASA के पास कई Operating System और Communication Functions के लिए बड़े स्ट्रांग सॉफ्टवेयर टेस्टिंग मशीन्स हैं।

#2. लाइसेंस,

सॉफ्टवेयर का लाइसेंस यूजर को सॉफ्टवेयर उपयोग करने का अधिकार देता है और मुफ्त सॉफ्टवेयर लाइसेंस के मामले में दूसरे अधिकारों जैसे कि Copies बनाने का अधिकार भी देता है। Proprietary Software को 2 भागों में बाँटा जा सकता है।

1. Freeware

इसमे Free Trial Software या Freemium Software की केटेगरी को शामिल किया जाता है। जैसा कि नाम से ही पता चलता है कि Freeware का उपयोग मुफ्त में किया जा सकता है। हालाँकि Free Trial या Freemium Software के मामले में ये कभी-कभी लिमिटेड टाइम पीरियड के लिए या लिमिटेड फंक्शन के साथ इस्तेमाल करने के लिए मिल पाता है। ऐसे Software में Adobe के Software को गिना जा सकता है।

2. Commercial Software

यह दूसरी तरह के वो Software होते हैं, जो कुछ फीस देने पर इस्तेमाल करने के लिए मिल जाते हैं। आप Play Store पर भी देखते होंगे कि कुछ Applications फ्री होती हैं और कुछ रूपये देने पर मिलती हैं। ऐसा ही Software के साथ भी होता है। ऐसे सॉफ्टवेयर को अक्सर कमर्शियल सॉफ्टवेयर कहा जाता है, जिसे सिर्फ लाइसेंस की खरीद पर कानूनी रूप से इस्तेमाल किया जा सकता है। दूसरी ओर Open Source Software मुफ्त सॉफ्टवेयर लाइसेंस के साथ आता है।

इसे भी पढ़ें:

एंड्राइड क्या है?

लिनक्स क्या है?

जावा में कोडिंग कैसे शुरू करें?

बेसिक से पाइथन कैसे सीखें?

एंड्राइड ऐप्प डेवलपर कैसे बने?

सॉफ्टवेयर कंपनी कैसे शुरू करें?

सॉफ्टवेयर इंजीनियर कैसे बने?

#7. निष्कर्ष (Conclusion)

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

Leave a Reply

Your email address will not be published. Required fields are marked *