Haiiii!!!
blog saya kali ini akan membahas lebih lanjut mengenai model-model software process yang terdiri dari 5 jenis,yaitu:
- Waterfall Model
- Prototyping Model
- Rapid Application Development
- Incremental Model
- Spiral Model
cekidooottt......
1. Waterfall Model
disebut waterfall karena modelnya seperti air terjun. yaitu model sotware yang bekerja secara step by step dan langkah kerjanya harus berurutan.
proses waterfall:
1.Requirement Analysis
Proses pengumpulan informasi tentang kebutuhan proyek yang akan dibuat dan kemudian dianalisis dan dispesifikasikan sehingga informasi kebutuhan yang didapatkan tepat
2.Design
proses desain bertujuan untuk menerjemahkan kebutuhan kedalam sebuah representasi perangkat lunak
3.Implementation
Hasil desain kemudian diterjemahkan kedalam bahasa pemrograman yang sesuai
4.Verification
hasil implementasi kemudian digabungkan dan diuji untuk mengetahui apakah pengkodean sudah tepat semua atau tidak,
5.Maintenance
tahap pemeliharaan yaitu memperbaiki kesalahan yang mungkin terjadi karena perangkat lunak mengalami perubahan karena menyesuaikan diri dengan lingkungan baru.
Kelebihan:
- merupakan model pengembangan yang paling handal dan paling lama digunakan
- cocok untuk sistem software berskala besar
- cocok utuk sistem software yang bersifat generic
- pengerjaan project sistem akan terjadwal dengan baik dan mudah dikontrol
Kekurangan:
- Persyaratan harus digambarkan dengan jelas
- rincian proses harus benar-benar jelas dan tidak dapat berubah-ubah
- sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan
Contoh Kasus: software pengolah gambar
referensi: http://waliadigunawan.blogspot.com/2009/12/waterfall-model.html
2.Prototyping Model
Prototyping
adalah proses yg bisa dilaksanakan secara berulang dengan tujuan untuk
menghindarkan proses persetujuan formal secara periodik yg diperlukan
dalam pendekatan pengembangan sistem secara tradisional.
Prototyping
adalah proses yang digunakan untuk membantu pengembang perangkat lunak
dalam membentuk model dari perangkat lunak yang harus dibuat.
Proses Prototyping:
1.Pengumpulan kebutuhan
yaitu mengumpulkan kebuthan pelanggan secara garis besar
2.Membangun Prototyping
membangun protoyping dengan perancangan sementara sebagain penyajian kepada pelanggan
3.Evaluasi Prototyping
4.Mengkodekan Sistem
prototyping kemdian diterjemahkan kedalam bahasa pemrograman yang sesuai
5.Menguji Sistem
setelah pengkodean selesai sistem kemudian di tes
6.Evaluasi Sistem
7.Menggunakan Sistem
Kelebihan:
- Sudah Terstruktur
- Adanya komunikasi yang baik antara pengembang dan pelanggan
- Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
- Lebih menghemat waktu
- Pelanggan berperan aktif dalam pengembangan sistem
- Penerapan menjadi lebih mudah karena pemakai mengetah apa uyang diharapkannya
Kekurangan:
- Proses analisis dan perancangan terlalu singkat.
- Mengesampingkan alternatif pemecahan masalah.
- Bisanya kurang fleksible dalam mengahdapi perubahan.
- Protitype yang dihasilkan tidak selamanya mudah dirubah
- Protype terlalu cepat selesai
contoh kasus: Replika/gameonline
referensi: http://ikavita.blogspot.com/2008/07/sistem-informasi-manajemen.html
3.Rapid Application Development
Rapid Application Development (RAD) adalah sebuah model proses
perkembangan model waterfall yang menekankan siklus
perkembangan yang sangat pendek. Model ini merupakan sebuah adaptasi
“kecepatan tinggi” dari model waterfall di mana perkembangan
cepat dicapai dengan menggunakan pendekatan kontruksi berbasis komponen.
Selain itu RAD merupakan Versi “High Speed” dari model Waterfall.
Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan :
- Component based construction ( pemrograman berbasis komponen bukan prosedural).
- Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
- Pembangkitan kode program otomatis/semi otomatis.
- Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang
selevel tapi tidak sama. Banyaknya tim tergantung dari area dan
kompleksitasnya sistem yang dibangun.
Jika kebutuhan yang diinginkan pada tahap analisis telah
lengkap dan jelas, maka waktu yang dibutuhkan untuk menyelesaikan secara
lengkap perangkat lunak yang dibuat adalah berkisar 60 sampai 90 hari.
Model RAD hampir sama dengan model waterfall, bedanya siklus
pengembangan yang ditempuh model ini sangat pendek dengan penerapan
teknik yang cepat.
Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim
dalam waktu yang hampir bersamaan dalam waktu yang sudah ditentukan.
Model ini melibatkan banyak tim, dan setiap tim mengerjakan tugas yang
selevel, namun berbeda. Sesuai dengan pembagian modul sistem.
Kelemahan:
Beberapa hal (kelebhan dan kekurangan) yang perlu diperhatikan dalam implementasi pengembangan menggunakan model RAD :
- Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.
- Model ini cocok untuk proyek dengan skala besar.
- Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
- kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah
manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan,
sehingga pendekatan dengan model ini kurang bagus.
- sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
- penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
- proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
- risiko teknis yang tinggi juga kurang cocok untuk model ini.
referensi: http://id.wikipedia.org/wiki/Rapid_Application_Development
4.Incremental Model
incremental model adalah proses pengembangan perangkat lunak berskala besar yang terbagi menjadi bagian-bagian/ modul-modul.
Proses Increment:
1.Analysis
proses pengumpulan informasi mengenai kebutuhan pelanggan. informasi kebutuhan kemudian dianalisis dan dispesifikasi sehingga benar-benar lengkap dan tepat
2.Design
setelah dianalisis kemudian diterjemahkan kedalam sebuah representasi perangkat lunak
3.Code
desain kemudian diterjemahkan kedalam bahasa pemrograman yang sesuai
4.test
setelah proses pengkodean selesai maka akan dilakukan pengujian perangkat lunak
setiap bagian increment dikerjakan oleh tim-tim khusus. tim 1 mengerjakan increment 1, tim 2 mengerjakan increment 2. jika tim sebelumnya sudah menyelesaikan tahap analisis dan design maka tim selanjutnya dapat memulai tahap analisis untk increment yang mereka kerjakan.
kelebihan:
- Mampu mengakomodasikan perubahan secara fleksibel
- Pelanggan dapat memakai increment yang pertama sebagai bentuk prototype dan mendapatkan pengalaman yang dapat menginformasikan persyaratan untuk increment sistem berikutnya
- Resiko untuk kegagalan proyek lebih rendah
- Pelanggan tidak perlu menunggu hingga seluruh sistem dikirimkan untuk menggunakan sistem tersebut
Kekurangan:
- kesulitan untuk memetakan persyaratan pelanggan pada increment dengan ukuran benar
- sebagian besar sistem membutuhkan serangkaian fasilitas dasar yang dipakai oleh increment lain pada sistem
- incremental harus menyediakan sebagian dari fungsonalitas sistem.
contoh kasus: Microsoft word
referensi: http://evi-mursalim.blogspot.com/2011/01/rekayasa-perangkat-lunak-incremental.html
5.Spiral Model
Model spiral merupakan pengembangan dan pembangunan dari prototyping dan incremental model,dimana proses berjalan dengan mekanisme pengembangan prototype yang dilakukan secara berulang untuk melengkapi perangkat lunak hinga sesuai dengan kebutuhan.
Proses Spiral:
1.Customer Comunication
merupakan aktivitas yang dilakukan untuk membangun komunikasi yang efektif antara pengembang dengan pengguna terutama mengenai kebutuhan dari pengguna.
2.Perencanaan
aktivitas yang dibutuhkan untuk menentukan sumber daya perkiraan waktu pengerjaan, analisa resiko dan informasi lainnya yang dibutuhkan untuk pengembangan perangkat lunak.
3.Pemodelan
aktivitas yang dijalankan untuk menganalisis design yang akan dibuat
4.Konstruksi
aktivitas yang dibutuhkan untuk mengembangkan perangkat lunak,pengkodean, pengujian, penggunaan perangkat lunak, serta dokumentasi seperti buku manual penggunaan perangkat lunak
5.Penyebaran
aktivitas yang dilakukan untuk mendapatkan respon dari pengguna berdasarkan evaluasi mereka selama representasi perangkat lunak pada tahap permodelan maupun pada implementasi selama intalasi perangkat lunak pada tahap konstruksi
Kelebihan:
- Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer
- Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar
- Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi, karena perangkat lunak terus bekerja selama proses
- 4.Menggunakan prototype sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk
- 5.Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya kedalam perangkat kerja iterative
- Membutuhkan pertimbangan langsung terhadap resiko teknis sehingga mengurangi resiko sebelum menjadi permasalahan yang serius
Kekurangan:
- Sulit untuk meyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol
- Memerlukan menaksirkan resiko yang masuk akal dan akan menjadi permasalahan yang serius jika resiko mayor tidak ditemukan dan diatur
- Butuh waktu lama untuk menerapkan paradikma ini menuju lapisan yang absolute
referensi: http://www.scribd.com/doc/51691655/MODEL-SPIRAL
Sekian blog saya mengenai model-model software proses..
selamat membaca :)