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.[1]
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 [2].
Tujuan, kompetensi tamatan, dan lingkup pekerjaan untuk Sekolah Menengah Kejuruan (SMK) dengan jurusan rekayasa perangkat lunak memiliki fokus yang berbeda dibandingkan dengan perguruan tinggi, namun tetap bertujuan untuk mempersiapkan siswa dengan keterampilan yang diperlukan dalam industri teknologi. Berikut adalah gambaran umumnya:
Tujuan Jurusan Rekayasa Perangkat Lunak di SMK:
- Menyiapkan Tenaga Kerja Terampil: Memberikan pelatihan praktis kepada siswa agar memiliki keterampilan teknis yang diperlukan untuk bekerja dalam industri perangkat lunak.
- Mengenalkan Konsep Dasar Rekayasa Perangkat Lunak: Memperkenalkan konsep-konsep dasar dalam pengembangan perangkat lunak kepada siswa.
- Mengembangkan Kreativitas dan Kemandirian: Mendorong siswa untuk berpikir kreatif dalam merancang dan mengembangkan solusi perangkat lunak sederhana.
- Persiapan Lanjutan: Menyiapkan siswa untuk memasuki dunia kerja atau melanjutkan pendidikan ke jenjang yang lebih tinggi di bidang teknologi informasi.
Kompetensi Tamatan:
- Pemahaman Dasar Rekayasa Perangkat Lunak: Memahami konsep-konsep dasar seperti pemrograman, analisis kebutuhan perangkat lunak, dan pengujian sederhana.
- Keterampilan Pemrograman: Mampu menggunakan bahasa pemrograman dasar untuk membuat aplikasi sederhana.
- Penggunaan Alat dan Teknologi: Mengenal dan menggunakan alat-alat dan teknologi dasar yang digunakan dalam pengembangan perangkat lunak.
- Keterampilan Kerja Tim: Berpartisipasi dalam proyek kolaboratif sederhana untuk mengembangkan aplikasi atau sistem kecil.
- Kemampuan Troubleshooting: Mampu mengidentifikasi dan memecahkan masalah sederhana dalam pengembangan perangkat lunak.
Lingkup Pekerjaan:
- Asisten Pengembangan Perangkat Lunak: Mendukung tim pengembangan dalam tugas-tugas pemrograman sederhana.
- Teknisi TI: Memberikan dukungan teknis dasar dalam mengelola perangkat lunak dan sistem komputer.
- Pengelola Basis Data: Bertanggung jawab atas pengelolaan dan pemeliharaan database sederhana.
- Operator Komputer: Melakukan tugas-tugas operasional dasar pada sistem komputer dan perangkat lunak.
- Teknisi Jaringan: Memberikan dukungan dalam pemeliharaan dan konfigurasi jaringan komputer.
Meskipun kompetensi yang diperoleh dari SMK lebih terbatas dibandingkan dengan perguruan tinggi, lulusan jurusan rekayasa perangkat lunak di SMK memiliki dasar yang cukup untuk memulai karir di industri teknologi informasi. Mereka dapat melanjutkan pendidikan atau memilih untuk bekerja sebagai teknisi atau asisten dalam proyek-proyek pengembangan perangkat lunak yang lebih sederhana.