SEJARAH SOFTWARE ENGINEERING
Istilah software engineering dipakai pertama kali di akhir 1950-an dan awal 1960-an. Waktu itu, masih terdapat perdebatan tajam terkait aspek engineering dari pengembangan perangkat lunak. Di tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan efek kuat terhadap pengembangan rekayasa perangkat lunak. Banyak yang menganggap dua konferensi inilah yang menandai awal resmi pekerjaan rekayasa perangkat lunak.
Pada tahun 1960-an sampai 1980-an, banyak masalah yang didapati para praktisi pengembangan perangkat lunak. Banyak project yang tidak sukses, sampai masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari project yang melampaui anggaran, sampai kasus yang menyebabkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal diataranya yaitu meledaknya roket Ariane akibat kegagalan perangkat lunak. Selama bertahun-tahun, para ilmuwan memfokuskan usahanya untuk mendapatkan teknik jitu untuk menyelesaikan masalah krisis perangkat lunak.
Berbagai teknik, metode, alat, proses diciptakan dan dinyatakan sebagai senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman berorientasi objek, perangkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, UML sampai metode formal diagung-agungkan sebagai senjata pamungkas untuk menghasilkan software yang betul, sesuai anggaran dan tepat waktu. Di tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tak ada satu teknologi atau praktik yang mampu mencapai 10 kali lipat perbaikan dalam produktivitas pengembanan perangkat lunak dalam tempo 10 tahun.
PENGERTIAN DASAR
Istilah Rekayasa Perangkat Lunak (RPL) secara garis besar disepakati sebagai terjemahan dari istilah Software Engineering. Istilah Software Engineering mulai dipopulerkan di tahun 1968 pada Software Engineering Conference yang diadakan oleh NATO. Sebagian kalangan mengartikan RPL cuma sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak ialah seluruh perintah yang dipakai untuk memproses informasi. Perangkat lunak bisa berupa program atau prosedur. Program ialah kumpulan perintah yang dipahami oleh komputer sedangkan prosedur ialah perintah yang diperlukan oleh pemakai dalam memproses informasi (O’Brien, 1999).
RPL sendiri merupakan suatu disiplin ilmu yang mendiskusikan seluruh aspek produksi perangkat lunak, mulai dari langkah awal yaitu analisa kebutuhan pemakai, menentukan spesifikasi dari kebutuhan pemakai, desain, pengkodean, pengujian sampai pemeliharaan sistem sesudah dipakai. Dari pengertian ini jelaslah bahwa RPL tidak cuma berkaitan dengan metode pembuatan program komputer. Pernyataan ”seluruh aspek produksi” pada pengertian di atas, memiliki arti seluruh hal yang berkaitan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas hingga pelatihan pemakai merupakan bagian dari RPL.
TUJUAN REKAYASA PERANGKAT LUNAK
Secara garis besar tujuan RPL tidak beda dengan bidang rekayasa yang lain. Hal ini bisa kita lihat pada Gambar di bawah ini.
- Mendapat biaya produksi perangkat lunak yang rendah.
- Menghasilkan perangkat lunak yang performanya tinggi, andal dan tepat waktu.
- Menghasilkan perangkat lunak yang bisa bekerja di berbagai jenis platform.
- Menghasilkan perangkat lunak yang biaya perawatannya rendah.
RUANG LINGKUP
- Software Requirements berkaitan dengan spesifikasi kebutuhan dan kriteria perangkat lunak.
- Software Desain meliputi proses penampilan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak.
- Software Construction berkaitan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian dan pencarian kesalahan.
- Software Testing mencakup pengujian pada keseluruhan perilaku perangkat lunak.
- Software Maintenance meliputi upaya-upaya perawatan saat perangkat lunak sudah dioperasikan.
- Software Configuration Management berkaitan dengan usaha perubahan konfigurasi perangkat lunak untuk mencukupi kebutuhan tertentu.
- Software Engineering management terkait dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
- Software Engineering Tools And Methods meliputi kajian teoritis tentang alat bantu dan metode RPL.
- Software Engineering Process berkaitan dengan pengertian, implementasi pengukuran, pengelolaan, perubahan dan perbaikan proses RPL.
- Software Quality menitik beratkan pada kualitas dan daur hidup perangkat lunak.