Perbedaan Model Pengembangan Software
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. Contoh beberapa proses pengembangan perangkat lunak yaitu :
Agile Development Method 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 yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian 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.
3. Dynamic System Development Method
4. Extreme Programming
1. Agile Development Methods
· Meningkatkan kepuasan kepada klien.
· Dapat melakukan review pelanggan mengenai software yang dibuat lebih awal.
· Pembangunan system dibuat lebih cepat.
· Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
· Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi materi relatif kecil.
Kekurangan dari Agile :
· Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
· 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.
2. Rapid application development (RAD)
RAD 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 di mana 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.
Berikut adalah fase-fase dari RAD:
· Business Modeling (Bisnis Model)
fase ini untuk perancangan dasar dari pengembangan produk berdasarkan informasi dan distribusi informasi antar saluran bisnis. Analisis bisnis yang lengkap dilakukan untuk menemukan informasi penting untuk bisnis, bagaimana hal itu dapat diperoleh, bagaimana dan kapan informasi diproses dan faktor apa yang mendorong arus informasi yang berhasil.
fase ini untuk perancangan dasar dari pengembangan produk berdasarkan informasi dan distribusi informasi antar saluran bisnis. Analisis bisnis yang lengkap dilakukan untuk menemukan informasi penting untuk bisnis, bagaimana hal itu dapat diperoleh, bagaimana dan kapan informasi diproses dan faktor apa yang mendorong arus informasi yang berhasil.
· Data Modeling (Data Model)
Fase ini untuk menganalisa informasi yang sudah dikumpulan dari fase Business Modeling. semua kumpulan data diidentifikasi dan didefinisikan secara rinci untuk mencari model bisnis yang tepat.
Fase ini untuk menganalisa informasi yang sudah dikumpulan dari fase Business Modeling. semua kumpulan data diidentifikasi dan didefinisikan secara rinci untuk mencari model bisnis yang tepat.
· Process Modeling (Proses Pemodelan)
Fase ini untuk untuk menetapkan arus informasi bisnis yang diperlukan untuk mencapai tujuan bisnis yang spesifik sesuai model bisnis. perubahan atau penyempurnaan pada kumpulan objek data didefinisikan dalam fase ini. Deskripsi proses untuk menambahkan, menghapus, mengambil atau memodifikasi objek data diberikan.
Fase ini untuk untuk menetapkan arus informasi bisnis yang diperlukan untuk mencapai tujuan bisnis yang spesifik sesuai model bisnis. perubahan atau penyempurnaan pada kumpulan objek data didefinisikan dalam fase ini. Deskripsi proses untuk menambahkan, menghapus, mengambil atau memodifikasi objek data diberikan.
· Application Generation (Generasi Aplikasi)
Fase ini untuk Sistem yang sebenarnya dibangun dan pengkodean dilakukan dengan menggunakan automatic tools i untuk mengubah model proses dan data menjadi prototype yang aktual.
Fase ini untuk Sistem yang sebenarnya dibangun dan pengkodean dilakukan dengan menggunakan automatic tools i untuk mengubah model proses dan data menjadi prototype yang aktual.
· Testing and Turnover
fase ini untuk pengujian keseluruhan sistem yang dibangun semua komponen perlu diuji secara menyeluruh dengan cakupan uji yang lengkap. Dengan pengujian yang lengkap dapat mengurangi risiko cacat sistem.
fase ini untuk pengujian keseluruhan sistem yang dibangun semua komponen perlu diuji secara menyeluruh dengan cakupan uji yang lengkap. Dengan pengujian yang lengkap dapat mengurangi risiko cacat sistem.
Kelebihan RAD (Rapid Application Development)
- Mudah mengakomodasi peruabahan sistem
- Progress development bisa di ukur
- Waktu iterasi bisa di perpendek menggunakan RAD Tools
- Mengurangi waktu development
- Mudah dalam menentukan dasar sistem
- Mempermudah feedback customer
- Cocok untuk proyek yang membutuhkan waktu pengembangan yang lebih pendek.
- Cocok untuk sistem yang berbasis komponen dan terukur.
Kekurangan RAD (Rapid Application Development)
- 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
- Kompleksitas manajemen
- Tidak dapat diterapkan pada proyek yang kecil / murah
3. Dynamic System Development Method
Dynamic System Development Method (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.
Kelebihan DSDM :
· 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.
· DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP.
Kekurangan DSDM :
· Setiap iterasi bergantung pada prototype sebelumnya.
· Menentukan scope dari suatu prototype proyek tidak pernah selesai.
· Dokumentasi sering kali tidak lengkap fokus pada pembuatan prototype.
· Isu-isu mengenai system backup and recovery, system performance dan system security kurang/tidak diperhatikan dan sering terlupakan.
4. Extreme Programming
XP adalah suatu model yang termasuk dalam pendekatan agile yang diperkenalkan oleh Kent Back. Menurut penjelasannya, definisi XP adalah sebagai berikut: “Extreme Programming (XP) adalah metode pengembangan software yang cepat, efisien, beresiko rendah, fleksibel, terprediksi, scientific, dan menyenangkan.“.
Model ini cenderung menggunakan pendekatan Object-Oriented. Tahapan-tahapan yang harus dilalui antara lain: Planning, Design, Coding, dan Testing. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat. Extreme Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat terkenal.
Tahapan Dalam Etreme (XP) Programming :
· Planning, Customer dan XP team bekerja bersama untuk memutuskan bagaimana grup story untuk release berikutnya (software increment berikutnya) untuk dibangun oleh XP team. Jika komitmen telah dibuat, XP team akan membangun story-story dengan cara :
Semua story segera diimplemetasikan (dalam beberapa minggu)
1. Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
2. Story dengan resiko paling tinggi akan diimplemetasikan terlebih dulu. Setelah project pertama direlease dan didelivery, XP team memperhitungkan kecepatan project. Selama development, customer dapat menambah story, merubah value, membagi story atau menghapusnya.
· Design, XP menggunakan CRC card, untuk mengenali dan mengatur object oriented class yang sesuai dengan software increment.
· Coding, Sebelum membuat code, lebih baik membuat unit test tiap story untuk dimasukkan dalam software increment. XP menyarankan agar dua orang bekerja bersama pada satu komputer workstation untuk membuat code dari satu story (pair programming), untuk menyediakan real time problem solving dan jaminan real time quality. Setelah pair programming selesai, code diintegrasikan dengan kerja laiinnya (continuous integration).
· Testing. Unit test yang telah dibuat harus diimplementasikan menggunakan suatu framework dan diatur ke dalam universal testing suite, integrasi dan validasi sistem dapat dilakukan setiap hari. Customer test (acceptance test) dilakukan oleh customer dan fokus pada keseluruhan fitur dan fungsional sistem. Acceptance test diperoleh dari customer stories yang telah diimplemetasikan sebagai bagian dari software release.
Kelebihan Extreme Programming, yaitu:
- Meningkatkan kepuasan kepada klien
- Pembangunan system dibuat lebih cepat
- Menjalin komunikasi yang baik dengan client.
- Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kelemahan Extreme Programming, yaitu:
- 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.
5. Scrum Development Methodology
Scrum adalah kerangka kerja untuk mengelola pengembangan 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. Pendekatan untuk mengkoordinasikan kerja tim scrum multipel dalam organisasi yang lebih besar meliputi Scrum Skala Besar, Kerangka Agile Skala (SCFe) dan Scrum of Scrums, antara lain.
Scrum adalah kerangka kerja pengembangan perangkat lunak tangkas dan tangkas untuk mengelola pengembangan produk. Ini mendefinisikan "strategi pengembangan produk holistik yang fleksibel dimana tim pengembang bekerja sebagai satu unit untuk mencapai tujuan bersama", menantang asumsi tentang pendekatan tradisional dan sekuensial terhadap pengembangan produk, dan memungkinkan tim untuk mandiri -organisasi dengan mendorong kerja sama fisik atau kolaborasi online dekat semua anggota tim, serta komunikasi tatap muka sehari-hari di antara semua anggota tim dan disiplin yang terlibat.
Kelebihan dari Scrum :
· Keperluan berubah dengan cepat.
· Tim berukuran 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 Scrum mampu menyatakan bahwa produk selesai kapan pun diperlukan.
Kekurangan sari Scrum :
· Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
· Lemah dalam perencanaan arsitektur
Sekian artikel saya mengenai perbedaan model pengembangan software. Apabila ada yang ingin ditanyakan atau ingin menambahkan silahkan kontak saya atau langsung berikan komentar anda disini. Terima kasih dan sampai jumpa di artikel saya selanjutnya.
Komentar
Posting Komentar