Langsung ke konten utama

 
PERBEDAAN BEBERAPA
MODEL PENGEMBANGAN SOFTWARE


1. Agile Software Develompent Methodology

                                                         
Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak. yang digunakan dalam pengembangan perangkat lunak yang bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang.

Dalam Agile, terdapat empat nilai yang biasa di sebut Agile Alliance’s Manifesto
1. Interaksi dan personel lebih penting daripada proses dan alat
2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap
3. Kolaborasi dengan klien lebih penting daripada negosiasi kontrak.
4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.


Beberapa Model Proses dari Agile
1. Acceptance Test Driven Development (ATDD)
2. Agile Modeling
3. Adaptive Software Development (ASD)
4. Agile Unified Process (AUP)
5.Continuos intergration (CI)

Kelebihan
1. 82% Menambah produktivitas tim.
2. 77% Menambah kualitas perangkat lunak.
3. 78% Menambah kepuasan klien.37% Menghemat biaya.


Kekurangan
1. Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
2. Tidak cocok dalam skala tim yang besar (>20 orang).
3. Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.




2. Rapid Application Development



Rapid Application Development (RAD) adalah strategi siklus hidup yang ditujukan untuk menyediakan pengembangan yang jauh lebih cepat dan mendapatkan hasil dengan kualitas yang lebih baik dibandingkan dengan hasil yang dicapai melalui siklus tradisional (McLeod, 2002). RAD merupakan gabungan dari bermacam-macam teknik terstruktur dengan teknik prototyping dan teknik pengembangan joint application untuk mempercepat pengembangan sistem/aplikasi (Bentley, 2004).

Sedangkan menurut Kendall (2010), RAD adalah suatu pendekatan berorientasi objek terhadap pengembangan sistem yang mencakup suatu metode pengembangan serta perangkat-perangkat lunak. RAD bertujuan mempersingkat waktu yang biasanya diperlukan dalam siklus hidup pengembangan sistem tradisional antara perancangan dan penerapan suatu sistem informasi. Pada akhirnya, RAD sama-sama berusaha memenuhi syarat-syarat bisnis yang berubah secara cepat.

 
Siklus RAD
(Sumber: Kendall, 2010)



Kelebihan
1. Penghematan waktu dalam keseluruhan fase projek dapat dicapai.
2. RAD mengurangi seluruh kebutuhan yang berkaitan dengan biaya projek dan sumberdaya manusia.
3. RAD sangat membantu pengembangan aplikasi yang berfokus pada waktu penyelesaian projek.
4. Perubahan desain sistem dapat lebih berpengaruh dengan cepat dibandingkan dengan pendekatan SDLC tradisional.
5. Sudut pandang user disajikan dalam sistem akhir baik melalui fungsi-fungsi sistem atau antarmuka pengguna.
6. RAD menciptakan rasa kepemilikan yang kuat di antara seluruh pemangku kebijakan projek

Kekurangan
1. Dengan metode RAD, penganalisis berusaha mepercepat projek dengan terburu-buru.
2. Kelemahan yang berkaitan dengan waktu dan perhatian terhadap detail. Aplikasi dapat diselesaikan secara lebih cepat, tetapi tidak mampu mengarahkan penekanan terhadap permasalahan-permasalahan perusahaan yang seharusnya diarahkan.
3. RAD menyulitkan programmer yang tidak berpengalaman menggunakan prangkat ini di mana programmer dan analyst dituntut untuk menguasai kemampuan-kemampuan baru sementara pada saat yang sama mereka harus bekerja mengembangkan sistem.



3. Dynamic System Development Model Methodology


Dynamic System Development Model Methodology ( DSDM ) adalah metodologi pengembangan perangkat lunak tangkas. Pendekatan iteratif dan inkremental yang sebagian besar didasarkan pada metodologi Rapid Application Development (RAD).


Metode ini menyediakan framework empat fasa
1. Kelayakan dan studi bisnis Fungsional model / prototype iterasi.
2. Rancang dan bangun iterasi.
3. Pelaksanaan.
4. Dalam setiap fase.


Prinsip-prinsip DSDM pada beberapa aktivitas dan teknik yang berbeda
1. Proyek berkembang dengan baik melalui kolaborasi langsung dan saling terkait antara pengembang dan pengguna.
2. Tim yang dikelola sendiri dan diberdayakan harus memiliki wewenang untuk membuat keputusan tingkat proyek yang sensitif dan kritis.
3. Desain dan pengembangan bersifat inkremental dan evolusioner dan sebagian besar didorong oleh umpan balik pengguna berulang yang berulang.
4. Kiriman perangkat lunak yang bekerja didefinisikan sebagai sistem yang memenuhi kebutuhan bisnis saat ini yang kritis versus sistem yang menangani kebutuhan masa depan yang kurang penting.
5. Seringkali dan penambahan perangkat lunak kerja dinilai dari pengiriman perangkat lunak yang bekerja dengan sangat cepat.
6. Semua perubahan yang diperkenalkan selama pengembangan harus reversibel.
7. Integrasi terus menerus dan pengujian penjaminan mutu dilakukan secara in-line, sepanjang siklus hidup proyek.
8. Visibilitas dan transparansi didorong melalui komunikasi dan kolaborasi reguler di antara semua pemangku kepentingan proyek.


