প্রােগ্রাম তৈরির ধাপসমূহ | প্রোগ্রামের সংগঠন
প্রোগ্রাম তৈরির ধাপসমূহ :
একটি প্রোগ্রাম তৈরির মাধ্যমে সাধারণত একটি নির্দিস্ট সমস্যার সমাধান করা হয়ে থাকে। তাই একটি প্রোগ্রাম তৈরি করার জন্য কতগুলো ধাপ অনুসরণ করলে সমস্যাটি সহজে সমাধান করা যায়। ধাপগুলো নিমোক্ত আলোচনা করা হল-
প্রোগ্রাম তৈরির ধাপ ৫টি
- সমস্যা বিশ্লেষণ
- প্রোগ্রাম ডিজাইন ( অ্যালগরিদম , ফ্লােচার্ট )
- প্রোগ্রাম কোডিং করা
- টেস্টিং এবং ডিবাগিং
- প্রোগ্রাম রিলিজ করা
সমস্যা বিশ্লেষণ :
সমস্যা নির্দিষ্ট করার পর সমস্যা বিশ্লেষণ। সমস্যাটি কীভাবে সমাধান করা যায়, কতভাবে সমাধান করা যায়, যদি একাধিক ভাবে সমাধান করা যায় তাহলে কোনটি সবচেয়ে ইফেক্টিভ সমাধান তা বিশ্লেষণ করাই হল সমস্যা বিশ্লেষণ। এক্ষেত্রে সমস্যাটিকে ছোট ছোট অংশে ভাগ করে সমাধান করার চেষ্টা করা হয়। সমস্যা সমাধানের ক্ষেত্রে কতকগুলো বিষয় এই ধাপে বিবেচনা করা হয়ে থাকে।
প্রোগ্রাম ডিজাইন ( অ্যালগরিদম , ফ্লােচার্ট ) :
প্রোগ্রাম ডিজাইন বলতে বুঝায়- সমস্যা বিশ্লেষণ ধাপে সমস্যাটিকে যে ছোট ছোট অংশে ভাগ করা হয়েছে তাদের পারস্পরিক সম্পর্ক ও সামগ্রিক সমাধান বের করে তার সূডোকোড বা অ্যালগোরিদম অথবা ফ্লোচার্ট তৈরি করা।
এক্ষেত্রে নিম্নলিখিত বিষয়গুলো বিবেচনা করা হয়-
- ইনপুট ডিজাইন
- আউটপুট ডিজাইন
- ইনপুট ও আউটপুটের মধ্যে সম্পর্ক ডিজাইন ইত্যাদি
প্রোগ্রাম কোডিং করা:
টেস্টিংঃ প্রোগ্রাম টেস্টিং হচ্ছে, কোনো প্রোগ্রাম উন্নয়ন বা কোডিং সম্পন্ন করার পর প্রোগ্রামটি রান করছে কিনা বা যে ধরনের আউটপুট বা ফলাফল হওয়া উচিৎ তা ঠিকমতো আসছে কিনা তা যাচাই করা। এই ধাপে ভিন্ন ভিন্ন ইনপুট দিয়ে আউটপুটের অবস্থা পর্যবেক্ষণ করা হয়। এক্ষেত্রে যদি কোন অসঙ্গতি পাওয়া যায় তবে বুঝতে হবে প্রোগ্রাম কোডিংয়ের কোথাও ভুল হয়েছে। প্রোগ্রামে সাধারণত নিচের ভুলগুলো পরিলক্ষিত হয়। যথা:
- ব্যাকরণগত ভুল (Syntax Error)
- যৌক্তিক ভুল (Logical Error)
- রান টাইম বা এক্সিকিউশন টাইম ভুল (Run Time or Execution Time Error)
সিনট্যাক্স ভুল/ব্যাকরণগত ভুলঃ প্রোগ্রামের মধ্যে প্রোগ্রামিং ভাষার ব্যাকরণগত যেসব ভুল থাকে তাকে বলা হয় সিনট্যাক্স ভুল। যেমন- বানান ভুল,কমা, ব্র্যাকেট ঠিকমতো না দেয়া, কোনো চলকের মান না জানানো প্রভৃতি। এসব ভুল সংশোধন করা খুবই সহজ, কারণ সিনট্যাক্স ভুল হলে অনুবাদক প্রোগ্রাম ভুলের বার্তা ছাপায়। যেমন- প্রোগ্রামে printf() কমান্ডের পরিবর্তে print() লেখা। সিনট্যাক্স ভুলকে কম্পাইল টাইম ভুলও বলা হয়।
লজিক্যাল বা যৌক্তিক ভুলঃ প্রোগ্রামে যুক্তির ভুল থাকলে তাকে বলে লজিক্যাল ভুল। সাধারণত সমস্যা ঠিকমতো না বুঝার জন্যই এ ভুল হয়। যেমন- a>b এর স্থলে a<b বা s=a+b এর স্থানে s=a-b লিখলে লজিক্যাল ভুল হয়। লজিক্যাল ভুলের ক্ষেত্রে একটি উত্তর পাওয়া যায় যদিও তা ভুল। এক্ষেত্রে অনুবাদক প্রোগ্রাম কোনো ভুলের বার্তা ছাপায় না বলে লজিক্যাল ভুল সংশোধন করা খুব কঠিন।
রান টাইম বা এক্সিকিউশন টাইম ভুলঃ রান টাইম ভুল প্রোগ্রাম এক্সিকিউশনের সময় ঘটে। যেমন- শূন্য দিয়ে ভাগ করা কিংবা ঋণাত্বক সংখ্যার বর্গমূল বা লগারিদম বের করা, ডাইনামিক মেমোরি অ্যালোকেশনের সময় অপর্যাপ্ত মেমোরি থাকা ইত্যাদি। অনুবাদক প্রোগ্রাম অনুবাদ করার সময় এই ধরণের ভুল নির্নয় করতে পারে না। এই ধরণের ভুল সম্বলিত প্রোগ্রাম রান করবে কিন্তু প্রোগ্রাম বন্ধ হয়ে যেতে পারে। রান টাইম ভুল নির্নয় এবং সংশোধন করা কঠিন। যৌক্তিক ভুল এক ধরণের রান-টাইম ভুল কারণ এই ধরণের ভুল কম্পাইলার নির্নয় করতে পারে না বা ডিবাগিং এর মাধ্যমে নির্নয় করা যায় না।
ডিবাগিংঃ আমরা প্রোগ্রাম টেস্টিং এর ক্ষেত্রে প্রোগ্রামে বিভিন্ন ধরনের ভুল সম্পর্কে জেনেছি। প্রোগ্রামে যেকোনো ভুল চিহ্নিত করতে পারলে সেই ভুলকে বলা হয় বাগ (Bug)। উক্ত ভুল বা Bug কে সমাধান করাকে বলা হয় ডিবাগ (Debug)। অর্থাৎ প্রোগ্রামের ভুল-ত্রুটি(Error) খুঁজে বের করে তা সমাধান করার প্রক্রিয়াকে বলা হয় ডিবাগিং।
এক্ষেত্রে ডিবাগিং এর মাধ্যমে Syntax Error সমাধান করা সহজ কিন্তু Logical Error এবং Run-time Error সমাধান করা তুলনামূলক জটিল।
১৯৪৫ সালে মার্ক-১ কম্পিউটারের ভিতরে একটি মথপোকা প্রবেশ করে বাসা বাধে, ফলে কম্পিউটারটি অকার্যকর হয়ে পড়ে। তখন থেকে কম্পিউটার বিজ্ঞানে Bug কথাটির অর্থ ত্রুটি(Error)।
প্রোগ্রাম রিলিজ করা:
প্রোগ্রাম ব্যবহারের জন্য উম্মুক্ত করা , যাতে সবাই ব্যবহার করতে পারে
প্রোগ্রাম সংগঠন
প্রতিটি পূর্ণাঙ্গ প্রোগ্রামের তিনটি অপরিহার্য অংশ থাকে, যা পারস্পারিক সম্পর্কের মাধ্যমে একটি পূর্ণাঙ্গ প্রোগ্রাম গঠিত হয়।
ইনপুট: প্রতিটি প্রোগ্রামে প্রসেস বা প্রক্রিয়া করার জন্য ইনপুট নেওয়ার ব্যবস্থা থাকতে হবে।
প্রসেস বা প্রক্রিয়া: ব্যবহারকারীর কাছ থেকে ইনপুট নিয়ে প্রসেস বা প্রক্রিয়া করার ব্যবস্থা থাকতে হবে।
আউটপুট: ইনপুট নিয়ে প্রসেস করে আউটপুট দেখানোর ব্যবস্থাও থাকতে হবে।
১। প্রোগ্রাম অবশ্যই সহজ ও বোধগম্য হতে হবে, যাতে অন্যকোন প্রোগ্রামার পরবর্তীতে আপডেট করতে পারে।
২। প্রোগ্রামটি রান করার জন্য সময় ও মেমোরি নূনতম হতে হবে।
৩। প্রোগ্রাম সহজে সম্প্রসারণযোগ্য হতে হবে।
৪। ডিবাগিং এবং টেস্টিং করা সহজতর হতে হবে।
৫। প্রোগ্রাম সহজে রক্ষণাবেক্ষণযোগ্য হতে হবে।