Perbedaan beberapa model pengembangan software

Perbedaan beberapa model pengembangan software 

       Proses pengembangan perangkat lunak (Software development process) adalah suatu struktur yang diterapkan pada pengembangan suatu produk perangkat lunak yang bertujuan untuk mengembangkan sistem dan memberikan panduan yang bertujuan untuk menyukseskan proyek pengembangan sistem melalui tahap demi tahap. Proses ini memiliki beberapa model yang masing-masing menjelaskan pendekatan terhadap berbagai tugas atau aktivitas yang terjadi selama proses. Contoh model proses pengembangan perangkat lunak antara lain adalah sebagai berikut :

1. AGILE SOFTWARE DEVELOPMENT
Agile software development adalah Metode dari beberapa kumpulan prinsip untuk pengembangan software di mana persyaratan dan solusi melalui upaya kolaboratif dari antar tim fungsional dan klien
Ini sebagai pendukung perencanaan adaptif, perkembangan evolusi, awal pengiriman, dan perbaikan terus-menerus, dan itu mendorong respon yang cepat dan fleksibel untuk dirubah.

Prinsip Agile software development
Manifesto Agile terdiri dari 12 prisip:
1. Kepuasan pelanggan dengan penyampaian awal dan penyampaian. perangkat lunak yang bernilai dengan terus menerus.
2. Menerima perubahan permintaan, bahkan dalam pengembangan akhir.
3. Perkembangan Perangkat lunak disampaikan secara sering setiap minggu.
4. Selalu koordinasi dengan dekat antara klien dan pengembang perangkat lunak .
5. Proyek yang dibangun di sekitar individu yang termotivasi, yang bisa dipercaya.
6. Percakapan Face to face adalah bentuk terbaik dari komunikasi.
7. Software Kerja adalah ukuran utama dari kemajuan
8. Pengembangan berkelanjutan, mampu mempertahankan kecepatan pengerjaan yang stabil
9. memperhatikan keunggulan teknis dan desain yang baik berkelanjutan
10. Kesederhanaan-seni memaksimalkan jumlah pekerjaan tidak dilakukan-sangat penting
11. Arsitektur, persyaratan, dan desain terbaik muncul dari tim yang mengatur dirinya sendiri
12. Tim mencerminkan tentang bagaimana menjadi lebih efektif, dan menyesuaikan secara teratur.

Metode Agile
Metode Agile mendukung berbagai siklus pengembangan perangkat lunak. Beberapa fokus pada praktek (misalnya, XP, pragmatic programming, agile modeling), sementara beberapa fokus pada pengelolaan aliran kerja (misalnya, Scrum, Kanban). Beberapa kegiatan dukungan untuk persyaratan spesifikasi dan pengembangan (misalnya, FDD), sementara beberapa berusaha untuk menutupi siklus pengembangan penuh (misalnya, DSDM, RUP).
Kerangka pengembangan perangkat lunak Agile yang umum termasuk:
• Adaptive software development
• Agile modeling
• Agile Unified Process (AUP)
• Crystal Clear methods
• Disciplined agile delivery
• Dynamic systems development method (DSDM)
• Extreme programming (XP)
• Feature-driven development (FDD)
• Lean software development
• Kanban
• Scrum
• Scrumban
• Rapid application development

Kelebihan dari Metode Agile:
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 Metode Agile:
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. RapidApplicationDevelopment (RAD) adalah metodologi pengembangan perangkat lunak yang berfokus pada membangun aplikasi dalam waktu yang sangat singkat. Istilah ini menjadi kata kunci pemasaran yang umum menjelaskan aplikasi yang dapat dirancang dan dikembangkan dalam waktu 60­-90 hari.

Unsur-unsur Rapid Application Development
RAD memiliki banyak unsur­-unsur yang membuat sebuah metodologi yang unik termasuk prototyping, iterative development, time boxing, team members, management approach, dan RAD tools.
a.Prototyping: Sebuah aspek kunci dari RAD adalah pembangunan prototipe untuk tujuan membangkitkan kembali desainuntuk kebutuhan pengguna. Tujuannya adalah untuk membangun sebuah fitur ringan yang hasil akhirnya dalam jumlah pendek dengan waktu yang memungkinkan

b.Iterative Development: Interative Development berarti menciptakan versi yang lebih fungsional dari sebuah sistem dalam siklus pembangunan pendek.  Setiap versi ditinjau dengan klien untuk menghasilkan persyaratan untuk membuat versi berikutnya. Proses ini diulang sampai semua fungsionalitas telah dikembangkan

