Disusun Oleh:
1. Spesifikasi
Model pengembangan perangkat lunak Waterfall merupakan pendekatan linear
yang terdiri dari serangkaian fase yang harus diselesaikan secara berurutan.
Berikut adalah spesifikasi umum dari model pengembangan Waterfall:
4. Integration and System Testing : Setelah seluruh unit atau modul yang
dikembangkan dan diuji di tahap implementasi selanjutnya diintegrasikan
dalam sistem secara keseluruhan. Setelah proses integrasi selesai,
selanjutnya dilakukan pemeriksaan dan pengujian sistem secara
keseluruhan untuk mengidentifikasi kemungkinan adanya kegagalan dan
kesalahan sistem.
- Kelebihan Waterfall
- Kekurangan Waterfall
B. ICONIX
1. Spesifikasi
Iconix adalah suatu metode pengembangan perangkat lunak yang fokus pada
analisis dan desain. Berikut adalah beberapa spesifikasi umum dari metode
pengembangan perangkat lunak Iconix:
Penting untuk dicatat bahwa spesifikasi Iconix bisa sedikit bervariasi tergantung
pada konteks penggunaannya dan evolusi metodologi pengembangan perangkat
lunak.
2. Proses Proses Iconix
Berikut ini adalah contoh hasil robustness analysis untuk use case yang ada:
Selain domain model, saya juga menemukan terdapat class-class lain yang
dihasilkan yang berkaitan dengan penggunaan framework, yang terlihat seperti
pada gambar berikut ini:
10. Coding
Disini developer berperan mengubah rancangan (design) menjadi kode
program. Karena semua telah direncanakan dan dipikirkan sebelumnya, maka
proses coding dapat dianggap sebagai sebuah pembuktian (test) bahwa
rancangan yang dibuat sudah benar. Terkadang terdapat beberapa hal yang
lolos dari perancangan dan baru terungkap saat coding; pada kasus tersebut,
perubahan pada rancangan harus segera dilakukan sehingga kode program dan
rancangan bisa tetap sinkron.
- Kelebihan Iconix
- Kekurangan Iconix
C. XP
1. Spesifikasi
7. Refaktoring (Refactoring)
Perbaikan Terus Menerus: Kode secara terus-menerus diperbaiki melalui
refaktoring untuk meningkatkan struktur dan kualitas tanpa mengubah
fungsionalitas.
2. Proses proses XP
1. Planning
Tahap pertama adalah pertemuan antara client dengan tim developer guna
presentasi gambaran hasil yang diinginkan oleh client.
Tim kemudian memperkirakan gambaran yang diinginkan oleh client dan
membuat rencana pengembangan yang dibagi menjadi beberapa tahapan
yang diperlukan untuk memenuhi fungsionalitas yang dibutuhkan. Jika
satu atau lebih dari gambaran client tidak dapat diperkirakan, atau biasa
disebut dengan spike, maka diperlukan penelitian yang lebih lanjut.
Untuk lebih lanjutnya, berikut penjelasan mengenai dua kunci yang ada
utama dalam tahap planning. Biasanya tim developer mengajukan
pertanyaan seputar dua hal ini ke client:
1. Release Planning
Pada tahap ini, pelanggan mempresentasikan fitur yang diinginkan kepada
programmer atau tim developer, dan tim developer memperkirakan tingkat
kesulitan beserta biayanya.
2. Iteration Planning
Pada tahap ini, tim diberi arahan rutin setiap beberapa minggu. Tim XP
membangun software dalam iterasi selama dua minggu dan memberikan
progress software yang sedang dibuat pada akhir setiap iterasi. Selama
perencanaan iterasi, pelanggan menyampaikan fitur-fitur yang diinginkan
untuk dua minggu ke depan.
2. Designing
Tahap designing sebenarnya merupakan bagian dari proses planning tetapi
dapat dipisahkan untuk mengoptimalkan kedua proses ini. Hal ini terkait
dengan salah satu nilai utama XP yaitu kesederhanaan. Desain yang baik
membawa logika dan struktur ke dalam sistem sehingga dapat
menghindari kompleksitas dan redundansi yang tidak diperlukan.
1. Simple Design
Pada fase perancangan desain, XP berkonsentrasi untuk memastikan
desain tepat sederhana dan lengkap. Tidak ada fungsionalitas tambahan
yang ditambahkan, fungsionalitas yang ditambahkan sesuai dengan yang
diinginkan client.
2. Metafora Sistem
Metafora sistem membuat tim pengembangan tetap terorganisir dengan
menyediakan konvensi penamaan. Konvensi penamaan sangatlah penting
karena digunakan untuk membantu memahami desain sistem secara
keseluruhan juga penggunaan ulang kode.
3. Refactoring
Refactoring adalah proses peningkatan desain yang berkelanjutan untuk
menjaga desain sesederhana mungkin serta digunakan untuk menghindari
kekacauan dan kerumitan yang sebetulnya tidak perlu.
3. Testing
Tahap ini adalah inti dari extreme programming. Fase testing adalah
aktivitas rutin yang melibatkan pengujian unit (pengujian otomatis untuk
menentukan apakah fitur yang dikembangkan berfungsi dengan baik) dan
pengujian penerimaan (pengujian pelanggan untuk memverifikasi bahwa
keseluruhan sistem dibuat sesuai dengan persyaratan awal).
4. Listening
Pada tahap ini, komunikasi antara pelanggan dan manajer proyek
dilakukan untuk menjelaskan logika bisnis dan nilai yang diharapkan.
- Kelebihan XP
1. Efisiensi Waktu dan Biaya : Dengan penggunaan Extreme Programming
memunginkan perusahaan untuk menekan biaya pengembangan software
serta waktu untuk realisasi proyek. Extreme Programming menghilangkan
kegiatan yang tidak produktif untuk mengurangi biaya dan beban semua
orang yang terlibat. Hal ini memungkinkan tim pengembang untuk fokus
pada pengkodean.
7. Teamwork : Setiap orang adalah bagian dari tim. Anggota tim bekerja
bersama dalam segala hal mulai dari requirements hingga kode.
- Kekurangan XP
D. SPIRAL
1. Spesifikasi
Model Spiral adalah salah satu metode yang dapat digunakan dalam
pengembangan perangkat lunak. Model spiral merupakan penggabungan dari
model prototyping dan model waterfall. Model prototyping yang fokus pada
penyajian atau presentasi kepada user dengan format input dan output kemudian
perangkat lunak akan dievaluasi. Model waterfall yang fokus kepada proses
pengembangan perangkat lunak yang sistematis atau berurutan. Model spiral
menekankan pada Analisa resiko setiap tahapannya.
1. Tahap Liason
Berhubungan dengan komunikasi antara pihak-pihak yang terlibat dalam
pengembangan softaware (seperti: system analyst) dengan pelanggan
(user). Tujuannya adalah memperbaiki dan mengembangan software
sesuai kebutuhan dan keinginan hingga memuaskan pelanggan.
2. Tahap planning
Tahap perencanaan meliputi estimasi biaya yang digunakan, batas waktu,
pengaturan jadwal, identifikasi lingkungan kerja, sumber-sumber
informasi untuk melakukan iterasi (Teknik perulangan). Hasil dari tahapan
ini adalah dokumen spesifikasi kebutuhan sistem dan bisnis.
5. Tahap evaluasi
Pada tahap evaluasi, system analyst membutuhkan masukan dan
tanggapan dari para user dalam mengevaluasi perangkat/produk yang diuji
dan memastikan bahwa produk dibutuhkan sesuai ketentuan yang telah
dibicarakan diawal dengan user. System analyst memastikan pelanggan
puas dengan produk yang akan dihasilkan untuk menjawab persoalan
bisnis mereka. Selain itu, system analyst harus tetap memantau resiko
yang akan terjadi seperti faktor-faktor yang dapat menyebabkan cost
overrun (pembengkakan biaya).
2. Proses proses Spiral
Setiap fase Model Spiral dibagi menjadi empat kuadran seperti terlihat pada
gambar di atas. Fungsi keempat kuadran ini dibahas di bawah ini
- Kelebihan Spiral
- Kekurangan Spiral
2. Mahal: Model Spiral tidak cocok untuk proyek kecil karena mahal.
7. Intensif Sumber Daya: Model Spiral dapat bersifat intensif sumber daya,
karena memerlukan investasi yang signifikan dalam perencanaan, analisis
risiko, dan evaluasi.
E. RUP
1. Spesifikasi RUP
RUP atau Rational Unified Process, adalah suatu kerangka kerja pengembangan
perangkat lunak yang bersifat iteratif dan inkremental. Dikembangkan oleh
Rational Software Corporation (sekarang bagian dari IBM), RUP memberikan
panduan yang komprehensif untuk pengembangan perangkat lunak dalam bentuk
metodologi siklus hidup yang terstruktur. Berikut adalah beberapa aspek
spesifikasi dari RUP :
3. Manajemen Risiko:
RUP memasukkan manajemen risiko sebagai bagian integral dari
prosesnya. Analisis risiko dilakukan secara terus-menerus selama siklus
hidup proyek.
6. Pengelolaan Perubahan:
RUP menyediakan mekanisme untuk mengelola perubahan dalam
kebutuhan atau spesifikasi proyek. Ini mencakup manajemen konfigurasi
dan pemeliharaan dokumentasi yang baik.
7. Dokumentasi Terstruktur:
Dokumentasi dalam RUP dihasilkan secara terstruktur dan mencakup
berbagai dokumen yang mendukung setiap fase pengembangan, seperti
dokumen kebutuhan, model desain, dan dokumen pengujian.
9. Tool-Oriented:
RUP mendukung penggunaan alat atau perangkat lunak untuk membantu
pelaksanaan proses. Ini bisa termasuk alat manajemen proyek, alat
pemodelan, dan alat pengujian.
- Kelebihan RUP
2. Metode ini cukup scalable, sehingga cocok untuk berapapun jumlah tim
atau proyeknya.
- Kekurangan RUP
F. RAD
1. Spesifikasi
8. Pentingnya Reusabilitas:
RAD mendorong penggunaan komponen-komponen yang dapat digunakan
kembali (reusable) untuk meningkatkan efisiensi pengembangan dan
konsistensi dalam pengembangan perangkat lunak.
11. Uji yang Terus Menerus: Pengujian dilakukan secara kontinu selama
seluruh siklus pengembangan. Ini termasuk pengujian unit, integrasi, dan
pengujian sistem untuk memastikan kualitas produk.
1. Perencanaan Kebutuhan
Tahapan ini merupakan tahap awal dalam suatu pengembangan sistem,
dimana pada tahap ini dilakukan identifikasi masalah dan pengumpulan
data yang diperoleh dari pengguna atau stakeholder pengguna yang
bertujuan untuk mengidentifikasi maksud akhir atau tujuan dari sistem dan
kebutuhan informasi yang diinginkan. Pada tahap ini keterlibatan kedua
belah sangatlah penting dalam mengidentifikasi kebutuhan untuk
pengembangan suatu sistem.
2. Desain Sistem
Di dalam tahap desain sistem, keaktifan pengguna yang terlibat sangatlah
penting untuk mencapai tujuan karena pada tahapan ini dilakukan proses
desain dan proses perbaikan desain secara berulang-ulang apabila masih
terdapat ketidaksesuaian desain terhadap kebutuhan pengguna yang telah
diidentifikasi pada tahapan sebelumnya. Luaran dari tahapan ini adalah
spesifikasi software yang meliputi organisasi di dalam sistem secara
umum, struktur data, dan lain-lain.
3. Proses pengembangan dan pengumpulan feedback.
Pada tahap ini desain sistem yang telah dibuat dan disepakati, diubah ke
dalam bentuk aplikasi versi beta sampai dengan versi final. Pada tahapan
ini juga programmer harus terus-menerus melakukan kegiatan
pengembangan dan integerasi dengan bagian-bagian lainnya sambal terus
mempertimbangkan feedback dari pengguna atau klien. Jika proses
berjalan lancar maka dapat berlanjut ke tahapan berikutnya, sedangkan
jika aplikasi yang dikembangkan belum menjawab kebutuhan,
programmer akan kembali ke tahapan desain sistem.
- Kelebihan RAD
G. PROTOTYPING
1. Spesifikasi
1. Requirements
Tahapan awal model prototype dimulai dari analisis kebutuhan. Dalam
tahap ini kebutuhan sistem didefinisikan dengan rinci. Dalam prosesnya,
klien dan tim developer akan bertemu untuk mendiskusikan detail sistem
seperti apa yang dibutuhkan oleh user.
2. Quick design
Tahap kedua adalah pembuatan desain sederhana yang akan memberi
gambaran singkat tentang sistem yang ingin dibuat. Design baru dapat
dibuat jika persyaratan dari user sudah diketahui. Setelah itu, pembuatan
design dapat dilakukan berdasarkan requirement gathering dan analisis
pada tahap 1.
3. Build prototype
Setelah desain quick design disetujui oleh user, tahap selanjutnya yaitu
pembangunan prototype sebenarnya yang akan dijadikan rujukan tim
programmer untuk pembuatan program atau aplikasi.
4. User evaluation
Setelah prototype dibuat selanjutnya adalah tahap evaluasi oleh user. Pada
tahap ini, sistem yang telah dibuat dalam bentuk prototype dipresentasikan
pada klien untuk di evaluasi. Selanjutnya, user akan memberikan komentar
dan saran terhadap prototype yang telah dibuat. Prototype jauh lebih cepat
dibuat daripada implementasi sistem yang sudah jadi, sehingga user dapat
mengevaluasinya lebih cepat dan memberikan evaluasi yang lebih cepat
tentang desain yang baik dan buruk.
5. Refining prototype
Tahap refining merupakanan tahap perbaikan prototype berdasarkan hasil
feedback klien pada tahap 4. Jika user tidak mempunyai catatan revisi dari
prototype yang dibuat, maka tim bisa berlanjut pada tahapan 6 untuk
implementasi produk. Apabila klien mempunyai catatan untuk perbaikan
sistem, maka fase 4-5 akan terus berulang sampai klien setuju dengan
sistem yang akan dikembangkan.
- Kelebihan Prototyping
- Kekurangan Prototyping