Monday, March 12, 2018

Macam – Macam Model Pengembangan Perangkat Lunak Beserta Kelebihan dan Kekurangannya


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 :
  1. Adanya permasalahan-permasalahan (problems) yang timbul di sistem yang lama.
  2. Untuk meraih kesempatan-kesempatan (opportunities).
  3. 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.

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.   
Kekurangan utama Model Air Terjun adalah sebagai berikut : 
  • 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.

2. Model Spiral

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
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
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
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
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.
Ilustrasi berikut adalah representasi Model Spiral, mencantumkan aktivitas di setiap fase.



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.

Berikut adalah berbagai fase Model RAD :

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
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
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
Sistem yang sebenarnya dibangun dan pengkodean dilakukan dengan menggunakan alat otomasi untuk mengubah model proses dan data menjadi prototip aktual. 

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.

Diagram of Prototype model :


Tahapan - tahapan Proses dengan Model Prototype :

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.

Diagram of Incremental model :

Keuntungan Model Inkremental :
  • ·  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.

Diagram of V-model :



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.

Diagram of Agile model :



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.
 

No comments:

Post a Comment