সফটওয়্যার উন্নয়নের ধাপ
সফটওয়্যার বা প্রোগ্রাম উন্নয়ন করার জন্য পরস্পর সম্পর্কযুক্ত কিছু কাজ ধাপে ধাপে করা হয়। ধাপগুলো পরস্পর নির্ভরশীল বিধায় একাধিক ধাপের কাজ একই সাথে বা কোনো কোনো ধাপের কাজ বার বার করা হয়। আবার ব্যবহারকারী যেকোনো সময় প্রয়োজনে পূর্বের ধাপে ফিরে যেতে পারে। এ ধরনের প্রক্রিয়াকেই বলা হয় সফটওয়্যার উন্নয়ন প্রক্রিয়া বা ধাপ। অর্থাৎ কম্পিউটারনির্ভর সফটওয়্যার বা প্রোগ্রাম উন্নয়ন জন্য সফটওয়্যারের বিভিন্ন দিক বিশ্লেষণ ও পরিকল্পনা প্রণয়নসহ আনুষঙ্গিক কাজগুলো ধাপে ধাপে এবং পর্যায়ক্রমে সম্পন্ন করার প্রক্রিয়াই হচ্ছে সফটওয়্যার উন্নয়নের ধাপ বা চক্র। সফটওয়্যার উন্নয়নের জন্য সিস্টেম ব্যবহারকারী, সিস্টেম অ্যানালিস্ট এবং প্রোগ্রাম রচয়িতার মধ্যে ঘনিষ্ট যোগাযোগ রাখার প্রয়োজন হয়। কম্পিউটারের সাহায্যে কোনো সমস্যা সমাধানের জন্য প্রোগ্রাম বা সফটওয়্যার উন্নয়নের ধাপসমূহ নিম্নরূপ-
১. তথ্যানুসন্ধান ও সমস্যার বর্ণনা (Investigation and Problem Description)
২. সমস্যার বিশ্লেষণ (Problem Analysis)
৩. প্রোগ্রাম ডিজাইন (Program Design)
৪. প্রোগ্রাম কোডিং (Program Coding)
৫. প্রোগ্রাম বাস্তবায়ন (Program Implementation)
৬. প্রোগ্রাম ডকুমেন্টটেশন (Program Documentation) ও
৭. প্রোগ্রাম রক্ষণাবেক্ষণ (Program Maintenance)
তথ্যানুসন্ধান ও সমস্যার বর্ণনা
Investigation and Problem Description
যে সমস্যাটির সমাধানের জন্য প্রোগ্রাম লিখতে হবে তার একটি পরিপূর্ণ ও সহজ বিবরণ তৈরি করা ও তথ্য সংগ্রহ করা। সমস্যাটি চিহ্নিত ও সেটি সম্পর্কে ভালভাবে অবহিত হওয়ার পর সমস্যাটি আদৌ কম্পিউটার ব্যবহার করে সমাধান সম্ভব কি না বা সম্ভব হলে সুবিধাজনক কি না তা নির্ধারণ করতে হবে। বিভিন্ন উৎস হতে ডেটা সংগ্রহ করে প্রস্তাবিত সফটওয়্যারের উদ্দেশ্য, বৈশিষ্ট্য, ব্যয় ও অন্যান্য প্রয়োজনীয় বিষয় সম্পর্কে সিদ্ধান্ত দেওয়া হয়। সমস্যায় কী ধরনের ইনপুট হবে এবং সঠিক বিশ্লেষণের মাধ্যমে কী ধরনের আউটপুট প্রয়োজন সে বিষয়ে সিদ্ধামেত্ম পৌঁছা।
সমস্যার বিশ্লেষণ
Problem Analysis
এ ধাপে প্রস্তাবিত সফটওয়্যার বা প্রোগ্রামটির প্রকৃতি, আওতা, প্রয়োজনীয় দিক-নির্দেশনা এবং সম্ভাব্যতা আরো ভালোভাবে বোঝার জন্য বিস্তারিত বা ব্যাপক বিশ্লেষণ করার পদক্ষেপ গ্রহণ করা হয়। মূলত এ ধাপে ডেটা প্রসেসিংয়ের সমস্যাটি চিহ্নিত করে সমাধানের বিভিন্ন পথ বিশ্লেষণ করা হয় এবং সমস্যা চিহ্নিত করার পর কীভাবে সমস্যাটি সমাধান করা যায় তা বের করতে হবে। এ ধাপে বিশ্লেষণ করা হয় প্রোগ্রামে কী ধরনের ডেটা ইনপুট করা হবে, কীভাবে ডেটা প্রক্রিয়াকরণ করা হবে এবং কীভাবে ফলাফল উপস্থাপন করা হবে ইত্যাদি। ফলাফল তৈরি করার জন্য প্রয়োজনে গাণিতিক ও লজিক্যাল মডেল তৈরি করা হয়। সর্বোপরি সমস্যা বিশ্লেষণের ক্ষেত্রে বিবেচ্য বিষয়সমূহ হলো-
১. সমস্যার কাঠামোগত বর্ণনা প্রস্তুত করা এবং সম্ভব হলে গাণিতিক মডেল তৈরি করা।
২. ইনপুট শনাক্তকরণ।
৩. আউটপুট শনাক্তকরণ।
৪. প্রয়োজনমতো কম্পিউটারের মেমরি নির্ধারণ করা ইত্যাদি।
এছাড়া সমস্যাটি সমাধানে কত সময় লাগবে বা কত সময় ব্যয় হবে, তাও নির্ধারণ করা হয়।
অবশ্য সমস্যা বিশ্লেষণে নিমণলিখিত টুলসগুলো ব্যবহার করা হয়-
১। ডেটা ফ্লো ডায়াগ্রাম (Data Flow Diagram – DFD)
২। ডেটা ডিকশনারি (Data Dictionary)
৩। স্ট্রাকচার্ড ইংলিশ (Structured English)
৪। ডিসিশন ট্রি (Decision Tree)
৫। ডিসিশন টেবিল (Decision Table) ইত্যাদি।
প্রোগ্রাম ডিজাইন
Program Design
সমস্যা সমাধান করার জন্য বর্তমান সিস্টেমের প্রয়োজনীয় সংশোধন করে নতুন সিস্টেমের মূল রূপ রেখা নির্ণয় করাকেই ডিজাইন বা পরিকল্পনা বলা হয়। ডিজাইন ধাপের মূল বিষয় হচ্ছে কীভাবে সমস্যাটি সমাধান করে কার্যকরী প্রক্রিয়া তৈরি করা যায়। সমস্যা বিশ্লেষণের পর প্রোগ্রাম ডিজাইনের কাজ শুরু করা হয়। প্রোগ্রাম ডিজাইনে সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হলো আউটপুট ডিজাইন। অর্থাৎ প্রোগ্রাম থেকে ফলাফল কী হবে তা পূর্বে ডিজাইন করতে হবে এবং সে অনুযায়ী প্রয়োজনীয় ডেটা ইনপুট দিতে হবে। এ ক্ষেত্রে ইনপুট ও আউটপুটের পারস্পরিক সম্পর্কেও কথা বিবেচনা করতে হবে। তাই প্রোগ্রাম ডিজাইনে বিবেচ্য বিষয়সমূহ হলো-
১. ইনপুট ডিজাইন
২. আউটপুট ডিজাইন ও
৩. ইনপুট ও আউটপুটের মধ্যে সম্পর্ক ডিজাইন
প্রোগ্রাম ডিজাইনের ব্যবহৃত প্রধান টুলসসমূহ হলো-
১। অ্যালগরিদম
২। ফ্লোচার্ট ও
৩। সুডো কোড
অ্যালগরিদম (Algorithm) : কম্পিউটারের সাহায্যে কোনো সমস্যা সমাধানের জন্য সমস্যাটিকে ছোট ছোট ধাপে বিভক্ত করে যুক্তিসম্মতভাবে পর্যায়ক্রমে লিপিবদ্ধ করাকে অ্যালগরিদম বলে। অর্থাৎ অ্যালগরিদম হচ্ছে প্রোগ্রাম রচনা ও নির্বাহের শুরু থেকে শেষ পর্যন্ত ধাপগুলো পর্যায়ক্রমিকভাবে লিপিবদ্ধ করা। কম্পিউটারের সাহায্যে কোনো সমস্যা সমাধানে প্রোগ্রামিংয়ের ক্ষেত্রে অ্যালগরিদমের ভূমিকা অত্যন্ত গুরুত্বপূর্ণ। অ্যালগরিদম তৈরির শর্ত বা নিয়মসমূহ হলো-
১. অ্যালগরিদমটি সহজবোধ্য হবে।
২. প্রতিটি ধাপ স্পষ্ট হতে হবে, যাতে সহজে বোঝা যায়।
৩. সসীমসংখ্যক ধাপে সমস্যার সমাধান হতে হবে।
৪. অ্যালগরিদম ব্যাপকভাবে প্রয়োগ উপযোগী হতে হবে।
অ্যালগরিদমের সুবিধা
১। সহজে প্রোগ্রামের উদ্দেশে বোঝা যায়।
২। সহজে প্রোগ্রামের ভুল নির্ণয় করা যায়।
৩। প্রোগ্রামের প্রবাহের দিক বোঝা যায়।
৪। জটিল প্রোগ্রাম সহজে রচনা করা যায়।
৫। প্রোগ্রাম পরিবর্তন ও পরিবর্ধনে সহায়তা করে।
ফ্লোচার্ট বা প্রবাহ চিত্র (Flowchart) : প্রোগ্রাম বা কোনো উপাত্ত প্রক্রিয়াকরণের পদ্ধতিকে সহজে চিত্রের সাহায্যে তুলে
ধরার জন্য সাংকেতিক চিহ্ন, বর্ণনাভিত্তিক এবং পর্যায়ক্রমিক রূপরেখাকে ফ্লোচার্ট বা প্রবাহ চিত্র বলা হয়। ফ্লোচার্ট হচ্ছে
অ্যালগরিদমের চিত্ররূপ। অর্থাৎ অ্যালগরিদমের ধাপসমূহ চিত্রের মাধ্যমে উপস্থাপন করাকে ফ্লোচার্ট বলে। ফ্লোচার্টের
সুবিধাসমূহ হলো-
১। সহজে প্রোগ্রামের উদ্দেশ্য বুঝতে সাহায্য করে।
২। প্রোগ্রামের ভুল নির্ণয়ে সাহায্যে করে।
৩। প্রোগ্রাম প্রক্রিয়াকরণের উদ্দেশ্য বুঝতে সহায়তা করে।
৪। সহজে ও সংক্ষেপে জটিল প্রোগ্রাম লেখা সম্ভব হয়।
৫। প্রোগ্রামের পদ্ধতির পরিবর্তন ও ভুল সংশোধনে সাহায্যে করে।
সুডো কোড (Pseudo Code) : সুডো অর্থ হলো অবাস্তব, অর্থাৎ যা সত্য নয়। প্রোগ্রাম রচনার ধারাবাহিক বিন্যাসকে কথায় লেখাই হলো সুডো কোড। এটি অনেক প্রোগ্রাম লেখার মতোই। সুডো কোডকে অনেকে অ্যালগরিদমের বিকল্প বলে থাকেন। ইংরেজিতে সাধারণত এটি রচনা করা হয়। যেমন : দুটি সংখ্যার যোগফল বের করার সুডো কোড নিচে দেওয়া
হলো-
INPUT NUMBER1
INPUT NUMBER2
TOTAL= NUMBER1 + NUMBER2
PRINT TOTAL
সুডো কোড কোনো প্রোগ্রামিং ল্যাংগুয়েজের নিয়ম মেনে লেখা হয় না। তবে কোনো প্রোগ্রামের সুডো কোড পড়লে বোঝা যায় কোডিং কেমন হবে।
প্রোগ্রাম কোডিং
Program Coding
অ্যালগরিদম এবং ফ্লোচার্ট তৈরির পর প্রকৃত প্রোগ্রাম রচনা করা হয়। অ্যালগরিদম এবং ফ্লোচার্টের ওপর ভিত্তি করে উপযুক্ত প্রোগ্রামিং ভাষার সাহায্যে প্রোগ্রাম রচনা করা বা লেখাকেই প্রোগ্রামিংয়ের ভাষায় বলা হয় কোডিং। সফটওয়্যার উন্নয়নের জন্য সিস্টেম ব্যবহারকারী, সিস্টেম অ্যানালিস্ট এবং প্রোগ্রাম রচয়িতার মধ্যে ঘনিষ্ঠ যোগাযোগ রাখার প্রয়োজন হয়। কারণ প্রোগ্রাম রচনার সময় প্রস্তাবিত সিস্টেমের সামান্য পরিবর্তন করতে হলে সিস্টেম ব্যবহারকারীর পরামর্শের প্রয়োজন হয়। এই ধাপের গুরুত্বপূর্ণ বিষয়গুলো নিমণরূপ-
১। প্রোগ্রাম কোডিং বা প্রোগ্রাম রচনা।
২। প্রোগ্রামের কার্যকারিতা পরীক্ষণ।
৩। প্রোগ্রামের ভুলত্রম্নটি শনাক্তকরণ ও সংশোধন।
৪। চাহিদা অনুযায়ী প্রোগ্রামে সকল বিষয় অন্তর্ভুকরণ।
৫। সফটওয়্যারের বিভিন্ন পর্যায়ের ধারাবাহিকতা নির্ধারণ।
প্রোগ্রাম বাস্তবায়ন
Program Implementation
পরিকল্পনা অনুযায়ী সফটওয়্যার উন্নয়নের সকল কাজ সুষ্ঠুভাবে সম্পাদনের পর সফটওয়্যার বাস্তবায়ন করা হয়। এ ধাপে প্রোগ্রাম কোডিং করার পর প্রোগ্রামটি রান করতে হয়ে। রান করার ফলে প্রোগ্রামে কোনো ভুল থাকলে তা ধরা পড়ে। অর্থাৎ এ অংশে প্রোগ্রামকে টেস্টিং বা পরীক্ষা করা হয় কোনো ভুল আছে কি না এবং থাকলে তা সংশোধন করা হয়। প্রোগ্রামের ভুলকে বাগ (Bug) এবং প্রোগ্রামের ভুল বা ত্রম্নটিসমূহ খুঁজে বের করে তা সংশোধন করার পদ্ধতিকে ডিবাগিং (Debugging) বলে। তাই প্রোগ্রাম বাস্তবায়নে দুটি ধাপ গুরুত্বপূর্ণ। যথা-
১. প্রোগ্রাম টেস্টিং ও
২. প্রোগ্রাম ডিবাগিং
যুক্তিগত ভুল সংশোধন করা খুব কঠিন, কারণ কম্পিউটার কোনো ভুলের বার্তা মনিটরে প্রদর্শন করে না। প্রোগ্রামে লজিক ভুল সংশোধনের জন্য যে পদ্ধতি গ্রহণ করা যায় তাকে বলা হয় প্রোগ্রাম টেস্টিং। লজিক ভুল আছে কিনা বুঝতে হলে প্রথমে প্রোগ্রাম ডেটার কিছু বিশেষ মান বসিয়ে কম্পিউটারের সাহায্য ছাড়া হাতে-কলমে ফলাফল বের করা হয়। এরপর ডেটার জানা মানগুলো ইনপুট করে প্রোগ্রাম চালিয়ে দেখা হয়।
প্রোগ্রাম ডকুমেন্টেশন
Program Documentation
প্রোগ্রাম ভবিষ্যতে পরিবর্তন ও পরিবর্ধনের জন্য ডকুমেন্টেশন অতিব জরুরি। প্রোগ্রাম ডকুমেন্টেশন বলতে বোঝায় সমস্যার বিবরণ, অ্যালগরিদম, ফ্লোচার্ট, গ্রাফ, কোডিং, পরীক্ষার ফলাফল, ব্যবহারকারীর জন্য প্রয়োজনীয় নির্দেশ ইত্যাদির লিখিত বিবরণ বা ডকুমেন্ট প্রস্তুত করা। ঠিকমতো ডকুমেন্টেশন করা না থাকলে পরে প্রোগ্রামকে কোনো ভাবে পরিবর্তন করা কঠিন বা অসম্ভব হয়ে পড়ে। তাই প্রোগ্রাম সঠিকভাবে কাজ করা পর্যন্ত যাবতীয় তথ্যাবলি ভবিষ্যতের জন্য লিপিবদ্ধ করতে হয়।
প্রোগ্রাম রক্ষণাবেক্ষণ
Program Maintenance
সফটওয়্যার উন্নয়ন চক্রের শেষ ধাপ হলো প্রোগ্রাম রক্ষণাবেক্ষণ। প্রয়োজনীয় পরিবর্তন, পরিবর্ধন বা উন্নয়নের জন্য সফটওয়্যারের কার্যকারিতা পর্যবেক্ষণ করার প্রয়োজন হয়। ভবিষ্যতে উন্নয়নের জন্য সফটওয়্যার সযত্নে রক্ষণাবেক্ষণ করা হয়। এ ক্ষেত্রে রক্ষণাবেক্ষণের মাধ্যমে অপ্রত্যাশিত ভুলভ্রান্তি ও সমস্যা দূর করা হয়ে থাকে। অপারেটরদের দক্ষতা বৃদ্ধির সাথে সাথে অনেক ছোটখাটো ভুলভ্রান্তি এমনিতেই দূর করা যায়। সফটওয়্যার দীর্ঘদিন এবং সঠিকভাবে ব্যবহারের ঠিকমতো রক্ষণাবেক্ষণের প্রয়োজন হয়। বিভিন্ন প্রয়োজনে প্রোগ্রামের উন্নতিকল্পে প্রোগ্রাম আধুনিকীকরণ, পরিবর্তন, প্রোগ্রামের ভুল সংশোধন ইত্যাদি প্রোগ্রাম রক্ষণাবেক্ষণ কাজের অন্তর্ভুক্ত।
0 comments:
Post a Comment