MODEL PENGEMBANGAN PERANGKAT LUNAK
Pernah
tahu atau dengar kata “Software” kan? Itu sudah pasti karena zaman sekarang
kata itu pasti sudah tidak asing bagi kita sebagai pengguna perangkat digital.
Namun tahukah kamu bahwa software(perangkat lunak) ini bisa dikembangkan lagi.
Ya, biasanya itu dapat dilakukan melalui tahapan – tahapan tertentu. Lalu, apa
sih Pengembangan Perangkat Lunak itu?
Pengembangan Perangkat Lunak (Software Development)
adalah salah satu tipe proyek IT yang berfokus pada menciptakan ataupun
mengembangkan sebuah perangkat lunak.
Pada postingan kali
ini, saya akan membahas beberapa model pengembangan perangkat lunak (Software
Development) dan apa saja perbedaannya? Silahkan dibaca postingan saya kali ini.
Agile Software Development
Methodology
Gambar Agile Development |
Agile development methods terdefinisi dalam empat nilai, yang di sebut Agile
Alliance’s Manifesto, diantaranya :
- Interaksi dan personel lebih penting dari pada proses dan alat.
- Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
- Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak.
- Respon terhadap perubahan lebih penting daripada mengikuti rencana.
Pengertian dari Agile Alliance's
Manifesto dijelaskan di bawah ini:
- Interaksi dan personel lebih penting dari pada proses dan alat, di dalam agile interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
- Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
- Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, salah satu ciri dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.
·
Kelebihan :
- Meningkatkan kepuasan kepada klien.
- Pembangunan system dibuat lebih cepat.
- Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
- Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
·
Kekurangan :
- Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
- Tidak cocok dalam skala tim yang besar (>20 orang).
- Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.
Rapid Application Development
Gambar RAD |
Kelebihan:
- Mudah mengakomodasi perubahan sistem
- Mempermudah feedback customer
- Cocok untuk proyek yang membutuhkan waktu pengembangan yang lebih pendek.
- Cocok untuk sistem yang berbasis komponen dan terukur.
- Mudah dalam menentukan dasar sistem
Kekurangan :
- Ketergantungan pada anggota bisnis tim untuk mengidentifikasi persyaratan bisnis
- Hanya sistem yang bisa di modularized yang bisa dibangun menggunakan RAD
- Membutuhkan developer / designer yang berpengalaman
- Ketergantungan pada keterampilan model
- Tidak dapat diterapkan pada proyek yang kecil / murah
Dynamic System Development Model
Methodology
Dynamic System Development Methodology
(DSDM) adalah suatu kerangka
dalam pengembangan suatu project, terutama digunakan untuk metode pengembangan
perangkat lunak. DSDM merupakan iteratif dan incremental pendekatan yang
mencakup prinsip-prinsip pembangunan Agile, termasuk keterlibatan pengguna atau
pelanggan secara terus-menerus, intinya DSDM suatu metode yang mendekati Incremental dan Agile Alliance.
Beberapa karakteristik DSDM yaitu sebagai berikut :
- Menyajikan kerangka kerja (Framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.
- Membangun software dengan cepat yaitu 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
- Aktifitas Feasibility Study yaitu dengan requirement, lalu uji apakah sesuai gunakan proses DSDM.
- Aktifitas Business Study yaitu susunam kebutuhan fungsional dan informasi, menentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
- Aktifitas Functional model iteration yaitu menghasilkan incremental prototype yang perlihatkan fungsi software ke client untuk dapatkan kebutuhan lebih jelas dan konfirmasi.
- Aktifitas Design and Build Iteration yaitu melakukan cek ulang prototype yang di bangun untuk memastikan bahwa prototype yang di bangun dengan cara tersebut memungkinkan semua fungsi benar-benar bekerja.
- Aktifitas Implementation yaitu menempatkan software pada lingkungan sebenarnya sekalipun belum lengkap atau masih ada perubahan.
- DSDM dapat dikombinasikan dengan XP yang menghasilkan kombinasi model proses mengikuti metode DSDM dan praktek yang sejalan dengan XP.
- Membangun software dengan cepat.
- Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.
- DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP.
Kekurangan :
- Setiap iterasi bergantung pada prototype sebelumya.
- Dokumentasi sering kali tidak lengkap fokus pada pembuatan prototype.
- Menentukan scope dari suatu prototype proyek tidak pernah selesai.
- Isu-isu mengenai system backup and recovery, system performance dan system security kurang/tidak diperhatikan dan sering terlupakan.
Extreme Programing
Methodology
Gambar Extreme Programing |
Berikut merupakan proses
Extreme Programming :
- Planning
Tahap planning dimulai dengan membuat user stories
yang menggambarkan output, fitur, dan fungsi-fungsi dari software yang akan
dibuat. User stories tersebut kemudian diberikan bobot seperti prioritas dan
dikelompokkan untuk selanjutnya dilakukan proses delivery secara
incremental.
- Design.
Design di Extreme Programming mengikuti prinsip Keep
It Simple (KIS). Untuk design yang sulit, Extreme Programming akan menggunaan
Spike Solution dimana pembuatan design dibuat langsung ke tujuannya. Extreme
Programming juga mendukung adanya refactoring dimana software system diubah
sedemikian rupa dengan cara mengubah stuktur kode dan menyederhanakannya namun
hasil dari kode tidak berubah.
- Coding.
Proses coding pada XP diawali dengan membangun
serangkaian unit test. Setelah itu pengembang akan berfokus untuk
mengimplementasikannya. Dalam Extreme Programming diperkenalkan istilah Pair
Programming dimana proses penulisan program dilakukan secara berpasangan. Dua
orang programmer saling bekerjasama di satu komputer untuk menulis program.
Dengan melakukan ini akan didapat real-time
problem solving dan real-time
quality assurance.
- Testing.
Tahap ini dilakukan pengujian kode pada unit test.
Dalam Extreme Programming,
diperkenalkan XP acceptance test atau biasa disebut customer test. Tes ini
dilakukan oleh customer yang berfokus kepada fitur dan fungsi sistem secara
keseluruhan. Acceptance test ini berasal dari user stories yang telah
diimplementasikan.
Kelebihan :
- Meningkatkan kepuasan kepada client.
- Pembangunan system dibuat lebih cepat.
- Menjalin komunikasi yang baik dengan client.
- Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kekurangan :
- Cerita-cerita yang menunjukkan requirements dari pelanggan kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
- Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
- XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.
Scrum Development Methodology
Gambar Scrum Methodollogy |
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 :
- Keperluan berubah dengan cepat.
- Tim berjumlah kecil sehingga melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain.
- Pekerjaan terbagi – bagi sehingga dapat diselesaikan dengan cepat.
- Dokumentasi dan pengujian terus – menerus dilakukan setelah software dibangun.
- Proses Crum dapat menyatakan bahwa pdroduk selesai kapanpun diperlukan.
Kekurangan :
- Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
Demikian postingan ini saya buat, semua
model - model yang ada jika ditempatkan pada proyek yang tepat pasti akan
sebuah produk yang berkualitas dan bersaing. Sebaliknya jika ditempatkan pada
proyek yang salah karena kesalahan analisa proyek, maka bisa jadi akan memaakan
waktu dan uang jauh lebih besar dari perkiraan.
TERIMA KASIH SUDAH
MENGUNJUNGI BLOG INI ^-^
·
Tidak ada komentar:
Posting Komentar