যদি আমরা নির্দিষ্ট ভাষা, ফ্রেমওয়ার্ক এবং তাদের নিজস্ব ব্যাখ্যা থেকে বিমূর্ত হয়ে থাকে তবে বিমূর্ত সফ্টওয়্যার গ্রানুলারিটি হায়ারার্কিটি নিম্নলিখিত:
Product - application, library, service
Module - GUI, core logic, data, etc...
Component - purpose specific collection of objects
Object - collection of primitives
Primitive - numbers, functions, etc...
সাধারণ এবং সরল, পণ্যটি সংযুক্ত ফাংশনাল মডিউলগুলির একটি কার্যকরী সংগ্রহ।
খুব নাম থেকেই বোঝা যায় যে মডিউলটির অনুপ্রেরণা হল পরিমিতি। অনেকের দাবির বিপরীতে এটি কোড পুনরায় ব্যবহারের প্রকৃতপক্ষে বোঝায় না। এমন অনেকগুলি মডিউল রয়েছে যা সত্যিই পুনরায় ব্যবহারযোগ্য নয় এবং এমন কোনও কিছুর সাথে খাপ খায় না যা সেগুলি ডিজাইন করা হয়নি।
বিভিন্ন সফ্টওয়্যার স্তরগুলি পৃথক করা গুরুত্বপূর্ণ, এটি সফ্টওয়্যার বাস্তবায়ন ও রক্ষণাবেক্ষণকে আরও সহজ করে তোলে এবং ভিন্ন জিইউআই কাঠামোর সামনে প্রান্তের মতো কোনও কিছুকে পুনরায় সংশোধন করার প্রয়োজন হওয়া উচিত, মডুলারালিটি কোনও ভঙ্গ ছাড়াই সহজ এবং নিরাপদ উপায়ে ঘটতে সক্ষম করে সমস্ত জায়গায় কোড।
একটি মডিউল উপাদানগুলির সংকলনকে encapsulates যা মডিউল প্রয়োজনীয়তা দ্বারা সংজ্ঞায়িত হিসাবে সমস্ত একটি সাধারণ উদ্দেশ্য পরিবেশন করে। একটি মডিউলটি স্বয়ংসম্পূর্ণ এবং সম্পূর্ণ হওয়া উচিত এবং এটি সত্যই নিজের ব্যবহারযোগ্য না হলেও এটি কোনওরূপে কার্যকর বাস্তবায়নের সাথে একযোগে কাজ করতে সক্ষম হওয়া উচিত।
গ্রানুলারিটির ক্ষেত্রে উপাদানগুলি মডিউল এবং অবজেক্টের মধ্যে বসে। কোন উপাদানটির উদ্দেশ্য হ'ল সাধারণ উদ্দেশ্য সামগ্রীর সংগ্রহকে উদ্দেশ্য নির্দিষ্ট ইউনিট গঠন করা।
নামটি থেকে বোঝা যায়, মডিউলটির বিপরীতে, উপাদানটি "স্ব-অন্তর্ভুক্ত" নয়, এটি বৃহত্তর কার্যকরী পুরোটির একটি অংশ।
অবজেক্টগুলি উপাদানগুলির ছোট বিল্ডিং ব্লক। অবজেক্টগুলি আদিমগুলির সংগ্রহ এবং এগুলি একত্রে নিম্ন স্তরের পরিবেশন করতে, আরও সার্বজনীন যখন এখনও কিছু নির্দিষ্ট উদ্দেশ্যে কাজ করে।
পুরস্কারগুলি হ'ল সফটওয়্যার ডেভলপমেন্ট গ্রানুলারিটির সবচেয়ে ক্ষুদ্রতম, সহজতম এবং সর্বনিম্ন স্তর। এটি মূলত কেবল পূর্ণসংখ্যার এবং আসল সংখ্যা এবং ফাংশন / অপারেটর যদিও বেশিরভাগ ভাষার নিজস্ব অতিরিক্ত "প্রথম শ্রেণির নাগরিক" থাকে।
আপনি আদিমদের সাথে খুব সামান্য কিছু করতে পারেন এবং একই সাথে এটি এত কম স্তরে রয়েছে যে আপনি এটি দিয়ে ব্যবহারিকভাবে সমস্ত কিছু সম্পাদন করতে পারবেন। এটি খুব খুব, খুব ভার্বোজ, অত্যন্ত জটিল এবং অসম্ভব ক্লান্তিকরভাবে সরাসরি আদিমদের সাথে কাজ করার সময়।
উপরে ইতিমধ্যে উল্লিখিত হিসাবে, সরাসরি আদিমদের সাথে কাজ করা একটি অত্যন্ত খারাপ ধারণা। আধুনিক দিনের সফ্টওয়্যার বিকাশের জন্য এটি কেবল অসম্ভব জটিল, ধীর এবং ক্লান্তিকর নয়, তবে এটি পরীক্ষা এবং রক্ষণাবেক্ষণের ক্ষেত্রে অত্যন্ত বাধা এবং বাধাও বটে।
সফ্টওয়্যার বিকাশে এই ধারণাগত সমস্ত অংশকে অন্তর্ভুক্ত করা এটিকে সহজ, দ্রুত, সহজ এবং নিরাপদ করে তোলে। আপনি বহুমুখী এবং সার্বজনীন পরমাণু যতই নির্বিশেষে আপনি কোনও পরমাণুর বাইরে কোনও ঘর তৈরি করেন না। এটি নিরর্থকতা একটি অনুশীলন হবে। আপনার পরমাণুগুলি আপনার আদিম, মাটি আপনার বস্তু, ইটগুলি আপনার উপাদান, দেওয়াল, মেঝে এবং ছাদ আপনার মডিউল, একত্রিত হয়ে তারা চূড়ান্ত পণ্য প্রকাশ করে।
মানুষ সত্যই কোনও কিছুর উদ্ভাবন করে না, আমরা কেবল মহাবিশ্বে সেখানে ইতিমধ্যে জিনিসগুলি আবিষ্কার করেছি এবং তারপরে অনুলিপি করে আমাদের জীবনে প্রয়োগ করি। একই গ্রানুলারিটি হায়ারার্কিটি মহাবিশ্বের নিজস্ব, পরমাণু থেকে নীচে এমনকি জৈব অণু, প্রোটিন, টিস্যু, অঙ্গ, জীব এবং তারপরেও বাস্তবে একই নীতি অনুসরণ করে - ছোট, সাধারণ, ফাংশন সীমাবদ্ধ এবং উদ্দেশ্য বিমূর্ত জিনিসগুলিকে একত্রিত করে বৃহত্তর, আরও জটিল, আরও কার্যকরী জিনিস এবং আরও উদ্দেশ্যে নির্দিষ্ট জিনিস।
প্রযুক্তিগতভাবে তারা সমস্ত "অবজেক্টস", তারা সকলেই সফ্টওয়্যার বিকাশের "উপাদান", তারা সবাই মিলে একসাথে ফিট করতে সক্ষম যথেষ্ট "মডুলার", তারা যে অর্থে উত্পাদিত হয়েছে এগুলি সবই "পণ্য"। ..
এটি পরিভাষা বা নামকরণ সম্পর্কে নয়, এটি সৃজনশীলতা এবং উত্পাদনশীলতার বিভিন্ন দিককে কীভাবে স্কেলিং আপ এবং আউটকে প্রভাবিত করে তা সম্পর্কে। এবং এই সমস্ত বিভিন্ন স্তরকে কেবলমাত্র ব্যবহার করার গুরুত্ব সম্পর্কে নয়, তবে ভুল স্তরে কোনও লক্ষ্য অর্জনের চেষ্টা না করার গুরুত্ব সম্পর্কেও, যা কেবলমাত্র প্রতিরক্ষামূলক হতে পারে।