Selasa, 02 Desember 2014

Waterfall Model Life Cycle

Nama model ini sebenarnya adalah “Linear Sequential Model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Secara umum tahapan pada model waterfall dapat dilihat pada gambar berikut :
 

Gambar di atas adalah tahapan umum dari model proses ini. Akan tetapi Roger S. Pressman memecah model ini menjadi 6 tahapan meskipun secara garis besar sama dengan tahapan-tahapan model waterfall pada umumnya. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini menurut Pressman:
  • System / Information Engineering and Modeling. Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Hal ini sangat penting, mengingat software harus dapat berinteraksi dengan elemen-elemen yang lain seperti hardware, database, dsb. Tahap ini sering disebut dengan Project Definition.
  • Software Requirements Analysis. Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb. Dari 2 aktivitas tersebut (pencarian kebutuhan sistem dan software) harus didokumentasikan dan ditunjukkan kepada pelanggan.
  • Design. Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk “blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya. Seperti 2 aktivitas sebelumnya, maka proses ini juga harus didokumentasikan sebagai konfigurasi dari software.
  • Coding. Untuk dapat dimengerti oleh mesin, dalam hal ini adalah komputer, maka desain tadi harus diubah bentuknya menjadi bentuk yang dapat dimengerti oleh mesin, yaitu ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
  • Testing / Verification. Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan yang sudah didefinisikan sebelumnya.
  • Maintenance. Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Ketika dijalankan mungkin saja masih ada errors kecil yang tidak ditemukan sebelumnya, atau ada penambahan fitur-fitur yang belum ada pada software tersebut. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.
 Pengembangan Perangkat Lunak Model - Waterfall Model Siklus Hidup


Pada tahap pertama ini terjun model diagram , ada pertemuan dengan pelanggan, memahami kebutuhan. Tahap pertama, ini dikatakan sebagai tahap yang paling penting, karena setiap miskomunikasi dan salah tafsir pada tahap ini dapat menimbulkan perangkat lunak, yang sedang dikembangkan. Bila persyaratan telah mencatat, penting untuk memastikan persyaratan yang rinci dan akurat dan tidak ada tempat untuk ambiguitas. Memahami kebutuhan dan harapan pelanggan benar akan memastikan, bahwa produk akhir memenuhi spesifikasi.


Analisis Kebutuhan dan Perencanaan Proyek


Pada tahap pertama ini terjun model diagram , ada pertemuan dengan pelanggan, memahami kebutuhan. Tahap pertama, ini dikatakan sebagai tahap yang paling penting, karena setiap miskomunikasi dan salah tafsir pada tahap ini dapat menimbulkan perangkat lunak, yang sedang dikembangkan. Bila persyaratan telah mencatat, penting untuk memastikan persyaratan yang rinci dan akurat dan tidak ada tempat untuk ambiguitas. Memahami kebutuhan dan harapan pelanggan benar akan memastikan, bahwa produk akhir memenuhi spesifikasi. 



Desain Sistem


Persyaratan, yang berkumpul di fase sebelumnya dipecah menjadi unit logis, sehingga proses perangkat lunak menjadi mudah untuk implementasi. Ini adalah panggung, ketika persyaratan perangkat lunak bersama dengan persyaratan perangkat keras untuk setiap unit diidentifikasi. Kemudian desain yang dibuat sesuai. Keterkaitan antara berbagai unit perangkat lunak diidentifikasi dan sambungan dibuat, menggunakan algoritma dan diagram. Untuk jumlah itu, ini adalah fase, di mana pekerjaan fundamental untuk pemrograman aktual dan pelaksanaannya dilakukan.



Implementasi Sistem


Pada fase ini perkembangan aktual dari perangkat lunak berlangsung. Fase ini juga dikenal sebagai coding dan fase verifikasi. Berdasarkan algoritma ditulis dalam tahap sebelumnya, program perangkat lunak ditulis. Untuk setiap modul, kode perangkat lunak ditulis dan diuji, untuk memeriksa apakah output yang benar diterima.


Sistem Integrasi dan Pengujian


Sekarang semua modul yang terintegrasi, setelah perangkat lunak diuji untuk output yang benar. Semua bug, yang dibuat, karena integrasi dihapus. Kemudian pengujian perangkat lunak dilakukan lagi. Mereka biasanya serangkaian tes, yang dijalankan untuk memeriksa kinerja perangkat lunak, dan juga untuk menemukan jika ada bug baru diperkenalkan ke dalam sistem, setelah sebelumnya bug yang diperbaiki. Jika ada lebih banyak kesalahan memang ada, bug yang diperbaiki hanya untuk diuji ulang. Model air terjun dalam pengujian diikuti, membuat bug perangkat lunak bebas, sejauh mungkin.


Sistem Deployment dan Pemeliharaan


Hal ini membuat untuk tahap akhir dari model air terjun, di mana perangkat lunak ini digunakan di sisi klien, setelah itu telah mengalami pengujian menyeluruh. Setelah penyebaran perangkat lunak, pekerjaan pemeliharaan rutin dilakukan. Setelah perangkat lunak telah dikerahkan, dalam kasus pelanggan meminta perubahan atau tambahan, maka seluruh proses restart.

Ada berbagai model yang kelebihan dan kekurangan air terjun. Keuntungan terbesar dari model ini adalah bahwa, tahapan selesai satu per satu. Namun, kerugian terbesar adalah bahwa itu sulit, ketika perubahan harus dibuat untuk sistem. Untuk meringkas terjun model siklus hidup singkat, model ini mewajibkan seseorang bergerak dari satu fase ke yang lain, hanya setelah tahap sebelumnya selesai memuaskan. Pada saat yang sama, tidak boleh dilupakan, bahwa berbagai model air terjun mungkin termasuk sedikit variasi atau besar dalam proses.


Keuntungan Model Waterfall
  • Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak terfokus pada tahapan tertentu.
  • Document pengembangan system sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya. Jadi  setiap fase atau tahapan akan mempunyai dokumen tertentu.
  • Metode ini masih lebih baik digunakan walaupun sudah tergolong kuno, daripada menggunakan pendekatan asal-asalan. Selain itu, metode ini juga masih masuk akal jika kebutuhan sudah diketahui dengan baik.

Kelemahan Model Waterfall
  • Diperlukan majemen yang baik, karena proses pengembangan tidak dapat dilakukan secara berulang sebelum terjadinya suatu produk.
  • Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan yang berakibat pada tahapan selanjutnya.
  • Pelanggan sulit menyatakan kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi ketidak pastian pada saat awal pengembangan.
  • Pelanggan harus sabar, karena pembuatan perangkat lunak akan dimulai ketika tahap desain sudah selesai. Sedangkan pada tahap sebelum desain bisa memakan waktu yang lama.
  • Pada kenyataannya, jarang mengikuti urutan sekuensial seperti pada teori. Iterasi sering terjadi menyebabkan masalah baru.

Tidak ada komentar:

Posting Komentar