Perangkat lunak (software) merupakan program komputer yang terasosiasi dengan dokumentasi perangkat lunak seperti dokumentasi kebutuhan, model desain, dan user penggunaan (cara penggunaan). Sebuah program komputer tanpa terasosiasi dengan dokumentasinya maka belum bisa disebut perangkat lunak. Sebuah perangkat lunak juga sering disebut dengan sistem perangkat lunak. Sistem berarti kumpulan komponen yang saling terkait dan mempunyai satu tujuan yang ingin dicapai.
Sistem perangkat lunak berarti sebuah sistem yang memiliki komponen berupa perangkat lunak yang memiliki hubungan satu sama lain untuk memenuhi kebutuhan pelanggan (customer). Pelanggan (customer) adalah orang atau organisasi yang memesan atau membeli perangkat lunak (software) dari pengembang perangkat lunak yang dengan sukarela mengeluarkan dana untuk membuat perangkat lunak. User atau pemakai perangkat lunak adalah orang yang mempunyai kepentingan memakai perangkat lunak untuk mempermudah pekerjaannya.
Karakteristik perangkat lunak :
- Perangkat lunak dibangun dengan rekayasa, tidak di produksi secara manufaktur atau pabrikan.
- Perangkat lunak tidak pernah usang karena bug dalam perangkat lunak dapat diperbaiki.
- Perangkat lunak biasanya terus diperbaiki seiring bertambahnya kebutuhan (update).
Aplikasi perangkat lunak :
- Perangkat lunak sistem (system software ) adalah kumpulan program yang dibuat untuk memenuhi kebutuhan program lainnya.
- Perangkat lunak waktu nyata (Real-time software) merupakan perangkat lunak yang memonitor, menganalisis, mengontrol secara waktu nyata (real-time). Reaksi yang dibutuhkan pada perangkat lunak harus langsung menghasilkan respon yang diinginkan.
- Perangkat lunak bisnis (business software) merupakan perangkat lunak pengelola informasi seperti akutansi, penjualan, pembayaran, inventory.
- Perangkat lunak untuk keperluan rekayasa dan keilmuan (engineering and scientific software) merupakan perangkat lunak yang terkait dengan keilmuan atau perangkat lunak yang membantu keilmuan, misalnya perangkat lunak di bidang matematika, kimia dan lainnya.
- Perangkat lunak intelegensi buatan (artificial intelligence software) merupakan perangkat lunak yang menggunakan algoritma tertentu untuk mengelola data sehingga seakan-akan memiliki intelegensi seiring bertambahnya data yang di proses.
- Perangkat lunak berbasis web (web based software) merupakan perangkat lunak yang dapat diakses dengan menggunakan browser.
- Perangkat lunak kommputer personal (personal komputer software) merupakan perangkat lunak untuk PC seperti perangkat lunak pemroses gambar, pemroses teks, pemroses video dan lainnya.
Produk perangkat lunak yang dibuat oleh pengembang (developer) perangkat lunak terdiri dari dua jenis :
- Produk Generik
- Produk perangkat lunak yang dibuat karena oleh pengembang perangkat lunak untuk dijual atau dipopulerkan (open source) tanpa ada yang memesan terlebih dahulu, perangkat lunak yang termasuk dalam produk generik misalnya perangkat lunak sistem operasi, perangkat lunak pendukung perkantoran untuk membuat dokumen, slide persentasi, atau perhitungan dalam bentuk papersheet dan lian sebagainya.
- Produk pemesanan
- Produk perangkat lunak yang dibuat karena ada pelanggan yang melakukan pemesanan, misalnya sebuah instansi memerlukan perangkat lunak untuk memenuhi proses bisnisyang terjadi di instansinya, maka instansi itu akan bekerja sama dengan pengembang untuk membuat perangkat lunak yang diinginkan (costum).