Rekayasa perangkat lunak disingkat RPL, atau disebut juga software engineering adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat lunak (software) termasuk pembuatan, pemeliharaan, management organisasi pengembanganan perangkat lunak, dan management kualitas. Berikut ini ialah video yang menjelaskan mengenai software engineering.
Selain pengertian tersebut, IEEE Computer Society juga mendefinisikan rekayasa perangkat lunak sebagai penerapan suatu pendekatan yang sistematis, disiplin dan terkuantifikasi atas pengembangan, penggunaan dan pemeliharaan perangkat lunak, serta study 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 kepentingan pengguna.
Adapun syarat atau kriteria yang dapat digunakan sebagai acuan dalam melakukan rekayasa perangkat lunak ialah sebagai berikut.
- Maintainability, yakni dapat terus dirawat dan dipelihara
- Dependability, yakni dapat mengikuti perkembangan teknologi
- Robust, yakni dapat mengikuti keinginan pengguna
- Usability, yakni dapat memenuhi kebutuhan yang diinginkan oleh penggunanya
- Efektif dan efisien dalam menggunakan energi dan penggunaannya
Tujuan Rekayasa Perangkat Lunak
Secara umum tujuan dari software engineering tidak berbeda jauh dengan management project lainnya. Mendapatkan hasil optimal dengan usaha dan biaya sekecil mungkin. Secara lebih rinci tujuan dari rekayasa perangkat lunak adalah sebagai berikut.
- Menekan biaya produksi perangkat lunak, menjadi lebih rendah
- Menghasilkan perangkat lunak dengan kinerja yang tinggi, handal, dan tepat waktu
- Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform
- Menghasilkan perangkat lunak dengan biaya perawatan yang rendah
Sejarah Rekayasa Perangkat Lunak
Pada tahun 1968, NATO menyelenggarakan konferensi tentang software engineering di Jerman dan kemudian dilanjutkan satu tahun berikutnya. Meski penggunaan kata software engineering merupakan 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.
Rekayasa perangkat lunak di Indonesia dijadikan sebagai 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. Beberapa subdisiplin dari rekayasa perangkat lunak seperti kualitas perangkat lunak (software quality), teknik kebutuhan perangkat lunak (requirements engineering), management project 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), management 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), arsitektur perangkat lunaks (software architecturess), dan terus berkembang.
Ruang Lingkup Rekayasa Perangkat Lunak
Terdapat sepuluh ruang lingkup dari rekayasa perangkat lunak atau software engineer, yakni sebagai berikut.
- Software Requirements, terkait dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
- Software Design, mencakup proses penampilan arsitektur, komponen, interface, dan karakteristik lain dari perangkat lunak tersebut
- Software Construction, terkait dengan detail pengembangan perangkat lunak, termasuk algorithm, coding, pengujian, dan juga debugging
- Software Testing, meliputi pengujian pada keseluruhan perilaku perangkat lunak
- Software Maintenance, mencakup segala upaya perawatan ketika perangkat lunak telah dioperasikan
- Software configuration Management, terkait dengan usaha perubahan konfigurasi perangkat lunak untuk dapat memenuhi kebutuhan tertentu dari penggunanya
- Software Engineering Management, terkait dengan pengelolaan dan pengukuran rekayasa perangkat lunak, termasuk perencanaan project perangkat lunak
- Software Engineering Tools and Methods, mencakup kajian teoritis tentang alat bantu dan metode rekayasa perangkat lunak
- Software Engineering Process, terkait dengan implementasi, definisi, pengukuran, pengelolaan, perubahan, dan perbaikan dari rekayasa perangkat lunak itu
- Software Quality, fokus pada kualitas dan daur hidup dari perangkat lunak yang dikembangkan