কম্পিউটার সফটওয়্যার

বৈদ্যুতিক গণকযন্ত্র বা কম্পিউটারের বিভিন্ন অংশকে কর্মোপযোগী করা, পরিচালনা করা এবং কোনো বিশেষ ব্যবহারিক কাজ সম্পন্ন করার উদ্দেশ্যে যে বিভিন্ন নির্দেশনাক্রম তথা প্রোগ্রাম এবং পুনর্ব্যবহারযোগ্য নির্দেশনাক্রম তথা রুটিন বা ফাংশন ব্যবহার করা হয় (যাদের মধ্যে কম্পিউটারের পরিচালক ব্যবস্থা বা অপারেটিং সিস্টেম অন্তর্ভুক্ত), তাদের সবগুলিকে একত্রে সাধারণভাবে কম্পিউটার সফটওয়্যার (ইংরেজি: Computer software), কম্পিউটার নির্দেশনাসামগ্রী বা কম্পিউটার তন্ত্রাংশসামগ্রী বলা হয়। এর বিপরীতে কম্পিউটারের ইলেকট্রনীয়, বৈদ্যুতিক, চৌম্বক ও অন্যান্য সমস্ত দৃশ্যমান ও স্পর্শনীয় ভৌত যন্ত্রাংশগুলিকে একত্রে কম্পিউটার যন্ত্রাংশসামগ্রী বা কম্পিউটার হার্ডওয়্যার বলে। কম্পিউটার সফটওয়্যার বা নির্দেশনাসামগ্রীকে দুইটি প্রধান শ্রেণীতে ভাগ করা যায়। একটি হল কম্পিউটারের পরিচালক ব্যবস্থা (অপারেটিং সিস্টেম) নির্দেশনাসামগ্রী বা সিস্টেম সফটওয়্যার, যা গণকযন্ত্রের অভ্যন্তরীণ এবং পারিপার্শ্বিক (চাবিফলক বা কি-বোর্ড, মাউস, দৃশ্যপর্দা বা মনিটর, উপাত্ত সংরক্ষণাগার বা স্টোরেজ, মুদ্রণযন্ত্র বা প্রিন্টার ইত্যাদি) যন্ত্রাংশগুলির ক্রিয়াকলাপের মধ্যে সমন্বয় সাধন করে এগুলিকে কর্মোপযোগী করে। দ্বিতীয়টি হল ব্যবহারিক নির্দেশনাসামগ্রী (বা তন্ত্রাংশসামগ্রী) বা আ্যপ্লিকেশন সফটওয়্যার, যেগুলিতে গণকযন্ত্র বা কম্পিউটারকে এমন সব নির্দেশনা বা আদেশ পালন করতে দেওয়া হয়, যাতে সেটি ব্যবহারকারীর প্রদত্ত উপাত্ত প্রক্রিয়াজাত করে কোনো ব্যবহারিক সমস্যার সমাধান করতে পারে। যেমন রচনা প্রক্রিয়াকরণ বা ওয়ার্ড প্রসেসিং, সারণিবদ্ধ উপাত্ত হিসাবনিকাশ বা স্প্রেডশিট, তথ্যভাণ্ডার বা ডাটাবেস, ইত্যাদি। এছাড়াও তৃতীয় এক শ্রেণীর নির্দেশনাসামগ্রী বা সফটওয়্যার আছে, যার নাম কম্পিউটার জাল-ব্যবস্থা নির্দেশনাসামগ্রী তথা নেটওয়ার্ক সফটওয়্যার, যেগুলি একটি জালসদৃশ ব্যবস্থা বা নেটওয়ার্ক গঠনকারী গণকযন্ত্র বা কম্পিউটারগুলির মধ্যকার যোগাযোগে সমন্বয় সাধন করে। আরও এক ধরনের নির্দেশনাসামগ্রী আছে যেগুলির কাজ হল মানুষকে বিভিন্ন ধরনের নির্দেশনাক্রম বা প্রোগ্রাম রচনা করতে সাহায্য করা। এগুলিকে নির্দেশনাক্রম রচনা সরঞ্জাম বা প্রোগ্রামিং টুল বলা হয়। অনেক সময় এগুলিকে একত্রে প্রোগ্রাম রচনামূলক নির্দেশনাসামগ্রী বা প্রোগ্রামিং সফটওয়্যার নামেও ডাকা হয়। কম্পিউটার নির্দেশনাক্রমগুলি তথা প্রোগ্রামগুলি মানুষের স্বাভাবিক মুখের ভাষার লিখিত রূপে লেখা হয় না। বরং এগুলিকে বিশেষ ধরনের কৃত্রিম সাংকেতিক (কিন্তু মানুষের বোধগম্য) এক ধরনের ভাষায় রচনা করা হয়, যে ভাষাগুলিকে নির্দেশনাক্রম ভাষা বা প্রোগ্রামিং ভাষা নামে ডাকা হয়। প্রোগ্রামিং ভাষাতে লেখা সাঙ্কেতিক নির্দেশনাগুলিকে উৎস সঙ্কেত বা সোর্স কোড বলা হয়। কিন্তু গণকযন্ত্র বা কম্পিউটার এই উৎস সঙ্কেতের ভাষা প্রক্রিয়াজাত করতে পারে না। তাই উৎস সঙ্কেতকে কম্পাইলার বা সঙ্কলক নামক আরেকটি প্রোগ্রামের সাহায্যে যান্ত্রিক ভাষা নামের কৃত্রিম ভাষাতে ভাষান্তরিত করা হয়, এবং এই ভাষান্তরের ফলে উৎপন্ন যান্ত্রিক সঙ্কেত গণকযন্ত্র বা কম্পিউটার "বুঝতে" বা প্রক্রিয়াজাত করতে পারে ও এতে অবস্থিত নির্দেশনাগুলি নির্বাহ করতে পারে। নির্দেশনাসামগ্রী বা সফটওয়্যার সাধারণত দীর্ঘস্থায়ী স্মৃতির শক্ত চাকতি বা হার্ড ডিস্কে চৌম্বকীয় সঙ্কেত হিসেবে সংরক্ষিত থাকে। যখন কোনও নির্দেশনাক্রম বা প্রোগ্রাম নির্বাহ করতে হয়, তখন কম্পিউটার বা গণকযন্ত্রের মূল প্রক্রিয়াকারক অংশ (সেন্ট্রাল প্রসেসিং ইউনিট) সেটিকে সংরক্ষিত দীর্ঘস্থায়ী স্মৃতি থেকে "পড়ে" নেয় এবং ঐ নির্দেশনাক্রমের একটি অনুলিপি বা কপি কম্পিউটারের ক্ষণস্থায়ী স্মৃতি বা র‍্যান্ডম অ্যাক্সেস মেমরি-তে (যথেচ্ছ অধিগম্য স্মৃতি) স্থাপন করে। সেখান থেকে নির্দেশনাক্রম বা প্রোগ্রামটিকে চালানো বা "রান" করানো হয়। প্রোগ্রামের কাজ শেষ হয়ে গেলে ক্ষণস্থায়ী স্মৃতি থেকে এগুলি মুছে যায়। তবে কিছু কিছু নির্দেশনাসামগ্রী স্থায়ীভাবে এক বিশেষ ধরনের স্মৃতিতে বিরাজ করে, যাকে শুধুমাত্র পাঠ্য স্মৃতি বা রিড-ওনলি মেমরি বলে। এই ধরনের নির্দেশনাসামগ্রীকে "স্থির নির্দেশনাসামগ্রী" তথা ফার্মওয়্যার বা হার্ড সফটওয়্যার বলে। সফটওয়্যারের ইতিহাস বেশ পুরনো। ১৯৪০-এর দশকে প্রথম ইলেকট্রনিক কম্পিউটার তৈরির সময় থেকেই সফটওয়্যারের প্রয়োজনীয়তা দেখা দেয়। তবে সফটওয়্যার ডেভেলপমেন্টের প্রকৃত বিকাশ ঘটে ১৯৬০-এর দশক থেকে। সফটওয়্যার প্রধানত ৩ প্রকারঃ- ১. সিস্টেম সফটওয়্যার ২. প্রোগ্রামিং সফটওয়্যার ৩. এপ্লিকেশন সফটওয়্যার সিস্টেম সফটওয়্যার হার্ডওয়্যার চালনা করতে সহায়তা করে, এপ্লিকেশন সফটওয়্যার চালানোর জন্য প্লাটফর্ম গঠন করে। সিস্টেম সফটওয়্যারের মধ্যে আছে অপারেটিং সিস্টেম, হার্ডওয়্যার ড্রাইভার ইত্যাদি। এপ্লিকেশন সফটওয়্যার ব্যবহারকারীর নির্দিষ্ট কাজ সম্পাদনের জন্য ডিজাইন করা হয়। এর মধ্যে রয়েছে অফিস সফটওয়্যার (যেমন মাইক্রোসফ্ট অফিস, গুগল ডকস), মিডিয়া প্লেয়ার, ডেটাবেস ম্যানেজমেন্ট সফটওয়্যার এবং গ্রাফিক্স সফটওয়্যার। সফটওয়্যার ডেভেলপমেন্টের বিভিন্ন ধাপ রয়েছে: প্রয়োজনীয়তা বিশ্লেষণ: সফটওয়্যারের জন্য প্রয়োজনীয়তাগুলি চিহ্নিত করা। ডিজাইন: সফটওয়্যারের আর্কিটেকচার এবং মডিউল তৈরি করা। ইমপ্লিমেন্টেশন: কোডিং এবং প্রোগ্রামিং। টেস্টিং: বাগ শনাক্ত এবং সমাধান করা। মেইনটেন্যান্স: সফটওয়্যারের হালনাগাদ এবং উন্নয়ন। সফটওয়্যার তৈরীতে কিছু সফটওয়্যার প্রয়োজন হয় যেগুলোকে বলা হয় প্রোগ্রামিং সফটওয়্যার । সফটওয়্যার রিলিজ লাইফ সাইকল Independent software vendor List of software Software asset management উন্মুক্ত-উৎসের সফটওয়্যার "Computer Software" (ইংরেজি ভাষায়)। IEEE Computer Society। ২০২৪। সংগ্রহের তারিখ ২০২৪-০৬-১৫। [স্থায়ীভাবে অকার্যকর সংযোগ] "Software Overview" (ইংরেজি ভাষায়)। Microsoft Documentation। সংগ্রহের তারিখ ২০২৪-০৬-১৫। [স্থায়ীভাবে অকার্যকর সংযোগ] "Software" (ইংরেজি ভাষায়)। Encyclopaedia Britannica। সংগ্রহের তারিখ ২০২৪-০৬-১৫।  "Introduction to Software Engineering" (ইংরেজি ভাষায়)। MIT OpenCourseWare। সংগ্রহের তারিখ ২০২৪-০৬-১৫।  Evans, Claire L. (২০১৮)। Broad Band: The Untold Story of the Women Who Made the Internet। 41.814545,90.8012455: Portfolio/Penguin। আইএসবিএন 9780735211759।  উইকিপিডিয়ার সহপ্রকল্পেকম্পিউটার সফটওয়্যার উইকিঅভিধান হতে সংজ্ঞা কমন্স হতে মিডিয়া উইকিসংবাদ হতে সংবাদ উইকিসংকলন হতে পাঠ্যসমূহ উইকিবই হতে পাঠ্যবই উইকিবিশ্ববিদ্যালয় হতে শিক্ষা উপকরণ কার্লিতে কম্পিউটার সফটওয়্যার (ইংরেজি)