सॉफ़्टवेयर डिज़ाइन क्या है?
सॉफ़्टवेयर डिज़ाइन का मतलब है कोड लिखने से पहले प्रोग्राम की योजना बनाना। आप तय करते हो कि कौन-से हिस्से (मॉड्यूल) होंगे, हर हिस्सा क्या करेगा, और हिस्से आपस में कैसे बात करेंगे।
हर प्रोग्राम के ये घटक होते हैं:
- इनपुट: डेटा अंदर आता है (कीबोर्ड, फ़ाइल, सेंसर)।
- प्रोसेसिंग: गणना और फ़ैसले।
- आउटपुट: नतीजा बाहर जाता है (स्क्रीन, फ़ाइल, आवाज़)।
- भंडारण: चर (variable), सूची और फ़ाइलें डेटा रखती हैं।
डिज़ाइन के औज़ार: संरचना चार्ट (मॉड्यूल के डिब्बे), फ़्लोचार्ट, और स्यूडोकोड (आसान भाषा में क़दम)।
प्रोग्राम टेम्पलेट (ढाँचा)
टेम्पलेट या ढाँचा (skeleton) ऐसा प्रोग्राम है जिसमें हिस्से अपनी जगह पर हैं पर ख़ाली हैं। आम क्रम:
- शीर्षक टिप्पणी: नाम, लेखक, तारीख़, उद्देश्य।
- इम्पोर्ट और स्थिरांक (कभी न बदलने वाले मान, जैसे TAX_RATE = 0.1)।
- फ़ंक्शन की परिभाषाएँ।
- मुख्य भाग: इनपुट → प्रोसेस → आउटपुट।
टेम्पलेट से शुरू करने पर समय बचता है और हर प्रोग्राम एक जैसा दिखता है। सही शब्दावली इस्तेमाल करो: चर, स्थिरांक, फ़ंक्शन, पैरामीटर, return मान, लूप, शर्त। साफ़ नाम रखो (total_price, x नहीं) और हर जगह एक ही नाम-शैली।
मॉड्यूलरता और दोबारा इस्तेमाल होने वाला कोड
मॉड्यूलरता (modularity) का मतलब है प्रोग्राम को छोटे, अलग टुकड़ों से बनाना। हर फ़ंक्शन एक काम करता है और उसका नाम साफ़ होता है।
- पैरामीटर डेटा अंदर लाते हैं; return मान उत्तर बाहर ले जाता है।
- फ़ंक्शन छिपे हुए global चरों पर निर्भर न हो। तभी उसे दूसरे प्रोग्रामों में दोबारा इस्तेमाल कर सकते हैं।
- फ़ायदे: छोटा कोड, आसान जाँच (हर टुकड़ा अलग से परखो), ग़लती एक जगह ठीक, टीम के लोग अलग मॉड्यूलों पर काम करें।
लाइब्रेरी (जैसे गणित लाइब्रेरी) दूसरों के लिखे दोबारा इस्तेमाल होने वाले फ़ंक्शनों का संग्रह है।
उपयोगकर्ता-अनुकूल इंटरफ़ेस
यूज़र इंटरफ़ेस (UI) वह हिस्सा है जिसे लोग देखते और छूते हैं। अच्छे UI के नियम:
- साफ़ संकेत: "अपनी उम्र लिखें (वर्ष):", न कि "Input?"।
- साफ़ नाम वाले बड़े बटन; हर स्क्रीन पर एक मुख्य काम।
- मददगार त्रुटि संदेश जो बताए कि ठीक कैसे करें।
- इनपुट की जाँच (validation) ताकि ग़लत डेटा से प्रोग्राम न टूटे।
- अच्छा रंग-विरोध और पढ़ने लायक़ अक्षर; स्क्रीन रीडर के साथ चले (सुगम्यता)।
- एक जैसा लेआउट: वही बटन हमेशा उसी जगह।
करके देखो
काग़ज़ पर एक कैंटीन बिल कैलकुलेटर डिज़ाइन करो। 4 मॉड्यूल के नाम लिखो (जैसे get_items(), add_prices(), add_tax(), print_bill())। हर एक के लिए लिखो क्या अंदर जाता है और क्या बाहर आता है। फिर खुले खेल वाले क़दम में ब्लॉकों से इसे बनाओ।
मुख्य सूत्र और परिभाषाएँ
- प्रोग्राम = इनपुट → प्रोसेस → आउटपुट (+ भंडारण)
- मॉड्यूल / फ़ंक्शन: एक काम, साफ़ नाम, पैरामीटर अंदर, return मान बाहर
- टेम्पलेट क्रम: शीर्षक टिप्पणी → स्थिरांक → फ़ंक्शन → main
- अच्छा UI: साफ़, एक जैसा, ग़लती माफ़ करने वाला (validation), सबके लिए सुगम
हल किए गए उदाहरण
1. 'रिपोर्ट कार्ड' प्रोग्राम को मॉड्यूलों में बाँटो।
1) get_marks() अंक पढ़े। 2) average(marks) औसत लौटाए। 3) grade(avg) A/B/C लौटाए। 4) print_report() नतीजा दिखाए। main() इन्हें इसी क्रम में बुलाए।
2. दो प्रोग्राम वृत्त का क्षेत्रफल निकालते हैं। डिज़ाइन कैसे करोगे?
एक फ़ंक्शन circle_area(r) लिखो जो 3.14159 × r × r लौटाए। उसे साझा मॉड्यूल में रखो और दोनों प्रोग्रामों से बुलाओ। सुधार करोगे तो दोनों को फ़ायदा मिलेगा।
3. इस संकेत को सुधारो: "Enter:"
"दाम रुपयों में लिखें (जैसे 250):"। इसमें क्या, कौन-सी इकाई और उदाहरण है। साथ ही जाँचो कि इनपुट धनात्मक संख्या है; नहीं तो कहो "कृपया 250 जैसी संख्या लिखें।"
आम गलतियाँ
- सारा कोड एक लंबे टुकड़े में लिखना। इसे एक-एक काम वाले फ़ंक्शनों में बाँटो।
- एक ही कोड कई जगह कॉपी करना। फ़ंक्शन एक बार लिखो और बुलाओ।
- a, b, x1 जैसे नाम रखना। ऐसे नाम रखो जो बताएँ कि मान क्या है।
- "Error 42" जैसे संदेश दिखाना। बताओ क्या ग़लत हुआ और कैसे ठीक करें।