SDLC অথবা Software Development Life Cycle এর সাথে পরিচিতি

আমরা তো সাধারণত বিভিন্ন সময়ে বিভিন্ন সফটওয়্যার ব্যবহার করি। তবে আমাদের ব্যবহারের উপযোগী হওয়ার আগে ও পরে (মূলত আগে) একটি সফটওয়্যার তৈরী হতে একে বিভিন্ন একের পর এক প্রক্রিয়ার মাধ্যমে পার হয়ে আসতে হয়।

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 এর ব্যপারে আগ্রহী তাদের জন্য।

**** আমার সরাসরি কোর্স এ আগ্রহী হলে কোর্স এর ব্যপারে জানতে এখানে ক্লিক করুন

Advertisements

সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং এর প্রয়োজনীয়তা

প্রথম ক্লাশে আমরা এখানে জেনেছি যে সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং আসলে কি। আজকে আমরা জানবো যে সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং এর আসলে কেনো প্রয়োজন।

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

  • মোবাইল এ গেমস খেলে সেভ করে রাখলেন, কিন্তু খেলতে গেলে আবার নতুন করে শুরু করতে হয়।
  • আপনার নিরাপদ ইমেইল এ যে কেউ খুব সহজেই লগইন করতে পারে।
  • আপনি আপনার ব্যাংক অ্যাকাউন্ট থেকে ইন্টারনেট ব্যাংকিং এর মাধ্যমে কাউকে ১০০০০টাকা পাঠালেন, কিন্তু চলে গেলো ১০০০০০টাকা, কি বিপদ!!!
  • আপনি হসপিটাল এ একটা টেস্ট করাতে গেলেন, কিন্তু সফট্‌ওয়্যার এ ত্রুটি থাকার কারণে আপনার টেস্ট এর রেজাল্ট সম্পুর্ণই বিপরীত হলো, তখন কি হবে?

উপরোক্ত ঘটনাগুলা থেকে আমরা বুঝতে পারি যে একটা সফট্‌ওয়্যার এর ত্রুটি কতবড় সমস্যার সৃষ্টি করতে পারে। এবং এ ছাড়াও কিছু সমস্যা আছে যা আমাদের পক্ষে দেখা সম্ভব নয়। যেমন এই সফট্‌ওয়্যার যে কোম্পানি এর তৈরী তার মানদণ্ড কিন্তু এইসব কারণে হুমকিস্বরুপ হতে পারে, আবার এইরকম ত্রুটি ধরা পড়লে এগুলো ঠিক করতে প্রোগ্রামারের অতিরিক্ত সময়ের প্রয়োজন হয় যা কিনা যথেষ্ঠ ব্যয় ও সময়সাপেক্ষ।

এইসব রকম এবং আনুসাঙ্গিক কারণে সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং এর প্রয়োজন। যাতে করে একটা সফট্‌ওয়্যার সাধারণ ব্যবহারকারীর ব্যবহারের উপযোগী হবার আগে যতটুকু সম্ভব এর ভিতরের সমস্যা খুঁজে বের করা হয়, তারপর তার সমাধান করে ফেলা হয়। এতে করে ব্যবহারকারীকে যেমন কোন সমস্যায় পড়তে হয়না, তেমন কোনও পরবর্তী সমস্যাও এড়ানো যায়। তো আমরা এই থেকে বলতে পারি যে, সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং এর মাধ্যমেঃ

  • একটা সফট্‌ওয়্যার এ কি কি রকম সমস্যার লক্ষণ রয়েছে তা প্রকাশ করে
  • সফট্‌ওয়্যার এর ব্যয়সাপেক্ষ ও অর্থসাপেক্ষ জনিত সমস্যা দুর করে
  • সফট্‌ওয়্যার যেন ব্যবহারকারীর উপযুক্ত হয় তা নিশ্চিত করে

অথবা, ইংরেজীতে বললে,

  • Software QA & Testing shows the presents of defects
  • It reduces the expense and time complexity
  • It keeps the standard of a software good enough for the end-user
  • It keeps the business reputation high

আগামীতে আমরা জানবো সফট্‌ওয়্যার সফটওয়্যার ডেভেলপমেন্ট লাইফ সাইকেল (SDLC: Software Development Life Cycle) এর ব্যাপারে…

**** আমার সরাসরি কোর্স এ আগ্রহী হলে কোর্স এর ব্যপারে জানতে এখানে ক্লিক করুন

সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং এর সাথে পরিচয়

আমরা বর্তমানে এমন এক অবস্থানে আছি যা সম্পুর্ণই প্রযুক্তিনির্ভর। হোক তা মোবাইল, ডেস্কটপ, ল্যাপটপ, কিংবা গাড়ি, হাসপাতাল, স্কুল, বিভিন্ন প্রতিষ্ঠান, এমনকি বাড়িতেও রয়েছে প্রযুক্তির ছোঁয়া। যেখানে এই ডিভাইস বা যন্ত্রগুলো চালানো হয় সফটওয়্যার এর মাধ্যমে, সফট্‌ওয়্যার এর মাধ্যমে আমরা আমাদের নির্দেশনা বা কমান্ড (Command) দেই এবং সফট্‌ওয়্যার তা সম্পন্ন করে দেয়।

সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং হচ্ছে ‘সফট্‌ওয়্যার ইঞ্জিয়ারিং(Software Engineering)  বা বাংলায় বললে সফট্‌ওয়্যার প্রকৌশল এর এমন একটি ধাপ যেখানে একটি সফট্‌ওয়্যার কে বিভিন্নভাবে নিরীক্ষণ ও পর্যবেক্ষন এর মাধ্যমে দেখা হয় যে এতে কোন ত্রুটি রয়েছে কিনা, যাতে করা আমরা সফট্‌ওয়্যার কে যখন কোনও নির্দেশনা বা কমান্ড দিবো তখন যেন সফলভাবে পরিচালনা করা সম্ভব হয়। এই পর্যবেক্ষন হতে পারে সফট্‌ওয়্যার তৈরীর শেষের দিকে অথবা তৈরীর শুরুতেই।

সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং এর মূল লক্ষ্য হচ্ছে এটার মধ্যে যদি ত্রুটি থাকে তাহলে খুঁজে বের করা এবং একই সাথে সফট্‌ওয়্যার এর কোয়ালিটি (Quality) বা মানদণ্ড ঠিক আছে কিনা সেটারও খেয়াল রাখা।

তাহলে, পরিশেষে আমরা বলতে পারি যে, সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং (Software Quality Assurance and Testing) হচ্ছে এমন একটি কার্যক্রম বা প্রক্রিয়া যেখানে সফট্‌ওয়্যার এর পরিপূর্ণতা(Completeness), সঠিকতা(Correctness), এবং মানদণ্ড(Quality) পর্যবেক্ষন করা হয়। or,

Software Quality Assurance and Testing is a process & a set of activities to identify and verify the correctness, completeness, and quality of a Software.

 

** পরবর্তীতে আমরা জানবো সফট্‌ওয়্যার কোয়ালিটি অ্যাসুরেন্স ও টেস্টিং এর প্রয়োজনীয়তা…

**** আমার সরাসরি কোর্স এ আগ্রহী হলে কোর্স এর ব্যপারে জানতে এখানে ক্লিক করুন