6.1 পচন

বিভিন্ন মানদণ্ড সত্ত্বেও, বৃহৎ সিস্টেমের বিকাশের প্রধান কাজ হল সিস্টেমের জটিলতা হ্রাস করা । জটিলতা কমাতে, ভাগে ভাগ করা ছাড়া আর কিছুই উদ্ভাবিত হয়নি।

কখনও কখনও, সরলতার জন্য, এটিকে "বিভাজন এবং জয়" এর নীতি বলা হয়, তবে, সফ্টওয়্যার স্থপতির দৃষ্টিকোণ থেকে, আমরা শ্রেণীবিন্যাস পচন সম্পর্কে কথা বলছি ।

একটি জটিল সিস্টেম অবশ্যই অল্প সংখ্যক সহজ সাবসিস্টেম থেকে তৈরি করা উচিত, যার প্রত্যেকটি, ঘুরে, ছোট অংশ থেকে তৈরি করা হয়, এবং যতক্ষণ না ক্ষুদ্রতম অংশগুলি সরাসরি বোঝার এবং তৈরি করার জন্য যথেষ্ট সহজ হয়।

পচন

মহান খবর হল যে এই সমাধানটি শুধুমাত্র পরিচিত নয়, সর্বজনীনও। জটিলতা কমানোর পাশাপাশি, এটি একই সাথে সিস্টেমের নমনীয়তা , ভাল মাপযোগ্যতা , এবং গুরুত্বপূর্ণ অংশগুলির নকল করে স্থিতিস্থাপকতা বৃদ্ধি করে।

তদনুসারে, যখন প্রোগ্রামের আর্কিটেকচার তৈরি করার কথা আসে, এর কাঠামো তৈরি করা হয়, এর অর্থ হল প্রোগ্রামটিকে সাবসিস্টেম, পরিষেবা, স্তর, সাবরুটিন এবং কার্যকরী মডিউলগুলিতে বিভক্ত করা এবং একে অপরের সাথে এবং বাইরের বিশ্বের সাথে তাদের মিথস্ক্রিয়া সংগঠিত করা।

এবং এখানে সবচেয়ে মূল্যবান জিনিসটি হল: সাবসিস্টেমগুলি যত বেশি স্বাধীন, একটি নির্দিষ্ট সময়ে আলাদাভাবে তাদের প্রতিটির বিকাশের উপর ফোকাস করা এবং অন্যান্য সমস্ত অংশ নিয়ে চিন্তা না করা নিরাপদ।

6.2 মডুলার আর্কিটেকচারের সুবিধা

অনুক্রমিক পচনের নীতি ব্যবহার করে আপনাকে আপনার কোডের হাজার হাজার ক্লাসে বিশৃঙ্খলা থেকে মুক্তি পেতে দেয়। মনে রাখবেন যে আপনার কোড প্যাকেজ (প্যাকেজ) এবং সাবপ্যাকেজে বিভক্ত? এটি শ্রেণিবিন্যাস পচনের জন্য অভিব্যক্তিগুলির মধ্যে একটি।

আপনার প্রোগ্রামটি ক্লাসের একটি গুচ্ছ থেকে লাইব্রেরি এবং মডিউলগুলির একটি সেটে পরিণত হয় যা ভালভাবে সংজ্ঞায়িত এবং সহজ নিয়ম অনুসারে একে অপরের সাথে যোগাযোগ করে। এটি, পরিবর্তে, আপনাকে এর জটিলতা নিয়ন্ত্রণ করতে দেয় এবং আপনাকে এমন সমস্ত সুবিধা পাওয়ার সুযোগ দেয় যা সাধারণত একটি ভাল স্থাপত্যের ধারণার সাথে যুক্ত থাকে।

এখানে সবচেয়ে মৌলিক আছে:

  • স্কেলেবিলিটি - সিস্টেমটি প্রসারিত করার এবং নতুন মডিউল যোগ করে এর কার্যকারিতা বৃদ্ধি করার ক্ষমতা।
  • রক্ষণাবেক্ষণযোগ্যতা - একটি মডিউল পরিবর্তন করার জন্য অন্য মডিউল পরিবর্তন করার প্রয়োজন হয় না।
  • মডিউলগুলির অদলবদলযোগ্যতা (Swappability) - মডিউলটি সহজেই অন্য একটি দিয়ে প্রতিস্থাপন করা যেতে পারে।
  • ইউনিট পরীক্ষা - একটি ইউনিট অন্য সকল থেকে বিচ্ছিন্ন করা যেতে পারে এবং পরীক্ষা/মেরামত করা যেতে পারে
  • পুনরায় ব্যবহারযোগ্যতা - মডিউলটি অন্যান্য প্রোগ্রাম এবং অন্যান্য পরিবেশে পুনরায় ব্যবহার করা যেতে পারে।
  • রক্ষণাবেক্ষণ - একটি প্রোগ্রাম যা মডিউলগুলিতে বিভক্ত হয় তা বোঝা এবং বজায় রাখা সহজ।

এটা বলা যেতে পারে যে একটি জটিল সমস্যাকে সাধারণ টুকরো টুকরো করে ফেলাই সমস্ত ডিজাইনের কৌশলের লক্ষ্য । এবং "আর্কিটেকচার" শব্দটি বেশিরভাগ ক্ষেত্রেই কেবল এই ধরনের একটি বিভাগের ফলাফলকে বোঝায় এবং "কিছু ডিজাইন সিদ্ধান্ত যা একবার গৃহীত হলে পরিবর্তন করা কঠিন" (মার্টিন ফাউলার "এন্টারপ্রাইজ সফ্টওয়্যার অ্যাপ্লিকেশনের আর্কিটেকচার")।

অতএব, বেশিরভাগ সংজ্ঞা এক বা অন্য ফর্মে নিম্নলিখিতগুলিকে ফুটিয়ে তোলে:

" আর্কিটেকচার সিস্টেমের প্রধান উপাদানগুলিকে চিহ্নিত করে এবং তারা কীভাবে ইন্টারঅ্যাক্ট করে। এটি এমন সিদ্ধান্তগুলির পছন্দ যা মৌলিক হিসাবে ব্যাখ্যা করা হয় এবং ভবিষ্যতে পরিবর্তনের বিষয় নয় ।"

" আর্কিটেকচার হল একটি সিস্টেমের সংগঠন, যার উপাদানগুলির মধ্যে মূর্ত থাকে, একে অপরের সাথে এবং পরিবেশের সাথে তাদের সম্পর্ক। একটি সিস্টেম হল একটি নির্দিষ্ট ফাংশন সম্পাদন করার জন্য একত্রিত উপাদানগুলির একটি সেট। "

সুতরাং, একটি ভাল স্থাপত্য হল, প্রথমত, একটি মডুলার/ব্লক আর্কিটেকচার । একটি ভাল আর্কিটেকচার পেতে, আপনাকে সঠিকভাবে সিস্টেমটি কীভাবে পচতে হবে তা জানতে হবে। এর অর্থ হ'ল কোন পচনকে "সঠিক" হিসাবে বিবেচনা করা হয় এবং এটি কীভাবে সম্পাদন করা ভাল তা বোঝা দরকার।