
Rekayasa perangkat lunak
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.[1]
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)
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.
Tujuan Rekayasa Perangkat Lunak
Secara umum tujuan Rekayasa Perangkat Lunak tidak berbeda dengan bidang
rekayasa yang lain. Bidang rekayasa akan selalu berusaha menghasilkan
output yang kinerjanya tinggi waktu penyelesaian yang tepat dan Berbiaya
rendah. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah
sebagai berikut:
- Menghasilkan perangkat lunak yang kinerjanya tinggi, andal serta tepat waktu.
- Memperoleh biaya produksi perangkat lunak yang rendah.
- Menghasilkan perangkat lunak yang biaya perawatan rendah.
- Menghasilkan perangkat lunak yang bisa bekerja di berbagai jenis platform.
Software Requirements
berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak.
Software Design
meliputi proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak
Software Construction
berhubungan dengan detil pengembangan perangkat lunak, termasuk algoritma, pengkodean, pencarian kesalahan dan pengujian.
Software Testing
meliputi pengujian pada kinerja perangkat lunak secara keseluruhan
Software Maintenance
mencakup upaya-upaya perawatan ketika perangkat lunak telah dioperasikan.
Software Configuration Management
berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
Software Engineering Management
berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
Software Engineering Tools and Methods
mencakup kajian teoritis tentang alat bantu dan metode RPL.
Software Quality
menitikberatkan pada kualitas dan daur hidup perangkat lunak.
Software Engineering Process
berhubungan dengan implementasi, definisi, pengukuran, pengelolaan, perubahan dan perbaikan proses Rekayasa Perangkat Lunak.