📘 CodingMarble Learn

सॉफ़्टवेयर विकास: विचार से चलते ऐप तक

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

🎬 कदम-दर-कदम कहानी

  1. स्कूल को क्लब साइन-अप ऐप चाहिए। चरण 1, विश्लेषण: उपयोगकर्ताओं से पूछो और साफ़ आवश्यकताएँ लिखो, जैसे 'उम्र 11 से 18'।
  2. चरण 2, डिज़ाइन: कोड से पहले योजना। समस्या को हिस्सों में बाँटो और फ़्लोचार्ट या स्यूडोकोड बनाओ।
  3. चरण 3, कोड: हर हिस्से को छोटा फ़ंक्शन बनाओ। हर चलता कदम वर्ज़न कंट्रोल में सेव करो।
  4. चरण 4, परीक्षण: सामान्य, सीमा और गलत डेटा डालो। लाल नतीजा मतलब बग; ठीक करो और सब पास होने तक दोबारा टेस्ट करो।
  5. चरण 5 और 6: ऐप उपयोगकर्ताओं तक पहुँचाओ, फिर सुधार और नए फ़ीचर से रखरखाव करो। चक्र दोहराता है; छोटे चक्र = एजाइल।
  6. खुद खेलो: तुम टेस्टर हो। उम्र लिखो, खासकर 10, 11, 18 और 19, और कुछ गलत डेटा। ऐप सही चलता है?

टिप: 3D दृश्य को घुमाने के लिए खींचें। ज़ूम के लिए दो उंगलियाँ इस्तेमाल करें।

🤔 आम शंकाएँ और उनके जवाब

सीधे कोडिंग क्यों न शुरू करें?

साफ़ आवश्यकताओं के बिना गलत चीज़ बन सकती है। विश्लेषण नियम तय करता है (जैसे उम्र 11 से 18) जिन्हें बाद में परीक्षण जाँचता है।

कोड आता है तो फ़्लोचार्ट का क्या फ़ायदा?

डिज़ाइन काम को हिस्सों में बाँटता है और तर्क की गलतियाँ कागज़ पर ही पकड़ लेता है, जहाँ सुधारना सस्ता है।

इतने सारे वर्ज़न क्यों सेव करें?

हर कमिट एक चेकपॉइंट है; कोई बदलाव चीज़ें तोड़ दे तो वापस जा सकते हो।

15 चल रहा है तो 11 और 18 अलग से क्यों जाँचें?

बग किनारों पर छिपते हैं। चरण 4 में >= की जगह > होने से 11 फ़ेल होता है।

क्या रिलीज़ के बाद ऐप पूरा हो गया?

नहीं। उपयोगकर्ता बग ढूँढते और फ़ीचर माँगते हैं, इसलिए चक्र दोहराता है।

सीमा डेटा और त्रुटिपूर्ण डेटा में क्या अंतर है?

सीमा डेटा किनारे पर या ठीक बाहर होता है (10, 11, 18, 19)। त्रुटिपूर्ण डेटा गलत प्रकार का (−3, 'abc')। खुद खेलो में दोनों आज़माओ।

सॉफ़्टवेयर विकास जीवन चक्र (SDLC)

सॉफ़्टवेयर विकास जीवन चक्र प्रोग्राम बनाने के चरण हैं:

  1. विश्लेषण: समस्या समझो, उपयोगकर्ताओं से बात करो, आवश्यकताएँ (प्रोग्राम को क्या करना है) और सफलता की शर्तें लिखो।
  2. डिज़ाइन: हल की योजना: हिस्सों में बाँटना (अपघटन), फ़्लोचार्ट या स्यूडोकोड, डेटा और स्क्रीन की योजना।
  3. कार्यान्वयन (कोडिंग): एक-एक हिस्सा कोड करो।
  4. परीक्षण: जाँचो कि यह चलता है और आवश्यकताएँ पूरी करता है।
  5. परिनियोजन: उपयोगकर्ताओं को दो।
  6. रखरखाव: बग ठीक करो, फ़ीचर जोड़ो।

