Macam-macam Metode yang digunakan dalam Pengembangan/Pembuatan Software
Halo semua! Pada kesempatan
kali ini saya akan menambah ke-random-an saya dengan membuat artikel tentang
macam-macam metode yang digunakan dalam pengembangan Software/perangkat lunak.
Metode-metode yang akan saya jelaskan antara lain: Agile Software Development
Mehtodology, Rapid Application Development, Dynamic System Development Model
Methodology, Extreme Programing Methodology, Scrum Development Methodology.
Dari namanya aja bikin pusing. Daripada terus-terusan pusing mending langsung
baca aja artikelnya. Ehhh. Tunggu dulu, pertama-tama kalian harus tahu apa itu
metodologi pengembangan perangkat lunak. Cekidott.
Metode pengembangan perangkat lunak
(atau disebut juga model proses atau paradigma rekayasa perangkat lunak) adalah
suatu strategi pengembangan yang memadukan proses, metode, dan perangkat
(tools). Metode-metode pengembangan perangkat lunak, memberikan teknik untuk membangun perangkat
lunak yang berkaitan dengan serangkaian tugas yang luas yang menyangkut
analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan.
Berikut merupakan metode-metode pengembangan
yang berhasil saya rangkum :
1. Agile
Software Development Methodology
Agile methods merupakan salah satu dari beberapa
metode yang digunakan dalam pengembangan sooftware. Agile method adalah jenis
pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang
terhadap perubahan dalam bentuk apapun.
Dalam
Agile Software Development interaksi dan personel lebih penting dari pada
proses dan alat, software yang berfungsi lebih penting daripada dokumentasi
yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi
kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti
rencana.
Berikut
siklus dalam metode Agile :
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.
Kekurangan
dari metode Agile
1.
Developer
harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2.
Agile
tidak akan berjalan dengan baik jika komitmen tim kurang.
3.
Tidak
cocok dalam skala tim yang besar (>20 orang).
4.
Perkiraan
waktu release dan harga perangkat lunak sulit ditentukan.
2. Rapid
Application Development (RAD)
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.
Fase-Fase
dalam RAD:
Bussiness
modeling
Aliran
informasi di antara fungsi – fungsi bisnis dimodelkan dengan suatu cara untuk
menjawab pertanyaan – pertanyaan berikut : informasi apa yang mengendalikan
proses bisnis? Informasi apa yang di munculkan? Siapa yang memunculkanya? Ke
mana informasi itu pergi? Siapa yang memprosesnya?
Data modeling
Aliran
informasi yang didefinisikan sebagai bagian dari fase bussiness modelling
disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis
tersebut. Karakteristik (disebut atribut) masing – masing objek diidentifikasi
dan hubungan antara objek – objek tersebut didefinisikan.
Prosess
modelling
Aliran
informasi yang didefinisikan di dalam fase data modeling ditransformasikan
untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi
bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus,
atau mendapatkan kembali sebuah objek data.
Aplication
generation
RAD
mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat
lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional,
RAD lebih banyak memproses kerja untuk memkai lagi komponen program yang ada (
pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila
perlu). Pada semua kasus, alat – alat bantu otomatis dipakai untuk
memfasilitasi konstruksi perangkat lunak.
Testing
and turnover
Karena
proses RAD menekankan pada pemakaian kembali, banyak komponen program telah
diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru
harus di uji dan semua interface harus dilatih secara penuh.
Kelebihan
RAD
1.
Membeli
sistem yang baru memungkinkan untuk lebih menghemat biaya ketimbang mengembangkan
sendiri.
2.
Proses
pengiriman menjadi lebih mudah, hal ini dikarenakan proses pembuatan lebih
banyak menggunakan potongan-potongan script.
3.
Mudah
untuk diamati karena menggunakan model prototype, sehingga user lebih mengerti
akan sistem yang dikembangkan.
4.
Lebih
fleksibel karena pengembang dapat melakukan proses desain ulang pada saat yang
bersamaan.
5.
Keterlibatan
user semakin meningkat karena merupakan bagian dari tim secara keseluruhan.
6.
Mempercepat
waktu pengembangan sistem secara keseluruhan karena cenderung mengabaikan
kualitas.
Kekurangan
RAD
1.
Dengan
melakukan pembelian belum tentu bisa menghemat biaya dibandingkan dengan
mengembangkan sendiri.
2.
Membutuhkan
biaya tersendiri untuk membeli peralatan-peralatan penunjang seperti misalnya software
dan hardware.
3.
Kesulitan
melakukan pengukuran mengenai kemajuan proses.
4.
Ketelitian
menjadi berkurang karena tidak menggunakan metode yang formal dalam melakukan
pengkodean.
5.
Lebih
banyak terjadi kesalahan apabila hanya mengutamakan kecepatan dibandingkan
dengan biaya dan kualitas.
3. Dynamic
System Development Model Methodology
DSDM
adalah suatu kerangka kerja awalnya didasarkan pada Rapid Appliation
Development (RAD). DSDM mengutamakan keterlibatan pemakai seara
berkesinambungan dengan pendekatan pengembangan seara berulang dan bertambah,
tanggap terhadap perubahan, untuk membangun sistem perangkat lunak yang
memenuhi kebutuhan bisnis tepat waktu dan tepat anggaran. DSDM merupakan salah
satu metode Agile untuk pengembangan perangkat lunak, dan bagian dari Agile
Alliance. DSDM pertama kali diperkenalkan pada tahun 1995, di mana merupakan
satu-satunya publikasi penggunaan metode RAD di dunia.
Sebagai
perluasan dari RAD, DSDM memusatkan pada proyek sistem informasi yang diirikan
oleh jadwal dan anggaran yang ketat. DSDM berupaya mengatasi penyebab-penyebab
kegagalan proyek, di antaranya melebihi anggaran, terlambat dari jadwal,
kurangnya keterlibatan pengguna, dan lemahnya komitmen dari para pimpinan.
Kerangka kerja DSDM menyediakan dasar ideal bagi proses pengembangan dan penerapan
sistem informasi, meliputi orang (misal organisasi, staf, keahlian), teknologi
pendukung (misal teknologi informasi, otomatisasi kantor, komunikasi) dan
proses yang menyatukan keduanya (dalam rangkaian strategi bisnis).
DSDM terdiri dari 3 tahapan utama, dan 5 sub tahap :
1.
Sebelum
proyek, di mana kandidat proyek diidentifikasi, 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 efisien. Hal ini
diwujudkan dengan perawatan, peningkatan dan perbaikan sesuai prinsip-prinsip
DSDM.
Perawatan
dapat dilihat sebagai usaha meneruskan pengembangan berdasarkan sifat alami
DSDM, yaitu perulangan dan pertambahan.
Kelebihan
dari DSDM
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.
3.
DSDM
dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang
mengikuti DSDM dan praktek yang sejalan dengan XP.
Kekurangan
dari DSDM
1.
Setiap
iterasi bergantung pada prototype sebelumya.
2.
Menentukan
scope dari suatu prototype proyek tidak pernah selesai.
3.
Dokumentasi
sering kali tidak lengkap fokus pada pembuatan prototype.
4.
Isu-isu
mengenai system backup and recovery, system performance dan system security
kurang/tidak diperhatikan dan sering terlupakan.
4. Extreme
Programing Methodology
Extreme
Programming (XP) merupakan salah satu metode pengembangan software yang
termasuk dalam Agile Software Development. XP menggunakan pendekatan
object-oriented.
Dalam
XP, terdapat 5 nilai yang menjadi pondasi yaitu communication, simplicity,
feedback, courage, dan respect. Komunikasi yang efektif antara pengembang
perangkat lunak dan pihak-pihak yang terlibat sangatlah penting. Dalam XP,
desain dijadikan kebutuhan intermediate. Desain dibuat sesederhana mungkin agar
mudah mengimplementasikan code. Disini dapat terjadi perubahan struktur desain
atau perubahan source code tanpa mengubah fungsi utamanya (refactoring). Feedback
akan diberikan saat peningkatan dan pengimplementasian perangkat lunak.
Berikut
merupakan proses Extreme Programming menurut Pressman (2010):
Planning.
Tahap planning dimulai dengan membuat user stories yang menggambarkan output,
fitur, dan fungsi-fungsi dari software yang akan dibuat. User stories tersebut
kemudian diberikan bobot seperti prioritas dan dikelompokkan untuk selanjutnya
dilakukan proses delivery secara incremental.
Design.
Design di Extreme Programming mengikuti prinsip Keep It Simple (KIS). Untuk
design yang sulit, Extreme Programming akan menggunaan Spike Solution dimana
pembuatan design dibuat langsung ke tujuannya. Extreme Programming juga
mendukung adanya refactoring dimana software system diubah sedemikian rupa
dengan cara mengubah stuktur kode dan menyederhanakannya namun hasil dari kode
tidak berubah.
Coding.
Proses coding pada XP diawali dengan membangun serangkaian unit test. Setelah
itu pengembang akan berfokus untuk mengimplementasikannya. Dalam Extreme
Programming diperkenalkan istilah Pair Programming dimana proses penulisan
program dilakukan secara berpasangan. Dua orang programmer saling bekerjasama
di satu komputer untuk menulis program. Dengan melakukan ini akan didapat
real-time problem solving dan real-time quality assurance.
Testing.
Tahap ini dilakukan pengujian kode pada unit test. Dalam Extreme Programming,
diperkenalkan XP acceptance test atau biasa disebut customer test. Tes ini
dilakukan oleh customer yang berfokus kepada fitur dan fungsi sistem secara
keseluruhan. Acceptance test ini berasal dari user stories yang telah
diimplementasikan.
Kelebihan
dari XP
1.
Metode
yang populer karena lebih santai dan non-restriktif.
2.
Biaya
lebih murah.
3.
Mampu
mengotomatiskan tes.
4.
Setiap
feedback ditanggapi dengan melakukan tes, unit tes atau system integration dan
jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
5.
Banyak
ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali
kesalahan ditemukan, langsung diperbaiki.
Kekurangan
dari XP
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.
5. Scrum
Development Methodology
Scrum
adalah iteratif dan pengembangan perangkat lunak kerangka kerja tambahan
tangkas untuk proyek-proyek perangkat lunak dan mengelola produk atau
pengembangan aplikasi. Fokusnya adalah pada "strategi, pengembangan produk
fleksibel holistik di mana tim pengembangan bekerja sebagai sebuah unit untuk
mencapai tujuan bersama" sebagai lawan dari "pendekatan tradisional,
berurutan".
Dari
penjelasan diatas telah kita ketahui bahwa scrum merupakan salah satu
metodologi yang dapat digunakan untuk mengatur (manage) proses pembuatan
software menggunakan pendekatan Agile.
Untuk mengaplikasikan Scrum di kehidupan nyata, ada
beberapa proses penting dalam Scrum yang perlu kamu ketahui. Di antaranya
adalah product backlog, sprint planning meeting, daily scrum, sprint review
meeting, dan sprint retrospective. Mari kita bahas istilah-istilah tersebut
satu per satu!
Product
backlog
Ini
adalah tahap pertama yang harus kamu lakukan. Product backlog bertujuan untuk
menentukan prioritas apa saja yang harus dilakukan selama pengerjaan sprint,
yaitu rapat perencanaan pembuatan perangkat lunak yang dilakukan sesuai dengan
durasi yang telah disepakati. Product backlog melibatkan seluruh tim terkait,
dari mulai Product Owner, Scrum Master, hingga tim pengembang.
Sprint
planning meeting
Sprint
planning merupakan proses paling penting yang dilakukan setiap kali akan
memulai sprint baru. Dalam proses ini, seluruh tim berkumpul untuk merumuskan
tugas apa saja yang ingin dikerjakan dan dirilis dalam beberapa waktu ke depan.
Daily
scrum
Di fase
ini, masing-masing anggota tim saling berbagi apa saja yang telah dikerjakan,
dan apa yang akan dikerjakan di hari tersebut. Para anggota tim juga dapat
melaporkan hambatan yang ditemui selama pengerjaan. Daily scrum dilakukan
setiap hari selama sprint berlangsung.
Sprint
review meeting
Sprint
review adalah waktunya bagi anggota tim untuk mendemonstrasikan apa saja yang
berhasil diselesaikan dalam satu sprint. Sprint review dilakukan setelah satu
kali pengerjaan sprint selesai.
Sprint
retrospective
Sprint
retrospective dilakukan di akhir setiap sprint. Dalam meeting ini,
masing-masing anggota tim (termasuk Scrum Master dan Product Owner)
mengutarakan pendapat terkait kinerja tim selama menerapkan Scrum tanpa
membahas sisi teknis dari proyek yang telah dikerjakan.
Kelebihan
dari scrum
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.
Proses
Scrum mampu menyatakan bahwa produk selesai kapan pun diperlukan.
Kekurangan
dari scrum
1.
Developer
harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2.
Lemah
dalam perencanaan arsitektur
Sekian
artikel tentang macam-macam metode yang digunakan dalam pengembangan/pembuatan
software. Saya harap artikel yang saya buat bisa bermanfaat pada diri saya
sendiri dan juga orang lain.
-
Terima
Kasih Telah Berkunjung, datang lagi yaaa…
Komentar
Posting Komentar