किसी भी Software Project Planning कैसे की जाती हैं ?
|Software Project Planning in Hindi, Point for First Project, List of Common Features in a Webapplication, Project Structure
Project किस कार्य के लिए बना रहे हैं वह अपनी जगह हैं लेकिन Project मे कुछ Common Feature होते हैं वह होना ही चाहिए । आप निम्न पॉइंट की हेल्प से एक प्रोजेक्ट का Conceptual Layout Ready कर सकते हैं । आप कोई भी Programming Language मे कार्य करे यदि आप इस Approach से कार्य करेंगे तो प्रोजेक्ट एक Proper Structure मे बनेगा ।
- Structure : डायरेक्टरी स्ट्रक्चर प्लान करना ।
- Database Define : डेटाबेस डिफाइन करना
- Login : सबसे पहले Login स्क्रीन बनाई जाती है ।
- Dash Board : Login Success होने के बाद हम उसे को अपने Dashboard पर Redirect कर देते हैं ।
- Menu : Dashboard पर Menu होता हैं । Menu भी आप Database से ले सकते हैं ।
- User Permission : यदि आप अपने Project को और advance करना चाहते हैं तो एक User Wise Permission की Screen भी बना कर Admin को कुछ ऐसे Permission दे सकते हैं जिससे वह User के अनुसार उसे कौन कौन सी स्क्रीन दिखाना हैं या बंद करना हैं सेट कर सके , इसे अपने अनुसार और भी Advance कर सकते हैं ।
- Developer Module : जब भी आप कोई Project बनाए आपको Back मे अपना Developer Project भी बनाते चलना चाहिए जिससे की आप Project मे Screen आदि की Entry कर सके ।
- Screen Layout : इसके बाद आपको अपनी स्क्रीन की Layout को final करना चाहिए , यहाँ पर Layout से मतलब हैं की Screen को open करने के बाद आप किस तरह से पहले की Entry किया हुआ Data दिखाना चाहते हैं ।
- Validation : जहां जहा पर जरूरत हो उसके अनुरूप Validation भी लगाने चाहिए।
- Common Button : आपको हर स्क्रीन पर New, Save, Browse, Delete, Print आदि button के लिए Option देना चाहिए, यदि आपको इसे Common करेंगे तो बहुत ही बड़िया होगा ।
- New : New पर क्लिक करने से Screen पर Fill Data Clean हो जाना चाहिए ।
- Save : यह Button Save और Update दोनों के लिए ही कार्य करना चाहिए ।
- Browse : जब भी आपको पुराने यानि पहले से इंटर किए Record देखना के लिए ।
- Delete : Entry को Delete करने के लिए ।
- Print : Report को Print करने के लिए आपको यहाँ से Option देना चाहिए ।
- Report : यदि एक से अधिक Report आप दिखाना चाहते हैं तो उसके लिए भी आपको स्क्रीन पर option देना चाहिए ।
- Configure : आपको एक ऐसे स्क्रीन बनाना चाहिए जहां पर से आप Configuration से संबंधित Setting कर सके ।
- Profile : आपको एक User Profile की Screen बनानी चाहिए जिसमे की आप यदि उसे Password आदि Change करना हो तो वह आसानी से कर सके ।
- Other Points : Programing करते समय हमे जिन भी पॉइंट का ध्यान रखना चाहिए उनके बारे मे जानकारी इस पॉइंट मे दी गई हैं ।
- Best Programming Approach : इस पॉइंट मे जो अप्रोच बताई गई हैं यदि आप इसके अनुसार प्रोग्रामिंग करेंगे तो आप आसानी से प्रोग्रामिंग कर पाएंगे ।
How to Define Project Structure?
- Use Separate Folder for Functions : अपने प्रोजेक्ट के कॉमन Function एक Folder मे रखे , और अन्य फाइल या तो Module Wise Folder बना कर रख सकते हैं ।
- Use Separate File for Database Related Changes : डेटाबेस से रिलेटेड Changes एक फाइल मे रखे ।
- Always Use Related Name : आपको किसी भी फाइल का नाम रखना हो तो उसके वर्क के अनुसार ही रखे ।
- Make Project Structure : Project पर कार्य करने से पहले Project का file Structure Proper बना कर ही कार्य करे ।
- Use Function / Class : हमेशा Function / Class बना कर कार्य करे ।
- Avoid Path Fixing : Project मे अंदर कही पर भी किसी भी तरह का Path Fix न करे । ऐसा करने से किसी भी Folder का नाम बदलने पर इशू आते हैं ।
- Follow Standard : जो भी स्टैण्डर्ड बनाये उसकी के अनुरूप कार्य करे.
How to Define Database in Project?
1. Database Table
- User Module Prefix : यदि आप Module wise कार्य कर रहे है तो कोई भी दो डिजिट का Module Prefix जरूर लगाए। ताकि एक module की सभी टेबल एक साथ ही रहे ।
- Use mst/trn Prefix : Table के नाम इस तरह से लिखे की सभी Master Table एक साथ हो और Transaction टेबल एक साथ हो ।
- Always Alter Column in Last : टेबल मे कोई भी कॉलम हमेशा Last मे ही Add करे, कोई भी कॉलम बीच मे Add न करे ।
- Write Down SQL of Alteration : टेबल मे कोई भी Alter करते तो हमेशा उसकी SQL अपने पास लिख कर रखे
2. Database Function
- Use fn_ prefix : Function के नाम के आगे भी हमेशा कोई Prefix रखे
- Use fn_Get_/fn_Set Prefix : Function केवल वैल्यू Get करने के लिए बना रहे हैं या Value Set भी कर रहे हैं उसके अनुसार ही Function के नाम रखना चाहिए
- Do Not Change Parameter After Use Function : Function यदि आपने बना लिया और बाद Function के Parameter मे कोई major change आ रहा हैं तो पुराने function मे change करने के बजाए नए function बना लेना बेहतर होता हैं , हा लेकिन यदि आपको पता हैं की आपने Function का उपयोग कहा कहा पर किया हैं तो आप उसी मे Changes कर सकते हैं ।
- Avoid Hot Code : Function मे Hot Code न करे यदि कोई वैल्यू ऐसे हैं जिन्हे Fix करना हैं तो उन्हे किसी टेबल मे Store कर वहाँ से ले , ताकि भविष्य मे changes आने पर आपको Coding मे कोई Changes न करना पड़े ।
3. Database Procedure
- Related Name : Procedure का नाम रखने से पहले भी ध्यान रहे की उस procedure का जो भी कार्य हो उससे संबंधित ही नाम रखे ।
- User Prefix : नाम के पहले प्रीफिक्स रखना चाहे हो अच्छा रहेगा .
- Use Comment for Tracing : Procedure की Scripting यदि ज्यादा बड़ी हो तो उसे Comment मे लिखते रहे , ताकि किसी भी प्रकार की Error आए तो आप आसानी से Trace कर सके ।
4. Database Trigger
- Use table Name Prefix : Trigger के नाम मे हमेशा सबसे पहले Table के नाम रखे । जैसे की आपकी टेबल का नाम empmst हैँ और आप Before Insert Trigger लिख रहे हैं तो आपको empmst_bi ट्रिगर का Name रखना चाहिए इसी प्रकार _bu _bd, _ai, _au, _ad नाम रख सकते हैं ।
- Avoid Same Table Update : यदि आप After trigger लिख रहे हैं तो कभी भी Same Table पर Update न लिखे ।
Login Screen
- Logo : Company का Logo होना चाहिए ।
- Show Columns : User Name / Passwords / Financial Year / Language आदि आप जिस भी तरह Login करवाना चाहते है उससे संबंधित Column होना चाहिए।
- Login Button : इस Button को Click करते ही , Validation Check कर Message करना चाहिए और यदि सभी सही हो तो फिर Dashboard पर Redirect कर देना चाहिए ।
- Forgot Password : यदि User अपना Password भूल गए हो उसे आप Password बता सके ऐसी व्यवस्था होना चाहिए ।
- Set Default Values : यदि आप Advance feature देना चाहते हैं तो जब भी User अपने Main Credential Enter करे तो उसके बाद के अन्य option खुद से ही Previous Login के अनुसार Fill हो जाना चाहिए ।
Dashboard
- Show Company/Product Name : जिस भी Company का Product हैं उसका नाम दिखाई देना चाहिए ।
- Menu : Top / Side मे आप जहां पर भी Menu बनाना चाहते हैं वहाँ पर Menu दिखाई देना चाहिए।
- Submenu : यदि Menu मे Submenu हो तो उनको कैसे दिखाना उन सब के बारे मे प्लान करना चाहिए ।
- Profile : User की Profile को Open करने का option होना चाहिए ।
- Logout : Logout करने का option होना चाहिए ।
- Main Container : Container की जगह होना चाहिए जहां पर Screen ओपन होगी ।
Menu
- Sequence : जिस भी Sequence मे Data दिखाना हो उस Sequence मे Data दिखना चाहिए।
- Permission : User के अनुसार यानि की जितनी Screen की User को Permission हो उतना data ही दिखना चाहिए ।
- Menu/Submenu : Menu / Submenu System रखना हैँ या Direct सभी Menu दिखाना हैं वह आप अपने विवेक अनुसार कर सकते हैं ।
User Permission
- Screen Selection : इसमे Header मे User सिलेक्ट होने के बाद उसे कौन – कौन सी स्क्रीन ओपन करने की permission देना हैं उसके Selection के अनुरूप Screen बनाना चाहिए।
- Permitted Screen Should Show : यदि आपने किसी यूजर को भी नए यूजर बनाने की पर्मिशन दे रखी है तो बनाए गए यूजर को उतनी ही स्क्रीन की permission होना चाहिए जितनी की यूजर ने उसे permission दी है ।
- Advance Option : यदि आप Advance करना चाहते है तो यहाँ पर निम्न Permission भी ले सकते हैं
- Modify Permission : यूजर Changes कर पाए या नहीं ।
- New Entry Permission : User को नए Data Enter करने की पर्मिशन हैं या नहीं ।
- Print Permission : यदि आप चाहते हैं की यूजर Print न निकाल पाए ।
- Download Permission : यदि आप चाहते हैं की user Download न कर पाए तो आप उससे संबंधित भी Option दिखा सकते है ।
Developer Module
- Screen Entry : इस ऑप्शन मे आप जो भी Menu आपको Attach करना हैं उसकी एंट्री स्क्रीन बना सकते हैं ।
- Module Screen : यदि आप Module Wise Screen Manage कर रहे हैं तो भी आप इसमे स्क्रीन बना कर Management कर सकते हैं ।
Screen Layout
- Good UI : स्क्रीन का लुक बहुत ही बड़िया दिखना चाहिए ।
- Easy to Understand : Filed के नाम इस तरह से होना चाहिए की Entry करने वाले को आसानी से समझ मे आना चाहिए ।
- Related Width : Text कॉलम की Width न ज्यादा बड़ी न ज्यादा छोटी होना चाहिए ।
- Avoid Overlapping : स्क्रीन पर सभी Filed इस तरह से होना चाहिए की आपस मे mix न हो और ज्यादा जगह भी खाली न हो ।
- Focus on First Column : First कॉलम पर Focus हो कर आए तो भी बड़िया हैं, लेकिन यदि आपकी स्क्रीन Responsive हैं तो फिर Mobile मे पहली Filed पर Focus नहीं होना चाहिए।
Validation
- Use Date Mask : Date Field मे Mask लगाए जिससे की केवल Date की ही Entry हो।
- Number Mask : Number वाले Column पर भी इस तरह से Masking करे की केवल Number ही Enter हो।
- Max Width Check : String Column मे Max Width का Check लगा कर रखे ।
- Required : जो जरूरी Column हैं उके बिना Data Save नहीं होना चाहिए ।
- Avoid Duplicate : Duplication Entry Save नहीं होना चाहिए ।
- Avoid Blank Entry : Blank Entry Save नहीं होना चाहिए।
- Validation : Validation मे लिखे गए सभी Point आपको Screen की Testing करते समय भी काम आएंगे ।
New Button
- Blank Field : Screen की सभी Field Blank हो जाना चाहिए ।
- Ask Before Blank : यदि पहले से Screen पर कोई Data Fill हैं तो User से Message के द्वारा Confirm करना चाहिए उसके बाद ही सभी Filed Blank होना चाहिए ।
- Disabled : Delete Button, Print Button Disabled होना चाहिए ।
Save Button
- Validation Success : सेव करने के पहले Validation Script चलना चाहिए यदि Validation Pass हो तब ही Save होना चाहिए
- Enabled Save After Type : स्क्रीन पर कुछ Type होते ही Save Button Enabled हो जाना चाहिए ।
- Insert / Update : Save Button की Scripting इस अनुसार होना चाहिए की यदि Data First time हैं तो Insert SQL चलना चाहिए और यदि वह Edit से open हो कर Save हो रहा हैं तो Update SQL चलना चाहिए ।
- Primary Key : प्रत्येक टेबल मे हम एक Unique कॉलम रखते हैं जीसे की हम Primary key भी कहते हैं आप उससे Insert और Update से संबंधित check लगा सकते हैं ।
- Post Save : Screen के कुछ कार्य हमे Save होने के बाद भी करने होते हैं इसलिए आप कोई एक ऐसा Function जरूर बनाए जो Save होने के बाद Call किया जा सके ।
Browser Button
- Browse First or Not : यह आपके विवेक पर Depend करता हैं की आप स्क्रीन पहले ओपन करेंगे या आप पहले से Entered Data पहले Open करेंगे ।
- Open From Edit : Browse Button पर क्लिक करने से एक Table मे Previous Data Open हो कर आना चाहिए।
- Performance : आपको यह ध्यान रखना हैं की डाटा को एक साथ न दिखाए ऐसा करने से Speed Issue आने लगते हैं ।
- Use Same Screen for Insert/Update : जो भी Record सामने आए हैं उनको क्लिक करने पर फिर से वही Screen पर Data Fill हो कर Open होना चाहिए ताकि एक ही screen आपको Insert और Update मे काम आए ।
- Browser show when Permission Allowed : यदि User को Browse करने की Permission नहीं हो तो यह Button दिखाई नहीं देना चाहिए।
Delete Button
- Enable when Open from Edit : Delete Button Edit से Open होने पर ही Enabled होना चाहिए
- Check Delete : यदि आपने Database Level पर Foreign key Check नहीं लगा रखे हैं तो आपको Delete करने के पहले चेक करना चाहिए की जिस Data को आप Delete कर रहे हैं इस Data का किसी अन्य Table मे कोई लिंक तो नहीं किया है, यदि कहीं पर भी Link नहीं किया हो तब ही Data Delete होना चाहिए।
Print Button
- Print Invoice/Receipt : Print Button पर जो भी Invoice/Receipt Related Data हो उसे ही Print करना चाहिए ।
- Multiple Report Link : आप चाहे तो एक से अधिक Report यदि यंहा पर दिखाना चाहे तो लिंक कर सकते हैं ।
- Show User Permission Wise Data : User को यदि Permission नहीं हो तो Print Button दिखाई नहीं देना चाहिए ।
Report
- Proper Heading : Proper Heading होना चाहिए ताकि आसानी से समझ मे आए ।
- Page No. : Current Page Number / No. Of Pages कही पर Show होना चाहिए ।
- Total : यदि Amount के कॉलम हो तो टोटल होना चाहिए ।
- Right Alignment : Amount/Number Field के Right Alignment होना चाहिए ।
- Group Wise Total : यदि रिपोर्ट मे ग्रुप बनाया हैं और Amount/Number के कॉलम हैं तब Group Wise Total भी होना चाहिए ।
- Order By : रिपोर्ट के डाटा ऑर्डर मे होना चाहिए
- Export Option : यही से इक्सेल मे एक्सपर्ट करने के ऑप्शन होना चाहिए
- PDF Option : यही से पीडीएफ़ आदि बनाने के ऑप्शन होना चाहिए
- Criteria : यदि Transaction से संबंधित रिपोर्ट हैं तो उसके Criteria पास करने के भी ऑप्शन होना चाहिए ।
- Detail Records : यदि आप बहुत ही Advance बनाना चाहते हैं तो रिपोर्ट रिपोर्ट मे किसी एक Row पर क्लिक करने पर उससे संबंधित रिकार्ड की Detail भी Open हो जाना चाहिए ।
हमारे अन्य आर्टिकल
- MySQL Function
- MySQL Stored Procedure
- PHP Get /Post Method के बारे में जाने
- PHP Math Function के बारे में जाने
- C से C ++ सीखे सरल शब्दों में
- PHP Variable के बारे में जाने
- Arduino Control Structure
- Union in C
- Declaration of Pointer in C
- jQuery Search Filter
- MySQL Create Table | Alter Table | Drop Table
- API Using NODE REACT EXPRESS MYSQL SEQUELIZE (For Backend OR Server Side)
- CPANEL In Hindi
Configure
- All Setting Columns : इस स्क्रीन मे सॉफ्टवेयर से सबंधित सभी प्रकार की सेटिंग होना चाहिए ।
- Only Update : इसमे केवल Data Update ही होना चाहिए , Insert केवल First Time होना चाहिए ।
- Mange Software : एक ही टेबल से आप पूरे सॉफ्टवेयर को आसानी से Manage कर सकते हैं ।
Profile
- Change Password : User Password बदलने का ऑप्शन होना चाहिए ।
- Theme Option : साथ मे यदि यूजर आनुसार आप कोई Theme का ऑप्शन देना चाहते हैं तो आपको यंहा पर उससे संबंधित ऑप्शन देना चाहिए ।
- Logout : चाहे तो आप Logout का भी ऑप्शन दे सकते हैं ।
- Add Photo : User Photo आदि दिखाना चाहे तो दिखा सकते हैं ।
Other Points – Software Project Planning
- Backup : कोई भी नया Task शुरू करने से पहले Backup अवश्य लेवे ।
- Write Date & Developer Name : यदि आप कोई भी नया Code Add कर रहे हैं तो हमेशा Comment कर Date लिखे , साथ मे चाहे तो नाम भी लिख सकते हैं । और साथ मे यह Code क्यू लिखा जा रहा हैं इसके बारे मे भी लिखे ।
- Comment Old Code : यदि आप पुराने किसी कोड मे चेंज कर रहे हैं तब पुराने कोड को कमेन्ट करे और नए कोड को लिख दे , और हमेशा यह भी ध्यान रखे की जिस कोड को कमेन्ट किया हैं उसके नीचे नया कोड लिखे और साथ मे कमेन्ट कर उससे संबंधित कुछ लिकचना चाहे तो जरूर लिखे।
Best Programming Approach for Software Project Planning
- Algorithm : जब भी आपको कोई भी Problem को Programming के द्वारा Solve करना हैं तो सबसे पहले एक Algorithm बना ले की आपको यह कार्य किस तरह से करना हैं ।
- Write Down Code : उसके बाद उससे संबंधित Code लिखे
- Make Common / Formula : Code को लिख कर Proper Test करने के बाद यदि आपको ऐसा लगता हैं की यह Code आपको आगे भी काम आ सकता हैं तब आप उसे Common बनाने की कोशिश करे , यहाँ Common से मतलब हैं की उसका Formula बना ले और एक function बना ले ताकि आगे हमे केवल Function को Call ही करना रहे ।
- Avoid Repetition : कोशिश करे की कभी भी Repeat Code न लिखे ।
- Save Time : Function आदि की Library बनाते जाए जो आपको आगे चल कर समय बचाने मे बहुत ही मदद करेगी ।
आपको यह आर्टिकल कैसा लगा हमे जरूर बताए , अपना कीमती समय देने के लिए धन्यवाद ।
One Comment