Senin, 02 Februari 2015

Waterfall VS Incremental

Di zaman yang semakin  mengalami perkembangan ini banyak kebutuhan perangkat lunak yang semakin meningkat. Perangkat lunak tersebut juga tidak langsung jadi secara mudah seperti memasak telor ceplok, melainkan melalui tahapan-tahapan menurut metode pengembangan yang digunakan oleh developernya. Seperti yang kita(anak-anak TI) tahu ada berbagai macam metode pengembangan perangkat lunak, seperti Waterfall, Prototype, RAD, Incremental, Spiral Boehm,dan Agile beserta jenis-jenisnya.
Dan kali ini saya sebagai penulis artikel ini akan membahas tentang metode Waterfall dan Incremental. Mari siapkan cemilan, minuman, catatan kecil, tak lupa komentar teman semua. Oo iya LIKEnya juga whakakaka. Biar gak terlalu tegang. Oke saya mulai pembahasannya, simak baik-baik ya.

  1.  Metode Waterfall
Model pengembangan software yang diperkenalkan oleh Winston Royce pada tahun 70-an ini merupakan model klasik yang sederhana dengan aliran sistem yang linier —  keluaran dari tahap sebelumnya merupakan masukan untuk tahap berikutnya. Pengembangan dengan model ini adalah hasil adaptasi dari pengembangan perangkat keras, karena pada waktu itu belum terdapat metodologi pengembangan perangkat lunak yang lain. Proses pengembangan yang sangat terstruktur ini membuat potensi kerugian akibat kesalahan pada proses sebelumnya sangat besar dan sering kali mahal karena membengkaknya biaya pengembangan ulang.


 


Tahapan Metode Waterfall
Dalam pengembangannya metode waterfall memiliki beberapa tahapan: requirement (analisis kebutuhan), design sistem (system design), Coding & Testing, Penerapan Program, pemeliharaan.

  • Requirement (analisis kebutuhan).
Dalam langakah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa melakukan sebuah penelitian, wawancara atau study literatur. Seseorang system analisis akan menggali informasi sebanyak-banyaknya dari user sehingga akan tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan oleh user tersebut. Tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem. Dokumen inilah yang akan menjadi acuan system analisis untuk menterjemahkan kedalam bahasa pemrograman.

  • Design System (design sistem)
Proses design akan menterjemahkan syarat kebutuhan kesebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat koding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement. Dokumen inilah yang akan digunakan programmer untuk melakukan aktivitas pembuatan sistemnya.

  • Coding & Testing (penulisan sinkode program / implemention)
        Coding merupakan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer.Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem.Dalam artian penggunaan computer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap system tersebut dan kemudian bisa diperbaiki.

  • Penerapan / Pengujian Program (Integration & Testing)
Tahapan ini bisa dikatakan final dalam pembuatan  sebuah sistem. Setelah melakukan analisa, design dan pengkodean maka sistem yang sudah jadikan digunakan oleh user.

  • Pemeliharaan (Operation & Maintenance)
Perangkat lunak yang susah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau system operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional.



Kelebihan metode Waterfall
 Keunggulan model pendekatan pengembangan software dengan metode waterfall adalah pencerminan kepraktisan rekayasa, yang membuat kualitas software tetap terjaga karena pengembangannya yang terstruktur dan terawasi. Disisi lain model ini merupakan jenis model yang bersifat dokumen lengkap, sehingga proses pemeliharaan dapat dilakukan dengan mudah.


Kekurangan metode Waterfall
 Kelemahan pengembangan software dengan metode waterfall yang utama adalah lambatnya proses pengembangan perangkat lunak. Dikarenakan prosesnya yang satu persatu dan tidak bisa diloncat-loncat menjadikan model klasik ini sangat memakan waktu dalam pengembangannya. Disisi lain, pihak klien tidak dapat mencoba sistem sebelum sistem benar-benar selesai pembuatannya.


2.Metode Incremental

 Incremental model adalah model pengembangan sistem pada software engineering berdasarkan requirement software yang dipecah menjadi beberapa fungsi atau bagian sehingga model pengembangannya secara bertahap. dilain pihak ada mengartikan model incremental sebagai  perbaikan dari model waterfall dan sebagai standar pendekatan topdown.





Tahapan metode Incremental 
  • Requirement , Requirment adalah proses tahapan awal yang dilakukan pada incremental model adalah penentuan kebutuhan atau analisis kebutuhan.
  • Specification, Specification adalah proses spesifikasi dimana menggunakan analisis kebutuhan sebagai acuannya.
  • Architecture Design, adalah tahap selanjutnya, perancangan software yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.
  • Code setelah melakukan proses desain selanjutnya ada pengkodean.
  • Test merupakan tahap pengujian dalam model ini. 

            Tahapan-tahapan tersebut dilakukan secara berurutan. Setiap bagian yang sudah selesai dilakukan testing, dikirim ke pemakai untuk langsung dapat digunakan. Pada incremental model, tiga tahapan awal harus diselesaikan terlebih dahulu sebelum sebelum tahap membangun tiap increment. Untuk mengantisipasi kondisi yang terjadi pada incremental model, diperkenalkan model More Risky Incremental Model. Model ini menerapkan sistem kerja yang paralel. Setelah daftar kebutuhan didapatkan dari pemakai, tim spesifikasi membuat spesifikasi untuk modul pertama. Setelah spesifikasi pertama selesai, tim desain menindak lanjuti. Tim spesifikasi sebelumnya juga langsung membuat spesifikasi untuk model kedua, dan seterusnya. Jadi, tidak harus menunggu modul pertama selesai hingga dikirim ke user.  


Kelebihan metode Increment
  • Merupakan model dengan manajemen yang sederhana
  • Pengguna tidak perlu menunggu sampai seluruh sistem dikirim untuk mengambil keuntungan dari sistem tersebut. Increment yang pertama sudah memenuhi persyaratan mereka yang paling kritis, sehingga perangkat lunak dapat segera digunakan.
  • Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah masih dapat ditemukan pada beberapa increment. Karena layanan dengan prioritas tertinggi diserahkan pertama dan increment berikutnya diintegrasikan dengannya, sangatlah penting bahwa layanan sistem yang paling penting mengalami pengujian yang ketat. Ini berarti bahwa pengguna akan memiliki kemungkinan kecil untuk memenuhi kegagalan perangkat lunak pada increment sistem yang paling bawah.
  • Nilai penggunaan dapat ditentukan pada setiap increment sehingga fungsionalitas sistem disediakan lebih awal.
  • Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,
  • Prioritas tertinggi pada pelayanan sistem adalah yang paling diuji

Kelemahannya metode Increment
  • kemungkinan tiap bagian tidak dapat diintegrasikan
  • Dapat menjadi build and Fix Model, karena kemampuannya untuk selalu mendapat perubahan selama proses rekayasa berlangsung
  • Harus Open Architecture
  • Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment.

2 komentar:

  1. setelah di baca-baca, menurut saya perbandingan mencolok dari kedua sistem diatas adalah waktu, jika kebutuhannya atau prioritas nya adalah waktu, incremental akan lebih cepat daripada waterfall, meskipun hal tersebut dapat menjadikan incremental lebih besar resiko untuk tidak terintegrasi dengan sistem secara keseluruhan namun hal inilah yang menjadikan seorang ahli IT "hebat", ketelitian dan kecermatan dalam pembuatan dengan setiap tahapan sudah menjadi keharusan. good article

    BalasHapus