6.1 विघटन

विविध निकष असूनही, मोठ्या प्रणालींच्या विकासातील मुख्य कार्य म्हणजे सिस्टमची जटिलता कमी करणे . जटिलता कमी करण्यासाठी, भागांमध्ये विभागणी करण्याशिवाय काहीही शोधले गेले नाही.

काहीवेळा, साधेपणासाठी, याला "विभाजित करा आणि विजय मिळवा" असे म्हणतात, परंतु, सॉफ्टवेअर आर्किटेक्टच्या दृष्टिकोनातून, आम्ही श्रेणीबद्ध विघटन बद्दल बोलत आहोत .

एक जटिल प्रणाली थोड्या संख्येने साध्या उपप्रणालींपासून तयार केली जाणे आवश्यक आहे, ज्यापैकी प्रत्येक, यामधून, लहान भागांपासून तयार केली जाते आणि असेच लहान भाग थेट समजण्याइतपत सोपे आणि तयार होईपर्यंत.

कुजणे

मोठी बातमी अशी आहे की हा उपाय केवळ एकच ज्ञात नाही तर सार्वत्रिक देखील आहे. क्लिष्टता कमी करण्याव्यतिरिक्त, हे एकाच वेळी सिस्टम लवचिकता , चांगली स्केलेबिलिटी आणि गंभीर भागांची नक्कल करून वाढीव लवचिकता प्रदान करते.

त्यानुसार, जेव्हा प्रोग्रामचे आर्किटेक्चर तयार करणे, त्याची रचना तयार करणे, याचा अर्थ प्रोग्रामचे उपप्रणाली, सेवा, स्तर, सबरूटीन आणि कार्यात्मक मॉड्यूलमध्ये विघटन करणे आणि एकमेकांशी आणि बाह्य जगाशी त्यांचे परस्परसंवाद आयोजित करणे.

आणि येथे सर्वात मौल्यवान गोष्ट ही आहे: उपप्रणाली जितकी अधिक स्वतंत्र असतील तितकेच सुरक्षितपणे प्रत्येकाच्या विकासावर विशिष्ट वेळी लक्ष केंद्रित करणे आणि इतर सर्व भागांची चिंता न करणे अधिक सुरक्षित आहे.

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

श्रेणीबद्ध विघटन तत्त्वाचा वापर केल्याने आपल्याला आपल्या कोडच्या हजारो वर्गांमधील गोंधळापासून मुक्तता मिळते. तुमचा कोड पॅकेजेस (पॅकेज) आणि सबपॅकेजमध्ये मोडला आहे हे लक्षात ठेवा? हे श्रेणीबद्ध विघटन साठी अभिव्यक्तीपैकी एक आहे.

तुमचा प्रोग्राम वर्गांच्या समूहातून लायब्ररी आणि मॉड्यूल्सच्या संचामध्ये बदलतो जे चांगल्या-परिभाषित आणि सोप्या नियमांनुसार एकमेकांशी संवाद साधतात. हे, यामधून, आपल्याला त्याच्या जटिलतेवर नियंत्रण ठेवण्यास अनुमती देते आणि सामान्यत: चांगल्या आर्किटेक्चरच्या संकल्पनेशी संबंधित असलेले सर्व फायदे मिळविण्याची संधी देखील देते.

येथे सर्वात मूलभूत आहेत:

  • स्केलेबिलिटी - सिस्टमचा विस्तार करण्याची आणि नवीन मॉड्यूल्स जोडून त्याची कार्यक्षमता वाढवण्याची क्षमता.
  • देखभालक्षमता - एक मॉड्यूल बदलण्यासाठी इतर मॉड्यूल बदलण्याची आवश्यकता नाही.
  • मॉड्यूल्सची स्वॅपेबिलिटी (स्वॅपेबिलिटी) - मॉड्यूल सहजपणे दुसर्याने बदलले जाऊ शकते.
  • युनिट चाचणी - युनिट इतर सर्वांपासून वेगळे केले जाऊ शकते आणि चाचणी/दुरुस्ती केली जाऊ शकते .
  • पुन: वापरण्यायोग्यता - मॉड्यूल इतर प्रोग्राम आणि इतर वातावरणात पुन्हा वापरले जाऊ शकते.
  • देखभाल - मॉड्यूलमध्ये विभागलेला प्रोग्राम समजणे आणि देखरेख करणे सोपे आहे.

असे म्हटले जाऊ शकते की एक जटिल समस्या साध्या तुकड्यांमध्ये मोडणे हे सर्व डिझाइन तंत्रांचे लक्ष्य आहे . आणि बहुतेक प्रकरणांमध्ये "आर्किटेक्चर" हा शब्द फक्त अशा विभाजनाच्या परिणामास सूचित करतो आणि "काही डिझाइन निर्णय जे एकदा स्वीकारले गेले, ते बदलणे कठीण आहे" (मार्टिन फॉलर "एंटरप्राइझ सॉफ्टवेअर ऍप्लिकेशन्सचे आर्किटेक्चर").

म्हणून, एका किंवा दुसर्‍या स्वरूपात बहुतेक व्याख्या खालीलप्रमाणे उकळतात:

" आर्किटेक्चर प्रणालीचे मुख्य घटक ओळखते आणि ते कसे संवाद साधतात. हे अशा निर्णयांची निवड देखील आहे ज्याचा अर्थ मूलभूत म्हणून समजला जातो आणि भविष्यात बदल होऊ शकत नाही ."

" आर्किटेक्चर ही प्रणालीची संघटना आहे, तिचे घटक, त्यांचे एकमेकांशी आणि पर्यावरणाशी असलेले संबंध. एक विशिष्ट कार्य करण्यासाठी एकत्रित केलेल्या घटकांचा संच आहे ."

अशाप्रकारे, एक चांगली आर्किटेक्चर म्हणजे सर्व प्रथम, मॉड्यूलर / ब्लॉक आर्किटेक्चर . चांगली आर्किटेक्चर मिळविण्यासाठी, आपल्याला सिस्टम योग्यरित्या विघटित कसे करावे हे माहित असणे आवश्यक आहे. याचा अर्थ असा आहे की कोणते विघटन "योग्य" मानले जाते आणि ते कसे पार पाडणे चांगले आहे हे समजून घेणे आवश्यक आहे.