তথ্য প্রযুক্তি

প্রোগ্রাম ডিজাইন মডেল সম্পর্কে বিস্তারিত

প্রোগ্রাম ডিজাইন মডেল(Program Design Model) কাকে বলে?

প্রোগ্রাম ডিজাইন মডেল : প্রােগ্রামের গঠনশৈলীকে বা প্রােগ্রামের গঠন রীতিনীতিকে প্রােগ্রামের মডেল বলা হয়। সুচারুভাবে প্রােগ্রাম লেখা এবং সহজে বােঝার জন্য প্রােগ্রাম রচনার ক্ষেত্রে কয়েকটি মডেল ব্যবহার করা হয়। এই মডেলগুলাে প্রােগ্রামের অনুধাবনযােগ্যতা বৃদ্ধি করে।

উল্লেখযােগ্য কয়েকটি প্রোগ্রাম ডিজাইন মডেল সম্পর্কে আলােচনা করা হলাে:

  • স্ট্রাকচার্ড প্রােগ্রামিং
  • অবজেক্ট ওরিয়েন্টেড প্রােগ্রামিং (OOP)
  • ভিজুয়্যাল প্রােগ্রামিং
  • ইভেন্ট ড্রাইভেন প্রােগ্রামিং

স্ট্রাকচার্ড প্রােগ্রামিং কাকে বলে?

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

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

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

ভিন্ন ভিন্ন শ্রেণিতে প্রয়োজন অনুযায়ী স্টেটমেন্ট ব্যবহার করা যায়। স্টেটমেন্টের সংখ্যা একেক শ্রেণির জন্য একেক রকম হতে পারে। তবে প্রত্যেকটি শ্রেণি স্বতন্ত্রভাবে ভিন্ন ভিন্ন কাজ করে থাকে। প্রত্যেকটি শ্রেণিতে প্রবেশ করার এবং বের হওয়ার ব্যবস্থা রাখতে হয়। ফলে কোনো শ্রেণির মধ্য অবস্থান থেকে শাখা বিস্তারের লুপ তৈরির স্টেটমেন্ট ব্যবহার করা যায় না। এতে প্রত্যেকটি শ্রেণির ত্রুটি সনাক্তকরণ এবং সংশোধনের কাজ সহজতর হয়।

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

See also  ন্যানো টেকনোলজি কাকে বলে ও ন্যানো টেকনোলজির ব্যবহার

উদাহরণস্বরূপ কিউবেসিক, বেসিক, প্যাসকেল, ফোরট্রান ৭৭ ইত্যাদি ভাষা ব্যবহার করে স্ট্রাকচার্ড প্রোগ্রামিং করা যায়।

 

স্ট্রাকচার্ড প্রােগ্রামে তিন ধরনের কাঠামাে ব্যবহৃত হয়ে থাকে-

১. পর্যায়ক্রমিক কাঠামাে: এ কাঠামােতে প্রােগ্রামের বা মডিউলের একটির পর একটি নির্দেশ ধারাবাহিকভাবে নির্বাহ হয়। নির্দেশের ধারাবাহিকতা বা পর্যায় কখনাে বিঘ্নিত হয় না।

২. সিদ্বান্তমূলক কাঠামাে: এ কাঠামাে একটি নির্দিষ্ট শর্তের ওপর নির্ভর করে। শর্তটি সত্য হলে, একটি স্টেটমেন্ট বা নির্দেশ নির্বাহ হয়; আর শর্ত মিথ্যা হলে অন্য আরেকটি স্টেটমেন্ট নির্বাহ হয়। সিদ্ধান্তমূলক কাজের প্রয়ােজনেএ কাঠামাে ব্যবহার করা হয়ে থাকে। একাধিক সিদ্ধান্ত নেওয়ার বেলাতেও এ কাঠামােটি ব্যবহার করা যায়।

