6.1 अपघटन

मानदंडों की विविधता के बावजूद, बड़ी प्रणालियों के विकास में मुख्य कार्य प्रणाली की जटिलता को कम करने का कार्य है । जटिलता को कम करने के लिए, भागों में विभाजन के अलावा और कुछ भी आविष्कार नहीं किया गया है।

कभी-कभी, सादगी के लिए, इसे "फूट डालो और जीतो" का सिद्धांत कहा जाता है, लेकिन, सॉफ्टवेयर वास्तुकार के दृष्टिकोण से, हम पदानुक्रमित अपघटन के बारे में बात कर रहे हैं ।

एक जटिल प्रणाली को कम संख्या में सरल उप-प्रणालियों से बनाया जाना चाहिए, जिनमें से प्रत्येक, बदले में, छोटे भागों से निर्मित होता है, और तब तक जब तक कि सबसे छोटे हिस्से सीधे समझने और बनाने के लिए पर्याप्त सरल न हों।

सड़न

अच्छी खबर यह है कि यह समाधान न केवल ज्ञात है, बल्कि सार्वभौमिक भी है। जटिलता को कम करने के अलावा, यह एक साथ महत्वपूर्ण भागों को डुप्लिकेट करके सिस्टम लचीलापन , अच्छी मापनीयता और बढ़ी हुई लचीलापन प्रदान करता है।

तदनुसार, जब कार्यक्रम की वास्तुकला के निर्माण की बात आती है, तो इसकी संरचना का निर्माण होता है, इसका मतलब है कि कार्यक्रम को सबसिस्टम, सेवाओं, परतों, सबरूटीन्स और कार्यात्मक मॉड्यूल में विघटित करना और एक दूसरे और बाहरी दुनिया के साथ उनकी बातचीत का आयोजन करना।

और यहां सबसे मूल्यवान बात यह है: सबसिस्टम जितने अधिक स्वतंत्र होते हैं, उतना ही सुरक्षित होता है कि उनमें से प्रत्येक के विकास पर एक विशेष बिंदु पर अलग से ध्यान केंद्रित किया जाए और अन्य सभी भागों के बारे में चिंता न की जाए।

6.2 मॉड्यूलर आर्किटेक्चर के लाभ

पदानुक्रमित अपघटन के सिद्धांत का उपयोग करने से आप अपने कोड के हजारों वर्गों में अराजकता से छुटकारा पा सकते हैं। याद रखें कि आपका कोड पैकेज (पैकेज) और सबपैकेज में विभाजित है? यह श्रेणीबद्ध अपघटन के भावों में से एक है।

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

यहाँ सबसे बुनियादी हैं:

  • मापनीयता - नए मॉड्यूल जोड़कर सिस्टम का विस्तार करने और इसके प्रदर्शन को बढ़ाने की क्षमता।
  • रख-रखाव - एक मॉड्यूल को बदलने के लिए अन्य मॉड्यूल को बदलने की आवश्यकता नहीं होती है।
  • मॉड्यूल की अदला-बदली (स्वैपेबिलिटी) - मॉड्यूल को आसानी से दूसरे के साथ बदला जा सकता है।
  • इकाई परीक्षण - एक इकाई को अन्य सभी से अलग किया जा सकता है और परीक्षण/मरम्मत की जा सकती है
  • पुन: प्रयोज्यता - मॉड्यूल का अन्य कार्यक्रमों और अन्य वातावरणों में पुन: उपयोग किया जा सकता है।
  • रखरखाव - मॉड्यूल में विभाजित एक प्रोग्राम को समझना और बनाए रखना आसान होता है।

यह कहा जा सकता है कि एक जटिल समस्या को सरल टुकड़ों में तोड़ना सभी डिजाइन तकनीकों का लक्ष्य है । और शब्द "आर्किटेक्चर" ज्यादातर मामलों में केवल इस तरह के एक विभाजन के परिणाम के साथ-साथ "कुछ डिज़ाइन निर्णयों को संदर्भित करता है, जिन्हें एक बार अपनाने के बाद बदलना मुश्किल होता है" (मार्टिन फाउलर "आर्किटेक्चर ऑफ़ एंटरप्राइज सॉफ़्टवेयर एप्लिकेशन")।

इसलिए, अधिकांश परिभाषाएँ किसी न किसी रूप में निम्नलिखित तक सीमित हो जाती हैं:

" आर्किटेक्चर सिस्टम के मुख्य घटकों की पहचान करता है और वे कैसे बातचीत करते हैं। यह ऐसे निर्णयों का विकल्प भी है जिन्हें मौलिक के रूप में व्याख्या किया जाता है और भविष्य में परिवर्तन के अधीन नहीं है ।"

" आर्किटेक्चर एक प्रणाली का संगठन है, जो इसके घटकों में सन्निहित है, एक दूसरे के साथ और पर्यावरण के साथ उनका संबंध है। एक प्रणाली एक विशिष्ट कार्य करने के लिए संयुक्त घटकों का एक समूह है। "

इस प्रकार, एक अच्छा आर्किटेक्चर, सबसे पहले, एक मॉड्यूलर / ब्लॉक आर्किटेक्चर है । एक अच्छा आर्किटेक्चर प्राप्त करने के लिए, आपको यह जानना होगा कि सिस्टम को ठीक से कैसे विघटित किया जाए। इसका मतलब यह है कि यह समझना जरूरी है कि किस अपघटन को "सही" माना जाता है और इसे कैसे करना सबसे अच्छा है।