Waterfall model pertama kali diperkenalkan oleh Winston
Royce tahun 1970. Waterfall Model merupakan model klasik yang sederhana dengan
aliran sistem yang linier. Output dari setiap tahap merupakan input bagi tahap
berikutnya.
Waterfall
Model adalah sebuah metode pengembangan software yang bersifat sekuensial .
selain ini Model ini merupakan model yang paling banyak dipakai oleh para
pengembang software. Inti dari metode waterfall adalah pengerjaan dari suatu
sistem dilakukan secara berurutan atau secara linear. Jadi jika langkah satu
belum dikerjakan maka tidak akan bisa melakukan pengerjaan langkah 2, 3 dan
seterusnya. Secara otomatis tahapan ke-3
akan bisa dilakukan jika tahap ke-1 dan ke-2 sudah dilakukan. Berikut tahapan
dari model waterfall:
1. Analisis dan definisi persyaratan
Pelayanan, batasan, dan tujuan sistem ditentukan melalui
konsultasi dengan user, Dalam tahapan ini jasa, kendala dan tujuan dari
konsultasi dengan pengguna sistem. Kemudian semuanya dibuat dalam bentuk yang
dapat dimengerti oleh user dan staf pengembang. Dengan kata lain, dalam tahapn
ini dilakukan analisa kebutuhan, kemudian diverifikasi klien dan tim SQA.
Beberapa macam requirement:
1. User Requirement (Kebutuhan Pengguna)
Pernyataan
tentang layanan yang disediakan sistem dan tentang batasan-batasan
operasionalnya. Dilengkapi dengan gambar/diagram yang dapat dimengerti dengan
mudah.
2. System Requirement (Kebutuhan Sistem)
Sekumpulan
layanan/kemampuan sistem dan batasan-batasannya yang ditulis secara detil. Ini
bisa berlaku sebagai kontrak antara klien dan pembangun.
3. Software Requirement Specification (Spesifikasi Kebutuhan
Perangkat Lunak)
Gambaran
abstrak dari rancangan perangkat lunak yang menjadi dasar bagi perancangan dan
implementasi yang lebih detil.
2. Perancangan sistem dan perangkat lunak
Perancangan perangkat lunak adalah proses dimana analisa
diterjemahkan menjadi “cetak-biru” untuk membangun perangkat lunak. Awalnya,
cetak biru menggambarkan pandangan menyeluruh perangkat lunak. Yaitu, desain
diwakili pada tingkat yang dapat langsung ditelusuri pada sistem tertentu
objektif dan data yang lebih rinci, fungsional, dan persyaratan yang
diperlukan. Seperti terjadi pengulangan desain, perbaikan dari desain
sebelumnya.
Kegiatan
ini menentukan arsitektur sistem secara keseluruhan Fokus pada struktur data,
arsitektur perangkat lunak, representasi interface, dan detail algoritma
prosedural. Proses ini menerjemahkan syarat / kebutuhan ke dalam sebuah
representasi perangkat lunak.
Metode Perancangan:
- Perancangan Data
Yaitu
transformasi model data yang dihasilkan oleh proses analisis menjadi
struktur data yang dibutuhkan pada saat
implementasi.
Hasil perancangan data adalah:
- struktur data siap diprogram
- struktur basis data siap dibuat oleh pemrogram
- prosedur/operasi untuk mengakses data, siap deprogram
- Perancangan Arsitektur
Yaitu
definisi keterkaitan antar elemen-elemen utama yang akan membentuk program.
Hasil perancangan arsitektural:
Structure Chart yang merepresentasikan gambaran menyeluruh
struktur/ arsitektur perangkat lunak, beserta seluruh hierarki kendali/passing
parameter, yang siap dituliskan dalam bentuk modul program.
- Perancangan Antarmuka
Yaitu
penjabaran komunikasi: internal perangkat lunak, antara perangkat lunak, dengan
sistem diluarnya, dan antara perangkat lunak dengan usernya.
Hasil perancangan antarmuka adalah:
- definisi antarmuka modul yang siap untuk diprogram
- definisi / format rancangan layar yang siap
diimplementasikan
- Perancangan Prosedur
Yaitu
transformasi elemen struktural dari arsitektur program menjadi deskripsi
prosedur.
Hasil perancangan prosedur adalah:
- Flow-chart
- Algoritma/pseudocode/program design language
3. Implementasi dan pengujian unit
Pada tahap ini dilakukan kerja untuk membangun perangkat lunak
berdasarkan analisa dan pemodelan yang telah dilakukan. Sehigga hasil dari
tahap ini adalah basis data dan source code perangkat lunak.
Selama tahap ini, desain perangkat lunak disadari sebagai sebuah program
lengkap atau unit program. Desain yang telah disetujui, diubah dalam bentuk
kode-kode program. Tahap ini, kode-kode program yang dihasilkan masih pada
tahap modul-modul. Diakhir tahap ini, tiap modul di testing tanpa
diintegrasikan. Perancangan perangkat lunak direalisasikan sebagai serangkaian
program
4. Integrasi dan pengujian system
Unit program
diintegrasikan atau diuji sebagai sistem yang lengkap untuk menjamin bahwa
persyaratan sistem telah terpenuhi
Setelah source code
dihasilkan, perangkat lunak harus diuji untuk menemukan (dan membenarkan)
sebanyak mungkin kesalahan yang dibuat.
Unit program
diintegrasikan dan diuji menjadi sistem yang lengkap untuk meyakinkan bahwa
persyaratan perangkat lunak telah dipenuhi. Setelah uji coba, sistem
disampaikan ke konsumen.
Metode pengetesan:
1. Black box testing
Black box testing memperlakukan
pengujian perangkat lunak sebagai “kotak hitam” – tanpa pengetahuan tentang
pelaksanaan internal.
2. White box testing
White box testing adalah ketika
penguji memiliki akses ke struktur data internal dan algoritma termasuk source
code.
5. Operasi dan 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.
Proses pemeliharaan
perangkat lunak dan keseluruhan sistem bila terjadi kesalahan pada program,
atau terjadi perubahan lingkungan perangkat lunak dan juga bila terjadi
perubahan requirements dan maintenance yang bersifat preventif untuk
mengantisipasi keadaan yang tidak diinginkan.
Sistem diinstall dan
dipakai. Perbaikan mencakup koreksi dari berbagai error, perbaikan dan
implementasi unit sistem dan pelayanan sistem.
Kelebihan waterfall :
v
Developer dituntut bekerja secara disiplin
v
Simple dan mudah diimplementasikan
v
Dokumen lengkap
v
Selalu dalam kontrol SQA
v
Maintenance mudah, karena dokumen lengkap
Kekurangan Waterfall :
v
Konsumen kesulitan membaca dokumen,
komunikasi menjadi sulit
v
Alur linier, proses lambat
v
Konsumen tidak dapat melihat hasil hingga
akhir tahapan
v
Personil tidak bekerja optimal, karena ada
waktu tunggu sebuah tahapan selesai
v
Model
ini hanya pas jika requirement nya dapat dipahami dengan baik dan perubahan
yang terjadi sangat terbatas selama proses desain berlangsung.