c.Time boxing: Time boxing adalah proses menunda fitur untuk versi aplikasi di masa mendatang untuk melengkapi versi saat ini sebagai ketepatan waktu. Ketepatan waktu merupakan aspek penting dari RAD, karena tanpa itu ruang lingkup dapat mengancam untuk memperpanjang iterasi pembangunan, sehingga membatasi umpan balik dari klien

d.Team Member: Metodologi RAD merekomendasikan penggunaan tim kecil yang terdiri dari anggota yang berpengalaman, serbaguna, dan motivasi yang mampu melakukan peran ganda.


e.RAD Tools: Salah satu tujuan utama dari metodologi Rapid Application Development yang dikembangkan oleh James Martin pada tahun 1980 an adalah untuk memanfaatkan teknologi terbaru yang tersedia untuk mempercepat pembangunan. Jelas teknologi tahun 1980 sudah kuno, tetapi fokus RAD tentang alat terbaru adalah sama pentingnya hari ini seperti ketika metodologi awalnya diciptakan.



Pendekatan model Rapid Application Development

Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan:
1.Component based construction ( pemrograman berbasis komponen )
2.Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada
3.Pembangkitan kode program otomatis/semi otomatis.
4.Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tapi tidak sama. Banyaknya tim tergantung dari area dan komplekstasnya sistem yang dibangun. 

Perbandingan RAD denan metode lain
a.Perbandingan Dengan Metode Tradisional
Sebagai gambaran umum, pengembangan aplikasi berarti mengembangkan aplikasi pemrograman yang bervariasi dari pemrograman umum dalam arti bahwa ia memiliki tingkat yang lebih tinggi dari kewajiban, termasuk untuk kebutuhan menangkap dan pengujian.
Metodologi RAD adalah dalam jangkauan hampir semua orang sebagai generator kode,
Alat-­alat visual seperti VB, Visual C + + dan CASE tool seperti Rational Rose didasarkan pada teknik RAD saja.
Jika Anda merancang aplikasi dengan Rational Rose, kode dapat
secara otomatis dihasilkan dalam bahasa seperti C + +, VC + + atau VB. Sebagai contoh
sederhana, jika Anda telah menggunakan alat alat seperti MS FrontPage maka itu kembali
alat RAD.
 Berikut ini gambar perbandingan antara metode RAD dengan metode Tradisional.

Pada gambar 1 menggambarkan perbedaan dari metode tradisonal dengan metode RAD.
Untuk tahap tradisonal mengacu pada urutan tahap­tahap SDLC. Pada RAD Tahap pertama
langsung membuat analisis dan design, lalu langsung ketahap siklus prototyping yaitu
membangun, memperhalus dan mendemonstrasikannya.

b.Metodelogi RAD mengunakan Prototyping dan Throw­away Prototyping
Pada gambar 2 diatas Metodologi prototyping melakukan analisis, desain dan implementasi secara bersamaan untuk menghadirkan sebuah sistem dengan skala kecil dalam fungsi minimal kemudian di review oleh user untuk dilakukan proses development secara berulang hingga menghasilkan sebuah system.
Untuk gambar 3 adalah metode Throwaway Prototyping, pada metodologi ini Analisa dilakukan lebih mendalam, prototype dibuat dan ditest, pengalaman yang diperoleh dari
latihan ini digunakan untuk membuat produk finalnya, tetapi prototype­nya sendiri dibuang.

Kelebihan Rapid Application Development

RAD mempunyai kelebihan yang dapat disimpulkan sebagai berikut:
•Sangat berguna dilakukan pada kondisi user tidak memahami
kebutuhankebutuhan apa saja yang digunakan pada proses pengembangan
perangkat lunak.
•RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi
mempunyai kemampuan untuk menggunakan kembali komponen yang ada
(reusable object) sehingga pengembang tidak perlu membuat dari awal lagi
dan waktu lebih singkat berkisar antara 60 hari­90 hari.
•Karena mempunyai kemampuan untuk menggunakan komponen yang sudah
ada dan waktu yang lebih singkat maka membuat biaya menjadi lebih rendah
dalam menggunakan RAD

Kelemahan Rapid
Application Development
Beberapa hal yang perlu diperhatikan dalam implementasi pengembangan menggunakan model RAD:
•Proyek yang berskala besar, RAD memerlukan sumber daya manusia yang
memadai untuk menciptakan jumlah tim yang baik.
•RAD menuntut pengembang dan pelanggan memiliki komitmen dalam
aktivitas rapid fire yang diperlukan untuk melengkapi sebuah sistem dalam
waktu yang singkat. Jika komitmen tersebut tidak ada maka proyek RAD akan
gagal.

