Pengertian Waterfall
Permodelan dalam suatu perangkat lunak merupakan suatu hal yang dilakukan di tahapan awal. Di dalam suatu rekayasa perangkat lunak, sebenarnya masih memungkinkan tanpa melakukan permodelan. Hal ini tidak dapat lagi dilakukan dalam suatu industri perangkat lunak.
Permodelan dalam perangkat lunak merupakan suatu yang harus dikerjakan di bagian awal rekayasa, dan permodelan ini akan mempengaruhi pekerjaan-pekerjaan dalam rekayasa perangkat lunak tersebut.
Waterfall model pertama kali diperkenalkanoleh Winston Royce tahun 1970. Waterfall Model merupakan model klasik yang sederhana dengan aliran sistem yang linier. Output dari setiap tahap merupakan input bagi tahap berikutnya.
Model ini telah diperoleh dari proses rekayasa lainnya dan menawarkan cara pembuatan rekayasa perangkat lunak secara lebih nyata. Model ini melibatkan tim SQA (Software Quantity Assurance) dengan 5 tahapan, dimana setiap tahapan selalu dilakukan verifikasi atau testing. Tahapan model waterfall meliputi :
- Requirment
Dalam tahapan ini jasa, kendala dan tujuandari konsultasi dengan pengguna sistem. Kemudian semuanya dibuat dalam bentuk yang dapat dimengerti oleh user dan staf pengembang. Dengan kata lain, dalam tahapn ini dilakukan analisa kebutuhan, kemdian diverifikasi klien dan tim SQA.
- Specification
Dokumentasi spesifikasi, kemudian diperiksa oleh tim SQA. Selanjutnya jika disetujui oleh klien, maka dokumen tersebutmerupakan kontrak kerjaantaraklien dan pengembang s0ftware. Selanjutnya merencanakan jadwal pengembangan software. Jika disetujui oleh SQA, tahap desain baru dilakukan.
- Design
Proses design sistem membagi kebutuhan-kebutuhan menjadi sistem perangkat lunak atau perangkat keras. Proses tersebut menghasilkan sebuah arsitektur keseluruhan. Desain perangkat lunak termasuk menghasilkan fungsi sistem perangkatlunak dalam bentuk yang mungkin ditransformasi kedalam satu atau lebih program yang dapat dijalankan. Tahapan ini telah menentukan alur software hingga pada tahap algoritma detail. Di akhir tahap ini, kembali diperksa tim SQA.
- Implementation
Selama tahap ini, desain perangkat lunak disadari sebagai sebuah program lengkap atau unit program. Desain yang telah disetujui, diubah dalam bentuk kode-kode program. Tahap ini, kode-kode program yang dihasilkan masih pada tahap modul-modul. Diakhir tahap ini, tiap modul di testing tanpa diintegrasikan.
- Integration
Unit program diintegrasikan dandiuji menjadi sistem yang lengkap untuk meyakinkan bahwa persyaratan perangkat lunak telah dipenuhi. Setelah uji coba, sistem disampaikan ke konsumen.
- Operaton mode & retirement
Normalnya, ini adalah tahap yang terpanjang. Sistem dipasang dan digunakan. Pemeliharaan termasuk pembetulan kesalahan yang tidak ditemukan pada langkah sebelumnya. Perbaikan inmplementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru ditemukan.
Setiap tahap dari modelini menggunakan Document Drivent, yaitu tahap selanjutnya selalu bekerja berdasarkan dokumen yang telah diberikan sebelumnya.
Tahapan pada waterfall model tidak akan selesai jika tidak disetujui SQA. Modifikasi pada tahap tertentu (tidak sesuai dengan dokumen sebelumnya), proses harus kembali pada tahap sebelumnya untuk penyesuaian dan peninjauan ulang.
Dalam prakteknya, setiap langkah sering tumpang tindih dan saling memberi informasi satu sama lain. Proses perangkat lunak tidak linierdan sederhana, tapi mengandung urutan iterasi dari aktifitas pengembangan. Selama di langkah terakhir, perangkat lunak telah digunakan. Kesalahan dan kelalaian dalam menentukan kebutuhan perangkat lunak original dapat diatasi.
berikut ini langkah-langkah pengembangan sistem dengan proses SDLC dengan model
waterfall, yaitu:
a. Sistem Engineering
adalah suatu disiplin
rancang-bangun yang mana bertanggung jawab menciptakan dan melaksanakan proses
disiplin untuk memastikan bahwa pelanggan dan kebutuhan stakeholder's
terpuaskan dengan kualitas tinggi, terpercaya, efisiensi biaya dan menjadwalkan
cara memenuhi sepanjang keseluruhan jalan kehidupan.
b&c. Analisis & Design
Ini tahap yang
penting dalam pengembangan sistem dimana melakukan perancangan sistem yang akan
dikembangkan. Dengan kata lain database mendisain, perancangan arsitektur yang
dipilih, spesifikasi fungsional disain, disain yang tingkat rendah dokumen,
dokumen disain yang tingkat tinggi dan seterusnya berlangsung. Kita harus
menyiapkan dokumen disain ini sebab tahap yang berikutnya yakni tahap
pengembangan didasarkan pada dokumen disain ini. Jika suatu sumur yang tersusun
dan dianalisa dokumen disain disiapkan maka akan mengurangi waktu untuk
melakukan langkah-langkah berikutnya yakni pengembangan dan menguji tahap dari
pengembangan software.
d. Pengkodean
pada tahap ini akan secara langsung
dipraktekan pada sistem yang sedang berlangsung.Desain Dokumen sudah disiapkan di nulai dari tahap pengkodean awal
ditulis di teknologi programming yang
dipilih. Setelah kode dikembangkan generasi dari kode juga berlangsung di tahap ini. Dengan kata lain kode diubah
jadi executables di tahap ini setelah generasi kode.
e. Testing
Suatu perangkat lunak akan dilakukan pengujian untuk menghasilkan produk
yang berkwalitas. tahap ini akan mengetahui debugger atau kesalahan dalam
sistem yang sedang dibangun. Pada tahap ini berbeda dan metoda uji didasarkan
untuk koreksi dari kesalahan. Proses ini melanjut sampai sistem dibebaskan dari
kesalahan.
Suatu perangkat
lunak akan dilakukan pengujian untuk menghasilkan produk yang berkwalitas.
tahap ini akan mengetahui debugger atau kesalahan dalam sistem yang sedang
dibangun. Pada tahap ini berbeda dan metoda uji didasarkan untuk koreksi dari
kesalahan. Proses ini melanjut sampai sistem dibebaskan dari kesalahan.
SDLC akan
menghasilkan suatu sistem yang berkualitas sesuai requirement (kebutuhan)
user dan dapat diselesaikan dalam waktu dan biaya yang telah diperkirakan
secara efektif dalam infrastruktur tehologi informasi saat ini dan yang akan
datang.
SDLC mudah
dikembangkan dalam merespon berbagai kebutuhan pemakai (user) dan lebih murah
pemeliharaan serta hemat biaya dalam pengembangan.
Sistem komputer
sudah menjadi lebih kompleks dan sering juga merupakan arsitektur yang
berorientasi memenuhi kebutuhan user dengan cara mengembangkan berbagai sistem
yang konvensional (tradisional) agar berpotensi sehingga dapat menyajikan
berbagai perangkat lunak yang berbeda.
SDLC merupakan alur
kerja standart yang biasa dipakai oleh perusahaan-perusahaan vendor software
dalam mengembangkan software aplikasi produksinya. SDLC ini tidak hanya penting
untuk proses produksi software saja, namun terlebih juga sangat penting untuk
proses maintenance software itu sendiri, karena tanpa pengarsipan data-data
development suatu software, maka akan sangat menyulitkan perusahaan dalam
maintenance software tersebut dikemudian hari.
f. Maintenance
Melakukan pemeliharaan, seperti penyesuaian atau
perubahan karena adaptasi dengan situasi sebenarnya. Model ini juga
mencerminkan kepraktisan engineering karena ketika sudah berada diakhir fase
jika terjadi kesalahan akan lebih mudah diperbaiki. Namun kelemahan metode ini
adalah ketika suatu fase sudah terlewati dan ada perubahan kebutuhan sesuai
keinginan pemakai/user terkadang model ini sulit untuk diakomodasi. Dampaknya
akan menyebabkan kebingungan bagi tim pembuat. Sehingga keadaan ‘block state’
atau status terblok akan terjadi. Block state bisa terjadi ketika beberapa
anggota tim harus menunggu anggota lain team ini untuk menyelesaikan tugas yang
ada kaitannya. Akibatnya, waktu yang diperlukan untuk menunggu bisa melebihi
waktu produktif yang diperlukan untuk mengerjakan tugasnya.Secara umum
masalah-masalah yang sering terjadi dalam model ini adalah :Perubahan sulit
dilakukan karena sifatnya yang kaku.
Karena sifat kakunya, model ini cocok ketika kebutuhan
dikumpulkan secara lengkap sehingga perubahan bisa ditekan sekecil mungkin.
Tapi pada kenyataannya jarang sekali konsumen/pengguna yang bisa memberikan kebutuhan
secara lengkap, perubahan kebutuhan adalah sesuatu yang wajar terjadi.Waterfall
pada umumnya digunakan untuk rekayasa sistem yang besar dimana Proyek
dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian
sub-Proyek
Keuntungan:
Simple dan mudah diimplementasikan
mudah diatur
Cocok untuk proyek kecil
Simple dan mudah diimplementasikan
mudah diatur
Cocok untuk proyek kecil
Kerugian:
Tidak mengakomodasi perubahan requirement
Resiko ketidakpastian tinggi
Model yang buruk untuk proyek yang berorientasi obyek
Model yang buruk untuk proyek lama
2.V-ModelTidak mengakomodasi perubahan requirement
Resiko ketidakpastian tinggi
Model yang buruk untuk proyek yang berorientasi obyek
Model yang buruk untuk proyek lama
Pengertian V-Model
Model ini merupakan perluasan dari model waterfall. Disebut sebagai perluasan karena tahap-tahapnya mirip dengan yang terdapat dalam model waterfall. Jika dalam model waterfall proses dijalankan secara linear, maka dalam model V proses dilakukan bercabang. Dalam model V ini digambarkan hubungan antara tahap pengembangan software dengan tahap pengujiannya.
Berikut penjelasan masing-masing tahap
beserta tahap pengujiannya:
a. Requirement Analysis
& Acceptance Testing
Tahap Requirement Analysis sama seperti
yang terdapat dalam model waterfall. Keluaran dari tahap ini adalah dokumentasi
kebutuhan pengguna.
Acceptance Testing merupakan tahap yang
akan mengkaji apakah dokumentasi yang dihasilkan tersebut dapat diterima oleh
para pengguna atau tidak.
b. System Design &
System Testing
Dalam tahap ini analis sistem mulai
merancang sistem dengan mengacu pada dokumentasi kebutuhan pengguna yang sudah
dibuat pada tahap sebelumnya. Keluaran dari tahap ini adalah spesifikasi
software yang meliputi organisasi sistem secara umum, struktur data, dan yang
lain. Selain itu tahap ini juga menghasilkan contoh tampilan window dan juga
dokumentasi teknik yang lain seperti Entity Diagram dan Data Dictionary.
c. Architecture Design
& Integration Testing
Sering juga disebut High Level Design.
Dasar dari pemilihan arsitektur yang akan digunakan berdasar kepada beberapa
hal seperti: pemakaian kembali tiap modul, ketergantungan tabel dalam basis data,
hubungan antar interface, detail teknologi yang dipakai.
d. Module Design &
Unit Testing
Sering juga disebut sebagai Low Level
Design. Perancangan dipecah menjadi modul-modul yang lebih kecil. Setiap modul
tersebut diberi penjelasan yang cukup untuk memudahkan programmer melakukan
coding. Tahap ini menghasilkan spesifikasi program seperti: fungsi dan logika
tiap modul, pesan kesalahan, proses input-output untuk tiap modul, dan
lain-lain.
e. Coding
Dalam tahap ini dilakukan pemrograman
terhadap setiap modul yang sudah dibentuk.
V Model memiliki beberapa kelebihan.
Kelebihan-kelebihan tersebut secara garis besar dapat dijelaskan seperti
berikut:
V
Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan
pengurangan method dan tool secara dinamik. Akibatnya sangat mudah untuk
melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan
sangat mudah untuk menambahkan method dan tool baru atau menghilangkan method
dan tool yang dianggap sudah obsolete.
· V Model dikembangkan
dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change
control board yang memproses semua change request terhadap V Model.
V Model juga memiliki beberapa
kekurangan. Kekurangan-kekurangan tersebut yaitu:
· V Model adalah model
yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
· V Model terlalu
fleksibel dalam arti ada beberapa activity dalam V Model yang digambarkan
terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk
dalam activity tersebut dan apa yang tidak.
Keuntungan V Model
- Bahasa yang digunakan untuk merepresentasikan konsep V model menggunakan bahasa formal.Contoh: dengan menggunakan objek model ataupun frame-frame
- Meminimalisasikan kesalahan pada hasil akhir karena ada test pada setiap prosesnya
- Penyesuaian yang cepat pada projek yang baru
- Memudahkan dalam pembuatan dokumen projek
- Biaya yang murah dalam perawatan dan modifikasinya
- V Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah untuk menambahkan method dan tool baru atau menghilangkan method dan tool yang dianggap sudah obsolete.
- V Model dikembangkan dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change control board yang memproses semua change request terhadap V Model.
Kerugian V Model
- Aktifitas V-Model hanya difokuskan pada projectnya saja, bukan pada keseluruhan organisasi. V-Model adalah proses model yang hanya dikerjakan sekali selama project saja, bukan keseluruhan organisasi.
- Prosesnya hanya secara sementara. Ketika project selesai, jalannya proses model dihentikan. Tidak berlangsung untuk keseluruhan organisasi.
- Metode yang ditawarkan terbatas. Sehingga kita tidak memiliki cara pandang dari metode yang lain. Kita tidak memiliki kesempatan untuk mempertimbangkan jika ada tools lain yang lebih baik.
- oolnya tidak selengkap yang dibicarakan. SDE (Software Development Environment).Tidak ada tools untuk hardware di V-Model. Tool yang dimaksud adalah “software yang mendukung pengembangan atau pemeliharaan / modifikasi dari system IT.
- V Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
- V Model terlalu fleksibel dalam arti ada beberapa activity dalam V Model yang digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.
Pada model rancangan interaksi sederhana ini input
atau masukan hanya memiliki satu titik. yang mana masukan tersebut
diidentifikasikan apakah sesuai dengan kebutuhan, lalu didesain sesuai dengan
persyaratan yang telah ditetapkan. Setelah didesain rancangan tersebut dibangun
dan harus interaktif. Setelah itu barulah rancangan tersebut dievaluasi.
Evaluasi dapat dilakukan dimana saja, rancangan yang telah di evakuasi
dapat kambali didesain ulang atau apakah rancangan tersebut tidak sesuai dengan kebutuhan user, maka
alur tersebut akan terus berputar hingga pada tahap evaluasi tidak lagi terjadi
kesalahan, baik dalam penetapan kebutuhan user maupun pendesainannya, sehingga
pada tahap evaluasi terciptalah sebuah hasil akhir yang valid.
4.Star Lifecycle Model (Hartson & Hix, 1989)
Dalam pengembangan software ada bererapa tahapan utnuk
mencapai kualitas pembuatan/ siklus hidup software. Dapat kami jabarkan siklus
hidup software atau tahap pengembangan software sebagai berikut:
Tahap Pengembangan Software ( Siklus Hidup Software )
:
a.
Requirements Analysis ( Analisa
Kebutuhan )
Tahap ini menganalisa masalah dan kebutuhan yang harus diselesaikan dengan sistem komputer yang akan dibuat. Tahap ini berakhir dengan pembuatan laporan kelayakan yang mengidentifikasi kebutuhan sistem yang baru dan merekomendasikan apakah kebutuhan atau masalah tersebut dapat diselesaikan dengsn sistem komputer yang ada.
Tahap ini menganalisa masalah dan kebutuhan yang harus diselesaikan dengan sistem komputer yang akan dibuat. Tahap ini berakhir dengan pembuatan laporan kelayakan yang mengidentifikasi kebutuhan sistem yang baru dan merekomendasikan apakah kebutuhan atau masalah tersebut dapat diselesaikan dengsn sistem komputer yang ada.
b.
System and Software Design ( Prencanaan
Sistem dan Software )
Tahap ini melakukan rancangan design sistem. Tahap ini memberikan rincian kinerja program dan interaksi antara user dengan program tersebut.
Tahap ini melakukan rancangan design sistem. Tahap ini memberikan rincian kinerja program dan interaksi antara user dengan program tersebut.
c.
Implementation ( Implementasi )
Tahap ini adalah spesifikasi design yang telah dibuat untuk diterjemahkan de
dalam program / instruksi yang ditulis dalam bahasa pemrograman.
d.
System Testing ( Pengujian Sistem )
Tahap ini semua program digabungkan dan diuji sebagai satu sistem yang lengkap untuk menjamin sumua berkerja dan memenuhi kebutuhan penanganan masalah yang dihadapi.
Tahap ini semua program digabungkan dan diuji sebagai satu sistem yang lengkap untuk menjamin sumua berkerja dan memenuhi kebutuhan penanganan masalah yang dihadapi.
e.
Operation and Maintenance (
Pengoperasian dan Pemeliharaan )
Tahap ini merupakan pengaplikasian program yang telah dibuat untuk digunakan secara utuh dan masalah baru yang muncul sebagai bahan masukan untuk memperbaiki sistem program yang baru.
Tahap ini merupakan pengaplikasian program yang telah dibuat untuk digunakan secara utuh dan masalah baru yang muncul sebagai bahan masukan untuk memperbaiki sistem program yang baru.
sumber :
raytenimanuel.wordpress.com/2013/01/23/pengertian-waterfall/theresianihan.blogspot.co.id/2013/01/model-life-cycle-software.html
https://anitamegayanti.wordpress.com/category/software-engineering/system-development-life-cycle/
http://ayip7shortcutsharing.blogspot.co.id/2013/06/pengertian-model-v-keuntungan-model-v.html



