Hello दोस्तों! आज हम इस पोस्ट में Software Architecture in Hindi (सॉफ्टवेयर आर्किटेक्चर क्या है?) के बारें में पढेंगे और इसके advantages और characteristics को भी देखेंगे. आप इसे पूरा पढ़िए, आपको यह आसानी से समझ में आ जायेगा. तो चलिए शुरू करते हैं:-
Software Architecture in Hindi – सॉफ्टवेयर आर्किटेक्चर क्या है?
Software architecture एक सॉफ्टवेयर सिस्टम का architecture होता है जो कि इसके components और इन components के मध्य की relationship को describe करता है. सॉफ्टवेयर आर्किटेक्चर यह भी बताता है कि ये components आपस में एक दूसरे से कैसे interact करते हैं.
दूसरे शब्दों में कहें तो, “Software architecture एक सॉफ्टवेयर का blueprint होता है जो यह बताता है कि एक software किस प्रकार कार्य करता है.”
इसको हम निम्न बिन्दुओं के आधार पर आसानी से समझ सकते हैं:-
- सॉफ्टवेयर आर्किटेक्चर एक system या software के structure को define करता है.
- सॉफ्टवेयर आर्किटेक्चर system के behavior को define करता है.
- यह component के मध्य की relationship को define करता है.
- यह communication structure को define करता है.
- सॉफ्टवेयर आर्किटेक्चर stakeholder की जरूरतों को संतुलित (balance) करता है।
Software architecture में बहुत सारें components होते हैं अर्थात यह components का एक collection होता है. प्रत्येक component को एक विशेष कार्य को पूरा करने के लिए design किया जाता है और इसके पास interface होता है.
सॉफ्टवेयर आर्किटेक्चर में बहुत सारें factors सम्मिलित रहते हैं जैसे कि – Business strategy, quality attributes, human dynamics, design और IT environment. इसका चित्र नीचे दिया गया है.
सॉफ्टवेयर आर्किटेक्चर abstraction प्रदान करता है जिसके द्वारा सॉफ्टवेयर की complexity (कठिनाई) को manage किया जाता है और यह communication को स्थापित करता है जिससे components आपस में एक दूसरे से interact करते हैं.
- Software engineering क्या है?
- SDLC in Hindi
Characteristics of Software Architecture in Hindi – सॉफ्टवेयर आर्किटेक्चर की विशेषताएं
इसके characteristics निम्नलिखित हैं:-
- इसकी मुख्य विशेषता यह है कि इसमें बहुत सारें stakeholders होते हैं. इसमें business managers, developers, application owners, infrastructure operators, और end users आदि होते हैं.
- यह system के structure को define करता है जिसके द्वारा sub-systems के मध्य की relationship को समझना आसान हो जाता है.
- software architecture सुरक्षित होना चाहिए. क्योंकि internet में hackers और attackers आसानी से किसी भी सॉफ्टवेयर को hack कर सकते हैं. इसलिए सॉफ्टवेयर आर्किटेक्चर को हमें एक सुरक्षित environment प्रदान करना चाहिए.
- सॉफ्टवेयर आर्किटेक्चर हमेशा quality-driven होना चाहिए. क्योंकि अगर यह बेहतर quality का होगा तो software का निर्माण कर पाना आसान होगा.
- यह reliable (भरोसेमंद) होना चाहिए. अर्थात् इसे किसी विशेष परिस्थिति में अच्छे ढंग से कार्य करना चाहिए.
- यह interoperable होना चाहिए. अर्थात् इसमें components आपस में एक दूसरे से communicate कर सकने वाले होने चाहिए.
Principles of software architecture in Hindi – सॉफ्टवेयर आर्किटेक्चर के सिद्धांत
software architecture का SOLID principle होता है. SOLID का प्रत्येक शब्द एक principle के बारें में बताता है.
Single Responsibility principle – प्रत्येक service की केवल एक ही responsibility (जिम्मेदारी) होती है.
Open/closed principle – सॉफ्टवेयर मॉड्यूल independent (स्वतंत्र) और expandable (विस्तार योग्य) होना चाहिए.
Liskov Substitution Principle – independent services एक-दूसरे के साथ communicate और subscribe करने में सक्षम होने चाहिए.
Interface Segregation Principle – सॉफ्टवेयर को ऐसे micro-services में विभाजित किया जाना चाहिए जिसमें कोई redundancy नहीं होना चाहिए।
Dependency Inversion Principle – उच्च स्तर के modules को निम्न स्तर के modules पर निर्भर (dependent) नहीं होना चाहिए और उच्च स्तर के modules में किये गये बदलाव का निम्न-स्तर के modules पर प्रभाव नहीं पड़ना चाहिए.
Advantage of Software Architecture in Hindi – सॉफ्टवेयर आर्किटेक्चर के लाभ
- यह software project की foundation को मजबूत बना देता है.
- यह आपके platform को scalable बना देता है.
- यह platform की performance को बेहतर बना देता है.
- यह cost (मूल्य) को कम करता है और codes का duplicate होने से रोकता है.
- इसके द्वारा हम code को बेहतर तरीके से maintain कर सकते हैं.
- इसके द्वारा हम bugs और errors को आसानी से find कर सकते हैं.
- इसके माध्यम से हम IT system में बहुत तेजी से बदलाव कर सकते हैं.
- सॉफ्टवेयर की complexity (कठिनाई) को इसके द्वारा आसानी से manage किया जाता है.
- यह platform को तेज बना देता है.
- यह risk management में मदद करता है. यह risks को कम करने में help करता है.
- यह system के structure को show करता है परन्तु internal details को छुपा देता है.
- यह system की quality और functionality को बेहतर बनाता है.
References:- https://www.tutorialspoint.com/software_architecture_design/introduction.htm
निवेदन:- अगर आपके लिए software architecture in Hindi का यह आर्टिकल उपयोगी रहा हो तो इसे अपने friends के साथ अवश्य share कीजिये और आपके software engineering या किसी अन्य subject से सम्बन्धित कोई सवाल हो तो उसे नीचे comment करके बताइए. keep learning.. keep visiting.