Desain perangkat lunak merupakan tahapan pengembangan perangkat lunak yang hasilnya akan digunakan oleh pengembang perangkat lunak untuk membuat program. Dalam tulisan ini, disajikan berbagai konsep penting mengenai desain perangkat lunak, termasuk proses desain itu sendiri. Tulisan ini diakhiri dengan mengkaji berbagai tantangan dalam desain perangkat lunak, dalam hal bagaimana merancang perangkat lunak secara efektif dan perancangan perangkat lunak untuk embedded system. Dari kajian tersebut diharapkan memicu riset-riset dalam desain perangkat lunak. 1.PENDAHULUAN Perangkat lunak umumnya merupakan usaha untuk menyelesaikan permasalahan pada dunia nyata menggunakan komputer. Pengembangan perangkat lunak (software development) melalui serangkaian tahapan dimana masing-masing tahapan menghasilkan artifak atau luaran tertentu. Dimulai dari pemahaman masalah (requirement elicitation), analisis, desain, implementa...