৩. চক্রাবর্ত কাঠামাে: এ কাঠামােকে লুপ বলা হয়। এক বা একাধিক নির্দেশ বারবার লিখতে হয় না। এক বা একাধিক নির্দেশকে শতহীনভাবে নির্দিষ্ট সংখ্যক বার বা শর্তের অধীন অনির্দিষ্ট সংখ্যক বার নির্বাহ করা যায় ।

স্ট্রাকচার্ড প্রােগ্রামিং বা প্রােসিডিউর অরিয়েন্টেড প্রােগ্রামিং-এর বৈশিষ্ট্য

স্ট্রাকচার্ড প্রােগ্রামিং বা প্রােসিডিউর অরিয়েন্টেড প্রােগ্রামিং-এর কিছু বৈশিষ্ট্য আছে যেগুলাে নিম্নে দেয়া হল

  • মূল প্রােগ্রামকে ফাংশনের ভিত্তিতে ছােট ছােট অংশে ভাগ করা হয়।
  • প্যারামিটার পাসিং বা অপারেটিং সিস্টেমের মাধ্যমে প্রােগ্রামের অংশগুলাের মধ্যে সংযােগ স্থাপিত হয়।
  • প্রতিটি ফাংশনের ডেটা আলাদা থাকে।
  • প্রােগ্রামে ডেটা অপেক্ষা ফাংশনের অধিক গুরুত্ব দেয়া হয়।
  • বেশির ভাগ ফাংশন গ্লোবাল ডেটা ব্যবহার করে ।
  • একই ডেটা এক ফাংশন থেকে অন্য ফাংশনে স্থানান্তরিত হতে পারে।
  • ডেটা গােপন করার কার্যকরী কোন উপায় নেই।
  • সাধারণ নিয়মে এক ফাংশন অন্য ফাংশনের সাথে সংযােগ রক্ষা করে । প্রয়ােজনে যে কোন সময় প্রােগ্রামে অতিরিক্ত ডেটা বা ফাংশন যােগ করা যায় না। এ জন্য পুরাে প্রােগ্রাম পরিবর্তন করতে হতে পারে।
  • প্রােগ্রামে নতুন ডেটা যােগ করার সময় ব্যবহারকারীকে নিশ্চিত হতে হয় যে তা ফাংশন কর্তৃক অনুমােদিত।
  • প্রােগ্রাম ডিজাইনে টপ-ডাউন পদ্ধতি অনুসরণ করা হয়।
  • প্রােগ্রামিং-এ প্রােসিডিউর অরিয়েন্টেড প্রােগ্রাম ভাষা, যেমন- কোবল, প্যাসকেল, ফরট্রান, সি ইত্যাদি ব্যবহার করা হয়। উদাহরণ: C, Pascal, Qbasic স্ট্রাকচার্ড প্রােগ্রামিং-এ প্রতিটি ফাংশনের ডেটা আলাদা থাকে। প্রােগ্রামে ডেটা অপেক্ষা ফাংশনের অধিক গুরুত্ব দেওয়া হয়। বেশির ভাগ ফাংশন গ্লোবাল ডেটা ব্যবহার করে। একই ডেটা এক ফাংশন থেকে অন্য ফাংশনে স্থানান্তরিত হতে পারে। এ পদ্ধতিতে ডেটা গােপন করার কার্যকরী কোনাে উপায় নেই। এতে সাধারণ নিয়মে এক ফাংশন অন্য ফাংশনের সাথে সংযােগ রক্ষা করে। এ ধরনের প্রােগ্রামিং-এ প্রয়ােজনে যেকোনাে সময় প্রােগ্রামে অতিরিক্ত ডেটা বা ফাংশন যােগ করা যায়। এ জন্য পুরাে প্রােগ্রাম পরিবর্তন করতে হতে পারে। উদাহরণ: C, Pascal, Qbasic ইত্যাদি।
See also  ন্যানো টেকনোলজি কাকে বলে ও ন্যানো টেকনোলজির ব্যবহার

