1. Waterfall Development Model
Waterfall
development model merupakan paradigma model pengembangan perangkat lunak paling
tua, dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan
perkembangan perangkat lunak yang sistematik dan sekuensial.
Berikut
Merupakan Tahapan – tahapan Pengembangan Model Sekuensial Linear /
Waterfall Development Model :
a) Rekayasa dan
pemodelan sistem/informasi
b)
Analisis kebutuhan perangkat
lunak
c)
Desain
d)
Pengkodean
e)
Pengujian
f)
Pemeliharaan, meliputi:
Kelebihan Waterfall
Development Model :
- Tahapan proses pengembangannya
tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
- Cocok digunakan untuk produk
software/program yang sudah jelas kebutuhannya di awal, sehingga minim
kesalahannya.
- Software yang dikembangkan
dengan metode ini biasanya menghasilkan kualitas yang baik.
Kekurangan
Model Sekuensial Linear / Waterfall Development Model :
- Proyek yang sebenarnya jarang
mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang
terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang
harus diubah kembali/iterasi sering menyebabkan masalah baru.
- Terjadinya pembagian proyek
menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan
pada tahap awal proses.
- Sulit untuk mengalami
perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
- Perubahan ditengah-tengah
pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat
produk.
- Adanya waktu kosong
(menganggur) bagi pengembang, karena harus menunggu anggota tim proyek
lainnya menuntaskan pekerjaannya.
2. Model Prototype
Metode
Prototype merupakan suatu paradigma baru dalam metode pengembangan perangkat
lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan
perangkat lunak, tetapi juga merevolusi metode pengembangan perangkat lunak
yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC atau
Waterfall Development Model.
Dalam Model
Prototype, prototype dari perangkat lunak yang dihasilkan kemudian
dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan
untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya
betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.
Perubahan dan
presentasi prototype dapat dilakukan berkali-kali sampai dicapai kesepakatan
bentuk dari perangkat lunak yang akan dikembangkan.
Teknik – teknik
Prototyping Meliputi :
- Perancangan Model
- Perancangan Dialog
- Simulasi
Berikut adalah
4 langkah yang menjadi karakteristik dalam proses pengembangan pada metode
prototype, yaitu :
- Pemilihan fungsi
- Penyusunan Sistem Informasi
- Evaluasi
- Penggunaan Selanjutnya
Metode ini
menyajikan gambaran yang lengkap dari suatu sistem perangkat lunak, terdiri
atas model kertas, model kerja dan program. Pihak pengembang akan melakukan
identifikasi kebutuhan pemakai, menganalisa sistem dan melakukan studi
kelayakan serta studi terhadap kebutuhan pemakai, meliputi model interface,
teknik prosedural dan teknologi yang akan dimanfaatkan.
Tahapan - tahapan
Proses dengan Model Prototype:
a) Pengumpulan Kebutuhan
b) Membangun Prototyping
c) Evaluasi Prototyping
d) Pengkodean Sistem
e) Menguji Sistem
f) Evaluasi Sistem
g) Implementasi Sistem
Kelebihan Model
Prototype :
- Pelanggan berpartisipasi aktif
dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin
mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
- Penentuan kebutuhan lebih mudah
diwujudkan.
- Mempersingkat waktu
pengembangan produk perangkat lunak.
- Adanya komunikasi yang baik
antara pengembang dan pelanggan.
- Pengembang dapat bekerja lebih
baik dalam menentukan kebutuhan pelanggan.
- Lebih menghemat waktu dalam
pengembangan sistem.
- Penerapan menjadi lebih mudah
karena pelanggan mengetahui apa yang diharapkannya.
Kekurangan
Model Prototype :
- Proses analisis dan perancangan
terlalu singkat.
- Walaupun pemakai melihat
berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin
tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas
dan pemeliharaan jangka panjang.
- Pengembang kadang-kadang
membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak
relevan dan algoritma yang tidak efisien.
3. Model Rapid Application Development (RAD)
Rapid Aplication Development (RAD)
adalah sebuah model proses perkembanganperangkat lunak sekuensial linier yang
menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90
hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model
sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan
pendekatan konstruksi berbasis komponen.
Berikut adalah Tahapan – tahapan Proses
Pengembangan dalam Model Rapid Application Development (RAD), yaitu :
a)
Bussiness
Modelling
- Informasi apa yang menegndalikan
proses bisnis?
- Informasi apa yang dimunculkan?
- Di mana informasi digunakan ?
b) Data Modelling
c) Process Modelling
d) Application Generation
e) Testing & Turnover
Kelebihan Model
RAD :
- Lebih efektif dari Pengembangan
Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi
kebutuhan langsung dari pelanggan.
- Cocok untuk proyek yang
memerlukan waktu yang singkat.
- Model RAD mengikuti tahap
pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk
menggunakan kembali komponen yang ada sehingga pengembang tidak perlu
membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih
singkat dan efisien.
Kekurangan
Model RAD :
- Model RAD menuntut pengembangan
dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang
diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang
sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan
gagal.
- Tidak semua aplikasi sesuai
untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan
komponen penting pada RAD akan menjadi sangat bermasalah.
- Membutuhkan Tenaga kerja yang
banyak untuk menyelesaikan sebuah proyek dalam skala besar.
- Jika ada perubahan di
tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang
dan pelanggan.
4. Model Incremental
Model
Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang
diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear
sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut
dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian
proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih
lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.
Model ini berfokus pada
penyampaian produk operasional dalam Setiap pertambahanya. Pertambahan awal ada
di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk
melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai. Model
ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan
ketersediaan waktu yang terbatas.
Kelebihan Model Incremental :
- Personil bekerja optimal.
- Mampu mengakomodasi perubahan
secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan
anggota/tim kerja yang banyak untuk menjalankannya.
- Memaksimalkan pengembalian
modal investasi konsumen.
Kekurangan Model Incremental :
- Tidak cocok untuk proyek
berukuran besar (lebih dari 200.000 baris coding).
- Sulit untuk memetakan kebutuhan
pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increment.
5. Model Spiral / Model Boehm
Model
ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping
dengan pengulangannya dan model waterfall dengan pengendalian dan
sistematikanya. Model ini dikenal dengan sebutan Spiral Boehm. Pengembang
dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan
produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses
pengerjaan proyek.
a)
Tahap
Liason
Pada tahap ini dibangun komunikasi
yang baik dengan calon pengguna/pemakai.
b)
Tahap
Planning (Perencanaan)
Pada tahap ini ditentukan
sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat
menjelaskan proyek.
c)
Tahap
Analisis Resiko
Mendefinisikan resiko, menentukan
apa saja yang menjadi resiko baik teknis maupun manajemen.
d)
Tahap
Rekayasa (engineering)
Pembuatan prototype.
e)
Tahap
Konstruksi dan Pelepasan (Release)
Pada tahap ini dilakukan pembangunan
perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan
tambahan untuk keberhasilan proyek.
f)
Tahap
Evaluasi:Pelanggan/pemakai/pengguna
biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap
engineering dan instalasi.
Kelebihan
Sangat mempertimbangkan resiko
kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk
pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan
melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall
ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk
mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat
mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya
dapat diamati dengan baik.
Kekurangan
Waktu yang
dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga
biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat
memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai
saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup
handal untuk diterapkan.
6.
Model V /
V-Model
Bisa dikatakan model ini merupakan
perluasan dari model waterfall. Disebut sebagai perluasan karena tahap-tahapnya
mirip dengan yang terdapat dalam model waterfall. Jika dalam model waterfall
proses dijalankan secara linear, maka dalam model V proses dilakukan bercabang.
Dalam model V ini digambarkan hubungan antara tahap pengembangan software
dengan tahap pengujiannya.
Kelebihan V model:
- V Model sangat fleksibel. V
Model mendukung project tailoring dan penambahan dan pengurangan method
dantool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring
pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah
untuk menambahkan method dan tool baru atau menghilangkan method dan tool
yang dianggap sudah obsolete.
- V Model dikembangkan dan
di-maintain oleh publik. User dari V Model berpartisipasi dalam change
control boardyang memproses semua change request terhadap V Model.
Kekurangan V model:
- V Model adalah model yang
project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
- V Model terlalu fleksibel dalam
arti ada beberapa activity dalam V Model yang digambarkan terlalu abstrak
sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalamactivity
tersebut dan apa yang tidak.
7. Extreme
Programming
Extreme
Programming (XP) adalah suatu model yang termasuk dalam pendekatan agile yang diperkenalkan oleh Kent Back. Menurut
penjelasannya, definisi XP adalah sebagai berikut: “Extreme Programming (XP) adalah metode pengembangan
software yang cepat, efisien, beresiko rendah, fleksibel, terprediksi,
scientific, dan menyenangkan.“.
Model ini cenderung menggunakan
pendekatan Object-Oriented. Tahapan-tahapan yang
harus dilalui antara lain:
a)
Planning
b)
Design
c)
Coding
d)
Testing
Sasaran
Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai
medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan
untuk menghadapi requirements yang tidak jelas maupun terjadinya
perubahan-perubahan requirements yang sangat cepat. Extreme Programming
merupakan agile methods yang paling banyak digunakan dan menjadi sebuah
pendekatan yang sangat terkenal.
Core Value Extreme
Programming, yaitu:
a) Komunikasi
b) Kesederhanaan
c) Umpan Balik
d) Keberanian
Berikut Siklus Hidup dalam XP:
Kelebihan Extreme Programming,
yaitu:
- Meningkatkan kepuasan kepada
klien
- Pembangunan system dibuat lebih
cepat
Kelemahan Extreme Programming,
yaitu:
- Cerita-cerita yang menunjukkan
requirements dari pelanggan kemungkinan besar tidak lengkap sehingga Developer harus selalu siap
dengan perubahan karena perubahan akan selalu diterima.
- Tidak bisa membuat kode yang
detail di awal (prinsip simplicity
dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
- XP tidak memiliki dokumentasi
formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah
dokumentasi awal yang dilakukan oleh user.