Model Waterfall
Gambar: Model Waterfall
Sejarah Model Waterfall
Model Waterfall ini
awalnya ditemukan oleh Winston W. Royce pada tahun 1970 . Dia menulis sebuah
artikel ilmiah yang berisi pandangan pribadinya pada pengembangan perangkat
lunak . Pada paruh pertama dari artikel, ia membahas sebuah proses yang dia
sebut ” megah ” . Dia bahkan menggambar sosok model , dan lain yang menunjukkan
mengapa hal itu tidak bekerja ( karena persyaratan selalu berubah ) . Model ini
adalah air terjun . Dia menggunakannya sebagai contoh dari proses yang sama
sekali tidak bekerja. Di paruh kedua artikel ia menggambarkan proses
berulang-ulang bahwa ia dianggap jauh lebih baik .
Nama model ini sebenarnya
adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life
cycle” atau model waterfall. Model ini sering dianggap kuno, tetapi merupakan
model yang paling banyak dipakai didalam Software Engineering (SE). Model ini
melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan
sistem lalu menuju ke tahap analisis, desain, coding, testing / verification,
dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui
harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai
contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap
requirement. Berikut gambar model waterfall.
Pengertian Waterfall
Waterfall adalah suatu metodologi pengembangan perangkat
lunak yang mengusulkan pendekatan kepada perangkat lunak sistematik dan
sekuensial yang mulai pada tingkat kemajuan sistem pada seluruh analisis,
design, kode, pengujian dan pemeliharaan.
Langkah-langkah yang harus dilakukan pada metodologi
Waterfall
1. Requirement Analysis
Seluruh kebutuhan software harus
bisa didapatkan dalam fase ini, termasuk didalamnya kegunaan
software yang diharapkan pengguna dan batasan software. Informasi
ini biasanya dapat diperoleh melalui wawancara, survey atau diskusi. Informasi
tersebut dianalisis untuk mendapatkan dokumentasi kebutuhan pengguna untuk digunakan
pada tahap selanjutnya.
2. System Design
Tahap ini dilakukan sebelum melakukan
coding. Tahap ini bertujuan untuk memberikan gambaran apa yang seharusnya
dikerjakan dan bagaimana tampilannya. Tahap ini membantu dalam
menspesifikasikan kebutuhan hardware dan sistem serta mendefinisikan arsitektur
sistem secara keseluruhan.
3. Implementation
Dalam tahap ini dilakukan pemrograman.
Pembuatan software dipecah menjadi modul-modul kecil yang nantinya akan
digabungkan dalam tahap berikutnya. Selain itu dalam tahap ini juga dilakukan
pemeriksaaan terhadap modul yang dibuat, apakah sudah memenuhi fungsi yang
diinginkan atau belum.
4. Integration & Testing
Di tahap ini dilakukan penggabungan
modul-modul yang sudah dibuat dan dilakukan pengujian ini dilakukan untuk
mengetahui apakah software yang dibuat telah sesuai dengan desainnya dan masih
terdapat kesalahan atau tidak.
5. Operation & Maintenance
Ini merupakan tahap terakhir dalam
model waterfall. Software yang sudah jadi dijalankan serta dilakukan
pemeliharaan. Pemeliharaan termasuk dalam memperbaiki kesalahan yang
tidak ditemukan pada langkah sebelumnya. Perbaikan implementasi unit sistem dan
peningkatan jasa sistem sebagai kebutuhan baru.
Keuntungan Waterfall
Kualitas dari sistem yang dihasilkan akan baik. Ini
dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak terfokus pada
tahapan tertentu.
Document pengembangan system sangat terorganisir, karena
setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase
berikutnya. Jadi setiap fase atau tahapan akan mempunyai dokumen
tertentu.
Metode ini masih lebih baik digunakan walaupun sudah
tergolong kuno, daripada menggunakan pendekatan asal-asalan. Selain itu, metode
ini juga masih masuk akal jika kebutuhan sudah diketahui dengan baik.
Kelemahan Waterfall
Diperlukan majemen yang baik, karena proses pengembangan
tidak dapat dilakukan secara berulang sebelum terjadinya suatu produk.
Kesalahan kecil akan menjadi masalah besar jika tidak
diketahui sejak awal pengembangan yang berakibat pada tahapan selanjutnya.
Pelanggan sulit menyatakan kebutuhan secara eksplisit
sehingga tidak dapat mengakomodasi ketidak pastian pada saat awal pengembangan.
Pelanggan harus sabar, karena pembuatan perangkat lunak akan
dimulai ketika tahap desain sudah selesai. Sedangkan pada tahap sebelum desain
bisa memakan waktu yang lama.
Pada kenyataannya, jarang mengikuti urutan sekuensial
seperti pada teori. Iterasi sering terjadi menyebabkan masalah baru.
Kapan Model Waterfall digunakan?
Teori-teori lama menyimpulkan ada beberapa hal, yaitu:
Ketika semua persyaratan sudah dipahami dengan baik di awal
pengembangan.
Definisi produk stabil dan tidak ada perubahan saat
pengembangan untuk alasan apapun seperti perubahan eksternal, perubahan tujuan,
perubahan anggaran atau perubahan teknologi. Untuk itu, teknologi yang
digunakan pun harus sudah dipahami dengan baik.
Menghasilkan produk baru, atau versi baru dari produk yang
sudah ada. Sebenarnya, jika menghasilkan versi baru maka sudah masuk
incremental development, yang setiap tahapnya sama dengan Waterfall kemudian
diulang-ulang.
Porting produk yang sudah ada ke
dalam platform baru.
Dengan demikian, Waterfall dianggap pendekatan yang lebih
cocok digunakan untuk proyek pembuatan sistem baru. Tetapi salah satu kelemahan
paling dasar adalah menyamakan pengembangan perangkat keras dengan perangkat
lunak dengan meniadakan perubahan saat pengembangan. Padahal, galat diketahui
saat perangkat lunak dijalankan, dan perubahan-perubahan akan sering terjadi.
http://tonyjustinus.wordpress.com/2007/11/11/waterfall-process-model/