Bei der Entwicklung eines Computerprogramms werden Abläufe vorweggenommen, die später bei der Arbeit mit dieser Software auftreten können. Beispielsweise können E-Mail-Programme Funktionen enthalten, durch die unerwünschte Werbemails automatisch erkannt werden, sodass der Benutzer sie nicht von Hand zu löschen braucht, oder Bildbearbeitungsprogramme können mit Filtern ausgeliefert werden, mittels derer sich die roten Augen, die auf Porträtfotos manchmal auftauchen, automatisch entfernen lassen. Der Benutzer spart sich damit die Arbeitsschritte, die ohne diesen Filter notwendig wären. Ein Feature, durch das sich eine Software von Konkurrenzprodukten unterscheidet, kann für Benutzer ein Grund sein, dieser Software den Vorzug zu geben — zu viele Features, die nicht wirklich benötigt werden, können ein Programm jedoch auch unübersichtlich machen und den Benutzer verwirren.

 

Den Computer selbst und Geräte wie Monitor, Drucker oder Scanner sowie die dazugehörigen Kabel bezeichnet man als Hardware. Auf Datenträgern wie CDs oder Festplatten, die ebenfalls zur Hardware gehören, werden Informationen im binären System gespeichert, also in Form von Bits, die entweder gesetzt oder gelöscht sind. Der Begriff Hardware bezeichnet somit den physischen, greifbaren Teil eines Computersystems, Software dagegen die darauf gespeicherten, veränderbaren Daten.

Unter dem Begriff Software werden seit den späten 1950er-Jahren Computerprogramme sowie Ressourcen, die zu deren Ausführung notwendig sind, zusammengefasst — Schriften, Grafiken, Konfigurationsdateien und so weiter. Fasst man den Begriff weiter, können die Firmware eines Geräts oder dessen Betriebssystem ebenfalls als Software bezeichnet werden, und bei einer sehr weit gefassten Definition auch Daten, die darauf gespeichert sind.