Software proses terbagi atas beberapa bagian yaitu :
· Waterfall
Model
Dinamakan waterfall
model karena proses ini seperti model air terjun. Proses selanjtnya dapat
dikerjakan bila proses yang sebelumnya telah selesai dikerjakan.
Fase-fase pada
Waterfall model menurut referensi Sommerville:
· Requirements analysis and definition: Mengumpulkan kebutuhan
secara lengkap kemudian kemudian dianalisis dan didefinisikan
kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini
harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang
lengkap.
· System and software design: Desain dikerjakan setelah kebutuhan
selesai dikumpulkan secara lengkap.
· Implementation and unit testing: desain program
diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman
yang sudah ditentukan. Program yang dibangun langsung diuji baik secara
unit
· Integration and system testing: Penyatuan unit-unit program
kemudian diuji secara keseluruhan (system testing).
· Operation and maintenance: mengoperasikan program
dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau
perubahan karena adaptasi dengan situasi sebenarnya.
Keunggulan pengaplikasian model ini, antara lain adalah sebagai berikut:
·Software
yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
· Document
pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan
dengan lengkap sebelum melangkah ke fase berikutnya.
Kekurangan pengaplikasian model ini, antara lain adalah
sebagai berikut:
· Ketika problem muncul,
maka proses berhenti, karena tidak dapat menuju ke tahapan selanjutnya. Bahkan
jika kemungkinan problem tersebut muncul akibat kesalahan dari tahapan
sebelumnya, maka proses harus membenahi tahapan sebelumnya agar problem ini
tidak muncul. Hal-hal seperti ini yang dapat membuang waktu pengerjaan SE.
·Karena pendekatannya
secara sequential, maka setiap tahap harus menunggu hasil dari tahap
sebelumnya. Hal itu tentu membuang waktu yang cukup lama, artinya bagian lain
tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap
sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama
pengerjaannya.
·Pada setiap tahap
proses tentunya dipekerjakan sesuai spesialisasinya masing-masing. Oleh karena
itu, ketika tahap tersebut sudah tidak dikerjakan, maka sumber dayanya juga
tidak terpakai lagi. Oleh karena itu, seringkali pada model proses ini
dibutuhkan seseorang yang “multi-skilled”, sehingga minimal dapat membantu
pengerjaan untuk tahapan berikutnya.
·Prototyping
Model
Pada proses
prototyping, keinginan pemesan adalah yang nomor satu. Awalnya ketika baru
berjalan, setelah mendengar keinginan si pemesan, maka akan dibuatkan contoh
dasar dari software yang diinginkan oleh si pemesan. Apabila tidak sesuai
dengan keinginan, maka contoh dasar tersebut dapat dengan mudah
dikembangkan/dirombak seusai dengan keinginan pemesan.
Keungggulan
:
· Adanya
kominuikasi yang baik antara pengembang dan pelanggan.
· Pengembang
dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
· Pelangggan
berperan aktif dalam pengembangan sistem
· Lebih
menghemat waktu dalam pengembangan sistem
· Penerapan
menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya
Kelemahan :
· Ketidaksadaran user bahwa ini hanya
suatu model awal bukan model akhir
· Pengembang
kadang-kadang membuat implementasi yang sembarangan.
· Teknik dan tools yang tidak optimal pada
prototipe yang akan tetap digunakan pada softare sesungguhnya
· Rapid
Application Development (RAD)
RAD merupakan
pengembangan dari waterfall model, perbedaan mendasar pada RAD dibandingkan
dengan waterfall model adalah pembagian tugas dalam pembuatan perangkat lunak.
Pada hal ini pembuatan perangkat lunak di bagi dalam beberapa team dan ketika
team tersebut telah menyelesaikannya, akan di gabung dan satukan dalam sebuah
software.
Keuntungan dari RAD :
· Sangat berguna
dilakukan pada kondisi user tidak memahami kebutuhan-kebutuhan apa saja yang
digunakan pada proses pengembangan perangkat lunak.
· RAD mengikuti tahapan
pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk
menggunakan kembali komponen yang ada (reusable object) sehingga pengembang
tidak perlu membuat dari awal lagi dan waktu lebih singkat berkisar antara 60
hari sampai 90 hari.
· Karena mempunyai
kemampuan untuk menggunakan komponen yang sudah ada dan waktu yang lebih
singkat maka membuat biaya menjadi lebih rendah dalam menggunakan RAD
Kelemahan dari RAD :
· Proyek yang berskala
besar, RAD memerlukan sumber daya manusia yang memadai untuk menciptakan jumlah
tim yang baik.
· RAD menuntut
pengembang dan pelanggan memiliki komitmen dalam aktivitas rapid fire yang
diperlukan untuk melengkapi sebuah sistem dalam waktu yang singkat. Jika
komitmen tersebut tidak ada maka proyek RAD akan gagal.
· Incremental
Model
Pada proses pembuatan
software dengan menggunakan model ini, ketika proses analysis dan design telah
selesai dikerjakan, maka dapat dilanjutkan ke increment yang berikutnya.
Demikian juga selanjutnya. Pada proses ini, ketika increment selanjutnya di
kerjakan, analysis yang dipakai tidak jauh berbeda dari increment sebelumnya.
Hanya saja pada increment selanjutnya akan jauh lebih baik dan lebih mendekati
keinginan pemesan software.
Kelebihan Increment Model
· Personil bekerja
optimal
· Pihak
konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai
dibangun. COntohnya pemasukan data karyawan.
· Mengurangi
trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan
menggunakan produknya bagian per bagian.
· Memaksimalkan
pengembalian modal investasi konsumen
Kekurangan Increment Model
· Kemungkinan
tiap bagian tidak dapat diintegrasikan.
· Dapat
menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat
perubahan selama proses rekayasa berlangsung.
· Harus
Open Architecture
·Spiral
Model
· Customer communication. Aktivitas yang dibutuhkan untuk membangun komunikasi yang
efektif antara developer dengan user / customer terutama mengenai kebutuhan
dari customer.
· Planning. Aktivitas
perencanaan ini dibutuhkan untuk menentukan sumberdaya, perkiraan waktu
pengerjaan, dan informasi lainnya yang dibutuhkan untuk pengembangan software.
· Analysis risk. Aktivitas analisis resiko ini dijalankan untuk
menganalisis baik resiko secara teknikal maupun secara manajerial. Tahap inilah
yang mungkin tidak ada pada model proses yang juga menggunakan metode iterasi,
tetapi hanya dilakukan pada spiral model.
· Engineering. Aktivitas
yang dibutuhkan untuk membangun 1 atau lebih representasi dari aplikasi secara
teknikal.
· Construction & Release. Aktivitas yang dibutuhkan untuk develop software, testing,
instalasi dan penyediaan user / costumer support seperti training penggunaan
software serta dokumentasi seperti buku manual penggunaan software.
· Customer evaluation. Aktivitas yang dibutuhkan untuk mendapatkan feedback dari
user / customer berdasarkan evaluasi mereka selama representasi software pada
tahap engineering maupun pada implementasi selama instalasi software pada tahap
construction and release.
Kelebihan dari model spiral adalah
penyelesaian dan biaya proyek lebih mudah diperkirakan, karena hal-hal penting
sudah dapat diketahui lebih awal yaitu pada saat pembuatan prototype.
Kelemahan dari model spiral adalah
melibatkan banyak pihak, biaya mahal, dan proyek cenderung bersifat kompleks