ক্লাস ডায়াগ্রাম হল ইউনিফায়েড মডেলিং ল্যাঙ্গুয়েজ (UML)-এ ব্যবহৃত একটি টুল, যা অবজেক্ট-ওরিয়েন্টেড ডিজাইনের মধ্যে ক্লাসগুলোর মধ্যে সম্পর্ক এবং তাদের বৈশিষ্ট্যগুলি উপস্থাপন করে। এটি ইনহেরিটেন্স, অ্যাসোসিয়েশন, এবং কম্পোজিশন সম্পর্ক বোঝার জন্য অত্যন্ত গুরুত্বপূর্ণ। আসুন এই তিনটি সম্পর্ক ক্লাস ডায়াগ্রামে কিভাবে উপস্থাপিত হয় এবং তাদের বৈশিষ্ট্যগুলো আলোচনা করা যাক।
1. ইনহেরিটেন্স (Inheritance)
- বর্ণনা: ইনহেরিটেন্স একটি ক্লাসের বৈশিষ্ট্য এবং আচরণ অন্য ক্লাস দ্বারা অর্জিত হওয়ার প্রক্রিয়া। সাধারণত একটি সুপারক্লাস (মৌলিক ক্লাস) এবং একটি সাবক্লাস (উপশ্রেণী) এর মধ্যে সম্পর্ক বোঝাতে ব্যবহৃত হয়।
- উপস্থাপন: ক্লাস ডায়াগ্রামে, ইনহেরিটেন্সকে একটি খালি তীর দ্বারা উপস্থাপন করা হয়, যা সাবক্লাসের দিকে নির্দেশ করে। এটি সাধারণত উল্লম্বভাবে উপরের ক্লাস থেকে নীচের ক্লাসের দিকে নির্দেশ করে।
উদাহরণ:
Animal
^
|
Dog
এখানে, Dog ক্লাস Animal ক্লাসের বৈশিষ্ট্যগুলি অর্জন করছে।
2. অ্যাসোসিয়েশন (Association)
- বর্ণনা: অ্যাসোসিয়েশন হল দুই বা ততোধিক ক্লাসের মধ্যে একটি সম্পর্ক, যেখানে এক বা একাধিক অবজেক্ট অন্য অবজেক্টের সাথে সম্পর্কিত থাকে। এটি একটি সাধারণ সম্পর্ক এবং সাধারণত দুই দিকের হতে পারে।
- উপস্থাপন: ক্লাস ডায়াগ্রামে, অ্যাসোসিয়েশনকে একটি সরল রেখা দ্বারা উপস্থাপন করা হয়, যা দুই ক্লাসের মধ্যে একটি সম্পর্ক নির্দেশ করে। যদি সম্পর্কটি দ্বিমুখী হয়, তাহলে উভয় দিকেই তীর যুক্ত করা হয়। এছাড়াও, সংখ্যাগত মান (যেমন 1, 0.., 1..) সম্পর্কের প্রকৃতি নির্দেশ করে।
উদাহরণ:
Student Course
| |
| |
------------------
এখানে, Student এবং Course ক্লাসের মধ্যে একটি অ্যাসোসিয়েশন রয়েছে, যা নির্দেশ করে যে একটি ছাত্র একাধিক কোর্সে ভর্তি হতে পারে।
3. কম্পোজিশন (Composition)
- বর্ণনা: কম্পোজিশন হল একটি বিশেষ ধরনের অ্যাগ্রিগেশন যেখানে একটি ক্লাসের অবজেক্ট অন্য ক্লাসের অবজেক্টের একটি অবিচ্ছেদ্য অংশ। এটি সম্পর্কের মধ্যে একটি শক্তিশালী যুক্তি নির্দেশ করে, অর্থাৎ মূল অবজেক্টটি মুছে গেলে অংশগুলিও মুছে যাবে।
- উপস্থাপন: ক্লাস ডায়াগ্রামে, কম্পোজিশনকে একটি পূর্ণ রত্ন দ্বারা উপস্থাপন করা হয়, যেখানে মূল ক্লাসটি (পিতা) এবং তার অংশগুলি (সন্তান) একত্রিত হয়।
উদাহরণ:
House
*
|
Room
এখানে, Room ক্লাস House ক্লাসের অংশ। যদি House মুছে যায়, তবে Room ক্লাসের অবজেক্টগুলোও মুছে যাবে।
উপসংহার
ক্লাস ডায়াগ্রামে ইনহেরিটেন্স, অ্যাসোসিয়েশন, এবং কম্পোজিশন সম্পর্কগুলি সফটওয়্যার ডিজাইন ও আর্কিটেকচারে মৌলিক ভূমিকা পালন করে। এই সম্পর্কগুলির মাধ্যমে ডেভেলপাররা ক্লাসগুলোর মধ্যে সম্পর্ক নির্ধারণ করতে পারেন এবং একটি কার্যকরী এবং সংগঠিত ডিজাইন তৈরি করতে পারেন। সঠিকভাবে এই সম্পর্কগুলি ব্যবহার করলে কোডের পুনঃব্যবহারযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি পায়।
Read more