Waterfall Model (SDLC) : Keuntungan dan Kerugiannya

Waterfall Model adalah model sekuensial yang membagi pengembangan perangkat lunak menjadi fase yang telah ditentukan sebelumnya. Setiap fase harus diselesaikan sebelum fase berikutnya dapat dimulai tanpa tumpang tindih antar fase. Setiap fase dirancang untuk melakukan aktivitas tertentu selama fase SDLC. Itu diperkenalkan pada tahun 1970 oleh Winston Royce.

Waterfall Model adalah model siklus hidup pengembangan perangkat lunak yang paling dasar. Ini sangat sederhana tapi idealis. Sebelumnya model ini sangat populer tetapi sekarang tidak digunakan. Tetapi ini sangat penting karena semua model siklus hidup pengembangan perangkat lunak didasarkan pada waterfall model.

Metodologi ini membagi siklus hidup menjadi beberapa fase. Model ini menganggap bahwa satu fase dapat dimulai setelah menyelesaikan fase sebelumnya. Artinya output satu fase akan menjadi input ke fase berikutnya. Dengan demikian proses pembangunan dapat dianggap sebagai aliran berurutan di air terjun. Di sini fase tidak tumpang tindih satu sama lain.

Image result for waterfall model pressman
Waterfall Methodology menurut Pressman

Fase sekuensial dalam model Waterfall adalah –

Communication – (Inisiasi Proyek & Pengumpulan Persyaratan)

Sebelum memulai pekerjaan yang bersifat teknis, sangat diperlukan adanya komunikasi dengan pelanggan demi memahami dan mencapai tujuan yang ingin dicapai. Hasil dari komunikasi tersebut adalah inisialisasi proyek, menganalisis yang menganalisis dan mengumpulkan data-data yang diperlukan, serta membantu mendefinisikan fitur dan fungsi perangkat lunak. Pengumpulan data-tambahan data bisa juga diambil dari jurnal, artikel, dan internet. Semua persyaratan yang mungkin dari sistem yang akan dikembangkan ditangkap dalam fase ini dan didokumentasikan dalam dokumen spesifikasi persyaratan.

PlanningPlanning – (Estimating, Scheduling, Tracking)

Tahap berikutnya adalah tahapan perencanaan yang menjelaskan tentang estimasi tugas-tugas teknis yang akan dilakukan, resiko-resiko yang dapat terjadi, sumber daya yang diperlukan dalam membuat sistem, produk kerja yang ingin dihasilkan, penjadwalan kerja yang akan dilaksanakan, dan tracking proses pengerjaan sistem.

Modelling – (Analysis and Design)

Tahapan ini adalah tahap perancangan dan permodelan arsitektur sistem yang berfokus pada perancangan struktur data, arsitektur software, tampilan interface, dan algoritma program. Tujuannya untuk lebih memahami gambaran besar dari apa yang akan dikerjakan.

Construction(Code & Test)

Tahapan Construction ini merupakan proses penerjemahan bentuk desain menjadi kode atau bentuk/bahasa yang dapat dibaca oleh mesin. Setelah pengkodean selesai, dilakukan pengujian terhadap sistem dan juga kode yang sudah dibuat. Tujuannya untuk menemukan kesalahan yang mungkin terjadi untuk nantinya diperbaiki.

Deployment (Delivery, Support, Feedback)

Tahapan Deployment merupakan tahapan implementasi software ke customer, pemeliharaan software secara berkala, perbaikan software, evaluasi software, dan pengembangan softwareberdasarkan umpan balik yang diberikan agar sistem dapat tetap berjalan dan berkembang sesuai dengan fungsinya. (Pressman, 2015:17)

Semua fase ini mengalir satu sama lain di mana kemajuan terlihat mengalir dengan mantap ke bawah (seperti air terjun) melalui fase-fase tersebut. Fase berikutnya dimulai hanya setelah serangkaian tujuan yang ditentukan tercapai untuk fase sebelumnya dan itu ditandatangani, jadi nama “Waterfall Model”. Dalam model ini, fase tidak tumpang tindih.

Kelebihan

Keuntungan dari pengembangan air terjun adalah memungkinkan adanya departementalisasi dan kontrol. Jadwal dapat diatur dengan tenggat waktu untuk setiap tahap pengembangan dan produk dapat dilanjutkan melalui tahap model proses pengembangan satu per satu.

Pengembangan bergerak dari konsep, melalui desain, implementasi, pengujian, instalasi, pemecahan masalah, dan berakhir pada pengoperasian dan pemeliharaan. Setiap fase perkembangan berlangsung dalam urutan yang ketat.

Kekurangan

The disadvantage of waterfall development is that it does not allow much reflection or revision. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-documented or thought upon in the concept stage.