सॉफ्टवेयर, प्रोग्रामों के नियम व क्रियाओं का वह समूह है जो कम्प्यूटर सिस्टम के कार्यों को नियंत्रित करता है तथा कम्प्यूटर के विभिन्न हार्डवेयरों के बीच समन्वय स्थापित करता है, ताकि किसी विशेष कार्य को पूरा किया जा सके। इस तरह सॉफ्टवेयर वह निर्देश है जो हार्डवेयर से निर्धारित कार्य कराने के लिए उसे दिए जाते हैं। अगर हार्डवेयर इंजन है तो सॉफ्टवेयर उसका ईंधन। साधरणतः प्रोग्राम (Program), अप्लिकेशन (Application) और सॉफ्टवेयर (Software) एक ही चीज को इंगित करता है।
सिस्टम सॉफ्टवेयर (System Software)
प्रोग्रामों का समूह जो कम्प्यूटर सिस्टम के मूलभूत कार्यों को संपन्न करने तथा उन्हें कार्य के लायक बनाए रखने के लिए तैयार किया जाता है, सिस्टम सॉफ्टवेयर कहलाता है। यह कम्प्यूटर तथा उपयोगकर्ता के बीच माध्यम का कार्य करता है। सिस्टम से सॉफ्टवेयर का विकास किया जाता है।
अप्लिकेशन सॉफ्टवेयर (Application Software)
यह प्रोग्रामों का समूह है जो किसी विशिष्ट कार्य के लिए तैयार किया जाता हैं। संस्थान, व्यक्ति या कार्य को देखकर आवश्यकतानुसार इस सॉफ्टवेयर का विकास किया जाता है।
यूटीलिटी सॉफ्टवेयर (Utility Software)
यह कम्प्यूटर के कार्य को सरल बनाने, उसे अशुद्धियों से दूर रखने तथा सिस्टम के विभिन्न सुरक्षा कार्यों के लिए बनाया गया सॉफ्टवेयर हैं। इसका उपयोग कई अप्लिकेशन सॉफ्टवेयरों में किया जा सकता है।
प्रोग्रामिग लेंग्वेजेस (Programming Languages)
प्रोग्रामिंग लैंग्वेजेस में मशीन लैंग्वेजेस, असेंबली लैंग्वेजेस थर्ड- जेनरेशन लैंग्वेजेस, फोर्थ- जेनरेशन लैंग्वेजेस, और नेचुरल लैंग्वेजेस नाम की पांच मुख्य लैंगवेजेस हैं। मशीन व असेंबली लैंग्वेजेस लो (low) लेवल लैंग्वेजस मानी जाती है। थर्ड जेनरेशन लैंग्वेजेस फोर्थ- जेनरेशन लैंग्वेजेस और नेचुरल लेंग्वेजेस, हाई – लेवल लैंग्वेजेस हैं। लो-लेवल लैंग्वेजेस एक खास प्रकार के कम्प्यूटर को चलाने के लिए बनाई जाती है। हाई- लेवल लैंग्वेजेस कई विभिन्न प्रकार के कम्प्यूटरों को चला सकती हैं।
मशीन लैंग्वेज (Machine Language)
फर्स्ट-जेनरेशन लेंग्वेज के नाम से मशहूर मशीन लेंग्वेज अकेली लेंग्वेज है, जिसे कम्प्यूटर सीधा समझता है।