वॉटरफ़ॉल और एजाइल

वॉटरफ़ॉल चरणों को एक बार क्रम से करता है; जब आवश्यकताएँ तय हों तब अच्छा। एजाइल छोटा चलता वर्ज़न बनाकर राय लेता है और स्प्रिंट नाम के छोटे चक्र दोहराता है; जब ज़रूरतें बदलें तब अच्छा।

प्रोग्राम डिज़ाइन: उद्देश्य, उपयोगकर्ता और ढाँचा

उद्देश्य से शुरू करो: कौन-सी समस्या, किसके लिए? सभी उपयोगकर्ताओं को सोचो, कमज़ोर नज़र या धीमे इंटरनेट वालों को भी (बड़े बटन, आसान भाषा)।

प्रक्रियात्मक डिज़ाइन: प्रोग्राम को उपप्रोग्राम (फ़ंक्शन/प्रोसीजर) में बाँटो जो एक-एक काम करें, जैसे get_age(), check_age(), save_member()। बहुत सारे ग्लोबल वेरिएबल की जगह पैरामीटर और रिटर्न वैल्यू से डेटा भेजो। छोटे हिस्से लिखने, जाँचने, दोबारा इस्तेमाल करने और टीम में बाँटने में आसान हैं।

टिप्पणियाँ (comments), अर्थपूर्ण नाम और एक जैसा इंडेंटेशन रखो ताकि दूसरे कोड सँभाल सकें।

परीक्षण: टेस्ट डेटा और टेस्ट केस

टेस्ट केस में इनपुट, अपेक्षित आउटपुट और वास्तविक आउटपुट लिखते हैं। नियम 'उम्र 11 से 18' के लिए:

कोड करते समय पुनरावृत्त परीक्षण; अंत में हर आवश्यकता पर अंतिम परीक्षण। उपयोगकर्ता स्वीकृति परीक्षण करते हैं।

त्रुटियाँ, डीबगिंग और मज़बूत प्रोग्राम

डीबगिंग: बग दोबारा पैदा करो, कोड ट्रेस करो (मान प्रिंट करो या ब्रेकपॉइंट वाला डीबगर), ठीक करो, फिर टेस्ट करो।

मज़बूत (robust) प्रोग्राम गलत इनपुट पर क्रैश नहीं होता: इनपुट सत्यापन (सीमा, प्रकार, लंबाई, उपस्थिति, प्रारूप जाँच), एक्सेप्शन हैंडलिंग, और सुरक्षा के लिए पासवर्ड से प्रमाणीकरण; उपयोगकर्ता इनपुट पर कभी आँख मूँदकर भरोसा नहीं।

टीमवर्क, औज़ार और प्रोजेक्ट

IDE (एकीकृत विकास वातावरण) में एडिटर, त्रुटि हाइलाइट, डीबगर और रन बटन एक जगह मिलते हैं।

वर्ज़न कंट्रोल (जैसे Git) कमिट नाम के स्नैपशॉट सेव करता है। कौन-सा बदलाव किसने किया दिखता है, पुराने वर्ज़न पर लौट सकते हो, और कई लोग ब्रांच पर काम करके मर्ज कर सकते हैं।

टीम में भूमिकाएँ: क्लाइंट, डेवलपर, टेस्टर, डिज़ाइनर, प्रोजेक्ट मैनेजर। आसान योजना: टास्क बोर्ड (करना है / चल रहा / हो गया), समय-सारणी और छोटी नियमित बैठकें।

स्कूल सॉफ़्टवेयर प्रोजेक्ट में आमतौर पर चाहिए: समस्या कथन, आवश्यकताएँ, डिज़ाइन (फ़्लोचार्ट, स्क्रीन स्केच, डेटा तालिका), टिप्पणी सहित कोड, सबूत सहित टेस्ट तालिका, उपयोगकर्ता की राय और सुधार का मूल्यांकन।

मुख्य सूत्र और परिभाषाएँ

