Ang software ay isang mahalagang bahagi ng modernong computing, na gumaganap ng isang kritikal na papel sa pagpapatakbo ng mga computer at ang pagpapatupad ng mga prinsipyo ng computer science. Ang araling ito ay nagbibigay ng komprehensibong pangkalahatang-ideya ng software, mga uri nito, kung paano ito gumagana, at ang kahalagahan nito sa mga computer at computer science.
Ang software ay tumutukoy sa isang hanay ng mga tagubilin, data, o mga program na ginagamit upang patakbuhin ang mga computer at magsagawa ng mga partikular na gawain. Hindi tulad ng hardware, na kinabibilangan ng mga pisikal na bahagi ng isang computer, ang software ay hindi nasasalat at tumatakbo sa hardware upang magsagawa ng iba't ibang mga function. Binibigyang-daan ng software ang mga user na makipag-ugnayan sa isang computer at sa hardware nito, sa gayon ginagawa itong kailangang-kailangan sa pag-compute.
Ang software ay maaaring malawak na ikategorya sa dalawang pangunahing uri: System Software at Application Software.
Gumagana ang software sa pamamagitan ng isang serye ng mga utos o tagubiling nakasulat sa isang programming language. Ang mga tagubiling ito ay isinasagawa ng central processing unit (CPU) ng computer. Ang proseso ay nagsasangkot ng ilang mga hakbang:
Ang pagbuo ng software ay nagsasangkot ng ilang yugto, mula sa konseptwalisasyon hanggang sa pagpapatupad at pagsubok. Kabilang sa mga pangunahing yugto ang:
Binubuhay ng software ang mga computer. Kung walang software, hindi magagawa ng mga computer ang anumang makabuluhang gawain. Mula sa mga operating system na namamahala sa mga mapagkukunan ng computer hanggang sa software ng application na nagsasagawa ng mga partikular na gawain para sa mga user, mahalaga ang software sa pag-compute.
Sa computer science, ang software ay naglalaman ng mga prinsipyo ng computation at paglutas ng problema. Ito ay sa pamamagitan ng software na ang mga teoretikal na konsepto ng computer science ay inilalapat upang malutas ang mga problema sa totoong mundo. Ang paglikha ng mga algorithm, istruktura ng data, at ang pag-aaral ng kahusayan at pag-optimize ay naisasakatuparan lahat sa pamamagitan ng software.
Karaniwang ipinamamahagi ang software sa ilalim ng mga partikular na lisensya na tumutukoy kung paano ito magagamit, mababago, at maipamahagi. Ang mga lisensya ay nag-iiba mula sa open-source, kung saan ang source code ay malayang magagamit para sa pagbabago at pamamahagi, hanggang sa pagmamay-ari, kung saan ang software ay kinokontrol ng lumikha at ang user ay may mga pinaghihigpitang karapatan.
Ang software ay ang kakanyahan ng pag-compute, ang pagbabago ng hardware ng computer sa mga mahahalagang kasangkapan para sa paggamit ng tao. Ang pag-unawa sa mga uri ng software, kung paano ito gumagana, at ang proseso ng pagbuo nito ay nagbibigay ng pundasyong kaalaman na mahalaga para sa sinumang interesado sa mga computer at computer science. Mula sa mga operating system na namamahala sa mga pagpapatakbo ng device hanggang sa application software na tumutugon sa mga partikular na pangangailangan ng user, ang software ay sumasaklaw sa malawak na hanay ng mga makabagong solusyon na idinisenyo upang mapadali ang iba't ibang gawain sa pag-compute. Ito ay, samakatuwid, hindi lamang isang produkto ng computer science kundi isang larangan din ng pag-aaral at pag-unlad na patuloy na nagbabago upang matugunan ang mga pagsulong sa teknolohiya at mga pangangailangan ng lipunan.