3. DYNAMIC SYSTEMS DEVELOPMENT METHODOLOGY
 Dynamic Systems Development Methodology ini merupakan pengembangan tahap lanjut dari metode Rapid Application Development (RAD) yang sangat menerapkan  metode incremental dan iteratif. metode ini sangat ideal digunakan ketika suatu software dituntut untuk sangat fokus dan mementingkan tampilan yang mudah dan aspek kegunaan yang baik dari produk tersebut.


DSDM terdiri dari 3 tahapan utama, dan 5 sub tahap :
1. Sebelum proyek, di mana kandidat proyek diidenti kasi, pembiayaan proyek terpenuhi, dan jaminan proyek dipastikan. Penanganan hal-hal tersebut pada tahap ini menghindari masalah pada tahap-tahap berikutnya.
2. Siklus hidup proyek, merupakan inti dari DSDM, yang terdiri dari 5 sub tahap yaitu : 1 studi kelayakan, 2 studi bisnis, 3 perulangan model fungsional, 4 perulangan perancangan dan pembuatan, 5 penerapan.
3. Setelah proyek, yaitu memastikan sistem berjalan secara efektif dan efi sien. Hal ini diwujudkan dengan perawatan, peningkatan dan perbaikan sesuai prinsip-prinsip DSDM.
 

Teknik Utama

Manajemen proyek yang tradisional menggunakan "Milestones" dalam menandai pencapaiannya. DSDM berbeda, DSDM menggunakan teknik "Timeboxing" dalam menandai pencapainnya yang biasannya berjangka waktu 2,4 atau enam pekan. 

Beberapa teknik utamanya adalah sebagai berikut :

- Timebox
•Dapat berisi beberapa tugas.
•Pada akhirnya produk perlu disampaikan
•Dapat berubah karena tugas didefenisikan sebagai subyek, bukan apa yang 

akan disampaikan
•Tugas dapat diubah selama waktu "Iteratif" yang memungkinkan untuk respon cepat daLkebutuhan bisnis.

- MoSCoW Rules 
Proyek DSDM sangat difokuskan pada waktu, budget dan keterlibatan pengguna dalam proses pengembangan. so sangat diwajibkan selalu memantau apa yang diinginkan pengguna.
Kebutuhan pengguna dapat berubah selama proses dengan syarat :
•Menyadari kemungkinan teknis yang baru
•Perubahan lingkungan kerja pengguna
Penerapan teknik MosCow memiliki aturan sebagai berikut :
1.Must Have : Semua fitur yang diklasifikasikan dalam kelompok harus di implementasikan oleh pengguna dan jika mereka tidak disampaikan, sistem akan tidak bekerja.
2.Should Have : Fitur ini menjadi prioritas bagi sistem, namun dapat diabaikan apabila kendala waktu sangat berisiko.
3.Could Have : Fitur ini bisa bisa ada namun juga dapat diabaikan karena tidak mempengaruhi tuntutan bisnis
4.Would Have : Persyaratan ini akan dipenuhi bila terdapat waktu sisa dalam pengembangan sistem atau pada pengembangan selanjutnya.


- Prototyping 
Prototyping memiliki dua prinsip utama yaitu :
•Seringnya pengiriman aplikasi kepada pengguna
•Pengembangan yang incremental

Mengimplementasikan fungsi utama dari aplikasi, sehingga kita dapat menemukan kendala lebih cepat dalam proses pengembangan dan kita dapat lebih cepat mengirimkan aplikasi kepada user untuk mendapatkan feedback. feedback yang secara rutin sangat diperlukan.


DSDM membedakan tipe prototipe sebagai berikut : 

a. Bussines Prototype : Mempersilahkan penilaian pada sistem yang akan dikembangkan
b. Usability Prototype : Periksa User Interface
c. Performance Prototype : Pastikan solusi dapat mengatasi kinerja dan volume
d. Capability Prototype : Mengevaluasi opsi yang memungkinkan

Faktor Kunci Kesuksesan DSDM

Konsorsium DSDM telah membuat sepuluh faktor penting bagi penganutnya :
1. Menyetujui terlebih dahulu filosofi DSDM sebelum memulai kerja.
2. Pengambilan keputusan haruslah melibatkan pengguna dan pengembang.
3. Komitmen dari manajemen senior haruslah penting
4. Penyampaian yang rutin
5. Kemudahan akses antara developer dan pengguna
6. Kestabilan team
7. Kemampuan bekerjasama pada tim pengembang
8. Ukuran tim pengembang
9. Dukungan komersil
10. Teknologi pada pengembangan

Kelemahan dari DSDM:
1. Biaya lisensi
2. Penghalang yang relatif tinggi untuk masuk
3. Pergeseran budaya dalam organisasi




