Software kan worden gedefinieerd als al die concepten, activiteiten en procedures die resulteren in het genereren van programma's voor een computersysteem. Met andere woorden, het zijn de instructies die vooraf zijn gedefinieerd door een programmeur om de aangegeven taken uit te voeren.
Software is een set van binaire getallen (bits), wat logisch is voor de computer, en wordt opgeslagen op een fysieke ondersteuning (hardware), van waaruit de processor toegang heeft, om het uit te voeren of weer te geven. Hoewel hardware een zichtbaar, tastbaar en gemakkelijk toepasbaar computersysteem is, is software een puur conceptuele entiteit: een intellectueel product, dit betekent dat hardware het fysieke deel is en software het logische deel van de computer.
Het doel van ‘goede software’ is om de kans te vergroten dat het op tijd wordt ontwikkeld en dat het kosteneffectiever is door een efficiënter gebruik van personeel en middelen.
De software kan op verschillende manieren worden verdeeld op basis van het soort werk dat wordt uitgevoerd. De systeemsoftware, waarvan een van de belangrijke onderdelen het besturingssysteem is, is het onderdeel dat de hardware laat functioneren, de taken bestuurt en dergelijke essentiële, hoewel vaak onzichtbare taken verwerkt, zoals het onderhoud van schijfbestanden en administratie van het scherm.
De applicatiesoftware stelt gebruikers in staat om een of meer specifieke taken uit te voeren, op elk werkterrein dat kan worden geautomatiseerd of ondersteund, het voert tekstverwerkingstaken uit, databasebeheer en dergelijke. Maak bijvoorbeeld een index gesorteerd op auteur of haal informatie op uit een database, enz.
Ten slotte is er de programmeersoftware, die tools biedt om de programmeur te helpen computerprogramma's te schrijven en verschillende programmeertalen op een praktische manier te gebruiken.