Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan perangkat lunak dan manajemen kualitas.
IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
Rekayasa perangkat lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip reakayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.
IEEE Computer Society mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta studi atas pendekatan-pendekatan ini, yaitu penerapan pendekatan engineering atas perangkat lunak.
Rekayasa perangkat lunak adalah pengubahan perangkat lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip reakayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.
Kriteria yang dapat digunakan sebagai acuan dalam merekayasa perangkat lunak:
1. dapat terus dirawat dan dipelihara(maintainability)
2. dapat mengikuti perkembangan teknologi(dependability)
3. dapat mengikuti keinginan pengguna(robust)
4. efektif dan efisien dalam menggunakan energi dan penggunaannya
5. dapat memenuhi kebutuhan yang diinginkan(usability)
1. dapat terus dirawat dan dipelihara(maintainability)
2. dapat mengikuti perkembangan teknologi(dependability)
3. dapat mengikuti keinginan pengguna(robust)
4. efektif dan efisien dalam menggunakan energi dan penggunaannya
5. dapat memenuhi kebutuhan yang diinginkan(usability)
Lulusan memiliki kompetensi dan keahlian sebagai berikut :
- Mampu menganalisa dan mendesain Sistem Berorientasi Obyek dan penerapannyadalam perangkat lunak komputer
- Mampu mengoperasikan Sistem Operasi Jaringan dan perangkat lunak berbasis jaringan dan Internet
- Mampu merancang perangkat lunak sesuai bidang kebutuhan (Bisnis, Pendidikan, Militer, Keamanan Sistem, Organisasi)