অবজেক্ট ওরিয়েন্টেড প্রােগ্রামিং (OOP) কাকে বলে?

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

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

ছােটো আকারের প্রােগ্রাম রচনার জন্য OOP মডেল কোনাে বিশেষ সুবিধা দেয় না। কিন্তু বড় ধরনের প্রােগ্রাম (কয়েক হাজার লাইনের অধিক) উন্নয়নের জন্য OOP অপরিহার্য মডেল । OOP-এর বিশেষ সুবিধা হলাে- ইনহেরিটেন্সের মাধ্যমে প্রচলিত ক্লাসকে বর্ধিত করে নতুন ও উন্নত ক্লাস তৈরি করা যায়। ডেটা লুকানাে থাকে বলে অপ্রত্যাশিত পরিবর্তন সম্ভব নয়। সহজেই ছােটো থেকে বড় প্রােগ্রাম উন্নয়ন করা যায়। সকল প্রােগ্রামিং ভাষাই অবজেক্ট ওরিয়েন্টড | প্রােগ্রামিং সমর্থন করে না।

 

কোনাে প্রােগ্রামিং ভাষাকে পরিপূর্ণ অবজেক্ট ওরিয়েন্টেড প্রােগ্রামিং ভাষা হতে হলে কমপক্ষে তিনটি বৈশিষ্ট্য থাকতে হয়।

এগুলাে হলাে-

  • ইনহেরিটেন্স
  • এনক্যাপসুলেশন
  • পলিমরফিজম

 

ইনহেরিটেন্স: ইনহেরিটেন্স এমন একটি ক্ষমতা যার মাধ্যমে কোনাে প্রচলিত ক্লাসের কোনাে পরিবর্তন না করে পরিবর্ধিত নতুন ক্লাস তৈরি করা যায়। নতুন ক্লাস মূল ক্লাসের প্রয়ােজনীয় বৈশিষ্ট্য ধারণ করে থাকে।

এনক্যাপসুলেশন: কোনাে চলকের ডেটা এবং ইনস্ট্রাকশন একত্রিত অবস্থায় থাকাকে এনক্যাপসুলেশন বলে। যে চলকের জন্য যে ডেটা সেই চলকের বাইরে তার আর কোনাে অস্তিত্ব নেই। ফলে ডেটার ওপর প্রােগ্রামের অন্য অংশের কোনাে প্রভাব পড়ে না।

পলিমরফিজম: পলিমরফিজম অর্থ হচ্ছে বহুরূপ। এ বৈশিষ্ট্যের জন্য কোনাে কোড মডিউলের নাম এক হলেও একাধিক রূপ থাকতে পারে। কখন কোন রূপটি ব্যবহৃত হবে তা কম্পাইলার নির্ণয় করবে। একই অপারেটর ভিন্ন ধরনের ডেটার ওপর প্রয়ােগ করা যেতে পারে। সঠিক ডেটা নিরূপণ করা কম্পাইলারের দায়িত্ব। OOP প্রােগ্রামিং ভাষার উদাহরণ হলাে C++, Java, C# ইত্যাদি। প্রোগ্রাম ডিজাইন মডেল

See also  ন্যানো টেকনোলজি কাকে বলে ও ন্যানো টেকনোলজির ব্যবহার

 

অবজেক্ট ওরিয়েন্টেড প্রােগ্রামিং (OOP) কি?

ভিজুয়্যাল প্রােগ্রামিং কাকে বলে?

গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) সমৃদ্ধ পরিবেশকে বলা হয় ভিজুয়্যাল (Visual) বা দৃশ্যমান কাজের পরিবেশ। চিত্রভিত্তিক বা ভিজুয়্যাল পরিবেশে কাজ করা সহজ বলে চিত্রভিত্তিক প্রােগ্রামিং ভাষাও উদ্ভাবিত হয়েছে। চিত্রভিত্তিক পরিবেশ হলেও প্রােগ্রামিং-এর ক্ষেত্রে মূলত স্ট্রাকচার্ড প্রােগ্রামিং অথবা OOP মডেল ব্যবহৃত হয়।

