Sabtu, 25 November 2017

Perbedaan dari beberapa Model Pengembangan Software

1. Agile Software Development Methodology



Agile Software Development adalah sebuah metode dari beberapa kumpulan prinsip untuk pengembangan software yang persyaratan dan solusinya melalui kolaborasi antara tim fungsional dengan klien.

Metode Agile mendukung berbagai siklus pengembangan perangkat lunak, sementara beberapa diantaranya fokus pada bidang masing-masing. Misalnya pada praktek (XP, Pragmatic Programming, dan Agile Modelling), kemudian pada pengelolaan aliran kerja ( Scrum dan Kanban), pada kegiatan dukungan untuk pengembangan (FDD), serta berusaha menutupi siklus pengembangan penuh (DSDM dan RUP).

Untuk pengembangannya sendiri, Agile didukung oleh sejumlah praktek yang konkrit yang meliputi sektor permintaan, desain, pemodelan, coding, pegujian, perencanaan, manajemen risiko proses, dan lain-lain.

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.

kelebihan dan kekurangan dari metode Agile ini sendiri, diantaranya :

Kelebihan Agile Software Development :
  1. Meningkatkan kepuasan klien
  2. Pembangunan system dibuat lebih cepat
  3. Mengurangi resiko kegagalan implementasi dari segi non-teknis
  4. Jika terjadi kegagalan, kerugian materi relatif kecil

Kekurangan Agile Software Development :
  1. Developer harus selalu siap dengan perubahan, karena perubahan akan selalu diterima


Tim pelaksana pengembangan Agile seringkali menghadapi kesulitan diantaranya ; kesulitan umum metode Agile, kurangnya desain produk secara keseluruhan, kurangnya dukungan sponsor, kurangnya pelatihan, serta kurangnya otimatisasi. Sedangkan untuk praktek kerjanya sendiri, Agile mengadopsi praktek kerja spesifik berulang dan inkremental seperti Scrum, Kanban, pengembangan wi-driven atau pengembangan fitur-driven di semua fungsi bisnis.


2. Rapid Application Development




RAD (Rapid Application Development) Adalah metodologi pengembangan perangkat lunak (SDLC) yang menggunakan pengabungan antara Prototype Model dengan Iterative Model. Prototipe adalah model kerja yang secara fungsional setara dengan komponen produk.

Dalam model RAD (Rapid Application Development), modul fungsional dikembangkan secara paralel sebagai prototip dan terintegrasi untuk membuat produk yang lengkap untuk pengiriman produk yang lebih cepat. Dikarenakan tidak ada rincian planning yang detail, maka memudahkan untuk melakukan perubahan pada saat development berjalan.

Model RAD mendistribusikan tahap analisis, perancangan, pembuatan dan pengujian ke dalam rangkaian siklus pengembangan jangka pendek yang singkat.

Kelebihan dan kekurangan Rapid applicationh Development
Kelebihan RAD (Rapid Application Development)
1.      Mudah mengakomodasi peruabahan sistem
2.      Progress development bisa di ukur
3.      Waktu iterasi bisa di perpendek menggunakan RAD Tools
4.      Mengurangi waktu development
5.      Mudah dalam menentukan dasar sistem
6.      Mempermudah feedback customer
7.      Cocok untuk proyek yang membutuhkan waktu pengembangan yang lebih pendek.
8.      Cocok untuk sistem yang berbasis komponen dan terukur.

Kekurangan RAD (Rapid Application Development)
  1. Ketergantungan pada anggota bisnis tim untuk mengidentifikasi persyaratan bisnis
  2. Hanya sistem yang bisa di modularized yang bisa dibangun menggunakan RAD
  3. Membutuhkan developer / designer yang berpengalaman
  4. Ketergantungan pada keterampilan model
  5.  Kompleksitas manajemen 
  6. Tidak dapat diterapkan pada proyek yang kecil / murah.


3.  Dynamic System Development Model Methodology




Dynamic System Development Model Methodology adalah 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 :

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 yaitu 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
3.  Aktifitas Feasibility Study yaitu dengan requirement, lalu uji apakah sesuai gunakan proses DSDM
4.  Aktifitas Business Study yaitu susunam kebutuhan fungsional dan informasi, menentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
5. Aktifitas Functional model iteration yaitu menghasilkan incremental prototype yang perlihatkan fungsi software ke client untuk dapatkan kebutuhan lebih jelas dan konfirmasi.
6.  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
7. Aktifitas Implementation yaitu menempatkan software pada lingkungan sebenarnya sekalipun belum lengkap atau masih ada perubahan.
8. DSDM dapat dikombinasikan dengan XP yang menghasilkan kombinasi model prosesmengikuti metode DSDM dan praktek yang sejalan dengan XP.

Telah di jelaskan beberapa karakteristik DSDM, pada tujuannya untuk menciptakan suatu rangkaian RPL yang cepat sama hal nya dengan XP model.


4. Ekstreme Programing Methodologhy


Extreme Programming 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.“.

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.

Extreme Programming tepat digunakan saat kondisi :
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 campur tangan klien secara langsung

kelebihan Ekstrem programing : 
1.     Meningkatkan kepuasan kepada klien 
2.     Pembangunan system dibuat lebih cepat 
3.     Menjalin komunikasi yang baik dengan client. 
4.     Meningkatkan komunikasi dan sifat saling menghargai antar developer.


Kelemahan Extreme Programming :
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.

 Aspek dasar XP dari berbagai metode yang diterapkan, antara lain : 
  • Whole team
  • planning Game
  • small release
  • design improvement
  • collective code ownership
  • simple design
  • pair programming
  • test driven development
  • continous integration
  • coding standard
  • metaphor
  • suistainable pace  

5. Scrum Development Methodologhy




Scrum merupakan suatu kerangka kerja yang berupa deskripsi rinci tentang bagaimana segala sesuatu yang harus dilakukan pada proyek. Hal ini dilakukan dikarenakan tim akan tahu bagaimana cara terbaik untuk memecahkan masalah yang disajikan untuk mereka.

Ada 3 elemen organisasi utama pada scrum yaitu product owner, Scrum master, dan Scrum team. Scrum Master dapat dianggap sebagai pelatih / guru bagi tim yang mengajarkan cara kerja lebih kolaboratif dan menyenangkan dalam mengembangkan software. Product Owner mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pengembangan produk yang tepat. Sedangkan Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk project yang sangat besar, biasanya pekerjaan akan dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan scrum master juga dapat ikut membantu dalam koordinasi team.

Scrum tepat digunakan saat kondisi:
  1. Keperluan berubah dengan cepat
  2. Tim programmer sedikit, yaitu 5-9 orang
  3. Pelanggan tidak terlalu paham dengan apa yang diinginkan
Scrum memiliki prinsip yaitu:
  1. Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain
  2. Proses dapat beradaptasi terhadap perubahan teknis dan bisnis
  3.  Proses menghasilkan beberapa software increment
  4. Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
  5. Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
  6. Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

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.

Dikarenakan, model yang digunakan akan berpengaruh pada kinerja dari tim dan juga dapat menunjang keberhasilan suatu project pembuatan perangkat lunak.




Tidak ada komentar:

Posting Komentar