SDLC memiliki beberapa model dalam penerapan tahapan prosesnya, beberapa model dasar akan di
bahas pada sub bab berikutnya. Selain model-model dasar yang akan dibahas, masih banyak model-
model yang muncul dengan memodifikasi model-model SDLC dasar.
1. Model Waterfall
Model SDLC waterfall sering juga disebut model sekuensial linier (sequential linier) atau alur hidup
klasik (classic life cycle). Model ini menyediakan pendekatan alur hidup perangkat lunak secara
sekuensial atau terurut dimulai dari analisis, desain, pengkodean, pengujian dan tahap pendukung
(support). Berikut adalah gambar model waterfall :
Dari kenyataan yang terjadi sangat jarang model waterfall dapat dilakukan sesuai alurnya karena
sebab berikut :
Perubahan spesifikasi perangkat lunak terjadi di tengah alur pengembangan
Sangat sulit bagi pelanggan untuk mendefinisikan semua spesifikasi di awal alur
pengembangan. Pelanggan sering kali butuh contoh (prototype) untuk menjabarkan
spesifikasi kebutuhan sistem lebih lanjut.
Pelanggan tidak mungkin bersabar mengakomodasi perubahan yang diperlukan di akhir alur
pengembangan.
Degan berbagai kelemahan yang dimiliki model ini tapi model ini telah menjadi dasar dari model-
model yang lain dalam melakukan perbaikan model pengembangan perangkat lunak.
Model waterfall sangat cocok digunakan kebutuhan pelanggan sudah sangat dipahami dan
kemungkinan terjadinya perubahan kebutuhan selama pengembangan perangkat lunak kecil. hal
positif dari model ini adalah struktur tahap pengembangan sistem jelas, dokumentasi dihasilkan di
setiap tahap pengembangan dan sebuah tahap dijalankan setelah tahap sebelumnya selesai
dijalankan (tidak ada tumpang tindih pelaksanaan tahap).
Model waterfall adalah model SDLC yang paling sederhana. Model ini hanya cocok untuk
pengembangan perangkat lunak degan spesifikasi yang tidak berubah-ubah
2. Model prototype
Sering pelanggan membayangkan kumpulan kebutuhan yang diinginkan tapi tidak terspesifikasikan
secara detail dari segi masukan (input), proses, maupun keluaran (output). Di sisi lain seorang
pengembangan perangkat lunak harus menspesifikasikan sebuah kebutuhan secara detail dari segi
teknis pelanggan sering kurang mengerti mengenai hal teknis ini
model prototype dapat digunakan untuk menyambungkan ketidakpahaman pelanggan mengenai hal
teknis dan memperjelas spesifikasi kebutuhan yang diinginkan pelanggan kepada pengembangan
perangkat lunak.
Model prototype dimulai dari mengumpulkan kebutuhan pelanggan terhadap perangkat lunak yang
akan dibuat. Lalu dibuatlah program prototype agar pelanggan lebih terbayang dengan apa yang
sebenarnya diinginkan. Program prototype biasanya merupakan program yang belum jadi. Program
ini biasanya menyediakan tampilan dengan simulasi air perangkat lunak sehingga tampak seperti
perangkat lunak yang sudah jadi. Program prototype ini dievaluasikan oleh pelanggan atau user
sampai ditemukan spesifikasi yang sesuai dengan keinginan pelanggan atau user.
Mock-up adalah sesuatu yang digunakan sebagai model desain yang digunakan untuk mengajar,
demontrasi, evaluasi desain, promosi atau keperluan lain. Sebuah mock-up disebut sebagai
prototype perangkat lunak ika menyediakan atau mampu mendemonstrasikan sebagian dari fungsi
sistem perangkat lunak dan memungkinkan pengujian desain sistem perangkat lunak. Iterasi terjadi
pada pembuatan prototype sampai sesuai dengan keinginan pelanggan atau user.
Seiring dengan mengembangkan prototype makan sistem perangkat lunak yang sebenarnya
dikembangkan juga sehingga sesuai dengan kebutuhan pelanggan atau user.
Model prototype juga memiliki kelemahan sebagai berikut :
Pelanggan dapat sering mengubah-ubah atau menambah spesifikasi kebutuhan karena
menganggap aplikasi sudah dengan cepat dikembangkan karena adanya iterasi ini dapat
menyebabkan pengembangan banyak mengalahkan dengan pelanggan karena perubahan
atau penambahan spesifikasi kebutuhan perangkat lunak.
Pengembang lebih sering mengambil kompromi dengan pelanggan untuk mendapatkan
prototype dengan waktu yang cepat sehingga pengembangan lebih sering melakukan segala
cara (tanpa idealis). Guna menghasilkan prototype untuk didemonstrasikan. Hal ini dapat
menyebabkan kualitas perangkat lunak yang kurang bak atau bahkan menyebabkan iteratif
tanpa akhir.
Permasalahan dapat terjadi pada model prototype. Hal ini dapat diatasi dengan melakukan
perjanjian antara pengembang perangkat lunak dengan pelanggan atau user agar model prototype
hanya digunakan untuk mendefinisikan spesifikasi kebutuhan perangat lunak. Tapi tidak untuk
seluruh proses pengembangan seluruh sistem perangkat lunak.
Model prototype cocok digunakan untuk menjabarkan kebutuhan pelanggan secara lebih detail
karena pelanggan sering kali kesulitan menyampaikan kebutuhan secara detail tanpa melihat
gambaran yang jelas. Untuk mengantisipasi agar proyek dapat berjalan sesuai dengan target waktu
dan biaya di awal, maka sebaiknya spesifikasi kebutuhan sistem harus sudah disepakati oleh
pengembangan dengan pelanggan secara tertulis. Dokumen tersebut akan menjadi patokan agar
spesifikasi kebutuhan sistem masih dalam ruang lingkup proyek.
Model prototype kurang cocok untuk aplikasi dengan skala besar karena membuat prototype untuk
aplikasi skala besar akan sangat memakan waktu dan tenaga.
Model prototype cocok digunakan untuk menggali spesifikasi kebutuhan pelanggan secara lebih
detail tetapi beresiko tinggi terhadap membengkaknya biaya dan waktu proyek.