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.