সফটওয়্যার ভূমিকা সফটওয়্যার, বা প্রোগ্রাম, কম্পিউটারকে নির্দিষ্ট কাজ সম্পাদন করতে সক্ষম করে, যেমন সিস্টেমের ভৌত উপাদান (হার্ডওয়্যার) এর বিপরীতে। এর মধ্যে রয়েছে ওয়ার্ড প্রসেসরের মতো অ্যাপ্লিকেশন সফটওয়্যার, যা ব্যবহারকারীকে একটি কাজ সম্পাদন করতে সক্ষম করে, এবং অপারেটিং সিস্টেমের মতো সিস্টেম সফটওয়্যার, যা অন্যান্য সফটওয়্যারকে সঠিকভাবে চালাতে সক্ষম করে, হার্ডওয়্যার এবং অন্যান্য সফ্টওয়্যার বা ব্যবহারকারীর তৈরি কাস্টম সফটওয়্যারের সাথে ইন্টারফেস করে স্পেসিফিকেশন
কম্পিউটার হার্ডওয়্যারের সাথে কম্পিউটার সফটওয়্যারের সম্পর্ক
কম্পিউটার হার্ডওয়্যারের সাথে সম্পর্ক কম্পিউটার সফটওয়্যারকে কম্পিউটার হার্ডওয়্যারের বিপরীতে বলা হয়, যা সফটওয়্যারটি সঞ্চয় এবং চালানোর (অথবা চালানোর) জন্য প্রয়োজনীয় শারীরিক আন্তসংযোগ এবং ডিভাইসগুলিকে অন্তর্ভুক্ত করে। কম্পিউটারে, সফ্টওয়্যার র RAM লোড করা হয় এবং কেন্দ্রীয় প্রক্রিয়াকরণ ইউনিটে কার্যকর করা হয়। সর্বনিম্ন স্তরে, সফ্টওয়্যার একটি পৃথক প্রসেসরের জন্য নির্দিষ্ট একটি মেশিন ভাষা নিয়ে গঠিত।
একটি মেশিন ল্যাঙ্গুয়েজে বাইনারি ভ্যালুর গ্রুপ থাকে যা প্রসেসর নির্দেশাবলী (অবজেক্ট কোড) নির্দেশ করে, যা কম্পিউটারের অবস্থা তার আগের অবস্থা থেকে পরিবর্তন করে। সফ্টওয়্যার হল একটি নির্দিষ্ট ক্রমে কম্পিউটারের হার্ডওয়্যারের অবস্থা পরিবর্তনের নির্দেশাবলীর একটি ক্রমানুসারী ক্রম। এটি সাধারণত উচ্চ-স্তরের প্রোগ্রামিং ভাষায় লেখা হয় যা মানুষের জন্য মেশিন ভাষার চেয়ে (প্রাকৃতিক ভাষার কাছাকাছি) ব্যবহার করা সহজ এবং অধিক দক্ষ। উচ্চ-স্তরের ভাষাগুলি মেশিন ভাষা অবজেক্ট কোডে সংকলিত বা ব্যাখ্যা করা হয়। সফ্টওয়্যারটি একটি অ্যাসেম্বলি ভাষায়ও লেখা যেতে পারে, মূলত, একটি মেশিনের একটি স্মারক উপস্থাপনা
একটি প্রাকৃতিক ভাষা বর্ণমালা ব্যবহার করে ভাষা। অ্যাসেম্বলারের মাধ্যমে অ্যাসেম্বলি ভাষা অবজেক্ট কোডে একত্রিত করতে হবে। “সফটওয়্যার” শব্দটি প্রথম এই অর্থে 1957 সালে জন ডব্লিউ টুকি ব্যবহার করেছিলেন। কম্পিউটার সায়েন্স এবং সফটওয়্যার ইঞ্জিনিয়ারিংয়ে কম্পিউটার সফটওয়্যার হল সব কম্পিউটার প্রোগ্রাম। কম্পিউটেশন নিয়ন্ত্রণের জন্য একটি ডিভাইসের স্মৃতিতে নির্দেশাবলীর বিভিন্ন ক্রম পড়ার ধারণাটি চার্লস ব্যাবেজ তার পার্থক্য ইঞ্জিনের অংশ হিসাবে আবিষ্কার করেছিলেন।
কম্পিউটার সফটওয়্যারের ধরন ও কয়েকটি সফটওয়্যার এর নাম
ব্যবহারিক কম্পিউটার সিস্টেমগুলি সফ্টওয়্যারকে তিনটি প্রধান শ্রেণীতে বিভক্ত করে: সিস্টেম সফ্টওয়্যার, প্রোগ্রামিং সফটওয়্যার এবং অ্যাপ্লিকেশন সফ্টওয়্যার, যদিও পার্থক্যটি নির্বিচারে এবং প্রায়ই অস্পষ্ট।
সিস্টেম সফটওয়্যার কম্পিউটার হার্ডওয়্যার এবং কম্পিউটার সিস্টেম চালাতে সাহায্য করে। এর মধ্যে রয়েছে অপারেটিং সিস্টেম, ডিভাইস ড্রাইভার, ডায়াগনস্টিক টুলস, সার্ভার, উইন্ডো সিস্টেম, ইউটিলিটি এবং আরও অনেক কিছু। সিস্টেম সফটওয়্যারের উদ্দেশ্য হল বিশেষভাবে ব্যবহৃত কম্পিউটার কমপ্লেক্স, বিশেষ করে মেমরি এবং অন্যান্য হার্ডওয়্যার ফিচার এবং যোগাযোগ, প্রিন্টার, রিডার, ডিসপ্লে, কীবোর্ড ইত্যাদির বিবরণ থেকে অ্যাপ্লিকেশন প্রোগ্রামারকে যতটা সম্ভব অন্তরক করা।
প্রোগ্রামিং সফটওয়্যার সাধারণত প্রোগ্রামারদের কম্পিউটার প্রোগ্রাম এবং সফটওয়্যার লেখার ক্ষেত্রে বিভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করে আরও সুবিধাজনক উপায়ে সরঞ্জাম সরবরাহ করে। সরঞ্জামগুলির মধ্যে রয়েছে পাঠ্য সম্পাদক, সংকলক, দোভাষী, লিঙ্কার, ডিবাগার এবং আরও অনেক কিছু। একটি ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE) সেই টুলগুলিকে একটি সফটওয়্যার বান্ডেলে একীভূত করে, এবং একটি প্রোগ্রামারকে কম্পাইলিং, ইন্টারপ্রেটার, ডিবাগিং, ট্রেসিং ইত্যাদি জন্য একাধিক কমান্ড টাইপ করার প্রয়োজন হতে পারে না, কারণ IDE এর সাধারণত একটি উন্নত গ্রাফিক্যাল ইউজার ইন্টারফেস থাকে, অথবা জিইউআই।
অ্যাপ্লিকেশন সফ্টওয়্যার শেষ ব্যবহারকারীদের এক বা একাধিক নির্দিষ্ট (কম্পিউটারবিহীন) কাজ সম্পন্ন করতে দেয়। সাধারণ অ্যাপ্লিকেশনগুলির মধ্যে রয়েছে শিল্প অটোমেশন, ব্যবসায়িক সফ্টওয়্যার, শিক্ষাগত সফ্টওয়্যার, চিকিৎসা সফ্টওয়্যার, ডেটাবেস এবং কম্পিউটার গেম। ব্যবসাগুলি সম্ভবত অ্যাপ্লিকেশন সফ্টওয়্যারের সবচেয়ে বড় ব্যবহারকারী, কিন্তু মানুষের কার্যকলাপের প্রায় প্রতিটি ক্ষেত্রেই এখন কিছু সফটওয়্যার সফটওয়্যার ব্যবহার করা হয়। এটি সব ধরণের ফাংশন স্বয়ংক্রিয় করতে ব্যবহৃত হয়।
প্রোগ্রাম এবং লাইব্রেরি একটি প্রোগ্রাম একটি কম্পিউটার দ্বারা কার্যকর করার জন্য পর্যাপ্তভাবে সম্পূর্ণ নাও হতে পারে। বিশেষ করে, এটি সম্পূর্ণ হওয়ার জন্য একটি সফ্টওয়্যার লাইব্রেরি থেকে অতিরিক্ত সফটওয়্যারের প্রয়োজন হতে পারে। এই ধরনের লাইব্রেরিতে একা সফটওয়্যার দ্বারা ব্যবহৃত সফ্টওয়্যার উপাদানগুলি অন্তর্ভুক্ত থাকতে পারে, কিন্তু যা তাদের নিজস্ব কাজ করতে পারে না। এইভাবে, প্রোগ্রামগুলিতে সাধারণ রুটিন অন্তর্ভুক্ত থাকতে পারে যা অনেকের কাছে সাধারণ
প্রোগ্রাম, এই লাইব্রেরি থেকে আহরিত। লাইব্রেরিতে একা একা অন্তর্ভুক্ত থাকতে পারে যা কিছু কম্পিউটার ইভেন্ট দ্বারা সক্রিয় হয় এবং/ অথবা কিছু ফাংশন সম্পাদন করে (যেমন, কম্পিউটার ‘হাউসকিপিং’) কিন্তু তাদের কলিং প্রোগ্রামে ডেটা ফেরত দেয় না। প্রোগ্রাম এক থেকে iany প্রোগ্রাম দ্বারা বলা হতে পারে; প্রোগ্রাম অন্যান্য অনেক প্রোগ্রামে শূন্য কল করতে পারে। ব্যবহারকারীরা প্রায়ই প্রোগ্রামারদের চেয়ে ভিন্ন জিনিস দেখে। যারা আধুনিক সাধারণ উদ্দেশ্য কম্পিউটার ব্যবহার করে তারা সাধারণত সফটওয়্যারের তিনটি স্তর বিভিন্ন কাজ সম্পাদন করতে দেখে:
প্ল্যাটফর্ম, অ্যাপ্লিকেশন এবং ব্যবহারকারী সফটওয়্যার। অন্যান্য প্ল্যাটফর্ম সফটওয়্যার প্ল্যাটফর্মে মৌলিক ইনপুট-আউটপুট সিস্টেম (প্রায়ই সফটওয়্যারের পরিবর্তে ফার্মওয়্যার হিসাবে বর্ণনা করা হয়), ডিভাইস ড্রাইভার, একটি অপারেটিং সিস্টেম এবং সাধারণত একটি গ্রাফিক্যাল ইউজার ইন্টারফেস থাকে যা মোটামুটিভাবে একজন ব্যবহারকারীকে কম্পিউটারের সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেয়। পেরিফেরালস (সংশ্লিষ্ট সরঞ্জাম)। প্ল্যাটফর্ম সফ্টওয়্যার প্রায়ই কম্পিউটারের সাথে একত্রিত হয় এবং ব্যবহারকারীরা বুঝতে পারে না যে এটি বিদ্যমান বা তাদের বিভিন্ন প্ল্যাটফর্ম সফ্টওয়্যার ব্যবহার করার একটি পছন্দ আছে।
অ্যাপ্লিকেশন সফ্টওয়্যার অ্যাপ্লিকেশন সফটওয়্যার বা অ্যাপ্লিকেশনগুলি বেশিরভাগ মানুষ যখন সফ্টওয়্যার সম্পর্কে চিন্তা করে তখন সেটাই মনে করে। সাধারণ উদাহরণগুলির মধ্যে রয়েছে অফিস স্যুট এবং ভিডিও গেম। অ্যাপ্লিকেশন সফটওয়্যার প্রায়ই কম্পিউটার হার্ডওয়্যার থেকে আলাদাভাবে কেনা হয়। কখনও কখনও অ্যাপ্লিকেশনগুলি কম্পিউটারের সাথে একত্রিত হয়, কিন্তু এটি এই সত্যকে পরিবর্তন করে না যে তারা স্বাধীন অ্যাপ্লিকেশন হিসাবে চালায়। অ্যাপ্লিকেশনগুলি প্রায় সবসময় অপারেটিং সিস্টেম থেকে স্বাধীন প্রোগ্রাম, যদিও সেগুলি প্রায়ই নির্দিষ্ট প্ল্যাটফর্মের জন্য তৈরি করা হয়। বেশিরভাগ ব্যবহারকারী কম্পাইলার, ডাটাবেস এবং অন্যান্য “সিস্টেম সফটওয়্যার” কে অ্যাপ্লিকেশন হিসাবে মনে করেন।
ব্যবহারকারীর লিখিত সফটওয়্যার
ব্যবহারকারীর নির্দিষ্ট চাহিদা পূরণের জন্য ব্যবহারকারীর সফটওয়্যার টেইলার্স সিস্টেম। ব্যবহারকারীর সফটওয়্যারের মধ্যে রয়েছে স্প্রেডশীট টেমপ্লেট, ওয়ার্ড প্রসেসর ম্যাক্রো, বৈজ্ঞানিক সিমুলেশন, গ্রাফিক্স এবং অ্যানিমেশন স্ক্রিপ্ট। এমনকি ইমেইল ফিল্টারও এক ধরনের ইউজার সফটওয়্যার। ব্যবহারকারীরা নিজেরাই এই সফ্টওয়্যারটি তৈরি করে এবং প্রায়শই এটি কতটা গুরুত্বপূর্ণ তা উপেক্ষা করে। ব্যবহারকারীর লিখিত সফটওয়্যারটি কতটা দক্ষতার সাথে ক্রয়কৃত অ্যাপ্লিকেশন প্যাকেজের সাথে একীভূত হয়েছে তার উপর নির্ভর করে, অনেক ব্যবহারকারী কেনা প্যাকেজগুলির মধ্যে পার্থক্য সম্পর্কে সচেতন হতে পারে না এবং সহকর্মীরা কী যোগ করেছেন।
অপারেশন
কম্পিউটার সফ্টওয়্যারটি কম্পিউটারের স্টোরেজে (যেমন হার্ড ড্রাইভ, মেমরি বা র RAM্যাম) “লোড” করতে হবে। সফটওয়্যারটি লোড হয়ে গেলে, কম্পিউটার সফটওয়্যার চালাতে সক্ষম। কম্পিউটার প্রোগ্রাম চালানোর মাধ্যমে কম্পিউটার কাজ করে। এর মধ্যে রয়েছে অ্যাপ্লিকেশন সফটওয়্যার থেকে, সিস্টেম সফটওয়্যারের মাধ্যমে, হার্ডওয়্যারের কাছে নির্দেশনা প্রেরণ করা যা শেষ পর্যন্ত মেশিন কোড হিসাবে নির্দেশ গ্রহণ করে। প্রতিটি নির্দেশনা কম্পিউটারকে একটি অপারেশন করতে পরিচালিত করে
– ডেটা সরানো, গণনা করা বা নির্দেশাবলীর নিয়ন্ত্রণ প্রবাহ পরিবর্তন করা। ডেটা মুভমেন্ট সাধারণত মেমরির এক জায়গা থেকে অন্য জায়গায় চলে যায়। কখনও কখনও এটি মেমরি এবং রেজিস্টারের মধ্যে ডেটা স্থানান্তরিত করে যা সিপিইউতে উচ্চ গতির ডেটা অ্যাক্সেস সক্ষম করে। ডেটা স্থানান্তর করা, বিশেষ করে এর বড় পরিমাণ, ব্যয়বহুল হতে পারে। সুতরাং, এটি কখনও কখনও পরিবর্তে ডেটাতে “পয়েন্টার” ব্যবহার করে এড়ানো হয়। গণনার মধ্যে রয়েছে সহজ ক্রিয়াকলাপ যেমন ভেরিয়েবল ডেটা এলিমেন্টের মান বৃদ্ধি। নির্দেশাবলী ধারাবাহিকভাবে, শর্তাধীনভাবে বা পুনরাবৃত্তিমূলকভাবে সম্পাদন করা যেতে পারে। সিকোয়েন্সিয়াল নির্দেশাবলী হল সেই অপারেশন যা একের পর এক করা হয়।
শর্তসাপেক্ষ নির্দেশনাগুলো এমনভাবে সম্পাদিত হয় যে কিছু তথ্যের মান (গুলি) এর উপর নির্ভর করে নির্দেশাবলীর বিভিন্ন সেট কার্যকর হয়। কিছু ভাষায় এটি “যদি” বিবৃতি হিসাবে পরিচিত। পুনরাবৃত্তিমূলক নির্দেশাবলী পুনরাবৃত্তিমূলকভাবে সম্পাদিত হয় এবং কিছু ডেটা ভ্যালুর উপর নির্ভর করতে পারে। একে কখনও কখনও “লুপ” বলা হয়। প্রায়শই, একটি নির্দেশ অন্য কোন প্রোগ্রাম বা মডিউলে সংজ্ঞায়িত নির্দেশাবলীর আরেকটি সেটকে “কল” করতে পারে। যখন একাধিক কম্পিউটার প্রসেসর ব্যবহার করা হয়, নির্দেশাবলী একই সাথে কার্যকর করা যেতে পারে।