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 :
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
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 tahaptahap 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 Throwaway 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 prototypenya 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 hari90 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
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 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
Sebagai
sebuah metodologi untuk mengembangkan peragkat lunak Extreme Programming
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.
•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.
•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 :
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.
•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
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
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.
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
- 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.
- 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).
- 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
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
-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
-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
·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.
halo, aku boleh minta sumber aslinya ga ?
BalasHapusGila River Hotels & Casinos - Mapyro
BalasHapusGila River Hotels & Casinos in San Bernardino, 광명 출장마사지 IL, 김제 출장마사지 Phone: 충청북도 출장마사지 +1 800 70004 Hotel · 부산광역 출장샵 Casino · Bar & Grille 서울특별 출장샵 (2-Star).