Dalam artian sempit perangkat lunak adalah program yang dijalankan di suatu pemroses. Perangkat lunak dalam arti lebih luas terdiri dari program – program yang dieksekusi komputer dalam beraneka ukuran dan asitektur, dokumen – dokumen berupa hard-copy dan bentuk – bentuk maya, dan data berupa angka – angka dan teks juga representasi informasi gambar, video, dan audio. 2. Kategori perangkat lunak Menurut Presman perangkat lunak terbagi menjadi : a. Perangkat lunak system : kumpulan program untuk melayani program –program lain. Contohnya, system operasi, kompilator, text editor, utilitas pengelolaan file, device driver, pemroses telekomunikasi. b. Perangkat lunak waktu nyata : perangkat lunak yang memonitor/menganalisis/mengendalikan kejadian dunia nyata di saat terjadinya. c. Perangkat lunak rekayasa dan sains : perangkat lunak untuk menyelesaikan persoalan rekayasa dan sains. Contohnya perangkat lunak untuk astronomi, volkanologi, biologi molekuler sampai manufaktur, CAD, simulasi system dan sebagainya. d. Perangkat lunak tempelan (embedded software) : perangkat lunak ini berada di ROM (Read only memory) untuk mengendali produk – produk konsumer dan sitem industry. e. Perangkat lunak berbasis wes : perangkat lunak yang bekerjamasama (berisi) dengan instruksi – instruksi yang dapat dieksekusi (misalnya CGI, HTML, Perl, atau Java) dan data (seperti hypertext dan beragam format visual dan audio) menghasilkan halaman web yang akan ditampilkan di browser. f. Perangkat lunak intelejensia buatan : perangkat lunak (AI – artificial intelegence) menggunakan alogaritma non-numerik untuk menyelesaikan persoalan kompleks yang sulit dilakukan secara analisis sederhana.