Review RPL 04 Metode Pengembangan SDLC

Metode Pengembangan Perangkat Lunak Sistem Development Life-Cycle (SDLC)

1. SPIRAL MODEL



Model spiral (spiral model) adalah model proses software yang evolusioner yang merangkai sifat iteratif dari prototipe dengan cara kontrol dan aspek sistematis dari model sekuensial linier. Model ini berpotensi untuk pengembangan versi pertambahan software secara cepat. Di dalam model spiral, software dikembangkan di dalam suatu deretan pertambahan. Selama awal iterasi, rilis inkremental bisa merupakan sebuah model atau prototipe kertas. Selama iterasi berikutnya, sedikit demi sedikit dihasilkan versi sistem rekayasa yang lebih lengkap.

Tahapan-tahapan model spiral :
1. Communications
2. Planning
3. Analisis Resiko
4. Rekayasa (engineering)
5. Konstruksi dan Pelepasan (release)
6. Evaluasi

Kelebihan :
1. Sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar.
2. 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.
3. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.


Kekurangan :
1. Waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar.
2. Sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko.
3. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.
4. Meyakinkan konsumen (khusunya dalam situasi kontrak) bahwa pendekatan evolusioner bisa dikontrol.

2. WATERFALL MODEL

Kelebihan :
1. Mudah diterapkan atau diaplikasikan.
2. Memberikan model tentang analisis,desain, coding, testing dan maintenance.
3. Cocok digunakan untuk produk-produk software yang kebutuhannya sudah jelas dari awal, sehingga minim kesalahan.
4. Cocok digunakan untuk produk software berskala kecil.

Kekurangan :
1. Waterfall model bersifat kaku sehingga penanganan perubahan software pada saat program sedang berlangsung menjadi lebih sulit.
2. Terjadinya pembagian proyek menjadi tahap-tahapan yang tidak fleksibel, karena komitmen harus dilakukan pada tahapan awal proses.
3. Customer harus bersabar untuk menanti produk selesai, karena produk dikerjakan secara tahap per tahap, menyelesaikan tahap awal baru bisa menuju tahap selanjutnya.
4. Perubahan ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang membuat produk.
5. Adanya waktu menganggur bagi para pengembang, karena harus menunggu anggota team proyek lainnya menuntaskan pekerjaannya.
6.  Semua kebutuhan sudah terdefinisi sejak awal dan software yang diberikan adalah versi terakhir dari setiap tahap.

3. RAPID APPLICATION DEVELOPMENT (RAD) MODEL

Kelebihan :
1. Lebih efektif dari pendekatan waterfall/sequential linear dalam menghasilkan sistem yang dapat memenuhi kebutuhan langsung dari pelanggan.
2. Cocok untuk proyek yang memerlukan waktu yang singkat.
3. Pengerjaan proyek dilakukan secara team dengan tugas yang berbeda sehingga tidak ada team proyek yang menganggur selama proses pembuatan proyek.

Kelemahan :
1. RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang lebih tinggi.
2. Memerlukan anggota yang lebih banyak untuk menyelesaikan sebuah proyek berskala besar.
3. Pengembang dan Customer harus mempunyai komitmen yang kuat untuk menyelesaikan sebuah software.
4. Jika sistem tidak dibangun dengan benar, maka RAD akan bermasalah.
5. Jika ada perubahan ditengah-tengah pengerjaan maka harus membuat kontrak baru antara Pengembang dan Customer.


4. INCREMENT MODEL

Kelebihan :
1. Cocok digunakan bila pembuat software tidak banyak/kekurangan anggota.
2. Mampu mengakomodasi perubahan kebutuhan Customer.
3. Resiko yang rendah pada pengembangan sistem.
4. Mengutamakan fungsi-fungsi pada sistem perangkat lunak sehingga kemudahan pemakaian sistem yang paling diutamakan.
5. Tahap awal adalah dasar dari pembuatan tahap berikutnya (dikerjakan secara terurut).
6. Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya secara bagian per bagian.
7. Memaksimalkan pengembalian modal investasi konsumen.

Kelemahan :
1. Hanya akan berhasi jika tidak ada staffing untuk penerapan secara menyeluruh.
2. Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut.
3. Hanya cocok untuk proyek yang berskala kecil.
4. Kemungkinan tiap bagian tidak dapat diintegrasikan.

5. PROTOTYPING MODEL 

Kelebihan :
1. Menghemat waktu untuk pengembangan.
2. Adanya komunikasi yang terjalin baik antara Pengembang dan Customer.
3. Pengembang dapat bekerja dengan lebih baik dalam menentukan kebutuhan pelanggan.
4. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya.
5. User dapat berpartisipasi aktif dalam pengembangan sistem.
6. Untuk digunakan secara Standalone (Berdiri Sendiri).
7. Digunakan untuk memperluas SDLC (System Development Life Cycle)

Kelemahan :
1. Pada Model Prototype tentu saja banyak kebutuhan yang tidak ditampilkan seluruhnya karena data yang dikumpulkan hanya sebagian.
2. Prototype yang telah disetujui oleh Client harus dikembangkan oleh developer tanpa ada data tambahan dari client dan software dari prototype harus memiliki fungsi yang lengkap.
3. Banyak ketidaksesuaian pada bentuk Prototype.
4. Proses analisis dan perancangan terlalu singkat.
5. 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.
6. Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.
7. Mengesampingkan alternatif pemecahan masalah.
8. Biasanya kurang fleksibel dalam menghadapi perubahan.
9. Prototype yang dihasilkan tidak selamanya mudah dirubah.
10. Pelanggan kadang tidak melihat atau menyadari bahwa perangkat lunak yang ada belum mencantumkan kualitas perangkat lunak secara keseluruhan dan juga belum memikirkan kemampuan pemeliharaan untuk jangka waktu yang lama.
11. Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga menggunakan algoritma dan bahasa pemrograman yang sederhana untuk membuat prototyping lebih cepat selesai tanpa memikirkan lebih lanjut bahwa program tersebut hanya merupakan cetak baru sistem.
12. Hubungan pelanggan dengan komputer yang disediakan mungkin tidak mencerminkan teknik perancangan yang baik.

Komentar

Postingan populer dari blog ini

Conceptual Data Model [CDM] dan Physical Data Model [PDM] Database

Object Oriented Database

Definisi Basis Data