Rekayasa perangkat lunak
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 pengembangan 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 rekayasa untuk menghasilkan perangkat lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.

Kriteria yang dapat digunakan sebagai acuan dalam merekayasa perangkat lunak:
 Dapat terus dirawat dan dipelihara (Maintainability)
 Dapat mengikuti perkembangan teknologi (Dependability)
 Dapat mengikuti keinginan pengguna (Robust)
 Efektif dan efisien dalam menggunakan energi dan penggunaannya
 Dapat memenuhi kebutuhan yang diinginkan (Usability)

Sejarah 

Istilah software engineering, pertama kali digunakan pada akhir tahun 1950-an dan sekitar awal 1960-an. Pada tahun 1968, NATO menyelenggarakan konferensi tentang software engineering di Jerman dan kemudian dilanjutkan pada tahun 1969. Meski penggunaan kata software engineering masukan konferensi tersebut menimbulkan debat tajam tentang aspek engineering dari pengembangan perangkat lunak, banyak pihak yang menganggap konferensi tersebutlah yang menjadi awal tumbuhnya profesi rekayasa perangkat lunak

Di Indonesia 
Rekayasa Perangkat Lunak di Indonesia dijadikan disiplin ilmu yang dipelajari mulai tingkat Sekolah Menengah Kejuruan sampai tingkatan Perguruan Tinggi. Di tingkat SMK, jurusan ini sudah memiliki kurikulum materi pelajaran sendiri yang sudah ditentukan oleh Dinas Pendidikan. Rekayasa Perangkat Lunak di tingkat SMK biasanya mempelajari materi-materi seperti Bahasa Pemrograman, Desain Web, Pengetahuan tetang Undang Undang HAKI dan ITE, dan sebagainya, tergantung dari sekolah dan kurikulum tiap tahunnya.

Subdisiplin 
 Kualitas perangkat lunak (software quality)
 Teknik kebutuhan perangkat lunak (requirements engineering)
 Manajemen proyek perangkat lunak (project management)
 Pengujian perangkat lunak (software testing)
 Metode formal (formal methods)
 Penjaminan mutu perangkat lunak (software quality assurance)
 Verifikasi perangkat lunak (software verification)
 Perangkat lunak terdistribusi (distributed software engineering)
 Manajemen konfigurasi perangkat lunak (software configuration management)
 Perawatan perangkat lunak (software maintenance)
 permodelan dan perancangan perangkat lunak (software design and modelling)
 Arsitektur perangkat lunak (software architectures)

Lihat juga 
 Attributed Goal-Oriented Requirements Analysis

Referensi 

 
Bidang studi