I. Sejarah Software Engineering
Istilah
software engineering digunakan pertama kali pada akhir 1950-an dan awal
1960-an. Saat itu, masih terdapat perdebatan tajam mengenai aspek
engineering dari pengembangan perangkat lunak. Pada tahun 1968 dan 1969,
komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat
lunak, yang memberikan dampak kuat terhadap pengembangan rekayasa
perangkat lunak. Banyak yang menganggap dua konferensi inilah yang
menandai awal resmi profesi rekayasa perangkat lunak
II.
Pengertian Dasar
Istilah Reakayasa Perangkat Lunak (RPL)
secara umum disepakati sebagai terjemahan dari istilah Software
engineering. Istilah Software Engineering mulai dipopulerkan pada tahun
1968 pada software engineering Conference yang diselenggarakan oleh
NATO. Sebagian orang mengartikan RPL hanya sebatas pada bagaimana
membuat program komputer. Padahal ada perbedaan yang mendasar antara
perangkat lunak (software) dan program komputer.
- III.
TUJUAN REKAYASA PERANGKAT LUNAK
Secara
lebih khusus kita dapat menyatakan tujuan RPL adalah:
- memperoleh
biaya produksi perangkat lunak yang rendah
- menghasilkan
pereangkat 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
IV.
RUANG LINGKUP
- software Requirements berhubungan
dengan spesifikasi kebutuhan dan persyaratan perangkat lunak
- software
desain mencakup proses penampilan arsitektur, komponen, antar muka, dan
karakteristik lain dari perangkat lunak
- software construction
berhubungan dengan detail 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
- V.
REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU LAIN
Cakupan ruang lingkup yang cukup luas, membuat
RPL sangat terkait dengan disiplin dengan bidang ilmu lain, tidak saja
sub bidang dalam disiplin ilmu komputer namun dengan beberapa disiplin
ilmu lain diluar ilmu komputer antara lain :
- Bidang ilmu
manajemen meliputi akuntansi, finansial, pemasaran, manajemen operasi,
ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan,
dan strategi bisnis.
- Bidang ilmu matematika meliputi aljabar
linier, kalkulus, peluang, statistik, analisis numerik, dan matematika
diskrit.
- Bidang ilmu manajemen proyek meliputi semua hal yang
berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga
kerja, kualitas, manajemen resiko dan keandalan, perbaikan kualitas, dan
metode-metode kuantitatif.
VI.
PERKEMBANGAN REKAYASA PERANGKAT LUNAK
Meskipun baru
dicetuskan pada tahun 1968, namun RPL telah memiliki sejarah yang cukup
yang panjang. Dari sisi disiplin ilmu, RPL masih reklatif muda dan akan
terus berkembang
VII. METODE REKAYASA PERANGKAT LUNAK
Ikut pada rekayasa perangkat lunak, banyak model yang
telah dikembangkan untuk membantu proses pengembangan perangkat lunak.
Model-model ini pada umumnya mengacu pada model proses pengembangan
sistem yang disebut
System Development Life Cycle (SDLC)
seperti terlihat pada Gambar ber ini.
Kebutuhan terhadap definisi
masalah yang jelas. Input utama dari setiap model pengembangan
perangkat lunak adalah pendefinisian masalah yang jelas. Semakin jelas
akan semakin baik karena akan memudahkan dalam penyelesaian masalah.
Oleh karena itu pemahaman masalah seperti dijelaskan pada Bab 1,
merupakan bagian penting dari model pengembangan perangkat lunak.
VIII.
TAHAPAN REKAYASA PERANGKAT LUNAK
Analisis sistem adalah sebuah teknik
pemecahan masalah yang menguraikan sebuah sistem menjadi
komponen-komponennya dengan tujuan mempelajari seberapa bagus
komponen-komponen tersebut bekerja dan berinteraksi untuk meraih tujuan
mereka.
Analisis mungkin adalah bagian terpenting dari proses
rekayasa perangkat lunak. Karena semua proses lanjutan akan sangat
bergantung pada baik tidaknya hasil analisis. Ada satu bagian penting
yang biasanya dilakukan dalam tahapan analisis yaitu pemodelan proses
bisnis.
Model
proses adalah model yang memfokuskan pada seluruh proses di dalam
sistem yang mentransformasikan data menjadi informasi (Harris, 2003).
Model proses juga menunjukkan aliran data yang masuk dan keluar pada
suatu proses. Biasanya model ini digambarkan dalam bentuk Diagram Arus
Data (Data Flow Diagram / DFD). DFD meyajikan gambaran apa yang
manusia, proses dan prosedur lakukan untuk mentransformasi data menjadi
informasi.
Desain
perangkat lunak adalah tugas, tahapan atau aktivitas yang difokuskan
pada spesifikasi detil dari solusi berbasis computer (Whitten et al,
2004).
Disain perangkat lunak sering juga disebut sebagai physical
design. Jika tahapan analisis sistem menekankan pada masalah bisnis
(business rule), maka sebaliknya disain perangkat lunak fokus pada sisi
teknis dan implementasi sebuah perangkat lunak (Whitten et al, 2004).
Output
utama dari tahapan disain perangkat lunak adalah spesifikasi disain.
Spesifikasi ini meliputi spesifikasi disain umum yang akan disampaikan
kepada stakeholder sistem dan spesifikasi disain rinci yang akan
digunakan pada tahap implementasi. Spesifikasi disain umum hanya berisi
gambaran umum agar stakeholder sistem mengerti akan seperti apa
perangkat lunak yang akan dibangun.Biasanya diagram USD tentang
perangkat lunak yang baru merupakan point penting dibagian ini.
Spesifikasi
disain rinci atau kadang disebut disain arsitektur rinci perangkat
lunak diperlukan untuk merancang sistem sehingga memiliki konstruksi
yang baik, proses pengolahan data yang tepat dan akurat, bernilai,
memiliki aspek user friendly dan memiliki dasar-dasar untuk pengembangan
selanjutnya.
Desain arsitektur ini terdiri dari desain database,
desain proses, desain user interface yang mencakup desain input,
output form dan report, desain hardware, software dan jaringan. Desain
proses merupakan kelanjutan dari pemodelan proses yang dilakukan pada
tahapan analisis.
Konstruksi
adalah tahapan menerjemahkan hasil disain logis dan fisik ke dalam
kode-kode program komputer.
Pengujian sistem melibatkan semua kelompok
pengguna yang telah direncanakan pada tahap sebelumnya. Pengujian
tingkat penerimaan terhadap perangkat lunak akan berakhir ketika dirasa
semua kelompok pengguna menyatakan bisa menerima perangkat lunak
tersebut berdasarkan kriteria-kriteria yang telah ditetapkan.
- Perawatan
dan Konfigurasi
Ketika sebuah
perangkat lunak telah dianggap layak untuk dijalankan, maka tahapan baru
menjadi muncul yaitu perawatan perangkat lunak. Ada beberapa tipe
perawatan yang biasa dikenal dalam dunia perangkat lunak seperti
terlihat pada diagram di Gambar di bawah ini :
- Tipe
perawatan corrective dilakukan jika terjadi kesalahan atau biasa
dikenal sebagai bugs. Perawatan bisa dilakukan dengan memperbaiki kode
program, menambah bagian yang dirasa perlu atau malah menghilangkan
bagian-bagian tertentu.
- Tipe perawatan routine biasa juga
disebut preventive maintenance dilakukan secara rutin untuk melihat
kinerja perangkat lunak ada atau tidak ada kesalahan.
- Tipe
perawatan sistem upgrade dilakukan jika ada perubahan dari
komponen-komponen yang terlibat dalam perangkat lunak tersebut. Sebagai
contoh perubahan platform sistem operasi dari versi lama ke versi baru
menyebabkan perangkat lunak harus diupgrade.