यदि हम विशेष भाषाओं, रूपरेखाओं और अपनी स्वयं की व्याख्याओं से अमूर्त हैं, तो अमूर्त सॉफ्टवेयर ग्रैन्युलैरिटी पदानुक्रम निम्नलिखित हैं:
Product - application, library, service
Module - GUI, core logic, data, etc...
Component - purpose specific collection of objects
Object - collection of primitives
Primitive - numbers, functions, etc...
सादा और सरल, उत्पाद जुड़ा कार्यात्मक मॉड्यूल का एक काम संग्रह है।
जैसा कि बहुत नाम का तात्पर्य है, एक मॉड्यूल की प्रेरणा प्रतिरूपकता है। कितने दावों के विपरीत, यह वास्तव में कोड पुन: उपयोग नहीं करता है। ऐसे कई मॉड्यूल हैं जो वास्तव में पुन: प्रयोज्य नहीं हैं, और उन चीजों के साथ फिट नहीं होते हैं जिनके लिए वे डिज़ाइन नहीं किए गए थे।
अलग-अलग सॉफ़्टवेयर परतों को अलग करना महत्वपूर्ण है, जो सॉफ्टवेयर को लागू करने और बनाए रखने के लिए बहुत आसान बनाता है, और एक अलग जीयूआई फ्रेमवर्क के सामने के छोर की तरह कुछ को फिर से लागू करने की आवश्यकता है, मॉड्यूलरिटी सक्षम बनाता है कि एक आसान और सुरक्षित तरीके से, बिना ब्रेक के सभी जगह कोड।
एक मॉड्यूल घटकों के एक संग्रह को एन्क्रिप्ट करता है जो सभी मॉड्यूल आवश्यकताओं द्वारा परिभाषित एक सामान्य उद्देश्य की सेवा करते हैं। एक मॉड्यूल स्व-निहित और पूर्ण होना चाहिए, और वास्तव में अपने आप में उपयोग करने योग्य नहीं होने पर, यह किसी भी अनुरूप कार्यान्वयन के साथ काम करने में सक्षम होना चाहिए।
बारीकियों के संदर्भ में घटक मॉड्यूल और वस्तु के बीच बैठता है। एक घटक का उद्देश्य एक उद्देश्य विशिष्ट इकाई बनाने के लिए सामान्य उद्देश्य वस्तुओं के संग्रह को एक साथ रखना है।
जैसा कि नाम का अर्थ है, मॉड्यूल के विपरीत, घटक "स्व-निहित" नहीं है, यह पूरे बड़े कार्यात्मक का एक हिस्सा है।
ऑब्जेक्ट घटक के छोटे बिल्डिंग ब्लॉक हैं। वस्तुएं आदिमता का संग्रह हैं और उन्हें कुछ निचले स्तर की सेवा के लिए एक साथ जोड़े, अधिक सार्वभौमिक जबकि अभी भी कुछ विशिष्ट उद्देश्य हैं।
प्राइमिटिव सबसे छोटे, सरल और सबसे कम स्तर के सॉफ्टवेयर डेवलपमेंट ग्रैन्युलैरिटी हैं। यह मूल रूप से केवल पूर्णांक और वास्तविक संख्या और फ़ंक्शन / ऑपरेटर हैं, हालांकि अधिकांश भाषाओं का अपना अतिरिक्त "प्रथम श्रेणी के नागरिक" हैं।
बहुत कम आप आदिम के साथ कर सकते हैं, और एक ही समय में, यह इतने निचले स्तर पर है कि आप इसके साथ व्यावहारिक रूप से सब कुछ पूरा कर सकते हैं। यह सीधे तौर पर आदिम के साथ काम करते हुए पूरा करने के लिए बस बहुत, बहुत ही क्रियात्मक, पागलपन से जटिल और असंभव थकाऊ है।
जैसा कि पहले ही ऊपर उल्लेख किया गया है, सीधे आदिम के साथ काम करना एक बहुत बुरा विचार है। न केवल इसलिए कि यह आधुनिक दिन सॉफ्टवेयर विकास के लिए असंभव, जटिल, धीमा और थकाऊ है, बल्कि यह परीक्षण और रखरखाव के लिए भी अत्यंत अप्रिय और अवरोधक है।
सॉफ्टवेयर विकास में शामिल उन सभी वैचारिक भागों के होने से यह आसान, तेज, सरल और सुरक्षित हो जाता है। चाहे आप कितने भी बहुमुखी और सार्वभौमिक परमाणु क्यों न हों, आप परमाणुओं से घर नहीं बनाते हैं। यह व्यर्थता में एक अभ्यास होगा। आपके परमाणु आपके आदिम हैं, मिट्टी आपकी वस्तु है, ईंटें आपके घटक हैं, दीवारें, फर्श और छत आपके मॉड्यूल हैं, इकट्ठे होकर वे अंतिम उत्पाद प्रकट करते हैं।
मनुष्य वास्तव में कुछ भी आविष्कार नहीं करते हैं, हम केवल ब्रह्मांड में पहले से ही चीजों को खोजते हैं, और फिर उन्हें कॉपी करके हमारे जीवन में लागू करते हैं। एक ही ग्रैन्युलैरिटी पदानुक्रम स्वयं ब्रह्मांड के लिए, परमाणुओं से और यहां तक कि नीचे, कार्बनिक अणुओं, प्रोटीन, ऊतकों, अंगों, जीवों और ऊपर से वास्तविकता के लिए आंतरिक है, वास्तविकता स्वयं एक ही सिद्धांत का पालन करती है - छोटी, सरल, फ़ंक्शन सीमित और उद्देश्य सार चीज़ों का संयोजन। बड़ी, अधिक जटिल, अधिक कार्यात्मक चीजें और अधिक उद्देश्य विशिष्ट चीजें।
तकनीकी रूप से वे सभी "वस्तुएं" हैं, वे सभी सॉफ्टवेयर विकास के "घटक" हैं, वे सभी "मॉड्यूलर" हैं जो एक साथ फिट होने में सक्षम हैं, वे सभी "उत्पाद" इस अर्थ में हैं कि वे उत्पादित किए गए हैं और इसी तरह। ..
यह शब्दावली या नामकरण के बारे में नहीं है, यह इस बारे में है कि चीजों को कैसे बढ़ाया जाए और रचनात्मकता और उत्पादकता के विभिन्न पहलुओं को प्रभावित किया जाए। और न केवल उन सभी विभिन्न स्तरों का उपयोग करने के महत्व के बारे में, बल्कि गलत स्तर पर एक लक्ष्य को पूरा करने की कोशिश न करने के महत्व के बारे में भी, जो केवल प्रतिसंबंधी हो सकता है।