Pada postingan kali ini, saya akan membahas tentang “Model – Model Pengembangan Perangkat Lunak Beserta Contoh Penerapannya”. Sebelumnya, Apa itu Pengembangan Perangkat Lunak?
Proses Pengembangan Perangkat Lunak (Software Development Process) adalah suatu penerapan struktur pada pengembangan suatu Perangkat Lunak (Software), yang bertujuan untuk mengembangkan sistem dan memberikan panduan untuk menyukseskan proyek pengembangan sistem melalui tahapan-tahapan tertentu. Dalam prosesnya, terdapat beberapa model pengembangan sistem perangkat lunak, diantaranya :
1. Agile Software Development Methodology
Agile Modeling merupakan filosofi tentang bagaimana membangun model, dengan beberapa diantaranya dilakukan secara format dan terperinci dan yang lainnya dilakukan secara samar dan minim. Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software.
Kelebihan dari Agile Modeling:
1. Meningkatkan kepuasan kepada klien
2. Pembangunan system dibuat lebih cepat
3. Mengurangi resiko kegagalan implementasi software dari segi non-teknis
4. Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
Kelemahan dari Agile Modeling:
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2. Rapid Application Development
Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk model ini. Rapid application development menggunakan metode iteratif (berulang) dalam mengembangkan sistem dimana working model (model bekerja) sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement) user dan selanjutnya disingkirkan. Working model digunakan kadang-kadang saja sebagai basis desain dan implementasi sistem final.
Model RAD merupakan model proses pengembangan perangkat lunak secara linear sequential yang menekankan pada siklus pengembangan yang sangat singkat.
Kelebihan model RAD :
1. Lebih efektif dari pendekatan waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan
2. Cocok untuk proyek yang memerlukan waktu yang singkat
Kekurangan model RAD :
1. RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi
2. Membutuhkan orang yang banyak untuk menyelesaikan sebuah proyek berskala besar
3. Pengembang dan customer harus punya komitmen yang kuat untuk menyelesaikan sebuah software
4. Jika sistem tidak di bangun dengan benar maka RAD akan bermasalah
5. Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan customer
3. Dynamic System Development Methodology
Dynamic System Development Methodology adalah suatu kerangka kerja awalnya didasarkan pada Rapid Application Development (RAD). DSDM mengutamakan keterlibatan pemakai secara berkesinambungan dengan pendekatan pengembangan secara berulang dan bertambah, tanggap terhadap perubahan, untuk membangun sistem perangkat lunak yang memenuhi kebutuhan bisnis tepat waktu dan tepat anggaran. DSDM merupakan salah satu metode Agile untuk pengembangan perangkat lunak, dan bagian dari Agile Alliance. DSDM pertama kali diperkenalkan pada tahun 1995, di mana merupakan satu-satunya publikasi penggunaan metode RAD di dunia.
Sebagai perluasan dari RAD, DSDM memusatkan pada proyek sistem informasi yang dicirikan oleh jadwal dan anggaran yang ketat. DSDM berupaya mengatasi penyebab-penyebab kegagalan proyek, di antaranya melebihi anggaran, terlambat dari jadwal, kurangnya keterlibatan pengguna, dan lemahnya komitmen dari para pimpinan. Kerangka kerja DSDM menyediakan dasar ideal bagi proses pengembangan dan penerapan sistem informasi, meliputi orang (misal organisasi, staf, keahlian), teknologi pendukung (misal teknologi informasi, otomatisasi kantor, komunikasi) dan proses yang menyatukan keduanya (dalam rangkaian strategi bisnis).
Kelebihan Dynamic Software Development Method (DSDM)
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.
Kelemahan Dynamic Software Development Method (DSDM)
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
Xtreme Programming (berikutnya akan disingkat sebagai XP) adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. XP bukan hanya berfokus pada coding tetapi meliputi seluruh area pengembangan perangkat lunak. XP mengambil pendekatan ‘ekstrim’ dalam iterative development.
Kelebihan dari XP
1. Metode yang populer karena lebih santai dan non-restriktif.
2. Biaya lebih murah.
3. Mampu mengotomatiskan tes.
4. Setiap feedback ditanggapi dengan melakukan tes, unit tes atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
5. Banyak ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki.
Kekurangan dari XP
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
Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan sedangkan XP adalah menekankan metodologi yang berbeda yaitu ujian, pemrograman dan pembangunan. Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan yang bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan maintainably mungkin
Scrum merupakan suatu kerangka kerja. Jadi, bukannya menyediakan deskripsi rinci tentang bagaimana segala sesuatu yang harus dilakukan pada proyek seperti diserahkan kepada tim pengembangan perangkat lunak pada umumnya. Hal ini dilakukan supaya tim akan tahu bagaimana cara terbaik untuk memecahkan masalah yang mereka disajikan. Ada 3 elemen organisasi utama pada scrum yaitu product owner, Scrum master, dan the Scrum team. Scrum Master dapat dianggap sebagai pelatih bagi tim, membantu anggota tim menggunakan kerangka Scrum untuk tampil di tingkat tertinggi. Product Owner mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan produk yang tepat. Sedangkan The Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk projek yang sangat besar, pekerjaan biasanya dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan the scrum master juga dapat ikut membantu dalam koordinasi team.
Kelebihan Scrum antara lain:
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. Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
5. Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Kelemahan Scrum antara lain:
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
Sumber:
http://infoteknik-informatika.blogspot.co.id/2015/03/semua-tentang-agile-process-model.html
http://fannynurrizky06.blogspot.co.id/2013/11/rapid-application-development-rad.html
http://arisumb.blogspot.co.id/2014/10/dynamic-system-development-method-dsdm.html
https://www.it-jurnal.com/apa-itu-extreme-programming/
http://dhiekalantana.blog.unas.ac.id/2012/10/perbandingan-up-xp-scrum-agile/