हल किए गए उदाहरण

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. संख्या की जगह अक्षर लिखने पर प्रोग्राम क्रैश होता है। इसे मज़बूत बनाओ।

इनपुट सत्यापन करो: बदलने से पहले जाँचो कि टेक्स्ट पूर्ण संख्या है (या एक्सेप्शन पकड़ो), फिर 'कृपया संख्या लिखें' दिखाकर दोबारा पूछो।

आम गलतियाँ

अभ्यास क्विज़

1. SDLC में पहला चरण कौन-सा है?
2. 1 से 10 की सीमा के लिए सीमा डेटा कौन-सा है?
3. प्रोग्राम चलता है पर कुल गलत देता है। यह है:
4. उपयोगकर्ता की राय के साथ छोटे दोहराए चक्र:
5. वर्ज़न कंट्रोल में सेव किया स्नैपशॉट कहलाता है:

अभ्यास: खुद जवाब दो

अपना जवाब लिखो या चुनो, फिर जाँचें दबाओ। अटको तो संकेत देखो; जवाब देने के बाद पूरा हल दिखेगा।

अक्सर पूछे जाने वाले प्रश्न

सॉफ़्टवेयर विकास जीवन चक्र के चरण कौन-से हैं?

विश्लेषण, डिज़ाइन, कार्यान्वयन (कोडिंग), परीक्षण, परिनियोजन और रखरखाव।

सामान्य, सीमा और त्रुटिपूर्ण टेस्ट डेटा क्या हैं?

सामान्य: आम सही मान। सीमा: मान्य सीमा के किनारे (और ठीक बाहर)। त्रुटिपूर्ण: गलत प्रकार या असंभव मान।

वॉटरफ़ॉल और एजाइल में क्या अंतर है?

वॉटरफ़ॉल हर चरण एक बार क्रम से पूरा करता है। एजाइल उपयोगकर्ता की राय के साथ छोटे दोहराए चक्रों में सॉफ़्टवेयर बनाता और सुधारता है।

यह कहाँ पढ़ाया जाता है

कनाडा (ओंटारियो)Grade 11B. Software Development
कनाडा (ओंटारियो)Grade 11C. Computer Environments and Systems
कनाडा (ओंटारियो)Grade 11B. Software Development
कनाडा (ओंटारियो)Grade 11C. Computer Environments and Systems
कनाडा (ओंटारियो)Grade 11A. Technological Design Fundamentals
कनाडा (ओंटारियो)Grade 11B. Technological Design Skills
कनाडा (ओंटारियो)Grade 11A. Technological Design Fundamentals
कनाडा (ओंटारियो)Grade 11B. Technological Design Skills
कनाडा (ओंटारियो)Grade 12C. Programming Environment
कनाडा (ओंटारियो)Grade 12A. Technological Design Fundamentals
कनाडा (ओंटारियो)Grade 12B. Technological Design Skills
कनाडा (ओंटारियो)Grade 12A. Technological Design Fundamentals
कनाडा (ओंटारियो)Grade 12B. Technological Design Skills
स्पेन1º BachilleratoComputer systems and programming
यूक्रेन11 класProgramming paradigms and technologies
इंग्लैंडYear 103.2 Programming
इंग्लैंडYear 124.1 Fundamentals of programming
इंग्लैंडYear 124.13 Systematic approach to problem solving
अमेरिकाGrade 8Algorithms and Programming
अमेरिकाGrade 9Algorithms and Programming
अमेरिकाGrade 10Big Idea 1: Creative Development
अमेरिकाGrade 11Algorithms and Programming
जापान高校(専門学科)1〜3年Programming
जापान高校(専門学科)1〜3年Software Technology
जापान高校(専門学科)1〜3年Programming for Information Systems
दक्षिण कोरिया고등학교 2학년Software that creates value
जर्मनीJahrgangsstufe 10Project
जर्मनीJahrgangsstufe 12Practical software development project

पहले यह पढ़ें

आगे पढ़ें

इससे जुड़े पाठ

सभी कंप्यूटर विज्ञान पाठ