Perangkat lunak adalah program pada komputer yang berisi perintah-perintah untuk melakukan proses-proses tertentu agar dapat menghasilkan output yang diinginkan.
Jadi, desain perangkat lunak adalah langkah awal sebelum membuat proyek perangkat lunak untuk memperoleh gambaran tentang bagaimana bentuk atau model fisik perangkat lunak yang akan dibuat, dan gambaran tentang apa output-output yang diharapkan dari perangkat lunak yang akan dibuat tersebut.
1. Desain data
2. Desain arsitektur
3. Desain interface (antarmuka)
4. Desain prosedural