Rekayasa perangkat lunak

**Rekayasa perangkat lunak** atau **rekayasa peranti lunak** (RPL, atau dalam bahasa Inggris: *software engineering* atau *SE*) adalah satu bidang profesi yang mendalami cara-cara pengembangan peranti lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembangan peranti lunak dan manajemen mutu.

*IEEE Computer Society* mendefinisikan rekayasa peranti lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan peranti lunak, serta kajian atas pendekatan-pendekatan ini, yaitu penerapan pendekatan **rekayasa** atas peranti lunak.

Rekayasa peranti lunak adalah pengubahan peranti lunak itu sendiri guna mengembangkan, memelihara, dan membangun kembali dengan menggunakan prinsip rekayasa untuk menghasilkan peranti lunak yang dapat bekerja lebih efisien dan efektif untuk pengguna.

Sebuah peranti lunak juga sering disebut dengan sistem peranti lunak karena dapat terdiri dari banyak modul-modul maupun bagian-bagian dari program komputer yang berbeda di berbagai lingkungan pengembangan. Sistem berarti kumpulan komponen yang saling terkait dan mempunyai satu tujuan yang ingin dicapai.

Kriteria yang dapat digunakan sebagai acuan dalam merekayasa peranti lunak:
# Dapat terus dirawat dan dipelihara (*Maintainability*)
# Dapat mengikuti perkembangan teknologi (*Dependability*)
# Dapat mengikuti keinginan pengguna (*Robust*)
# Efektif dan efisien dalam menggunakan renaga 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 peranti 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 (SMK) 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
* Mutu 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
* Analisis Teratribusi Persyaratan Berarah Tujuan

## Referensi