MODEL MODEL AGILE METHODE
Assalamuallaikum wr wb
yuk mari kita bahas mengenai ..........
Sejarah
Modern
definisi Agile pengembangan software berkembang pada pertengahan tahun 1990-an
sebagai bagian dari reaksi terhadap "berat" metode, dikatakan oleh
seorang typified berat diatur, regimented, Mikro dikelola menggunakan waterfall
model pembangunan. Proses ini berasal dari air terjun menggunakan model yang
dianggap sebagai birokrasi, lambat, demeaning, dan tidak konsisten dengan cara
yang sebenarnya pengembang perangkat lunak melakukan kerja efektif. Kasus dapat
dibuat yang Agile dan pengembangan metode yg berulang adalah pembangunan
kembali ke praktek mulai awal dalam sejarah pengembangan piranti lunak. Pada
mulanya, Agile metode yang disebut "metode ringan." Pada tahun 2001,
anggota tokoh masyarakat bertemu di Snowbird, Utah, dan mengadopsi nama
"metode Agile." Nantinya, sebagian dari orang-orang yang membentuk
Aliansi Agile, sebuah organisasi nirlaba yang mempromosikan pembangunan Agile.
Suatu
proses pengembangan software adaptif diperkenalkan dalam karya oleh Edmonds
(1974). terkemuka awal Agile metode mencakup banyak (1995), Crystal Clear,
Extreme Programming (1996), adaptive Software Development, Fitur Terutama
Pembangunan dan Pengembangan Sistem Dinamis Metode (DSDM) (1995). Ini biasanya
disebut sebagai metodologi Agile sejak Agile Manifesto telah diterbitkan pada
tahun 2001.
Model-model Agile method- Extreme Programmning (XP)
- Adaptive Software Development (ASD)
- Dynamic Systems Development Method (DSDM)
- Scrum Methodology
- Crystal
- Feature Driven Development (FDD)
- Agile Modeling (AM)
- Rational Unified Process
Extreme Programmning (XP)
Proyek Pemrograman Extreme pertama dimulai 6 Maret 1996.
Extreme Programming adalah salah satu dari beberapa Proses Agile populer. Sudah
terbukti sangat sukses di banyak perusahaan dari berbagai ukuran dan industri
di seluruh dunia.
Extreme Pemrograman berhasil karena menekankan kepuasan
pelanggan. Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan,
dan pengembang semua mitra setara dalam sebuah tim kolaboratif. Extreme
Pemrograman menerapkan, sederhana namun efektif yang memungkinkan tim
lingkungan menjadi sangat produktif. Tim mengorganisir diri mengatasi masalah
untuk menyelesaikannya seefisien mungkin.
Extreme Pemrograman meningkatkan proyek perangkat lunak dalam
lima cara penting; komunikasi, kesederhanaan, umpan balik, rasa hormat, dan
keberanian. Extreme Programmer selalu berkomunikasi dengan pelanggan mereka dan
programer sesama. Mereka terus desain mereka yang sederhana dan bersih.
Gambar. Extreme Programmer
Keuntungan dan Kerugian
Keuntungan Extreme Programmning:Menjalin komunikasi yang baik dengan client. Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kerugian Extreme Programmning:
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).
Adaptive Software Development (ASD)
Adaptive Software Development (ASD) diajukan oleh Jim
Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks.
Filosofi yang mendasari Adaptive Software Development (ASD) adalah kolaborasi
manusia dan tim yang mengatur diri sendiri.
System kerja adaptive software development : Collaboration dan
Learning
Adaptive cycle planning yaitu menggunakan informasi awal
seperti misi dari klien, batasan proyek dan kebutuhan dasar untuk definisikan
rangkaian software increment (produk software yang secara berkala diserahkan)
- Collaboration : orang-orang yang bermotivasi tinggi bekerja sama: saling melengkapi, rela membantu, kerja keras, trampil di bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
- Focus
group: klien dan pengguna memberi masukan terhadap software
- Formal
Technique Reviews: Tim ASD lengkap melakukan review
-
Postmortems: Tim ASD lakukan instrospeksi pada kinerja dan
proses.
Gambar. Proses Adaptive Software Development (ASD)
Dynamic Systems Development Method (DSDM)
Pada Dynamic System Development Method menyajikan kerangka
kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang
terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang
terkondisikan. Metode ini akan membangun software dengan cepat: 80% dari proyek
diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
Dynamic System Development Method dapat dikombinasikan dengan
Extreme Programmning menghasilkan kombinasi model proses yang mengikuti Dynamic
System Development Method dan praktek yang sejalan dengan Extreme Programmning.
Scrum 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 dan XP adalah
menekankan metodologi yang berbeda sepasang ujian dulu 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 memiliki prinsip yaitu:
- Ukuran tim
yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu
sama lain
- Proses dapat beradaptasi terhadap perubahan teknis dan bisnis
- Proses menghasilkan beberapa software increment
- Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
- Dokumentasi
dan pengujian terus menerus dilakukan setelah software dibangun
- Proses scrum
mampu menyatakan bahwa produk selesai kapanpun diperlukan
Crystal
Crystal diperkenalkan oleh Cockburn dan Highsmith, Development
yang tidak pada jalur kritis, dapat menghabikan waktu lebih, mereka yang
memperbaiki produk atau membantu oaring yang ada di jalur proyek kritis.
Karakteristik Crystal :
- Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar karakteristik permasalahan
- Menyarankan penggunaan workshop refleksi untuk review kebiasaan kerja tim
- Selalu murah dan cepat berkomunikasi secara langsung.
- Proyek berkembang sesuai ukuran team menjadi lebih atau luas dan metologi akan menjadi lebih tinggi.
Feature Driven Development
Feature Driven Development merupakan model proses praktis
untuk keahlian proses software engineering, Feature merupakan sebuah
fungsi yang berharga dimana dapat dilaksanakan.
Keuntungan dari metode feature :
- User dapat menggambarkan dengan mudah bentuk system.
- Dapat di organisasikan atau diatur ke dallamkelompok bisnis yang hirarki.
- Desain dank ode lebih mudah diperiksa secara efektif.
- Merancang proyek, penjadwalan dan jalur diarahkan oleh feature.
Agile Modeling
Dalam situasi pembangunan software harus membangun sistem
bisnis yang besar dan penting. Jangkauan dan kompleksitas sistem harus
dimodelkan sehingga dapat dimengerti, masalah dapat dibagi menjadi lebih kecil
dan kualitas dapat dijaga pada tiap langkah pembangunan
software. Agile Modeling adalah suatu metodologi yang praktis
untuk dokumentasi dan pemodelan system software. Agile Modeling adalah kumpulan
nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat
diaplikasian pada software development proyek secara efektif.
Prinsip dalam Agile Modeling :
- Membuat model dengan tujuan: tentukan tujuan sebelum membuat model
- Mengunakan multiple models: tiap model mewakili aspek yang berbeda dari model lain.
- Travel light: simpan model-model yang bersifat jangka panjang saja
- Isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens yang tepat.
- Memahami model dan alat yang yang digunakan untuk membuat software
- Adaptasi secara local
Rational Unified Process
Rational Unified Process, adalah suatu kerangka kerja proses pengembangan perangkat lunak
iteratif yang dibuat oleh Rational Software, suatu
divisi dari IBM sejak 2003. RUP bukanlah
suatu proses
tunggal dengan aturan yang konkrit, melainkan suatu kerangka proses yang dapat
diadaptasi dan dimaksudkan untuk disesuaikan oleh organisasi pengembang dan tim
proyek perangkat lunak yang akan memilih elemen proses
sesuai dengan kebutuhan mereka.
Model ini membagi suatu sistem aplikasi menjadi beberapa
komponen sistem dan memungkinkan para developer aplikasi untuk menerapkan
metoda iterative (analisis, disain, implementasi dan pengujian) pada
tiap komponen. Dengan menggunakan model ini, RUP membagi tahapan pengembangan
perangkat lunaknya ke dalam 4 fase sebagai berikut.
Inception, merupakan
tahap untuk mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang
dilakukan pada tahap ini antara lain mencakup analisis sistem eksisting,
perumusan sistem target, penentuan arsitektur global target, identifikasi
kebutuhan, perumusan persyaratan perumusan kebutuhan pengujian, pemodelan
diagram UML, dan pembuatan dokumentasi.
Elaboration, merupakan
tahap untuk melakukan disain secara lengkap berdasarkan hasil analisis di tahap
inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup
pembuatan disain arsitektur subsistem), disain komponen sistem, disain format
data disain database, disain antarmuka/tampilan, disain peta aliran tampilan,
penentuan design pattern yang digunakan, pemodelan diagram UML, dan pembuatan
dokumentasi.
Construction, merupakan
tahap untuk mengimplementasikan hasil disain dan melakukan pengujian hasil
implementasi. Pada tahap awal construction, ada baiknya dilakukan pemeriksaan
ulang hasil analisis dan disain, terutama disain pada domain perilaku (diagram
sequence) dan domain struktural (diagram class, component, deployment). Apabila
disain yang dibuat telah sesuai dengan analisis sistem, maka implementasi
dengan bahasa pemrogramanan tertentu dapat dilakukan.
Aktivitas yang dilakukan
pada tahap ini antara lain mencakup pengujian hasil analisis dan disain (misal
menggunakan Class Responsibility Collaborator untuk kasus pemrograman
berorientasi obyek), pendataan kebutuhan implementasi lengkap (berpedoman pada
identifikasi kebutuhan di tahap analisis), penentuan coding pattern yang
digunakan, pembuatan program, pengujian, optimasi program, pendataan berbagai
kemungkinan pengembangan / perbaikan lebih lanjut, dan pembuatan dokumentasi.
Transition, merupakan
tahap untuk menyerahkan sistem aplikasi ke konsumen (roll-out), yang umumnya
mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi
terhadap ekspetasi pengguna.
4