Secara prinsip metode pengembangan perangkat lunak bertujuan untuk membantu menghasilkan perangkat lunak yang berkualitas. Berikut faktor-faktor yang perlu di cermati dalam pengembangan perangkat lunak.
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.
Pengembangan sistem dapat berarti menyusun suatu
sistem yang baru untuk menggantikan sistem yang lama secara
keseluruhan/memperbaiki sistem yang telah ada. Sistem yang lama perlu
diperbaiki atau diganti disebabkan karena beberapa hal, yaitu :
- Adanya permasalahan-permasalahan (problems) yang timbul di sistem yang lama.
- Untuk meraih kesempatan-kesempatan (opportunities).
- Adanya instruksi-instruksi (directives).
1. Model Waterfall
Model
Waterfall adalah Model Proses pertama yang akan diperkenalkan. Model ini juga
disebut sebagai model siklus hidup berurutan linier. Sangat mudah dipahami dan
digunakan. Dalam model air terjun, setiap fase harus selesai sebelum fase
selanjutnya bisa dimulai dan tidak ada tumpang tindih dalam tiap-tiap fase.
Model
Waterfall adalah pendekatan SDLC paling awal yang digunakan untuk pengembangan
perangkat lunak.
Desain Waterfall Model
Pendekatan
waterfall adalah model SDLC pertama yang digunakan secara luas dalam Software
Engineering untuk memastikan keberhasilan proyek. Dalam pendekatan "Model
Waterfall", seluruh proses pengembangan perangkat lunak dibagi ke dalam
fase terpisah. Dalam model Waterfall ini, biasanya, hasil dari satu fase
bertindak sebagai masukan untuk fase berikutnya secara berurutan.
Ilustrasi
berikut adalah representasi dari fase-fase yang berbeda pada Model Waterfall.
Fase
berurutan dalam model Waterfall diantaranya adalah :
1. Requirement Analysis
Seluruh kebutuhan dari sistem yang akan dikembangkan dikumpulkan dalam tahap ini dan didokumentasikan dalam dokumen spesifikasi persyaratan.
Seluruh kebutuhan dari sistem yang akan dikembangkan dikumpulkan dalam tahap ini dan didokumentasikan dalam dokumen spesifikasi persyaratan.
2. System
Design
Spesifikasi
kebutuhan dari tahap pertama dipelajari pada tahap ini dan perancangan sistem
dipersiapkan. Perancangan sistem ini membantu dalam menentukan persyaratan sistem
dan hardware dan juga membantu dalam mendefinisikan keseluruhan arsitektur
sistem.
3. Implementation
Dengan masukan dari perancangan
sistem, sistem ini pertama kali dikembangkan pada program kecil yang disebut
unit, yang terintegrasi pada tahap berikutnya. Setiap unit dikembangkan dan
diuji fungsinya, yang disebut Unit Testing.
4. Integration & Testing
Semua
unit yang dikembangkan dalam tahap implementasi diintegrasikan ke dalam sistem
setelah pengujian masing-masing unit. Integrasi pos seluruh sistem diuji untuk
setiap kesalahan dan kegagalan.
5. Deployment System
Setelah
pengujian fungsional dan non-fungsional dilakukan; produk ini diserahkan kepada
user atau dilepas ke pasar.
6. Maintenance
Ada
beberapa masalah yang muncul di lingkungan klien. Untuk memperbaiki masalah
tersebut, pembaharuan dilakukan. Juga untuk meningkatkan produk beberapa versi
yang lebih baik dilepaskan. Maintenance dilakukan untuk menyampaikan perubahan di
lingkungan pelanggan.
Beberapa kelebihan utama dari
Model Air Terjun adalah sebagai berikut :
- Sederhana, mudah dimengerti dan digunakan
- Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
- Fase diproses dan diselesaikan satu per satu.
- Bekerja dengan baik untuk proyek yang lebih kecil dimana persyaratannya sangat dipahami.
- Tahapan yang jelas dan mudah dipahami dengan baik.
- Mudah mengatur jadwal.
- Proses dan hasilnya terdokumentasi dengan baik.
- Sifatnya kaku, sehingga susah melakukan perubahan di tengah proses.
- Jika terdapat kekuarangan proses atau prosedur dari tahan sebelumnya, maka tahapan pengembangan harus dilakukan mulai dari awal. Hal ini akan memakan waktu yang cukup lama. Karena jika proses sebelumnya belum selesai sampai akhir, maka proses selanjutnya juga tidak dapat berjalan. Maka, jika terdapat kekuarangan dalam permintaan user, proses pengembangan harus dimulai dari awal.
- Membutuhkan daftar kebutuhan yang lengkap di awal, tapi jarang konsumen bisa memberikan kebutuhan secara lengkap diawal.
- Untuk menghindari pengulangan tahap dari awal, user harus memberikan seluruhh prosedur, data dan laporan yang diinginkan mulai dari tahap awal pengembangan. Tetapi di banyak kondisi, user sering melakukan permintaan si tahap pertengahan pengembangan sistem.
- Dengan metode ini, maka development harus dilakukan mulai dari tahap awal. Karena development disesuaikan dengan design hasil user pada saat tahap awal pengembangan.
- Tingginya resiko dan ketidakpastian.
Model spiral menggabungkan gagasan pengembangan
iteratif dengan aspek sistematis dan terkendali dari model air terjun. Model
Spiral ini merupakan gabungan dari model proses pengembangan iteratif dan model
pengembangan linier berurutan yaitu model air terjun dengan penekanan yang
sangat tinggi pada analisis risiko. Hal ini memungkinkan rilis tambahan produk
atau penyempurnaan tambahan melalui setiap iterasi di sekitar spiral.
Model spiral memiliki empat fase diantaranya yaitu :
1. Identification
1. Identification
Fase ini dimulai dengan mengumpulkan kebutuhan bisnis
di spiral baseline. Dalam spiral berikutnya saat produk tersebut matang,
identifikasi persyaratan sistem, persyaratan subsistem dan persyaratan unit
semuanya dilakukan pada tahap ini.
Tahap ini juga mencakup pemahaman persyaratan sistem
dengan komunikasi terus menerus antara pelanggan dan analis sistem. Pada akhir
spiral, produk ini diserahkan di pasar yang teridentifikasi.
2. Design
2. Design
Fase Desain dimulai dengan desain konseptual dalam
spiral baseline dan melibatkan desain arsitektur, desain logis dari modul,
desain produk fisik dan desain akhir pada spiral berikutnya.
3. Construct or Build
3. Construct or Build
Fase Konstruksi mengacu pada produksi produk perangkat
lunak sebenarnya di setiap spiral. Pada spiral baseline, ketika produk baru
saja dipikirkan dan disainnya dikembangkan sebuah POC (Proof of Concept)
dikembangkan pada fase ini untuk mendapatkan feedback dari pelanggan.
Kemudian pada spiral berikutnya dengan kejelasan yang
lebih tinggi pada persyaratan dan detail desain, model kerja perangkat lunak
yang disebut build diproduksi dengan nomor versi, selanjutnya dikirim ke
pelanggan untuk umpan balik.
4. Evaluasi dan Analisis Resiko
4. Evaluasi dan Analisis Resiko
Analisis Risiko meliputi identifikasi, estimasi dan
pemantauan kelayakan teknis dan risiko manajemen, seperti selip jadwal dan
biaya yang harus dikeluarkan. Setelah melakukan pengujian, pada akhir iterasi
pertama, pelanggan mengevaluasi perangkat lunak dan memberikan umpan balik.
Kelebihan Model Spiral SDLC adalah sebagai berikut :
- Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.
- Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
- Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
- Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
- Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif.
- Membutuhkan pertimbangan langsung terhadp resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius.
Kelemahan dari Model Spiral SDLC
adalah sebagai berikut :
- Manajemen lebih kompleks.
- Akhir proyek mungkin tidak diketahui sejak dini.
- Tidak cocok untuk proyek berisiko kecil atau rendah dan bisa mahal untuk proyek kecil.
- Prosesnya rumit.
- Spiral bisa terus berlanjut tanpa batas waktu.
- Sejumlah besar tahap menengah memerlukan dokumentasi yang berlebihan.
3. Model RAD (Rapid Application Development)
Model
RAD (Rapid Application Development) didasarkan pada prototyping dan iterative
development tanpa ada perencanaan khusus yang terlibat. Proses
penulisan perangkat lunak itu sendiri melibatkan perencanaan yang diperlukan
untuk pengembangan produk.
Pengembangan Aplikasi yang cepat berfokus pada pengumpulan kebutuhan pelanggan melalui lokakarya atau kelompok fokus, pengujian awal prototip oleh pelanggan dengan menggunakan konsep iteratif, penggunaan kembali prototipe (komponen) yang ada, integrasi berkelanjutan dan pengiriman cepat.
Pengembangan Aplikasi yang cepat berfokus pada pengumpulan kebutuhan pelanggan melalui lokakarya atau kelompok fokus, pengujian awal prototip oleh pelanggan dengan menggunakan konsep iteratif, penggunaan kembali prototipe (komponen) yang ada, integrasi berkelanjutan dan pengiriman cepat.
Berikut
adalah berbagai fase Model RAD :
1. Bussines Modeling
1. Bussines Modeling
Model bisnis untuk pengembangan produk dirancang
berdasarkan arus informasi dan distribusi informasi antar berbagai saluran
bisnis. Analisis bisnis yang lengkap dilakukan untuk menemukan informasi
penting untuk bisnis, bagaimana hal itu dapat diperoleh, bagaimana dan kapan
informasi diproses dan faktor apa yang mendorong arus informasi yang berhasil.
2. Data Modeling
2. Data Modeling
Informasi yang dikumpulkan dalam fase Business
Modeling ditinjau dan dianalisis untuk membentuk kumpulan data yang penting
bagi bisnis. Atribut semua kumpulan data diidentifikasi dan didefinisikan.
Hubungan antara objek data ini ditetapkan dan didefinisikan secara rinci sesuai
dengan model bisnis.
3. Proses Modeling
3. Proses Modeling
Kumpulan objek data yang didefinisikan dalam fase
Pemodelan Data dikonversi untuk menetapkan arus informasi bisnis yang
diperlukan untuk mencapai tujuan bisnis yang spesifik sesuai model bisnis.
Model proses untuk setiap perubahan atau penyempurnaan pada kumpulan objek data
didefinisikan dalam fase ini. Uraian proses untuk menambahkan, menghapus,
mengambil atau memodifikasi objek data diberikan.
4. Applicaton Generation
4. Applicaton Generation
Sistem yang sebenarnya dibangun dan pengkodean
dilakukan dengan menggunakan alat otomasi untuk mengubah model proses dan data
menjadi prototip aktual.
5. Testing & Turnover
5. Testing & Turnover
Waktu pengujian keseluruhan berkurang dalam model
RAD karena prototipnya diuji secara independen selama setiap iterasi. Namun,
arus data dan antarmuka antara semua komponen perlu diuji secara menyeluruh
dengan cakupan uji yang lengkap. Karena sebagian besar komponen pemrograman
telah teruji, ini mengurangi risiko masalah utama apa pun.
Kelebihan Model RAD
adalah sebagai berikut :
- Mengubah persyaratan bisa diakomodasi.
- Kemajuan bisa diukur.
- Waktu pengulangan bisa singkat dengan penggunaan alat RAD yang kuat.
- Produktifitas dengan lebih sedikit orang dalam waktu singkat.
- Mengurangi waktu pengembangan.
- Meningkatkan usabilitas komponen.
- Ulasan awal yang cepat terjadi.
- Integrasi sejak awal memecahkan banyak masalah integrasi.
Kelemahan Model RAD adalah
sebagai berikut :
- Ketergantungan pada anggota tim teknis yang kuat untuk mengidentifikasi kebutuhan bisnis.
- Hanya sistem yang bisa di modularized yang bisa dibangun menggunakan RAD.
- Membutuhkan pengembang/desainer yang sangat terampil.
- Ketergantungan yang tinggi pada keterampilan pemodelan.
- Tidak dapat diterapkan pada proyek yang lebih murah karena biaya pemodelan dan pembuatan kode otomatis sangat tinggi.
- Kompleksitas manajemen lebih banyak.
- Cocok untuk sistem yang berbasis komponen dan scalable.
- Memerlukan keterlibatan pengguna sepanjang siklus hidup.
- Cocok untuk proyek yang membutuhkan waktu pengembangan lebih pendek.
4.
Model Prototype
Prototipe adalah model kerja
perangkat lunak dengan beberapa fungsi terbatas. Prototipe tidak selalu
memegang logika yang tepat yang digunakan dalam aplikasi perangkat lunak
sebenarnya dan merupakan usaha ekstra untuk dipertimbangkan dalam estimasi
upaya.
Prototyping digunakan untuk memungkinkan pengguna mengevaluasi proposal pengembang dan mencobanya sebelum implementasi. Ini juga membantu memahami persyaratan yang spesifik pengguna dan mungkin belum dipertimbangkan oleh pengembang selama perancangan produk.
Prototyping digunakan untuk memungkinkan pengguna mengevaluasi proposal pengembang dan mencobanya sebelum implementasi. Ini juga membantu memahami persyaratan yang spesifik pengguna dan mungkin belum dipertimbangkan oleh pengembang selama perancangan produk.
Diagram of Prototype model :
a)
Pengumpulan Kebutuhan
b)
Membangun Prototyping
c)
Evaluasi Prototyping
d)
Pengkodean Sistem
e)
Menguji Sistem
f) Evaluasi Sistem
g)
Implementasi Sistem
Kelebihan
Model Prototype :
- · Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
- Penentuan kebutuhan lebih mudah diwujudkan.
- Mempersingkat waktu pengembangan produk perangkat lunak.
- Adanya komunikasi yang baik antara pengembang dan pelanggan.
- Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
- Lebih menghemat waktu dalam pengembangan sistem.
- Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
Kekurangan
Model Prototype :
- · Proses analisis dan perancangan terlalu singkat.
- Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
- Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.
5. Model Incremental
Dalam model inkremental seluruh
kebutuhan dibagi menjadi berbagai bangunan. Beberapa siklus pengembangan
terjadi di sini, membuat daur hidup siklus "multi-air terjun". Siklus
dibagi menjadi modul yang lebih kecil dan mudah dikelola. Model inkremental
adalah jenis model pengembangan perangkat lunak seperti model V, model Agile
dll.
Dalam model ini, setiap modul melewati tahap persyaratan, perancangan, implementasi dan pengujian. Versi perangkat lunak yang bekerja diproduksi pada modul pertama, sehingga Anda memiliki perangkat lunak kerja sejak awal selama siklus hidup perangkat lunak. Setiap rilis berikutnya dari modul ini menambahkan fungsi ke rilis sebelumnya. Prosesnya berlanjut sampai sistem yang lengkap tercapai.
Dalam model ini, setiap modul melewati tahap persyaratan, perancangan, implementasi dan pengujian. Versi perangkat lunak yang bekerja diproduksi pada modul pertama, sehingga Anda memiliki perangkat lunak kerja sejak awal selama siklus hidup perangkat lunak. Setiap rilis berikutnya dari modul ini menambahkan fungsi ke rilis sebelumnya. Prosesnya berlanjut sampai sistem yang lengkap tercapai.
Diagram
of Incremental model :
- · Menghasilkan perangkat lunak kerja dengan cepat selama siklus hidup perangkat lunak.
- Model ini lebih fleksibel - lebih murah untuk mengubah ruang lingkup dan persyaratan.
- Lebih mudah untuk menguji dan debug selama iterasi yang lebih kecil.
- Pada model ini pelanggan bisa merespon masing-masing bawaan.
- Menurunkan biaya pengiriman awal.
- Lebih mudah mengelola risiko karena bagian yang berisiko diidentifikasi dan ditangani selama iterasi.
Kekurangan Model Inkremental :
- · Perlu perencanaan dan desain yang baik.
- Membutuhkan definisi yang jelas dan lengkap tentang keseluruhan sistem sebelum dapat dipecah dan dibangun secara bertahap.
- Total biaya lebih tinggi dari model waterfall.
6. Model V
Model V
berarti model Verifikasi dan Validasi. Sama seperti model air terjun, siklus
hidup Berbentuk V adalah jalur sekuensial pelaksanaan proses. Setiap fase harus
diselesaikan sebelum fase berikutnya dimulai. V-Model adalah salah satu dari
banyak model pengembangan perangkat lunak. Pengujian produk direncanakan secara
paralel dengan fase pengembangan yang sesuai dengan model V.
Keuntungan model V :
- Sederhana dan mudah digunakan.
- Menguji kegiatan seperti perencanaan, uji perancangan dilakukan dengan baik sebelum pengkodean. Ini menghemat banyak waktu. Maka peluang sukses yang lebih tinggi dibanding model waterfall.
- Pelacakan cacat proaktif - yaitu cacat ditemukan pada tahap awal.
- Bekerja dengan baik untuk proyek kecil di mana persyaratan mudah dipahami.
Kekurangan model V :
- Sangat kaku dan tidak fleksibel.
- Perangkat lunak dikembangkan selama tahap implementasi, jadi tidak ada prototipe awal perangkat lunak yang diproduksi.
- Jika ada perubahan terjadi di tengah jalan, maka dokumen uji beserta dokumen persyaratan harus diperbaharui.
7. Model Agile
Model
pengembangan Agile juga merupakan tipe incremental model. Perangkat lunak
dikembangkan secara bertahap dan cepat. Hal ini menghasilkan rilis incremental
kecil dengan setiap membangun rilis pada fungsi sebelumnya. Setiap rilis diuji
secara menyeluruh untuk memastikan kualitas perangkat lunak terjaga. Ini
digunakan untuk aplikasi kritis waktu. Extreme Programming (XP) saat ini
merupakan salah satu model siklus pengembangan tangkas yang paling terkenal.
Keuntungan model
Agile :
- Kepuasan pelanggan dengan cepat, penyampaian terus menerus perangkat lunak yang bermanfaat.
- Orang dan interaksi lebih ditekankan daripada proses dan alat. Pelanggan, pengembang dan penguji terus berinteraksi satu sama lain.
- Perangkat lunak kerja sering dikirim (minggu daripada bulan).
- Percakapan tatap muka adalah bentuk komunikasi terbaik.
- Terus perhatian terhadap keunggulan teknis dan desain yang baik.
Kerugian model Agile :
- Dalam kasus beberapa perangkat lunak, terutama yang besar, sulit untuk menilai upaya yang diperlukan pada awal siklus pengembangan perangkat lunak.
- Tidak ada penekanan pada perancangan dan dokumentasi yang diperlukan.
- Proyek dapat dengan mudah dilepas jika perwakilan pelanggan tidak mengetahui hasil akhir yang mereka inginkan.
- Hanya programer senior yang mampu mengambil keputusan yang diperlukan selama proses pengembangan. Oleh karena itu tidak ada tempat bagi programmer pemula, kecuali dikombinasikan dengan sumber daya yang berpengalaman.