Rekayasa
perangkat lunak (RPL, atau dalam bahasa Inggris: Software Engineering atau SE)
adalah satu bidang profesi yang mendalami cara-cara pengembangan perangkat
lunak termasuk pembuatan, pemeliharaan, manajemen organisasi pengembanganan
perangkat lunak dan manajemen kualitas.
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.
RPL
atau Software Engineering (SE) membahas
semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem
sampai pemeliharaan sistem setelah digunakan.
Permodelan dalam suatu perangkat lunak merupakan
suatu hal yang dilakukan di tahapan awal. Di dalam suatu rekayasa perangkat
lunak, sebenarnya masih memungkinkan tanpa melakukan permodelan. Hal ini tidak
dapat lagi dilakukan dalam suatu industri perangkat lunak.
Permodelan
dalam perangkat lunak merupakan suatu yang harus dikerjakan di bagian awal
rekayasa, dan permodelan ini akan mempengaruhi pekerjaan-pekerjaan dalam rekayasa
perangkat lunak tersebut.
Salah
satu strategi yang sering dipakai sebagai model proses atau paradigma rekayasa
perangkat lunak yaitu dengan menggunakan model waterfall. Model waterfall
merupakan pendekatan perangkat lunak yang sistematik dan sekuensial yang
dimulai dari tahap analisis, desain, kode, pengujian, dan pemeliharaaan.
1.
Sejarah model waterfall.
Nama model ini
sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan
“classic life cycle” atau model waterfall. Model ini pertama kali yang
diperkenalkan oleh Winston Royce sekitar tahun 1970 sehingga sering dianggap
kuno, tetapi merupakan model yang paling banyak dipakai didalam Software
Engineering (SE). Model ini melakukan pendekatan secara sistematis dan
berurutan. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus
menunggu selesainya tahap sebelumnya dan berjalan berurutan.
2.
Pengertian Waterfall.
Menurut
Pressman model waterfall adalah model klasik yang bersifat sistematis,
berurutan dalam membangun software.
Waterfall atau AIR
terjun adalah model yang dikembangkan untuk pengembangan perangkat lunak,
membuat perangkat lunak. model berkembang secara sistematis dari satu tahap ke
tahap lain dalam mode seperti air terjun.
Model ini
mengusulkan sebuah pendekatan kepada pengembangan software yang sistematikdan
sekuensial yang mulai dari tingkat kemajuan sistem pada seluruh analisis,
desain, kode, pengujian dan pemeliharaan. Model ini melingkupi
aktivitas-aktivitas sebagai berikut : rekayasa dan pemodelan sistem informasi,
analisis kebutuhan, desain, koding, mengujian dan pemeliharaan.
Model
pengembangan ini bersifat linear dari tahap awal pengembangan system yaitu
tahap perencanaan sampai tahap akhir pengembangan system yaitu tahap
pemeliharaan. Tahapan berikutnya tidak akan dilaksanakan sebelum tahapan
sebelumnya selesai dilaksanakan dan tidak bisa kembali atau mengulang ke tahap
sebelumnya.
3.
Tahapan
atau fase model waterfall.
Secara umum ada
dua pandangan mengenai model waterfall ini, yaitu : Fase model waterfall
menurut Pressman dan Fase model waterfall menurut sommerfille.
a. Fase
model waterfall menurut Pressman.
v Communication
Langkah ini merupakan analisis terhadap
kebutuhan software, dan tahap untuk mengadakan pengumpulan data dengan
melakukan pertemuan dengan customer, maupun mengumpulkan data-data tambahan
baik yang ada di jurnal,artikel,maupun dari internet.
v Planning.
Proses planning merupakan lanjutan dari
proses communication (analysis requirement). Tahapan ini akan menghasilkan
dokumen user requiremen atau bias dikatakan sebagai data yang berhubungan
dengan keinginan user dalam pembuatan software, termasuk rencana yang akan
dilakukan.
v Modeling.
Proses modeling ini akan menerjemaahkan
syarat kebutuhan ke sebuah perancangan software yang dapat diperkirakan sebelum
dibuat coding, proses ini berfokuspada rancangan struktur data, arsitektur
software, representasi interface , dan detail (algoritma) procedural. Tahapan
ini menghasilkan dokumen yang disebut software requiremen.
v Construction
Construction merupakan proses membuat
kode, coding atau pengkodean meruapakan penerjemaah desain dalam bahasa yang
bias dikenali oleh computer. Programmer akan menerjemaahkan transaksi yang
diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam
mengerjakan suatu software, artinya penggunaan computer akan dimaksimalkan
dalam tahapan ini.
v Deployment
Tahapan ini bias dikatakan final dalam pembuatan
sebuah software atau system. Setelah melakukan analisis, desain dan pengkodean
maka system yang sudah jadi akan digunakan oleh user, kemudian software yang
telah dibuat harus dilakukan pemeliharaan secara berkala.
b. Fase
model waterfall menurut sommerfille.
v Requirement
definition.
Pada tahapan ini dilakukan pengumpulan
bahan-bahan mengenai kebutuhan-kebutuhan pengguna sistem. Setelah itu, hasil
dari pengumpulan tersebut kita analisa sesuai dengan apa yang diinginkan oleh
pengguna. Tahapan ini dapat dilakukan dengan cara melakukan konsultasi dengan
pengguna sistem. Setelah itu, kita definisikan kebutuhan-kebutuhan yang mungkin
dalam sistem yang akan kita buat.
v System
and software design.
Pada proses desain sistem ini, membagi
kebutuhan-kebutuhan yang telah didefinisikan pada tahap sebelumnya menjadi
sistem perangkat lunak atau perangkat keras.
Proses tersebut menghasilkan sebuah arsitektur sistem secara
keseluruhan. Desain perangkat lunak (software) termasuk menghasilkan fungsi
sistem perangkat lunak dalam bentuk yang memungkinkan untuk ditransformasikan
kedalam satu atau lebih program yang dapat dijalankan.
v Implementation
and unit testing.
Pada tahap ini, desain perangkat lunak
yang telah dihasilkan, direalisasikan kedalam bentuk program-program yang
terpisah sesuai dengan unit-unitnya. Setelah terbentuk kedalam suatu program,
maka dilakukan testing atau uji coba terhadap program tersebut.
v Integration
and system testing.
Tahapan ini merupakan tahap akhir
sebelum sistem diserahkan kepada pengguna. Pada tahap ini dilakukan penyatuan
terhadap program-program yang telah diuji pada tahap sebelumnya. Semua program
disatukan kedalam suatu sistem yang lengkap. Setelah itu, dilakukan uji coba
terakhir terhadap sistem yang telah lengkap. Setelah uji coba selesai
dilakukan, maka sistem siap untuk diserahkan kepada pengguna.
v Operation
and maintenance.
Pada dasarnya tahapan ini merupakan
tahap yang membutuhkan waktu paling lama
diantara semua tahapan. Tahapan ini merupakan tahap penggunaan sistem oleh
pengguna. Pengguna akan mengetahui hasil dari sistem yang telah diinginkan.
Setelah itu, dilakukan tahap perawatan atau maintenance. Pemeliharaan suatu
software diperlukan, termasuk di dalamnya adalah pengembangan, karena software
yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja
masih ada permasalahan yang tidak ditemukan sebelumnya, atau ada penambahan
fitur-fitur yang belum ada pada software tersebut.
4.
Tahap Pengembangan Waterfal.
a. Analisis dan definisi persyaratan Pelayanan,
batasan, dan tujuan sistem ditentukan melalui konsultasi dengan user.
b. Perancangan sistem dan perangkat lunak
Kegiatan ini menentukan arsitektur sistem secara keseluruhan.
c. Implementasi dan pengujian unit Perancangan
perangkat lunak direalisasikan sebagai serangkaian program.
d. Integrasi dan pengujian sistem Unit program
diintegrasikan atau diuji sebagai sistem yang lengkap untuk menjamin bahwa
persyaratan sitem telah terpenuhi.
e. Pemeliharaan
merupakan fase siklus yang paling lama. Sistem diinstall dan dipakai. Perbaikan
mencakup koreksi dari berbagai error, perbaikan dan implementasi unit sistem
dan pelayanan sistem.
5.
Kelebihan Waterfall.
a. Merupakan
model pengembangan paling handal dan paling lama digunakan.
b. Cocok
untuk system software berskala besar.
c. Cocok
untuk system software yang bersifat generic.
d. Pengerjaan
project system akan terjadwal dengan baik dan mudah dikontrol.
e. Pembagian
tugas serta monitoring akan sangat mudah dilakukan.
f. Mudah
untuk diaplikasikan.
g. software
yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
6.
Kekurangan Waterfall.
a. Persyaratan
system harus digambarkan dengan jelas..
b. Rincian
proses harus benar-benar jelas dan tidak boleh berubah-ubah.
c. Sulit
untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan.
d. Waktu
pengembangan lama.
e. Biaya
mahal.
f. Model
ini tidak cocok untuk pemodelan pengembangan sebuah proyek yang memiliki
kompleksitas tinggi.
g. Terjadinya
pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen
harus dilakukan pada tahap awal proses.
h. Sulit untuk merespon perubahan kebutuhan
pengguna (user).
7.
Contoh produk yang menerapkan waterfall.
a.
Pembangunan
aplikasi GIS mobile di Kota Padang.
b. Pembuatan aplikasi “buku tamu”
dengan java.
c. Pada sistem informasi penerimaan
siswa online.
d. Sistem informasi akademik.
tulisan bermanfaat sekali terimakasih
BalasHapushttp://blog.binadarma.ac.id/fatoni
tulisan bermanfaat sekali terimakasih
BalasHapusMy Blog
ini tuh waterffal versi kebberapa gan?
BalasHapus