Kelebihan
1. Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.
2. Membangun software dengan cepat.
3. DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP.

Kekurangan
1. Setiap iterasi bergantung pada prototype sebelumya.
2. Menentukan scope dari suatu prototype proyek tidak pernah selesai.
3. Dokumentasi sering kali tidak lengkap fokus pada pembuatan prototype.
4. Isu-isu mengenai system backup and recovery, system performance dan system security kurang/tidak diperhatikan dan sering terlupakan.


4. Extreme Programing Methodology


Extreme programming ( XP ) adalah metodologi pengembangan perangkat lunak yang ditujukan untuk meningkatkan kualitas perangkat lunak dan daya tanggap terhadap perubahan kebutuhan pelanggan. Sebagai jenis pengembangan perangkat lunak tangkas, ini sering menganjurkan "rilis" dalam siklus pengembangan singkat, yang dimaksudkan untuk meningkatkan produktivitas dan mengenalkan pos pemeriksaan di mana persyaratan pelanggan baru dapat diadopsi.

12 practices utama

1. Planning Game
Hubungan antara Customer dengan Programer untuk memperkirakan kenbutuhan –kebutuhan dari Custumer dalam implementasinya.

2. Small, frequent releases
Memproduksi dengan cepat.

3. System metaphors
System metaphors antara Customer dengan Programeruntuk menunjukkan semua perkembangan dengan menjelaskan bagaimana cara kerja system.

4. Simple design
Perhatiannya pada pendisainnan atau perancngan solusi yang sederhana.

5. Testing (unit testing & TDD)
Pelaksanaan pengujian atau testing keseluruhan.

6. Frequent refactoring
Penyusunan system kembali dengan cara duplikat atau salinan,memperbaiki komunikasi, menambahkan kelenturan.

7. Pair programming
Dua orang menulis kode pada 1 komputer.

8. Collective code ownershipSiapapun dapat merubah bagian pada pengkodean setiap saat.

9. Continuous integration
Bagian baru code di gabungkan ke dalam kode dasar.

10. 40-hour weak
Max 40 jam kerja seminggu.

11. On-site customer
Customer harus hadir dan ada setiap saat untuk teamnya.

12. Coding standards
Terdapat aturan pengkodean dan di ikuti oleh programmer.


Kelebihan
1. Keperluan berubah dengan cepat
2. Resiko tinggi dan ada proyek dengan tantangan yang baru
3. Tim programmer sedikit, yaitu 2-10 orang
4. Mampu mengotomatiskan tes
5. Ada peran serta pelanggan secara langsung


Kelemahan
1. Cerita-cerita yang menunjukkan requirements kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2. Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
3. XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.



5. Scrum Development Methodology

Hasil gambar untuk Scrum Development Methodology
Scrum Development Methodology adalah kerangka kerja untuk mengelola perkembangan perangkat lunak. Ini dirancang untuk tim yang terdiri dari tiga sampai sembilan pengembang yang melanggar pekerjaan mereka menjadi tindakan yang dapat diselesaikan dalam siklus durasi tetap (disebut "sprint"), melacak kemajuan dan merencanakan ulang dalam rapat standart harian 15 menit, dan berkolaborasi untuk memberikan perangkat lunak yang dapat dikerjakan setiap sprint.



Peran scrum
1. Pemilik Produk : Menjadi orang dengan visi, wewenang, dan ketersediaan. Pemilik Produk bertanggung jawab untuk terus mengkomunikasikan visi dan prioritas tim pengembang.

2. Master Scrum : Master Scrum tidak mengelola tim. Master Scrum bekerja untuk menghilangkan hambatan yang menghalangi tim untuk mencapai tujuan sprintnya.

3. Tim : Sebagai fasilitator bagi Pemilik Produk dan tim. Master Scrum tidak mengelola tim. Master Scrum bekerja untuk menghilangkan hambatan yang menghalangi tim untuk mencapai tujuan sprintnya.


Kelebihan
1. Keperluan berubah dengan cepat.
2. Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain.
3. Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat.
4. Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan.
5. Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun


Kelemahan
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.






Sumber
https://www.google.com/search?client=firefox-b&biw=1366&bih=659&ei=J-YXWujxHMK40ATumI2oBw&q=jurnal+mengenai+extreme+programing+methodology&oq=j&gs_l=psy-ab.1.1.35i39k1l2j0i131k1l2j0i67k1j0l3j0i131k1j0.4452.6614.0.9879.2.2.0.0.0.0.226.226.2-1.2.0....0...1.1.64.psy-ab..0.2.433.6...209.MKflWkv_BZQ

https://en.wikipedia.org/wiki/

Komentar