Software-ul pentru calculator, numit și software, este un set de instrucțiuni și documentația aferentă care îi spune unui calculator ce să facă sau cum să îndeplinească o sarcină. Software-ul include toate programele software diferite de pe un computer, cum ar fi aplicațiile și sistemul de operare. Aplicațiile sunt programe concepute pentru a efectua o anumită operațiune, cum ar fi un joc sau un procesor de texte. Sistemul de operare (de exemplu, Mac OS, Microsoft Windows, Android și diverse distribuții Linux) este un strat de software care este utilizat ca platformă pentru rularea aplicațiilor și care controlează toate instrumentele de interfață cu utilizatorul, inclusiv afișajul și tastatura.
Cuvântul software a fost folosit pentru prima dată la sfârșitul anilor 1960 pentru a sublinia diferența dintre acesta și hardware-ul calculatorului, care poate fi observat fizic de către utilizator. Software-ul este un set de instrucțiuni pe care calculatorul le urmează. Înainte de apariția discurilor compacte (CD-uri) sau de dezvoltarea erei internetului, software-ul era utilizat pe diverse instrumente de stocare a datelor informatice, cum ar fi cartele perforate pe hârtie, discuri magnetice sau benzi magnetice.
Cuvântul firmware este uneori utilizat pentru a descrie un tip de software creat special pentru un anumit tip de calculator sau dispozitiv electronic și este de obicei stocat pe un cip de memorie Flash sau ROM din calculator. Firmware-ul se referă de obicei la o bucată de software care controlează direct o piesă hardware. Firmware-ul pentru o unitate CD sau firmware-ul pentru un modem sunt exemple de implementare a firmware-ului.
Astăzi, software-ul a devenit o parte importantă a vieții noastre. Fără software, oamenii nu se pot dezvolta.Utilizăm software peste tot. Inginerii de software sunt responsabili pentru producerea de software fără defecte, care a devenit literalmente o parte esențială a vieții noastre de zi cu zi. Modificabilitatea și conformitatea sunt două dintre principalele proprietăți ale proiectării de software. Există, de asemenea, diferite modele de procesare pentru proiectarea de software, inclusiv metodele de proiectare a software-ului Build and Fix, Waterfall și Agile.

