Το λογισμικό υπολογιστών, που ονομάζεται επίσης λογισμικό, είναι ένα σύνολο οδηγιών και τεκμηρίωσης που λένε σε έναν υπολογιστή τι να κάνει ή πώς να εκτελέσει μια εργασία. Το λογισμικό περιλαμβάνει όλα τα διαφορετικά προγράμματα λογισμικού σε έναν υπολογιστή, όπως οι εφαρμογές και το λειτουργικό σύστημα. Οι εφαρμογές είναι προγράμματα που έχουν σχεδιαστεί για να εκτελούν μια συγκεκριμένη λειτουργία, όπως ένα παιχνίδι ή ένας επεξεργαστής κειμένου. Το λειτουργικό σύστημα (π.χ. Mac OS, Microsoft Windows, Android και διάφορες διανομές Linux) είναι ένα επίπεδο λογισμικού που χρησιμοποιείται ως πλατφόρμα για την εκτέλεση των εφαρμογών και ελέγχει όλα τα εργαλεία διεπαφής χρήστη, συμπεριλαμβανομένης της οθόνης και του πληκτρολογίου.
Η λέξη λογισμικό χρησιμοποιήθηκε για πρώτη φορά στα τέλη της δεκαετίας του 1960 για να τονιστεί η διαφορά του από το υλικό των υπολογιστών, το οποίο μπορεί να παρατηρηθεί φυσικά από τον χρήστη. Το λογισμικό είναι ένα σύνολο οδηγιών που ακολουθεί ο υπολογιστής. Πριν από τους συμπαγείς δίσκους (CD) ή την ανάπτυξη της εποχής του Διαδικτύου, το λογισμικό χρησιμοποιούνταν σε διάφορα μέσα αποθήκευσης δεδομένων του υπολογιστή, όπως χάρτινες διάτρητες κάρτες, μαγνητικούς δίσκους ή μαγνητικές ταινίες.
Η λέξη υλικολογισμικό χρησιμοποιείται μερικές φορές για να περιγράψει ένα είδος λογισμικού που έχει κατασκευαστεί ειδικά για έναν συγκεκριμένο τύπο υπολογιστή ή ηλεκτρονικής συσκευής και είναι συνήθως αποθηκευμένο σε ένα τσιπ μνήμης Flash ή ROM στον υπολογιστή. Το υλικολογισμικό αναφέρεται συνήθως σε ένα κομμάτι λογισμικού που ελέγχει άμεσα ένα κομμάτι υλικού. Το υλικολογισμικό για μια μονάδα CD ή το υλικολογισμικό για ένα μόντεμ είναι παραδείγματα υλοποίησης υλικολογισμικού.
Σήμερα, το λογισμικό έχει γίνει σημαντικό μέρος της ζωής μας. Χωρίς λογισμικό οι άνθρωποι δεν μπορούν να αναπτυχθούν. Οι μηχανικοί λογισμικού είναι υπεύθυνοι για την παραγωγή λογισμικού χωρίς σφάλματα, το οποίο έχει γίνει κυριολεκτικά απαραίτητο μέρος της καθημερινής μας ζωής. Η δυνατότητα αλλαγής και η συμμόρφωση είναι δύο από τις κύριες ιδιότητες του σχεδιασμού λογισμικού. Υπάρχουν επίσης διαφορετικά μοντέλα επεξεργασίας για το σχεδιασμό λογισμικού, συμπεριλαμβανομένων των μεθόδων σχεδιασμού επεξεργασίας λογισμικού Build and Fix, Waterfall και Agile.

