सॉफ़्टवेयर विकास जीवन चक्र (SDLC)
सॉफ़्टवेयर विकास जीवन चक्र प्रोग्राम बनाने के चरण हैं:
- विश्लेषण: समस्या समझो, उपयोगकर्ताओं से बात करो, आवश्यकताएँ (प्रोग्राम को क्या करना है) और सफलता की शर्तें लिखो।
- डिज़ाइन: हल की योजना: हिस्सों में बाँटना (अपघटन), फ़्लोचार्ट या स्यूडोकोड, डेटा और स्क्रीन की योजना।
- कार्यान्वयन (कोडिंग): एक-एक हिस्सा कोड करो।
- परीक्षण: जाँचो कि यह चलता है और आवश्यकताएँ पूरी करता है।
- परिनियोजन: उपयोगकर्ताओं को दो।
- रखरखाव: बग ठीक करो, फ़ीचर जोड़ो।
वॉटरफ़ॉल और एजाइल
वॉटरफ़ॉल चरणों को एक बार क्रम से करता है; जब आवश्यकताएँ तय हों तब अच्छा। एजाइल छोटा चलता वर्ज़न बनाकर राय लेता है और स्प्रिंट नाम के छोटे चक्र दोहराता है; जब ज़रूरतें बदलें तब अच्छा।
प्रोग्राम डिज़ाइन: उद्देश्य, उपयोगकर्ता और ढाँचा
उद्देश्य से शुरू करो: कौन-सी समस्या, किसके लिए? सभी उपयोगकर्ताओं को सोचो, कमज़ोर नज़र या धीमे इंटरनेट वालों को भी (बड़े बटन, आसान भाषा)।
प्रक्रियात्मक डिज़ाइन: प्रोग्राम को उपप्रोग्राम (फ़ंक्शन/प्रोसीजर) में बाँटो जो एक-एक काम करें, जैसे get_age(), check_age(), save_member()। बहुत सारे ग्लोबल वेरिएबल की जगह पैरामीटर और रिटर्न वैल्यू से डेटा भेजो। छोटे हिस्से लिखने, जाँचने, दोबारा इस्तेमाल करने और टीम में बाँटने में आसान हैं।
टिप्पणियाँ (comments), अर्थपूर्ण नाम और एक जैसा इंडेंटेशन रखो ताकि दूसरे कोड सँभाल सकें।
परीक्षण: टेस्ट डेटा और टेस्ट केस
टेस्ट केस में इनपुट, अपेक्षित आउटपुट और वास्तविक आउटपुट लिखते हैं। नियम 'उम्र 11 से 18' के लिए:
- सामान्य डेटा: आम सही मान, जैसे 15 → स्वीकार।
- सीमा डेटा: किनारों पर, जैसे 11 और 18 → स्वीकार; 10 और 19 → अस्वीकार।
- त्रुटिपूर्ण डेटा: गलत प्रकार या असंभव, जैसे −3, 'abc' → संदेश के साथ अस्वीकार।
कोड करते समय पुनरावृत्त परीक्षण; अंत में हर आवश्यकता पर अंतिम परीक्षण। उपयोगकर्ता स्वीकृति परीक्षण करते हैं।
त्रुटियाँ, डीबगिंग और मज़बूत प्रोग्राम
- सिंटैक्स त्रुटि: भाषा का नियम टूटा (कोष्ठक छूटा); प्रोग्राम चलेगा ही नहीं।
- रनटाइम त्रुटि: चलते समय क्रैश (शून्य से भाग, फ़ाइल नहीं मिली)।
- तार्किक त्रुटि: चलता है पर गलत उत्तर, जैसे
age >= 11की जगहage > 11लिखने से 11 अस्वीकार।
डीबगिंग: बग दोबारा पैदा करो, कोड ट्रेस करो (मान प्रिंट करो या ब्रेकपॉइंट वाला डीबगर), ठीक करो, फिर टेस्ट करो।
मज़बूत (robust) प्रोग्राम गलत इनपुट पर क्रैश नहीं होता: इनपुट सत्यापन (सीमा, प्रकार, लंबाई, उपस्थिति, प्रारूप जाँच), एक्सेप्शन हैंडलिंग, और सुरक्षा के लिए पासवर्ड से प्रमाणीकरण; उपयोगकर्ता इनपुट पर कभी आँख मूँदकर भरोसा नहीं।
टीमवर्क, औज़ार और प्रोजेक्ट
IDE (एकीकृत विकास वातावरण) में एडिटर, त्रुटि हाइलाइट, डीबगर और रन बटन एक जगह मिलते हैं।
वर्ज़न कंट्रोल (जैसे Git) कमिट नाम के स्नैपशॉट सेव करता है। कौन-सा बदलाव किसने किया दिखता है, पुराने वर्ज़न पर लौट सकते हो, और कई लोग ब्रांच पर काम करके मर्ज कर सकते हैं।
टीम में भूमिकाएँ: क्लाइंट, डेवलपर, टेस्टर, डिज़ाइनर, प्रोजेक्ट मैनेजर। आसान योजना: टास्क बोर्ड (करना है / चल रहा / हो गया), समय-सारणी और छोटी नियमित बैठकें।
स्कूल सॉफ़्टवेयर प्रोजेक्ट में आमतौर पर चाहिए: समस्या कथन, आवश्यकताएँ, डिज़ाइन (फ़्लोचार्ट, स्क्रीन स्केच, डेटा तालिका), टिप्पणी सहित कोड, सबूत सहित टेस्ट तालिका, उपयोगकर्ता की राय और सुधार का मूल्यांकन।
मुख्य सूत्र और परिभाषाएँ
- SDLC: विश्लेषण → डिज़ाइन → कोड → परीक्षण → परिनियोजन → रखरखाव (→ दोहराओ)
- टेस्ट केस = इनपुट + अपेक्षित आउटपुट + वास्तविक आउटपुट + पास/फ़ेल
- टेस्ट डेटा: सामान्य, सीमा, त्रुटिपूर्ण
- त्रुटियाँ: सिंटैक्स, रनटाइम, तार्किक
- सत्यापन जाँच: सीमा, प्रकार, लंबाई, उपस्थिति, प्रारूप
हल किए गए उदाहरण
1. 0 से 100 अंक लेने वाले फ़ील्ड के लिए टेस्ट डेटा लिखो।
सामान्य: 45, 78। सीमा: 0, 100 (स्वीकार) और −1, 101 (अस्वीकार)। त्रुटिपूर्ण: 'पचास', खाली, 12.5 (अगर केवल पूर्ण संख्या चाहिए)।
2. कोड: if age > 11 and age <= 18: accept। इनपुट 11 अस्वीकार हो रहा है। कौन-सी त्रुटि है, कैसे ठीक करें?
तार्किक त्रुटि: प्रोग्राम चलता है पर गलत नतीजा। > को >= करो ताकि 11 शामिल हो।
3. लाइब्रेरी ऐप में छात्र बार-बार नए फ़ीचर माँगेंगे। वॉटरफ़ॉल या एजाइल?
एजाइल: छोटे चक्रों में छोटा वर्ज़न देकर राय लो और बदलो।
4. 'ऑनलाइन क्विज़ ऐप' को उपप्रोग्रामों में बाँटो।
show_question(), get_answer(), check_answer(), update_score(), show_result(), save_high_score()।
5. हर चलते बदलाव के बाद कमिट क्यों करें?
अगर बाद का बदलाव प्रोग्राम तोड़ दे तो पिछले चलते कमिट पर लौट सकते हो, और साथी तुम्हारा बदलाव देखकर मर्ज कर सकते हैं।
6. संख्या की जगह अक्षर लिखने पर प्रोग्राम क्रैश होता है। इसे मज़बूत बनाओ।
इनपुट सत्यापन करो: बदलने से पहले जाँचो कि टेक्स्ट पूर्ण संख्या है (या एक्सेप्शन पकड़ो), फिर 'कृपया संख्या लिखें' दिखाकर दोबारा पूछो।
आम गलतियाँ
- आवश्यकताएँ लिखे बिना कोड शुरू करना, फिर गलत चीज़ बना देना।
- केवल सामान्य डेटा से टेस्ट करना, सीमा और गलत डेटा भूल जाना।
- तार्किक त्रुटि (गलत उत्तर) को सिंटैक्स त्रुटि (चलेगा ही नहीं) समझना।
- सोचना कि रिलीज़ के बाद काम खत्म; सबसे ज़्यादा समय रखरखाव में जाता है।