Salah
satu model pengembangan perangkat lunak adalah Spiral Model. Spiral model dapat definisikan sebagai proses
pengembangan perangkat lunak dengan bentuk evolusi yang menggunakan metode
iteratif dari model prototyping, dan penggabungan dengan aspek sistematis
yang dikembangkan oleh model waterfall.
Model ini melakukan tahap prototyping
yang merupakan tahap dimana perangkat lunak dibuat lalu diperlihatkan kepada
pelanggan/costumer untuk memperoleh
umpan balik atau feedback yang
digunakan untuk melanjutkan proses perancangan perangkat lunak yang sesuai
dengan keinginan costumer.
Model
spiral ini merupakan model pengembangan software yang cocok digunakakn untuk
perangkat lunak dalam skala besar dan kompleks, karena proses pengembangan
perangkat lunak akan semakin jelas terlihat seiring dengan perkembangan proses
yang dialami oleh pengembang perangkat lunak bersama dengan costumer sehingga keduanya dapat lebih
memahami spesifikasi produk dan bertindak dengan tepat dalam menghadapi
resiko-resiko perangkat lunak yang muncul disetiap bentuk evolusi.
Dikatakan
model spiral, karena mekanisme kerja dari model ini membentuk satu lingkaran
dari bentuk spiral yang dibagi menjadi beberapa daerah yang disebut dengan region.
Dalam mekanisme kerja model spiral ini, region
tersebut dibagi menjadi beberapa kerangka aktivitas, yang disebut dengan task region. Task region atau wilayah tugas ini dibagi dalam enam aktivitas,
yaitu:
1). Costumer Communication / Komunikasi Pelanggan
Aktivitas dimana
pengembang software dan costumer menjalin komunikasi yang efektif untuk
mengetahui kebutuhan dari costumer.
2). Planning / Perencanaan
Aktivitas yang
dilakukan untuk merencanakan hal-hal yang dibutuhkan dalam pengembangan
software, seperti perkiraan waktu pengerjaan, penentuan sumberdaya-sumberdaya,
dll.
3). Analysis Risk / Analisis Resiko
Aktivitas dimana
pengembang software melakukan analisis terhadap resiko-resiko baik secara
teknis maupun secara manajemen. Aktivitas ini merupakan salah satu pembeda
model spiral dengan model lain yang juga bersifat iteratif, karena aktivitas
ini hanya dilakukan oleh model spiral.
4). Engineering / Perekayasaan
Aktivitas yang
dilakukan untuk mulai membangun 1 atau lebih perangkat lunak ke level atau
versi-versi perangkat lunak yang selanjutnya yang semakin kompleks.
5). Construction & Release / Konstruksi & Peluncuran
Aktivitas yang
dilakukan untuk mengembangkan software, menguji, memasang dan memberi pelayanan
kepada costumer.
6). Costumer Evaluation / Evaluasi Pelanggan
Aktivitas dimana pengembang software dapat menerima umpan balik/feedback dari costumer yaitu evaluasi mereka terhadap perekayasaan software dan implementasi selama software diluncurkan.