4. EXTREME PROGRAMMING METHODOLOGY
Extreme Programming Methodology(XP) merupakan agile methods yang paling populer saat ini. XP digunakan untuk mengatasi masalah requirements yang tidak jelas dan sering berubah ubah (vague and volatile requirements). pengembangan perangkat lunak. XP dimunculkan untuk menangani perubahan-perubahan yang biasanya sering terjadi pada saat pengembangan berlangsung bahkan pada saat proses pengembangan sudah hampir berakhir. Selain itu XP juga dimunculkan untuk mengatasi berbagai requirements yang tidak jelas dari user.

Sebagai sebuah metodologi untuk mengembangkan peragkat lunak Extreme Programming 
tentu memiliki siklus hidup. Siklus hidup pada Extreme Programming ini terdapat lima fase yaitu :

1. Exploration Phase

2. Planning Phase

3. Iteration to Release Phase

4. Productionizing Phase

5. Maintenance PhaseBA
 
Implementasi Extreme Progamming Methodology 
- Planning game merupakan practice yang digunakan untuk melakukan perencanaan dan melakukan prioritas terhadap fitur-fitur yang dituliskan pada index card oleh customer. 
- Small releases rilis yang dihasilkan untuk setiap iterasi sangat pendek dan dengan umpan balik terhadap perubahan dari customer juga sangat cepat.
- Metaphor adalah semacam simple guidance bagi proses pengembangan dari fase paling awal hingga terakhir.
- Simple design merupakan rancangan yang sederhana untuk di-deliver pada setiap iterasi.
- Testing yang dilakukan adalah setiap saat bahkan terdapat testing diawal.
- Refactoring adalah proses untuk memperbaiki code selain untuk menghindari berbagai redundansi yang mungkin terjadi.
- Pair programming  adalah proses pengembangan dengan memprogram di satu mesin komputer yang dilakukan oleh dua orang programmer.
- Collective ownership adalah keadaan di mana semua anggota tim harus dapat menanggulangi semua hal yang berkaitan dengan proses pengembangan
- Continuous integration bahwa proses pengembangan setiap hari bahkan setiap saat terdapat perubahan harus segera diintegrasikan
- 40-hour week adalah jumlah jam kerja selama satu minggu. Hal ini sebenarnya tidak mutlak 40 jam, namun intinya adalah bahwa proses pengembangan tidak mengenal lembur, semua harus diselesaikan pada saat jam kerja. Semua masalah dan pekerjaan harus dioptimalkan pada waktu jam kerja tersebut
- On-site customer merupakan salah satu keunggulan bagi metodologi ini karena XP memerlukan satu orang dari pihak bisnis yang akan dibawa dalam proses pengembangan dari awal sampai berakhir. Hal ini akan cepat dalam mengatasi berbagai requirements yang mungkin akan berubah atau bertambah, namun akan mengurangi produktivitas pada pihak bisnis.
- Coding Standard adalah men-standarkan proses coding bagi programmer terutama karena hal ini berkaitan dengan practice pair programming.


Kelebihan Extreme Programming :
- Menjalin komunikasi yang baik dengan client.
- Meningkatkan komunikasi dan sifat saling menghargai antar developer.

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



5. SCRUM DEVELOPMENT METHODOLOGY



Scrum Development Methodolgy adalah suatu metodologi yang mengatur (manage) proses pembuatan software. 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.

Selain itu Scrum juga menarik karena scrum lebih condong pada cara me-manage proyek secara praktikal (practical process model). Lebih menuntun tim untuk melakukan hal-hal yang perlu dan menyarankan hal-hal yang tidak perlu dalam menginspeksi proses dan melakukan adaptasi terus meneus untuk menyetir arah dari proses. Tidak seperti metodologi manajemen proyek lain yang cenderung deskriptif dan heavyweight. Scrum juga dikategorikan pada agile software development methodology.


Prinsip scrum development methodology

-Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lainProses 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



Kelebihan Scrum Development Metodology antara lain:

·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 kapanpun diperlukan



Kekurangan Scrum Development Methodology antara lain :

·Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.

 











 

 


 

 
 








Komentar

  1. halo, aku boleh minta sumber aslinya ga ?

    BalasHapus
  2. Gila River Hotels & Casinos - Mapyro
    Gila River Hotels & Casinos in San Bernardino, 광명 출장마사지 IL, 김제 출장마사지 Phone: 충청북도 출장마사지 +1 800 70004 Hotel · 부산광역 출장샵 Casino · Bar & Grille 서울특별 출장샵 (2-Star).

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Perbedaan 4 Enterprise Architecture Framework

Mengenal lebih dalam tentang TOGAF