তবে প্রকৃত প্রােগ্রামিং মডেল প্রােগ্রাম থেকে আড়ালে থাকে বলে চিত্রভিত্তিক প্রােগ্রামিং বেশ জনপ্রিয়। মাইক্রোসফট কোম্পানির ভিজুয়্যাল বেসিক হলাে প্রথম চিত্রভিত্তিক প্রােগ্রামিং মডেল। এর জনপ্রিয়তা দেখে বােরল্যান্ড নির্মাণ করে ডেলফি।

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

ইভেন্ট ড্রাইভেন প্রােগ্রামিং কাকে বলে?

স্ট্রাকচার্ড এবং অবজেক্ট ওরিয়েন্টেড প্রােগ্রামিং মডেলের মূল বৈশিষ্ট্য হচ্ছে, প্রােগ্রামের শুরু থেকে শেষ পর্যন্ত নির্বাহ হওয়া। প্রােগ্রাম নির্বাহের প্রবাহ সিদ্ধান্তমূলক ও লুপ কাঠামাে ব্যবহার করে কিছুটা নিয়ন্ত্রণ করা গেলেও ব্যবহারকারী প্রােগ্রাম পরিচালনাকালে পুরােপুরি স্বাধীনতা পায় না। উদাহরণস্বরূপ ১০,০০০টি সংখ্যা যােগ করার একটা প্রােগ্রাম স্টাকচার্ড অথবা OOP মডেলে লিখলে তা ব্যবহারকারীকে সম্পূর্ণ সুবিধা দিতে পারে না। যেমন যােগ করাকালীন যেকোনাে মুহূর্তে ব্যবহারকারী প্রক্রিয়াটিকে বাতিল করতে চাইলে, বা নতুন করে শুরু করতে চাইলে তা সম্ভব হয় না।

ব্যবহারকারীকে এ ধরনের সুবিধা দেওয়ার জন্য উদ্ভাবিত হয়েছে ইভেন্ট ড্রাইভেন প্রােগ্রামিং মডেল। প্রােগ্রামের সাথে ব্যবহারকারীকে যেকোনাে ধরনের মিথস্ক্রিয়াকে (Interaction) ইভেন্ট বলে। মাউস সরানাে, ক্লিক করা, কি-বাের্ডে কোনাে কি (Key) চাপা, প্রতিটিই এক একটি ইভেন্ট।

ইভেন্ট ড্রাইভেন প্রােগ্রামিং মডেলে কোনাে প্রােগ্রামের সব নির্দেশ ধারাবাহিকভাবে নির্বাহ হয় না। প্রােগ্রামটিতে বিভিন্ন ইভেন্টের জন্য সংশ্লিষ্ট কোড মডিউল থাকে যা কেবল ঐ ইভেন্ট উৎপন্ন হলেই নির্বাহ হয়। অন্যথায় তা অলস বসে থাকে।

যেমন- মাইক্রোসফট ওয়ার্ডে মেনু ও টুলবার প্রদর্শিত হয়। প্রােগ্রামের শুরুতে এগুলাে কিছুই করে না। কিন্তু ব্যবহারকারী যখনই কোনাে মেনুবার/টুলবারের বােতামে ক্লিক করে তখনই একটি ইভেন্টের সৃষ্টি হয়। সাথে সাথে ইভেন্টের সংশ্লিষ্ট কোড দ্বারা মডিউলটি নির্বাহ হয়। সব ভিজুয়াল প্রােগ্রামই হচ্ছে ইভেন্ট ড্রাইভেন প্রােগ্রাম। প্রোগ্রাম ডিজাইন মডেল

 

Back to top button