Software kan defineres som alle de begreber, aktiviteter og procedurer, der resulterer i generering af programmer til et computersystem. Med andre ord er de instruktionerne, der er foruddefineret af en programmør til at udføre de opgaver, der er angivet.
Software er et sæt binære tal (bits), der giver mening for computeren og gemmes på en vis fysisk support (hardware), hvorfra processoren kan få adgang, til at udføre eller vise den. Mens hardware er et synligt, håndgribeligt og let anvendeligt computersystem, er software en rent konceptuel enhed: et intellektuelt produkt, det betyder, at hardware er den fysiske del, og software er den logiske del af computeren.
Målet med "god software" er at øge chancerne for, at den udvikles til tiden, og at den bliver mere omkostningseffektiv på grund af en mere effektiv anvendelse af personale og ressourcer.
Softwaren kan opdeles på forskellige måder baseret på typen af udført arbejde. Den systemsoftware, hvor en af dets vigtige dele er operativsystemet, er den del, der gør det muligt for hardware til funktionen, styrer de job, behandler en sådan væsentlig, men ofte usynlige opgaver, såsom vedligeholdelse af disk filer og styring fra skærmen.
Den applikationssoftware giver brugerne mulighed for at udføre en eller flere specifikke opgaver, på ethvert område af aktivitet, der kan automatiseres eller assisteret, det udfører tekstbehandling opgaver, database management og lignende. Lav f.eks. Et indeks bestilt af forfatter eller hente oplysninger fra en database osv.
Endelig er der programmeringssoftware, der giver værktøjer til at hjælpe programmøren med at skrive computerprogrammer og til at bruge forskellige programmeringssprog på en praktisk måde.