আমরা তো সাধারণত বিভিন্ন সময়ে বিভিন্ন সফটওয়্যার ব্যবহার করি। তবে আমাদের ব্যবহারের উপযোগী হওয়ার আগে ও পরে (মূলত আগে) একটি সফটওয়্যার তৈরী হতে একে বিভিন্ন একের পর এক প্রক্রিয়ার মাধ্যমে পার হয়ে আসতে হয়।
SDLC অথবা Software Development Life Cycle হচ্ছে এমনই একটি প্রক্রিয়া। মূলত একটা সফটওয়্যার তৈরী হবার আগেই সফটওয়্যারটি ক্যামন হবে, কি জন্য হবে, কাদের জন্য হবে (মানে ব্যবহারকারী কারা হবেন), কি কি ফিচার ও ফাংশন থাকবে তা থেকে শুরু করে কেমন ডিজাইন, ল্যাঙ্গুয়েজ, আর্কিটেকচার নির্ধারণ করা, প্রোগ্রামার দের সহায়তায় ডেভেলপ করা, টেস্টার দের টেস্টিং হয়ে কাস্টমার বা আমাদের হাতে আসার পরও পরবর্তী সমস্যার জন্য প্রস্তুত থাকা এই সবই এই প্রক্রিয়ার অংশ। তাই SDLC অথবা Software Development Life Cycle এর ব্যপারে জানা আমাদের জন্য খুবই জরুরী, কারণ এতে করে আমরা একটু আমাদের কাজের উপযোগী ক্ষেত্র এর ব্যপারে জানতে পারবো।
তো আজকে আমরা জানবো যে SDLC অথবা Software Development Life Cycle প্রক্রিয়াতে কি কি ধাপ রয়েছে এবং একটি সফটওয়্যার তৈরীতে কোন কোন ধাপে কোন কাজগুলো সম্পন্ন হয়। ধাপগুলো হলোঃ
- Requirement
- Analysis
- Design
- Development
- Testing
- Maintenance
Requirement: এটি হচ্ছে একেবারে প্রথম ধাপ। এই ধাপে সফটওয়্যার তৈরীর মূল কারণ, এই সফটওয়্যার এ কি কি ফিচার ও ফাংশন থাকবে, কোন কোন ফিচার কোন কোন ব্যবহারকারী ব্যবহার করবে তা ফাইনালাইজড হয়। এটি একটি গুরুত্বপুর্ন ধাপ কারণ কিছু ফিচার আছে যা কিনা সব রকম সফটওয়্যার এই থাকে যেমন একই বা বিভিন্ন ডিভাইস এ লগইন করা, ফেসবুকে যেমন আপনি চাইলেই একসাথে ২/৩টা কম্পিউটার বা মোবাইলে লগইন করতে পারবেন, আবার একটা ব্যাংকিং সফটওয়্যার এ এমন Requirement থাকতে পারে যে একসাথে একজন ব্যবহারকারী শুধুমাত্র একটা কম্পিউটার এই লগইন থাকতে পারবেন। তাই Requirement এর ব্যপারটা ক্লিয়ার হওয়া খুবই গুরুত্বপুর্ণ। সাধারণ কাগজপত্রের মাধ্যমে এই Requirement ফাইনালাইজড করা যাতে করে এটা নিয়ে ভবিষ্যতে কোন প্রকার ঝামেলা না হয়।
Analysis: Requirement এর ধাপ পেরোনোর পর শুরু হয় Analysis যা কিনা SDLC অথবা Software Development Life Cycle এর সবচাইতে গুরুত্বপূর্ণ ধাপ। কারণ এই ধাপেই নির্ধারণ করা হয় যে সফটওয়্যার তৈরীর জন্য ডেভেলপমেন্ট, টেস্টিং টিম এর কেমন সময় লাগবে। যে Requirement ফাইনাল হয় তা পর্যবেক্ষন ও নিরীক্ষণ করা, ডেভেলপমেন্ট টিম এর জন্য ডায়াগ্রাম, ডিজাইন, ল্যাঙ্গুয়েজ, আর্কিটেকচার নির্ধারণ করা, আবার টেস্টিং টিম এর জন্য কোন টেস্টিং প্রক্রিয়া এবং এর সাথে সম্পর্কিত সকল সম্ভাব্য পজিটিভ ও নেগেটিভ ঘটনা সবকিছু আগে থেকে ধারণা ও তার জন্য কোন সমাধান থাকা উচিৎ তা আগে থেকেই নির্ধারণ করে রাখা হয়।
Design: এই ধাপে ডিজাইনগুলো তৈরী ও ফাইলানাইজড করা হয় যার উপর ভিত্তি করে প্রোগ্রামার বা ডেভেলপার তা তাদের কোডিং দক্ষতার মাধ্যমে সফটওয়্যারটা তৈরী করেন। এই ডিজাইন হয় বিভিন্ন রকম ডায়াগ্রাম, আবার বিভিন্ন রকম গ্রাফিকাল কন্টেন্টসহ ডিজাইন।
Development: এই ধাপে প্রোগ্রামাররা উপরের Requirement, Analysis ও Design কে অনুসরণ করে সফটওয়্যার ডেভেলপ বা তৈরী করেন। এই ধাপটা মোটামুটি প্রোগ্রামিং নির্ভর। ডেভেলপমেন্ট শেষে সফটওয়্যার সম্পুর্ণ বা আংশিক একটা অংশ টেস্টার দের কে দেওয়া হয় টেস্ট এর জন্য।
Testing: এই ধাপে টেস্টার রা সফটওয়্যারটা টেস্ট করেন। তারা মূলত Analysis ধাপে টেস্টারদের জন্য তৈরী প্রক্রিয়া অনুসরণ করে দেখেন যে সফটওয়্যার এ কোনরকম ত্রুটি আছে কিনা। আর এইক্ষেত্রে সবচেয়ে বেশী তাদের কে ফলো করতে হয় Requirement এর অংশটুকু, কারণ ত্রুটি মুক্ত থাকার সাথে সাথে এটাও লক্ষ্য রাখতে হয় যে Requirement এ যা আছে তা সফটওয়্যার পরিপুর্ণ করতে পারছে কিনা। এভাবে কয়েকদফা টেস্টিং এর পরে একটা পর্যায়ে এসে আমাদের মতো কাস্টমারদের ব্যবহারের উপযোগী হয় এই সফটওয়্যার।
Maintenance: এই ধাপে মূলত কাজ হয় সফটওয়্যার মার্কেট এ আসার পর বা কাস্টমার এর কাছে যাবার পর। যদি এর পরে আর কোন নতুন ফিচার বা ফাংশন যোগ করা, অথবা নতুন কোনও ত্রুটি আসলে সেটা সমাধান করা এই ধরনের কাজগুলো হয়ে থাকে।
আজকে এই পর্যন্তই। আগামীতে আমরা জানবো STLC অথবা Software Testing Life Cycle এর ব্যপারে, যা আমরা যারা Software QA & Testing এর ব্যপারে আগ্রহী তাদের জন্য।