MODEL
LIFE CYCLE SOFTWARE
Model pada life cycle
software ada beberapa macam, diantaranya:
Ø Waterfall
Ø V-Model
Ø Simple
Interaction Design Model ( Model Rancangan Interaksi Sederhana )
Ø Star
Lifecycle Model (Hartson & Hix, 1989)
Ø Model Rapid Application Development (RAD)
Ø Model Rapid Application Development (RAD)
Berikut
penjelasan mengenai berbagai model tersebut:
Ø WATERFALL
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.
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.
Selain karena
pengaplikasian menggunakan model ini mudah, kelebihan dari model ini adalah
ketika semua kebutuhan sistem dapat didefinisikan secara utuh, eksplisit, dan
benar di awal project, maka SE dapat berjalan dengan baik dan tanpa masalah.
Meskipun seringkali kebutuhan sistem tidak dapat didefinisikan seeksplisit yang
diinginkan, tetapi paling tidak, problem pada kebutuhan sistem di awal project
lebih ekonomis dalam hal uang (lebih murah), usaha, dan waktu yang terbuang
lebih sedikit jika dibandingkan problem yang muncul pada tahap-tahap
selanjutnya.
Meskipun demikian,
karena model ini melakukan pendekatan secara urut / sequential, maka ketika
suatu tahap terhambat, tahap selanjutnya tidak dapat dikerjakan dengan baik dan
itu menjadi salah satu kekurangan dari model ini.
Selain itu, ada
beberapa kekurangan pengaplikasian model ini, antara lain adalah sebagai
berikut:
Ketika problem muncul,
maka proses berhenti, karena tidak dapat menuju ke tahapan selanjutnya. Bahkan
jika kemungkinan problem tersebut muncul akibat kesalahan dari tahapan
sebelumnya, maka proses harus membenahi tahapan sebelumnya agar problem ini
tidak muncul. Hal-hal seperti ini yang dapat membuang waktu pengerjaan SE.
Karena pendekatannya
secara sequential, maka setiap tahap harus menunggu hasil dari tahap
sebelumnya. Hal itu tentu membuang waktu yang cukup lama, artinya bagian lain
tidak dapat mengerjakan hal lain selain hanya menunggu hasil dari tahap
sebelumnya. Oleh karena itu, seringkali model ini berlangsung lama
pengerjaannya.
Pada setiap tahap
proses tentunya dipekerjakan sesuai spesialisasinya masing-masing. Oleh karena
itu, ketika tahap tersebut sudah tidak dikerjakan, maka sumber dayanya juga
tidak terpakai lagi. Oleh karena itu, seringkali pada model proses ini
dibutuhkan seseorang yang “multi-skilled”, sehingga minimal dapat membantu
pengerjaan untuk tahapan berikutnya.
0 komentar:
Posting Komentar