Pengenalan Rekayasa Perangkat Lunak
Definisi Rekayasa Perangkat Lunak = Software Engineering Sebagian orang mengartikan RPL hanya sebatas pada bagaimana membuat program komputer, padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999).
Suatu disiplin ilmu yang membahas tentang semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna design, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan.
Pernyataan “semua aspek produksi” pada pengertian di atas, mempunyai arti semua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL.
Tujuan RPL
Dari Gambar di atas dapat diartikan bahwa bidang rekayasa akan selalu berusaha menghasilkan output yang kinerjanya tinggi, biaya rendah dan waktu penyelesaian yang tepat. Secara lebih khusus kita dapat menyatakan tujuan RPL adalah : Memperoleh biaya produksi perangkat lunak yang rendah. Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform. Menghasilkan perangkat lunak yang biaya perawatannya rendah.
Ruang Lingkup(Abran et.al., 2004). Sesuai definisi yang telah disampaikan sebelumnya, maka ruang lingkup RPL dapat digambarkan sebagai berikut.
Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak. Software design mencakup proses penentuan arsitektur, komponen, antarmuka, dan karakteristik lain dari perangkat lunak. Software construction berhubungan dengan detil pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian, dan pencarian kesalahan. Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
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 engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL. Software quality menitikberatkan pada kualitas dan daur hidup perangkat lunak.
Proses Perangkat Lunak Sekumpulan aktifitas yang memiliki tujuan untuk pengembangan ataupun evolusi perangkat lunak. Aktifitas generic dalam semua proses perangkat lunak adalah: Spesifikasi apa yang harus dilakukan oleh perangkat lunak dan batasan/kendala pengembangannya Pengembangan proses memproduksi sistem perangkat lunak Validasi pengujian perangkat lunak terhadap keinginan penggunak Evolusi perubahan perangkat lunak berdasarkan perubahan keinginan.
Contoh Jenis Model Proses PL Model aliran kerja (workflow) menunjukkan kegiatan pada proses bersama dengan input, output, dan ketergantungannya. Merepresentasikan pekerjaan manusia. Model aliran data (data flow) merepresentasikan proses sebagai suatu set kegiatan yang melakukan transformasi data. Menunjukkan bagaimana input ke proses, misalnya spesifikasi ditransformasi menjadi output, misalnya menjadi desain.
3. Model peran/aksi merepresentasikan peran orang yang terlibat pada PL dan kegiatan yg menjadi tanggung jawab mereka.
Model atau paradigma umum pada proses PL Model air terjun (waterfall) Mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi, dan evolusi dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya.
2. Pengembangan evolusioner Pendekatan ini berhimpitan dengan kegiatan spesifikasi, pengembangan, dan validasi. Sistem awal dikembangkan dengan cepat dari spesifikasi abstrak. Sistem ini kemudian di perbaiki dengan masukan dari pelanggan untuk menghasilkan sistem yang memuaskan kebutuhan pelanggan.
Pengembangan Sistem Formal Pendekatan ini menghasilkan suatu sistem matematis yang formal dan mentransformasikan spesifikasi ini, dengan menggunakan metode matematik menjadi sebuah program. 4. Pengembangan berdasarkan pemakaian ulang (Reusable) Teknik ini menganggap bahwa bagian-bagian sistem sudah ada. Proses pengembangan sistem terfokus pada pengintegrasian bagian-bagian sistem dan bukan pengembangannya dari awal.